Skip to content

Commit bbee44d

Browse files
committed
Reorganize and fix casework in TokenStatesController
Each implementation now sets all relevant properties (a bunch of these were missed after splitting out `XTokenOverlay` as a base class). Where possible, the logic is shared according to base class rather than replicating it per concrete class.
1 parent f36080e commit bbee44d

1 file changed

Lines changed: 58 additions & 48 deletions

File tree

src/main/java/net/rptools/maptool/client/ui/campaignproperties/TokenStatesController.java

Lines changed: 58 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -513,69 +513,79 @@ public void valueChanged(ListSelectionEvent e) {
513513

514514
// Get most of the colors and all of the widths from the XTokenOverlay
515515
OverlayType type;
516-
// Handle the
517516
switch (s) {
518-
case CornerImageTokenOverlay cornerImageTokenOverlay -> {
519-
type = OverlayType.CornerImage;
520-
formPanel
521-
.getComboBox(CORNER)
522-
.setSelectedIndex(cornerImageTokenOverlay.getCorner().ordinal());
523-
}
524-
case FlowImageTokenOverlay flowImageTokenOverlay -> {
525-
type = OverlayType.GridImage;
526-
int size = flowImageTokenOverlay.getGrid(); // Still need grid size
527-
formPanel.getSpinner(FLOW_GRID).setValue(size + "x" + size);
528-
}
529-
case ImageTokenOverlay imageTokenOverlay -> {
530-
type = OverlayType.Image;
531-
}
532517
case ColorDotTokenOverlay colorDotTokenOverlay -> {
533518
type = OverlayType.Dot;
519+
((ColorWell) formPanel.getComponent(COLOR)).setColor(colorDotTokenOverlay.getColor());
534520
formPanel
535521
.getComboBox(CORNER)
536522
.setSelectedIndex(colorDotTokenOverlay.getCorner().ordinal());
537523
}
538-
case OTokenOverlay oTokenOverlay -> {
539-
type = OverlayType.Circle;
540-
}
541524
case ShadedTokenOverlay shadedTokenOverlay -> {
542525
type = OverlayType.Shaded;
543526
((ColorWell) formPanel.getComponent(COLOR)).setColor(shadedTokenOverlay.getColor());
544527
}
545-
case CrossTokenOverlay crossTokenOverlay -> {
546-
type = OverlayType.Cross;
547-
}
548-
case DiamondTokenOverlay diamondTokenOverlay -> {
549-
type = OverlayType.Diamond;
550-
}
551-
case FlowDiamondTokenOverlay flowDiamondTokenOverlay -> {
552-
type = OverlayType.GridDiamond;
553-
}
554-
case YieldTokenOverlay yieldTokenOverlay -> {
555-
type = OverlayType.Yield;
556-
}
557-
case FlowYieldTokenOverlay flowYieldTokenOverlay -> {
558-
type = OverlayType.GridYield;
559-
}
560-
case TriangleTokenOverlay triangleTokenOverlay -> {
561-
type = OverlayType.Triangle;
562-
}
563-
case FlowTriangleTokenOverlay flowTriangleTokenOverlay -> {
564-
type = OverlayType.GridTriangle;
565-
}
566-
case FlowColorSquareTokenOverlay flowColorSquareTokenOverlay -> {
567-
type = OverlayType.GridSquare;
528+
529+
// region AbstractImageTokenOverlay
530+
531+
case AbstractImageTokenOverlay imageTokenOverlay0 -> {
532+
switch (imageTokenOverlay0) {
533+
case ImageTokenOverlay imageTokenOverlay -> {
534+
type = OverlayType.Image;
535+
}
536+
case CornerImageTokenOverlay cornerImageTokenOverlay -> {
537+
type = OverlayType.CornerImage;
538+
formPanel
539+
.getComboBox(CORNER)
540+
.setSelectedIndex(cornerImageTokenOverlay.getCorner().ordinal());
541+
}
542+
case FlowImageTokenOverlay flowImageTokenOverlay -> {
543+
type = OverlayType.GridImage;
544+
int size = flowImageTokenOverlay.getGrid(); // Still need grid size
545+
formPanel.getSpinner(FLOW_GRID).setValue(size + "x" + size);
546+
}
547+
}
568548
}
569-
case FlowColorDotTokenOverlay flowColorDotTokenOverlay -> {
570-
type = OverlayType.GridDot;
571-
int size = flowColorDotTokenOverlay.getGrid();
549+
550+
// endregion
551+
552+
// region AbstractFlowShapeTokenOverlay
553+
554+
case AbstractFlowShapeTokenOverlay flowShapeTokenOverlay -> {
555+
int size = flowShapeTokenOverlay.getGrid();
572556
formPanel.getSpinner(FLOW_GRID).setValue(size + "x" + size);
557+
558+
type =
559+
switch (flowShapeTokenOverlay) {
560+
case FlowColorDotTokenOverlay flowColorDotTokenOverlay -> OverlayType.GridDot;
561+
case FlowColorSquareTokenOverlay flowColorSquareTokenOverlay ->
562+
OverlayType.GridSquare;
563+
case FlowDiamondTokenOverlay flowDiamondTokenOverlay -> OverlayType.GridDiamond;
564+
case FlowTriangleTokenOverlay flowTriangleTokenOverlay -> OverlayType.GridTriangle;
565+
case FlowYieldTokenOverlay flowYieldTokenOverlay -> OverlayType.GridYield;
566+
};
573567
}
574-
case XTokenOverlay xTokenOverlay -> {
575-
type = OverlayType.X;
576-
formPanel.getSpinner(WIDTH).setValue(xTokenOverlay.getWidth());
577-
((ColorWell) formPanel.getComponent(COLOR)).setColor(xTokenOverlay.getColor());
568+
569+
// endregion
570+
571+
// region AbstractShapeTokenOverlay
572+
573+
case AbstractShapeTokenOverlay shapeTokenOverlay -> {
574+
formPanel.getSpinner(WIDTH).setValue(shapeTokenOverlay.getWidth());
575+
((ColorWell) formPanel.getComponent(COLOR)).setColor(shapeTokenOverlay.getColor());
576+
577+
type =
578+
switch (shapeTokenOverlay) {
579+
case CrossTokenOverlay crossTokenOverlay -> OverlayType.Cross;
580+
case DiamondTokenOverlay diamondTokenOverlay -> OverlayType.Diamond;
581+
case OTokenOverlay oTokenOverlay -> OverlayType.Circle;
582+
case TriangleTokenOverlay triangleTokenOverlay -> OverlayType.Triangle;
583+
case YieldTokenOverlay yieldTokenOverlay -> OverlayType.Yield;
584+
case XTokenOverlay xTokenOverlay -> OverlayType.X;
585+
};
578586
}
587+
588+
// endregion
579589
}
580590

581591
// Set the type and change components

0 commit comments

Comments
 (0)