Skip to content

Commit 9db2820

Browse files
authored
Make IWidget#resizer return nonnull (#134)
1 parent 40ed2b8 commit 9db2820

File tree

5 files changed

+18
-27
lines changed

5 files changed

+18
-27
lines changed

src/main/java/com/cleanroommc/modularui/api/widget/IWidget.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,8 @@ default IWidget flexBuilder(Consumer<Flex> builder) {
215215
/**
216216
* @return resizer of this widget
217217
*/
218+
@NotNull
219+
@Override
218220
IResizeable resizer();
219221

220222
/**

src/main/java/com/cleanroommc/modularui/widget/EmptyWidget.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
public class EmptyWidget implements IWidget {
1717

1818
private final Area area = new Area();
19-
private Flex flex;
19+
private final Flex flex = new Flex(this);
2020
private IWidget parent;
2121

2222
@Override
@@ -99,14 +99,11 @@ public ModularGuiContext getContext() {
9999

100100
@Override
101101
public Flex flex() {
102-
if (this.flex == null) {
103-
this.flex = new Flex(this);
104-
}
105102
return this.flex;
106103
}
107104

108105
@Override
109-
public @Nullable IResizeable resizer() {
106+
public @NotNull IResizeable resizer() {
110107
return this.flex;
111108
}
112109

src/main/java/com/cleanroommc/modularui/widget/Widget.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,7 @@ public Flex flex() {
346346
return this.flex;
347347
}
348348

349+
@NotNull
349350
@Override
350351
public IResizeable resizer() {
351352
return this.resizer;

src/main/java/com/cleanroommc/modularui/widget/WidgetTree.java

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -245,23 +245,17 @@ public static void resize(IWidget parent) {
245245
}
246246

247247
private static boolean resizeWidget(IWidget widget, boolean init) {
248-
boolean result = false, alreadyCalculated = false;
248+
boolean alreadyCalculated = false;
249249
// first try to resize this widget
250250
IResizeable resizer = widget.resizer();
251-
if (resizer != null) {
252-
if (init) {
253-
widget.beforeResize();
254-
resizer.initResizing();
255-
} else {
256-
// if this is not the first time check if this widget is already resized
257-
alreadyCalculated = resizer.isFullyCalculated();
258-
}
259-
result = alreadyCalculated || resizer.resize(widget);
260-
} else if (!init) {
261-
// weird case that is not supposed to happen
262-
result = true;
263-
alreadyCalculated = true;
251+
if (init) {
252+
widget.beforeResize();
253+
resizer.initResizing();
254+
} else {
255+
// if this is not the first time check if this widget is already resized
256+
alreadyCalculated = resizer.isFullyCalculated();
264257
}
258+
boolean result = alreadyCalculated || resizer.resize(widget);
265259

266260
GuiAxis expandAxis = widget instanceof IExpander expander ? expander.getExpandAxis() : null;
267261
// now resize all children and collect children which could not be fully calculated
@@ -282,7 +276,7 @@ private static boolean resizeWidget(IWidget widget, boolean init) {
282276
}
283277

284278
// post resize this widget if possible
285-
if (resizer != null && !result) {
279+
if (!result) {
286280
result = resizer.postResize(widget);
287281
}
288282

@@ -303,10 +297,7 @@ private static boolean resizeWidget(IWidget widget, boolean init) {
303297

304298
public static void applyPos(IWidget parent) {
305299
WidgetTree.foreachChildBFS(parent, child -> {
306-
IResizeable resizer = child.resizer();
307-
if (resizer != null) {
308-
resizer.applyPos(child);
309-
}
300+
child.resizer().applyPos(child);
310301
return true;
311302
}, true);
312303
}

src/main/java/com/cleanroommc/modularui/widgets/TextWidget.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,9 @@ private TextRenderer simulate(float maxWidth) {
5050
@Override
5151
public int getDefaultHeight() {
5252
float maxWidth;
53-
if (resizer() != null && resizer().isWidthCalculated()) {
53+
if (resizer().isWidthCalculated()) {
5454
maxWidth = getArea().width + this.scale;
55-
} else if (getParent().resizer() != null && getParent().resizer().isWidthCalculated()) {
55+
} else if (getParent().resizer().isWidthCalculated()) {
5656
maxWidth = getParent().getArea().width + this.scale;
5757
} else {
5858
maxWidth = getScreen().getScreenArea().width;
@@ -65,7 +65,7 @@ public int getDefaultHeight() {
6565
@Override
6666
public int getDefaultWidth() {
6767
float maxWidth = getScreen().getScreenArea().width;
68-
if (getParent().resizer() != null && getParent().resizer().isWidthCalculated()) {
68+
if (getParent().resizer().isWidthCalculated()) {
6969
maxWidth = getParent().getArea().width;
7070
}
7171
TextRenderer renderer = simulate(maxWidth);

0 commit comments

Comments
 (0)