Refactor control rendering data handling

- Replaced multiple custom data fields in G2DDrawControl with specific data classes for each control type (LabelData, ButtonData, ToggleButtonData, etc.).
- Updated setCustomData methods to setControlData, allowing for type-safe handling of control-specific data.
- Modified control implementations (e.g., G2DButtonControlImpl, G2DLabelControlImpl) to utilize the new data classes.
- Adjusted the ControlRenderingBo interface to reflect the new data structure and removed deprecated custom data methods.
- Updated demo module to use the new control data structure for button and label controls.
This commit is contained in:
extio-de
2026-01-03 19:29:59 +01:00
parent ca3c908620
commit 712e49d7aa
17 changed files with 304 additions and 320 deletions

View File

@@ -19,7 +19,9 @@ import de.extio.game_engine.renderer.container.Window;
import de.extio.game_engine.renderer.model.RenderingBoLayer;
import de.extio.game_engine.renderer.model.bo.ControlRenderingBo;
import de.extio.game_engine.renderer.model.bo.ControlRenderingBo.ButtonControl;
import de.extio.game_engine.renderer.model.bo.ControlRenderingBo.ButtonData;
import de.extio.game_engine.renderer.model.bo.ControlRenderingBo.LabelControl;
import de.extio.game_engine.renderer.model.bo.ControlRenderingBo.LabelData;
import de.extio.game_engine.renderer.model.bo.ControlRenderingBo.SwitchControl;
import de.extio.game_engine.renderer.model.bo.ControlRenderingBo.ToggleButtonControl;
import de.extio.game_engine.renderer.model.bo.DrawEffectRenderingBo;
@@ -238,7 +240,7 @@ public class DemoModule extends AbstractClientModule {
.setTooltip(this.localizationService.translate("test-7"))
.setVisible(true)
.setEnabled(true)
.setCustomData2(new StaticResource(List.of("gfx"), "settings.png"))
.setControlData(new ButtonData(null, new StaticResource(List.of("gfx"), "settings.png")))
.withDimensionAbsolute(64, 64)
.withPositionRelative(buttonX, buttonY);
this.mainWindow.putRenderingBo(bo);
@@ -487,7 +489,7 @@ public class DemoModule extends AbstractClientModule {
.setCaption("Item " + (i + 1) + "")
.setFontSize(28)
.setType(LabelControl.class)
.setCustomData2(HorizontalAlignment.LEFT)
.setControlData(new LabelData(null, null, HorizontalAlignment.LEFT))
.setVisible(true)
.setEnabled(true)
.withDimensionAbsolute(100, 60)