feat(options-module): implement tab open/close handling in OptionsModule and OptionsTab
This commit is contained in:
@@ -80,6 +80,7 @@ public class OptionsModule extends AbstractClientModule implements OptionsModule
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onActivate() {
|
public void onActivate() {
|
||||||
|
this.activeTab().onTabOpen(this);
|
||||||
this.setupOptionsWindow();
|
this.setupOptionsWindow();
|
||||||
this.getModuleService().changeActiveState(this.optionsWindow.getId(), true);
|
this.getModuleService().changeActiveState(this.optionsWindow.getId(), true);
|
||||||
this.getModuleService().hideExcept(this.getId(), this.optionsWindow.getId());
|
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);
|
final var selectedTab = this.tabsByControlId.get(controlId);
|
||||||
if (selectedTab != null) {
|
if (selectedTab != null) {
|
||||||
this.activeTabId = selectedTab.tabId();
|
this.activeTab().onTabClose(this, () -> {
|
||||||
this.setupOptionsWindow();
|
this.activeTabId = selectedTab.tabId();
|
||||||
|
this.activeTab().onTabOpen(this);
|
||||||
|
this.setupOptionsWindow();
|
||||||
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -267,8 +271,10 @@ public class OptionsModule extends AbstractClientModule implements OptionsModule
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void closeOptions() {
|
private void closeOptions() {
|
||||||
this.getModuleService().changeActiveState(this.getId(), false);
|
this.activeTab().onTabClose(this, () -> {
|
||||||
this.getModuleService().changeDisplayState(this.getId(), false);
|
this.getModuleService().changeActiveState(this.getId(), false);
|
||||||
|
this.getModuleService().changeDisplayState(this.getId(), false);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ImmutableCoordI2 centeredPosition(final CoordI2 dimension) {
|
private static ImmutableCoordI2 centeredPosition(final CoordI2 dimension) {
|
||||||
|
|||||||
@@ -23,4 +23,12 @@ public interface OptionsTab {
|
|||||||
|
|
||||||
default void onContentCleared(final OptionsModuleContext context) {
|
default void onContentCleared(final OptionsModuleContext context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default void onTabOpen(final OptionsModuleContext context) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
default void onTabClose(final OptionsModuleContext context, final Runnable closeTab) {
|
||||||
|
closeTab.run();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user