From 5c40de2ebabd88d003981a5f6176a378138b312d Mon Sep 17 00:00:00 2001 From: Nedelosk Date: Tue, 1 Aug 2017 12:08:46 +0200 Subject: [PATCH] Rename Widget some Methods --- .../gui/database/ControlColorOption.java | 2 +- .../gui/database/PageSpeciesFlowerGenome.java | 2 +- src/main/java/binnie/core/gui/IWidget.java | 118 ++++++++---- src/main/java/binnie/core/gui/Widget.java | 168 +++++++++--------- .../gui/controls/ControlTextCentered.java | 2 +- .../gui/database/ControlItemStackOption.java | 2 +- .../gui/database/ControlSpeciesBoxOption.java | 2 +- .../extratrees/gui/database/PageFruit.java | 4 +- .../gui/database/PagePlanksOverview.java | 6 +- .../gui/database/PagePlanksTrees.java | 4 +- .../gui/database/PageSpeciesTreeGenome.java | 2 +- .../extratrees/gui/database/PageWood.java | 4 +- 12 files changed, 186 insertions(+), 130 deletions(-) diff --git a/src/main/java/binnie/botany/gui/database/ControlColorOption.java b/src/main/java/binnie/botany/gui/database/ControlColorOption.java index e19d520da..f78cdf285 100644 --- a/src/main/java/binnie/botany/gui/database/ControlColorOption.java +++ b/src/main/java/binnie/botany/gui/database/ControlColorOption.java @@ -25,7 +25,7 @@ public ControlColorOption(ControlList controlList, IFlowerColor op textWidget.setSize(textWidget.getSize().sub(new Point(24, 0))); int th = CraftGUI.RENDER.textHeight(textWidget.getValue(), textWidget.getSize().x()); int height = Math.max(20, th + 6); - setSize(new Point(size().x(), height)); + setSize(new Point(this.getSize().x(), height)); textWidget.setSize(new Point(textWidget.getSize().x(), height)); boxPosition = new Point(2, (height - 18) / 2); } diff --git a/src/main/java/binnie/botany/gui/database/PageSpeciesFlowerGenome.java b/src/main/java/binnie/botany/gui/database/PageSpeciesFlowerGenome.java index 06cb6e3f0..1635b1ae6 100644 --- a/src/main/java/binnie/botany/gui/database/PageSpeciesFlowerGenome.java +++ b/src/main/java/binnie/botany/gui/database/PageSpeciesFlowerGenome.java @@ -106,7 +106,7 @@ public void onValueChanged(IAlleleSpecies species) { int numOfLines = 1 + (tot - 1) / 3; new ControlText(contents, new Area(0, y - (numOfLines - 1) * 18, w2, 4 + 18 * numOfLines), I18N.localise(DatabaseConstants.BOTANY_GENOME_KEY + ".varieties"), TextJustification.MIDDLE_RIGHT); y += th; - contents.setSize(new Point(contents.size().x(), y)); + contents.setSize(new Point(contents.getSize().x(), y)); scrollable.setScrollableContent(contents); } } diff --git a/src/main/java/binnie/core/gui/IWidget.java b/src/main/java/binnie/core/gui/IWidget.java index 5a57b855a..09435ed18 100644 --- a/src/main/java/binnie/core/gui/IWidget.java +++ b/src/main/java/binnie/core/gui/IWidget.java @@ -12,46 +12,70 @@ import binnie.core.gui.geometry.Point; public interface IWidget { + /** + * + * @return the parent of this widget + */ @Nullable IWidget getParent(); - void deleteChild(final IWidget p0); - - void deleteAllChildren(); - ITopLevelWidget getTopParent(); + /** + * @return true if this widget is the {@link #getTopParent()} + */ boolean isTopLevel(); + /** + * @return the position of this widget + */ Point getPosition(); - void setPosition(final Point p0); - - Point getSize(); - - void setSize(final Point p0); - - Point size(); - Point getOriginalPosition(); Point getAbsolutePosition(); Point getOriginalAbsolutePosition(); + void setPosition(Point position); + + /** + * @return the size of this widget + */ + Point getSize(); + + void setSize(Point size); + + /** + * @return the offset of this widget + */ Point getOffset(); void setOffset(final Point p0); + /** + * @return the area of this widget + */ Area getArea(); + /** + * @return the position of the mouse + */ Point getMousePosition(); Point getRelativeMousePosition(); + int getXPos(); + + int getYPos(); + + int getWidth(); + + int getHeight(); + int getColor(); - void setColor(final int p0); + void setColor(int color); @SideOnly(Side.CLIENT) void render(int guiWidth, int guiHeight); @@ -79,21 +103,44 @@ public interface IWidget { boolean isDragged(); - boolean isChildVisible(final IWidget p0); - - boolean isChildEnabled(final IWidget p0); - boolean canMouseOver(); boolean canFocus(); - IWidget addChild(final IWidget p0); + /* CHILDREN */ + boolean isChildVisible(IWidget child); + + boolean isChildEnabled(IWidget child); + + IWidget addChild(IWidget child); List getChildren(); - void callEvent(final Event p0); + void deleteChild(IWidget child); + + void deleteAllChildren(); + + /* EVENTS*/ + + /** + * Calls an event + */ + void callEvent(Event event); + + /** + * Called if this widget receives an event + */ + void receiveEvent(Event event); + + /** + * Adds an event handler to this widget + */ + void addEventHandler(EventHandler eventHandler); - void recieveEvent(final Event p0); + /** + * Adds an event handler to this widget and sets his origin to self + */ + void addSelfEventHandler(EventHandler eventHandler); @SideOnly(Side.CLIENT) void onUpdateClient(); @@ -120,26 +167,27 @@ public interface IWidget { boolean isDescendant(final IWidget p0); - List getAttributes(); - - boolean hasAttribute(final IWidgetAttribute p0); - - boolean addAttribute(final IWidgetAttribute p0); - - void addEventHandler(final EventHandler p0); - - void addSelfEventHandler(final EventHandler p0); + /* ATTRIBUTES */ - boolean contains(final Point point); + /** + * @return a list with all attributes that this widget has. + */ + List getAttributes(); - int getXPos(); + /** + * + * @return true if this widget has this attribute + */ + boolean hasAttribute(IWidgetAttribute attribute); - int getYPos(); + /** + * Adds an attribute to this widget + */ + boolean addAttribute(IWidgetAttribute attribute); - int getWidth(); + boolean contains(Point point); - int getHeight(); @SideOnly(Side.CLIENT) - void onRender(final RenderStage stage, int guiWidth, int guiHeight); + void onRender(RenderStage stage, int guiWidth, int guiHeight); } diff --git a/src/main/java/binnie/core/gui/Widget.java b/src/main/java/binnie/core/gui/Widget.java index 031426422..1382cda7e 100644 --- a/src/main/java/binnie/core/gui/Widget.java +++ b/src/main/java/binnie/core/gui/Widget.java @@ -49,6 +49,7 @@ public Widget(@Nullable final IWidget parent) { } } + /* ATTRIBUTES */ @Override public List getAttributes() { return this.attributes; @@ -64,6 +65,7 @@ public boolean addAttribute(final IWidgetAttribute attribute) { return this.attributes.add(attribute); } + /* CHILDREN */ @Override public final void deleteChild(final IWidget child) { if (child == null) { @@ -80,21 +82,6 @@ public final void deleteAllChildren() { } } - @Override - @Nullable - public IWidget getParent() { - return this.parent; - } - - @Override - public final ITopLevelWidget getTopParent() { - if (this.parent == null) { - return (ITopLevelWidget) this; - } else { - return this.parent.getTopParent(); - } - } - @Override public final IWidget addChild(final IWidget widget) { if (hasChildren() && this.children.get(this.children.size() - 1).hasAttribute(Attribute.ALWAYS_ON_TOP)) { @@ -126,20 +113,23 @@ public final List getChildren() { return this.children; } + /* PARENT */ @Override - public final boolean isTopLevel() { - return this instanceof ITopLevelWidget; + @Nullable + public IWidget getParent() { + return this.parent; } @Override - public Point getPosition() { - return this.position.add(this.offset); + public final ITopLevelWidget getTopParent() { + if (this.parent == null) { + return (ITopLevelWidget) this; + } else { + return this.parent.getTopParent(); + } } - @Override - public final Point size() { - return this.size; - } + /* GEOMETRY */ @Override public final void setPosition(final Point vector) { @@ -149,9 +139,24 @@ public final void setPosition(final Point vector) { } } + @Override + public Point getPosition() { + return this.position.add(this.offset); + } + + @Override + public final boolean isTopLevel() { + return this instanceof ITopLevelWidget; + } + + @Override + public final Point getSize() { + return this.size; + } + @Override public final Area getArea() { - return new Area(Point.ZERO, this.size()); + return new Area(Point.ZERO, this.getSize()); } @Override @@ -184,11 +189,6 @@ public final Point getOriginalAbsolutePosition() { return parent == null ? this.getOriginalPosition() : parent.getOriginalPosition().sub(this.getOriginalPosition()); } - @Override - public final Point getSize() { - return this.size(); - } - @Override public final void setSize(final Point vector) { if (!vector.equals(this.size)) { @@ -210,6 +210,26 @@ public final void setOffset(final Point vector) { } } + @Override + public int getXPos() { + return this.getPosition().x(); + } + + @Override + public int getYPos() { + return getPosition().y(); + } + + @Override + public int getWidth() { + return this.getSize().x(); + } + + @Override + public int getHeight() { + return this.getSize().y(); + } + @Override public final int getColor() { return this.colour; @@ -223,10 +243,7 @@ public final void setColor(final int colour) { } } - @Override - public boolean canMouseOver() { - return this.hasAttribute(Attribute.MOUSE_OVER); - } + /* EVENTS */ @Override public boolean canFocus() { @@ -245,23 +262,29 @@ public void addSelfEventHandler(final EventHandler handler) @Override public final void callEvent(final Event event) { - this.getTopParent().recieveEvent(event); + this.getTopParent().receiveEvent(event); } + /* MOUSE */ @Override @SuppressWarnings("unchecked") - public final void recieveEvent(final Event event) { + public final void receiveEvent(final Event event) { for (final EventHandler handler : this.globalEventHandlers) { if (handler.handles(event)) { ((EventHandler) handler).onEvent(event); } } - List widgets = new ArrayList<>(this.getChildren()); - for (final IWidget child : widgets) { - child.recieveEvent(event); + + for (IWidget child : children) { + child.receiveEvent(event); } } + @Override + public boolean canMouseOver() { + return this.hasAttribute(Attribute.MOUSE_OVER); + } + @Override public final Point getMousePosition() { return this.getTopParent().getAbsoluteMousePosition(); @@ -273,6 +296,30 @@ public final Point getRelativeMousePosition() { return parent == null ? this.getMousePosition() : parent.getRelativeMousePosition().sub(this.getPosition()); } + @Override + public final boolean calculateIsMouseOver() { + final Point mouse = this.getRelativeMousePosition(); + if (!this.cropped || this.cropArea == null) { + return this.isMouseOverWidget(mouse); + } + final IWidget cropRelative = (this.cropWidget != null) ? this.cropWidget : this; + final Point pos = Point.sub(cropRelative.getAbsolutePosition(), this.getAbsolutePosition()); + final Point size = new Point(this.cropArea.size().x(), this.cropArea.size().y()); + final boolean inCrop = mouse.x() > pos.x() && mouse.y() > pos.y() && mouse.x() < pos.x() + size.x() && mouse.y() < pos.y() + size.y(); + return inCrop && this.isMouseOverWidget(mouse); + } + + @Override + public boolean isMouseOverWidget(final Point relativeMouse) { + return this.getArea().contains(relativeMouse); + } + + @Override + public final boolean isMouseOver() { + return this.getTopParent().isMouseOver(this); + } + + /* CROPPED */ @Override public boolean isCroppedWidet() { return this.cropped; @@ -325,24 +372,7 @@ public final void updateClient() { } } - @Override - public final boolean calculateIsMouseOver() { - final Point mouse = this.getRelativeMousePosition(); - if (!this.cropped || this.cropArea == null) { - return this.isMouseOverWidget(mouse); - } - final IWidget cropRelative = (this.cropWidget != null) ? this.cropWidget : this; - final Point pos = Point.sub(cropRelative.getAbsolutePosition(), this.getAbsolutePosition()); - final Point size = new Point(this.cropArea.size().x(), this.cropArea.size().y()); - final boolean inCrop = mouse.x() > pos.x() && mouse.y() > pos.y() && mouse.x() < pos.x() + size.x() && mouse.y() < pos.y() + size.y(); - return inCrop && this.isMouseOverWidget(mouse); - } - - @Override - public boolean isMouseOverWidget(final Point relativeMouse) { - return this.getArea().contains(relativeMouse); - } - + /* STATES*/ @Override public final void enable() { this.enabled = true; @@ -405,11 +435,6 @@ public final boolean isDragged() { return this.getTopParent().isDragged(this); } - @Override - public final boolean isMouseOver() { - return this.getTopParent().isMouseOver(this); - } - @Override public boolean isChildVisible(final IWidget child) { return true; @@ -420,6 +445,7 @@ public boolean isChildEnabled(final IWidget child) { return true; } + /* RENDERING */ @Override @SideOnly(Side.CLIENT) public void onRender(final RenderStage stage, int guiWidth, int guiHeight) { @@ -510,26 +536,6 @@ public boolean isDescendant(final IWidget widget) { return true; } - @Override - public int getXPos() { - return this.getPosition().x(); - } - - @Override - public int getYPos() { - return getPosition().y(); - } - - @Override - public int getWidth() { - return this.size().x(); - } - - @Override - public int getHeight() { - return this.size().y(); - } - public IWidget getWidget() { return this; } diff --git a/src/main/java/binnie/core/gui/controls/ControlTextCentered.java b/src/main/java/binnie/core/gui/controls/ControlTextCentered.java index 21d7d6695..180656ab0 100644 --- a/src/main/java/binnie/core/gui/controls/ControlTextCentered.java +++ b/src/main/java/binnie/core/gui/controls/ControlTextCentered.java @@ -7,6 +7,6 @@ public class ControlTextCentered extends ControlText { public ControlTextCentered(final IWidget parent, final int y, final String text) { - super(parent, new Area(new Point(0, y), new Point(parent.size().x(), 0)), text, TextJustification.TOP_CENTER); + super(parent, new Area(new Point(0, y), new Point(parent.getSize().x(), 0)), text, TextJustification.TOP_CENTER); } } diff --git a/src/main/java/binnie/core/gui/database/ControlItemStackOption.java b/src/main/java/binnie/core/gui/database/ControlItemStackOption.java index f8eb2bd24..ecd268587 100644 --- a/src/main/java/binnie/core/gui/database/ControlItemStackOption.java +++ b/src/main/java/binnie/core/gui/database/ControlItemStackOption.java @@ -26,7 +26,7 @@ public ControlItemStackOption(final ControlList controlList, final It this.textWidget.setSize(this.textWidget.getSize().sub(new Point(24, 0))); final int th = CraftGUI.RENDER.textHeight(this.textWidget.getValue(), this.textWidget.getSize().x()); final int height = Math.max(20, th + 6); - this.setSize(new Point(this.size().x(), height)); + this.setSize(new Point(this.getSize().x(), height)); this.textWidget.setSize(new Point(this.textWidget.getSize().x(), height)); this.controlBee.setPosition(new Point(this.getPosition().x(), (height - 18) / 2)); } diff --git a/src/main/java/binnie/core/gui/database/ControlSpeciesBoxOption.java b/src/main/java/binnie/core/gui/database/ControlSpeciesBoxOption.java index 38fcf6aa3..9846da3da 100644 --- a/src/main/java/binnie/core/gui/database/ControlSpeciesBoxOption.java +++ b/src/main/java/binnie/core/gui/database/ControlSpeciesBoxOption.java @@ -31,7 +31,7 @@ public ControlSpeciesBoxOption(final ControlList controlList, fi this.textWidget.setSize(this.textWidget.getSize().sub(new Point(24, 0))); final int th = CraftGUI.RENDER.textHeight(this.textWidget.getValue(), this.textWidget.getSize().x()); final int height = Math.max(20, th + 6); - this.setSize(new Point(this.size().x(), height)); + this.setSize(new Point(this.getSize().x(), height)); this.textWidget.setSize(new Point(this.textWidget.getSize().x(), height)); this.controlBee.setPosition(new Point(this.getPosition().x(), (height - 18) / 2)); } diff --git a/src/main/java/binnie/extratrees/gui/database/PageFruit.java b/src/main/java/binnie/extratrees/gui/database/PageFruit.java index f02aa4006..2e1c7a484 100644 --- a/src/main/java/binnie/extratrees/gui/database/PageFruit.java +++ b/src/main/java/binnie/extratrees/gui/database/PageFruit.java @@ -34,8 +34,8 @@ public PageFruit(final IWidget parent, final DatabaseTab tab, final boolean tree public void onValueChanged(final ItemStack species) { this.deleteAllChildren(); final WindowAbstractDatabase database = Window.get(this); - new ControlText(this, new Area(0, 0, this.size().x(), 24), I18N.localise("extratrees.gui.database.tab.fruit." + (this.treesThatBearFruit ? "natural" : "potential")), TextJustification.MIDDLE_CENTER); + new ControlText(this, new Area(0, 0, this.getSize().x(), 24), I18N.localise("extratrees.gui.database.tab.fruit." + (this.treesThatBearFruit ? "natural" : "potential")), TextJustification.MIDDLE_CENTER); final Collection trees = this.treesThatBearFruit ? ((TreeBreedingSystem) database.getBreedingSystem()).getTreesThatBearFruit(species, database.isNEI(), database.getWorld(), database.getUsername()) : ((TreeBreedingSystem) database.getBreedingSystem()).getTreesThatCanBearFruit(species, database.isNEI(), database.getWorld(), database.getUsername()); - new ControlSpeciesBox(this, 4, 24, this.size().x() - 8, this.size().y() - 4 - 24).setOptions(trees); + new ControlSpeciesBox(this, 4, 24, this.getSize().x() - 8, this.getSize().y() - 4 - 24).setOptions(trees); } } diff --git a/src/main/java/binnie/extratrees/gui/database/PagePlanksOverview.java b/src/main/java/binnie/extratrees/gui/database/PagePlanksOverview.java index ba3e8851a..0bb366f42 100644 --- a/src/main/java/binnie/extratrees/gui/database/PagePlanksOverview.java +++ b/src/main/java/binnie/extratrees/gui/database/PagePlanksOverview.java @@ -21,6 +21,7 @@ import binnie.extratrees.block.WoodManager; import binnie.extratrees.block.decor.FenceType; +//TODO: Add to DatabaseConstants @SideOnly(Side.CLIENT) public class PagePlanksOverview extends PageAbstract { public PagePlanksOverview(final IWidget parent, final DatabaseTab tab) { @@ -31,8 +32,9 @@ public PagePlanksOverview(final IWidget parent, final DatabaseTab tab) { public void onValueChanged(final ItemStack species) { this.deleteAllChildren(); final WindowAbstractDatabase database = Window.get(this); - new ControlText(this, new Area(0, 0, this.size().x(), 24), species.getDisplayName(), TextJustification.MIDDLE_CENTER); - new ControlText(this, new Area(12, 24, this.size().x() - 24, 24), I18N.localise("extratrees.gui.database.planks.use"), TextJustification.MIDDLE_LEFT); + Point size = getSize(); + new ControlText(this, new Area(0, 0, size.x(), 24), species.getDisplayName(), TextJustification.MIDDLE_CENTER); + new ControlText(this, new Area(12, 24, size.x() - 24, 24), I18N.localise("extratrees.gui.database.planks.use"), TextJustification.MIDDLE_LEFT); final IPlankType type = WoodManager.getPlankType(species); int x = 12; if (type != null) { diff --git a/src/main/java/binnie/extratrees/gui/database/PagePlanksTrees.java b/src/main/java/binnie/extratrees/gui/database/PagePlanksTrees.java index 4e2567ffd..1e8255fd2 100644 --- a/src/main/java/binnie/extratrees/gui/database/PagePlanksTrees.java +++ b/src/main/java/binnie/extratrees/gui/database/PagePlanksTrees.java @@ -30,8 +30,8 @@ public PagePlanksTrees(final IWidget parent, final DatabaseTab tab) { public void onValueChanged(final ItemStack species) { this.deleteAllChildren(); final WindowAbstractDatabase database = Window.get(this); - new ControlText(this, new Area(0, 0, this.size().x(), 24), species.getDisplayName(), TextJustification.MIDDLE_CENTER); + new ControlText(this, new Area(0, 0, this.getSize().x(), 24), species.getDisplayName(), TextJustification.MIDDLE_CENTER); final Collection trees = ((TreeBreedingSystem) database.getBreedingSystem()).getTreesThatMakePlanks(species, database.isNEI(), database.getWorld(), database.getUsername()); - new ControlSpeciesBox(this, 4, 24, this.size().x() - 8, this.size().y() - 4 - 24).setOptions(trees); + new ControlSpeciesBox(this, 4, 24, this.getSize().x() - 8, this.getSize().y() - 4 - 24).setOptions(trees); } } diff --git a/src/main/java/binnie/extratrees/gui/database/PageSpeciesTreeGenome.java b/src/main/java/binnie/extratrees/gui/database/PageSpeciesTreeGenome.java index be28ebafe..fe6ea4acb 100644 --- a/src/main/java/binnie/extratrees/gui/database/PageSpeciesTreeGenome.java +++ b/src/main/java/binnie/extratrees/gui/database/PageSpeciesTreeGenome.java @@ -138,7 +138,7 @@ public void onValueChanged(final IAlleleSpecies species) { new ControlText(contents, new Area(0, y, w2, th), syst.getChromosomeShortName(EnumTreeChromosome.GIRTH) + " : ", TextJustification.MIDDLE_RIGHT); new ControlText(contents, new Area(w2, y, w3, th), genome.getGirth() + "x" + genome.getGirth(), TextJustification.MIDDLE_LEFT); y += th; - contents.setSize(new Point(contents.size().x(), y)); + contents.setSize(new Point(contents.getSize().x(), y)); scrollable.setScrollableContent(contents); } } diff --git a/src/main/java/binnie/extratrees/gui/database/PageWood.java b/src/main/java/binnie/extratrees/gui/database/PageWood.java index 6df719c02..629ead8b4 100644 --- a/src/main/java/binnie/extratrees/gui/database/PageWood.java +++ b/src/main/java/binnie/extratrees/gui/database/PageWood.java @@ -30,8 +30,8 @@ public PageWood(final IWidget parent, final DatabaseTab tab) { public void onValueChanged(final ItemStack species) { this.deleteAllChildren(); final WindowAbstractDatabase database = Window.get(this); - new ControlText(this, new Area(0, 0, this.size().x(), 24), this.getValue().toString(), TextJustification.MIDDLE_CENTER); + new ControlText(this, new Area(0, 0, this.getSize().x(), 24), this.getValue().toString(), TextJustification.MIDDLE_CENTER); final Collection trees = ((TreeBreedingSystem) database.getBreedingSystem()).getTreesThatHaveWood(species, database.isNEI(), database.getWorld(), database.getUsername()); - new ControlSpeciesBox(this, 4, 24, this.size().x() - 8, this.size().y() - 4 - 24).setOptions(trees); + new ControlSpeciesBox(this, 4, 24, this.getSize().x() - 8, this.getSize().y() - 4 - 24).setOptions(trees); } }