diff options
| author | Unknown <shekwancheung0528@gmail.com> | 2019-08-11 23:28:33 +0800 |
|---|---|---|
| committer | Unknown <shekwancheung0528@gmail.com> | 2019-08-11 23:28:33 +0800 |
| commit | 28025895e0da1e6079264dbfe951e7fd9bf069d8 (patch) | |
| tree | bd28e2f6bf02a2806c4b7802fac912ed43444e43 /src/main/java/me/shedaniel/rei/client/DisplayHelperImpl.java | |
| parent | 019aa13875ca639dda2f34c66e3160f72b923cfd (diff) | |
| download | RoughlyEnoughItems-28025895e0da1e6079264dbfe951e7fd9bf069d8.tar.gz RoughlyEnoughItems-28025895e0da1e6079264dbfe951e7fd9bf069d8.tar.bz2 RoughlyEnoughItems-28025895e0da1e6079264dbfe951e7fd9bf069d8.zip | |
Scrollable Entry List?
Diffstat (limited to 'src/main/java/me/shedaniel/rei/client/DisplayHelperImpl.java')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/client/DisplayHelperImpl.java | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/src/main/java/me/shedaniel/rei/client/DisplayHelperImpl.java b/src/main/java/me/shedaniel/rei/client/DisplayHelperImpl.java deleted file mode 100644 index ac6d581bf..000000000 --- a/src/main/java/me/shedaniel/rei/client/DisplayHelperImpl.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Roughly Enough Items by Danielshe. - * Licensed under the MIT License. - */ - -package me.shedaniel.rei.client; - -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import me.shedaniel.rei.api.BaseBoundsHandler; -import me.shedaniel.rei.api.DisplayHelper; - -import java.awt.*; -import java.util.Comparator; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.stream.Collectors; - -public class DisplayHelperImpl implements DisplayHelper { - - private static final Comparator<DisplayBoundsHandler<?>> BOUNDS_HANDLER_COMPARATOR; - private static final DisplayBoundsHandler<Object> EMPTY = new DisplayBoundsHandler() { - @Override - public Class getBaseSupportedClass() { - return null; - } - - @Override - public Rectangle getLeftBounds(Object screen) { - return new Rectangle(); - } - - @Override - public Rectangle getRightBounds(Object screen) { - return new Rectangle(); - } - - @Override - public float getPriority() { - return -10f; - } - }; - - static { - Comparator<DisplayBoundsHandler<?>> comparator = Comparator.comparingDouble(DisplayBoundsHandler::getPriority); - BOUNDS_HANDLER_COMPARATOR = comparator.reversed(); - } - - private List<DisplayBoundsHandler<?>> screenDisplayBoundsHandlers = Lists.newArrayList(); - private Map<Class<?>, DisplayBoundsHandler<?>> handlerCache = Maps.newHashMap(); - private BaseBoundsHandler baseBoundsHandler; - - @Override - public List<DisplayBoundsHandler<?>> getSortedBoundsHandlers(Class<?> screenClass) { - return screenDisplayBoundsHandlers.stream().filter(handler -> handler.getBaseSupportedClass().isAssignableFrom(screenClass)).sorted(BOUNDS_HANDLER_COMPARATOR).collect(Collectors.toList()); - } - - @Override - public List<DisplayBoundsHandler<?>> getAllBoundsHandlers() { - return screenDisplayBoundsHandlers; - } - - @Override - public DisplayBoundsHandler<?> getResponsibleBoundsHandler(Class<?> screenClass) { - Optional<? extends DisplayBoundsHandler<?>> any = handlerCache.entrySet().stream().filter(entry -> entry.getKey().equals(screenClass)).map(Map.Entry::getValue).findAny(); - if (any.isPresent()) - return any.get(); - handlerCache.put(screenClass, screenDisplayBoundsHandlers.stream().filter(handler -> handler.getBaseSupportedClass().isAssignableFrom(screenClass)).sorted(BOUNDS_HANDLER_COMPARATOR).findAny().orElse(EMPTY)); - return handlerCache.get(screenClass); - } - - @Override - public void registerBoundsHandler(DisplayBoundsHandler<?> handler) { - screenDisplayBoundsHandlers.add(handler); - } - - @Override - public BaseBoundsHandler getBaseBoundsHandler() { - return baseBoundsHandler; - } - - public void setBaseBoundsHandler(BaseBoundsHandler baseBoundsHandler) { - this.baseBoundsHandler = baseBoundsHandler; - } - - public void resetCache() { - handlerCache.clear(); - } - -} |
