[config-ui-tiny] refresh widget cache after preset selection
This commit is contained in:
parent
fbbb2fb166
commit
ce3a9126b5
|
@ -39,7 +39,7 @@ public class TinyConfigScreen extends Screen {
|
||||||
}
|
}
|
||||||
private final Screen parent;
|
private final Screen parent;
|
||||||
private final ConfigCategory config;
|
private final ConfigCategory config;
|
||||||
public final List<WidgetState<?>> widgets;
|
public final List<WidgetState<?>> widgets; // Filled in from TinyConfigTab
|
||||||
private final Placeholder<EntryListWidget> placeholder;
|
private final Placeholder<EntryListWidget> placeholder;
|
||||||
private final TabManager tabManager = new TabManager(a -> selectTab(((TinyConfigTabWrapper)a).getTab()), a -> {});
|
private final TabManager tabManager = new TabManager(a -> selectTab(((TinyConfigTabWrapper)a).getTab()), a -> {});
|
||||||
private List<TinyConfigTab> tabs;
|
private List<TinyConfigTab> tabs;
|
||||||
|
@ -107,7 +107,7 @@ public class TinyConfigScreen extends Screen {
|
||||||
|
|
||||||
if (tabs.size() == 1 && !config.getPresets().isEmpty()) {
|
if (tabs.size() == 1 && !config.getPresets().isEmpty()) {
|
||||||
this.addDrawableChild(ButtonWidget.builder(Text.translatable("libjf-config-v1.presets"),
|
this.addDrawableChild(ButtonWidget.builder(Text.translatable("libjf-config-v1.presets"),
|
||||||
button -> Objects.requireNonNull(client).setScreen(new PresetsScreen(this, config)))
|
button -> Objects.requireNonNull(client).setScreen(new PresetsScreen(this, config, this::afterSelectPreset)))
|
||||||
.dimensions(4, 6, 80, 20)
|
.dimensions(4, 6, 80, 20)
|
||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
|
@ -120,6 +120,12 @@ public class TinyConfigScreen extends Screen {
|
||||||
reload = true;
|
reload = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void afterSelectPreset() {
|
||||||
|
for (WidgetState<?> widget : widgets) {
|
||||||
|
widget.updateCache();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void selectTab(TinyConfigTab tab) {
|
private void selectTab(TinyConfigTab tab) {
|
||||||
placeholder.setChild(tab.getList());
|
placeholder.setChild(tab.getList());
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,7 @@ public class TinyConfigTab implements Tab {
|
||||||
} else {
|
} else {
|
||||||
if (!config.getPresets().isEmpty()) {
|
if (!config.getPresets().isEmpty()) {
|
||||||
this.list.addReference(Text.translatable("libjf-config-v1.presets"),
|
this.list.addReference(Text.translatable("libjf-config-v1.presets"),
|
||||||
() -> new PresetsScreen(screen, config));
|
() -> new PresetsScreen(screen, config, screen::afterSelectPreset));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (WidgetState<?> info : widgets) {
|
for (WidgetState<?> info : widgets) {
|
||||||
|
|
|
@ -16,12 +16,14 @@ import java.util.Objects;
|
||||||
public class PresetsScreen extends Screen {
|
public class PresetsScreen extends Screen {
|
||||||
private final Screen parent;
|
private final Screen parent;
|
||||||
private final ConfigCategory config;
|
private final ConfigCategory config;
|
||||||
|
private final Runnable afterSelect;
|
||||||
private PresetListWidget list;
|
private PresetListWidget list;
|
||||||
|
|
||||||
public PresetsScreen(Screen parent, ConfigCategory config) {
|
public PresetsScreen(Screen parent, ConfigCategory config, Runnable afterSelect) {
|
||||||
super(Text.translatable("libjf-config-v1.presets"));
|
super(Text.translatable("libjf-config-v1.presets"));
|
||||||
this.parent = parent;
|
this.parent = parent;
|
||||||
this.config = config;
|
this.config = config;
|
||||||
|
this.afterSelect = afterSelect;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -34,6 +36,7 @@ public class PresetsScreen extends Screen {
|
||||||
LibJf.LOGGER.info("Preset selected: " + entry.getKey());
|
LibJf.LOGGER.info("Preset selected: " + entry.getKey());
|
||||||
entry.getValue().run();
|
entry.getValue().run();
|
||||||
config.fix();
|
config.fix();
|
||||||
|
afterSelect.run();
|
||||||
Objects.requireNonNull(client).setScreen(parent);
|
Objects.requireNonNull(client).setScreen(parent);
|
||||||
})
|
})
|
||||||
.dimensions(width / 2 - 100, 0, 200, 20)
|
.dimensions(width / 2 - 100, 0, 200, 20)
|
||||||
|
|
Loading…
Reference in New Issue