feat(options-module): implement tab open/close handling in OptionsModule and OptionsTab

This commit is contained in:
extio-de
2026-04-06 14:06:55 +02:00
parent b35d777ac2
commit 4460b82204
2 changed files with 18 additions and 4 deletions

View File

@@ -80,6 +80,7 @@ public class OptionsModule extends AbstractClientModule implements OptionsModule
@Override
public void onActivate() {
this.activeTab().onTabOpen(this);
this.setupOptionsWindow();
this.getModuleService().changeActiveState(this.optionsWindow.getId(), true);
this.getModuleService().hideExcept(this.getId(), this.optionsWindow.getId());
@@ -249,8 +250,11 @@ public class OptionsModule extends AbstractClientModule implements OptionsModule
final var selectedTab = this.tabsByControlId.get(controlId);
if (selectedTab != null) {
this.activeTabId = selectedTab.tabId();
this.setupOptionsWindow();
this.activeTab().onTabClose(this, () -> {
this.activeTabId = selectedTab.tabId();
this.activeTab().onTabOpen(this);
this.setupOptionsWindow();
});
return;
}
@@ -267,8 +271,10 @@ public class OptionsModule extends AbstractClientModule implements OptionsModule
}
private void closeOptions() {
this.getModuleService().changeActiveState(this.getId(), false);
this.getModuleService().changeDisplayState(this.getId(), false);
this.activeTab().onTabClose(this, () -> {
this.getModuleService().changeActiveState(this.getId(), false);
this.getModuleService().changeDisplayState(this.getId(), false);
});
}
private static ImmutableCoordI2 centeredPosition(final CoordI2 dimension) {

View File

@@ -23,4 +23,12 @@ public interface OptionsTab {
default void onContentCleared(final OptionsModuleContext context) {
}
default void onTabOpen(final OptionsModuleContext context) {
}
default void onTabClose(final OptionsModuleContext context, final Runnable closeTab) {
closeTab.run();
}
}