Class LadderGameBoardCreatorView
java.lang.Object
javafx.scene.Node
javafx.scene.Parent
javafx.scene.layout.Region
javafx.scene.layout.Pane
javafx.scene.layout.BorderPane
edu.ntnu.idi.idatt.view.common.BoardCreatorView
edu.ntnu.idi.idatt.view.laddergame.LadderGameBoardCreatorView
- All Implemented Interfaces:
ButtonClickSubject
,javafx.css.Styleable
,javafx.event.EventTarget
LadderGameBoardCreatorView.
This class extends BoardCreatorView
and is responsible for presenting the UI
for creating and customizing LadderGameBoard
s. It allows users to drag and drop
components (ladders, slides, portals) onto a visual representation of the board,
configure board dimensions (rows, columns), select background images and patterns,
and manage the list of placed components.
The view provides input fields for the board's name and description, controls for importing existing board configurations, and buttons for saving the created board or returning to the main menu.
- See Also:
-
Property Summary
Properties inherited from class javafx.scene.layout.BorderPane
bottom, center, left, right, top
Properties inherited from class javafx.scene.layout.Region
background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, width
Properties inherited from class javafx.scene.Parent
needsLayout
Properties inherited from class javafx.scene.Node
accessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, focusVisible, focusWithin, hover, id, inputMethodRequests, layoutBounds, layoutX, layoutY, localToParentTransform, localToSceneTransform, managed, mouseTransparent, nodeOrientation, onContextMenuRequested, onDragDetected, onDragDone, onDragDropped, onDragEntered, onDragExited, onDragOver, onInputMethodTextChanged, onKeyPressed, onKeyReleased, onKeyTyped, onMouseClicked, onMouseDragEntered, onMouseDragExited, onMouseDragged, onMouseDragOver, onMouseDragReleased, onMouseEntered, onMouseExited, onMouseMoved, onMousePressed, onMouseReleased, onRotate, onRotationFinished, onRotationStarted, onScrollFinished, onScroll, onScrollStarted, onSwipeDown, onSwipeLeft, onSwipeRight, onSwipeUp, onTouchMoved, onTouchPressed, onTouchReleased, onTouchStationary, onZoomFinished, onZoom, onZoomStarted, opacity, parent, pickOnBounds, pressed, rotate, rotationAxis, scaleX, scaleY, scaleZ, scene, style, translateX, translateY, translateZ, viewOrder, visible
-
Field Summary
Fields inherited from class edu.ntnu.idi.idatt.view.common.BoardCreatorView
logger, observers
Fields inherited from class javafx.scene.layout.Region
USE_COMPUTED_SIZE, USE_PREF_SIZE
Fields inherited from class javafx.scene.Node
BASELINE_OFFSET_SAME_AS_HEIGHT
-
Constructor Summary
ConstructorsConstructorDescriptionConstructs a newLadderGameBoardCreatorView
instance. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addToComponentList
(String displayName, javafx.scene.image.Image componentImage, Runnable onDelete, int originTileId, int destinationTileId) Adds a visual representation of a placed component to the component list panel on the right side of the view.protected BoardStackPane
Creates and returns aLadderGameBoardStackPane
instance to be used as the central area for displaying the board being created.javafx.scene.control.ComboBox
<String> Returns the ComboBox used for selecting the board's background image.javafx.scene.control.Spinner
<Integer> Returns the Spinner used for adjusting the number of columns on the board.javafx.scene.layout.VBox
Returns the VBox container that holds the list of placed components.javafx.scene.control.ComboBox
<String> Returns the ComboBox used for selecting the visual pattern applied to the board's grid.javafx.scene.control.Spinner
<Integer> Returns the Spinner used for adjusting the number of rows on the board.void
initializeView
(Map<String, String[]> components, LadderGameBoard board) Initializes the main view components of the ladder game board creator.void
setColumnSpinner
(int columns) Sets the value of the columns spinner and re-attaches its listener.void
setRowSpinner
(int rows) Sets the value of the rows spinner and re-attaches its listener.Methods inherited from class edu.ntnu.idi.idatt.view.common.BoardCreatorView
addObserver, getBoardStackPane, getDescriptionField, getNameField, getObservers, handleImportBoard, handleSaveBoardClicked, notifyObservers, notifyObserversWithParams, removeObserver, showErrorAlert, showInfoAlert
Methods inherited from class javafx.scene.layout.BorderPane
bottomProperty, centerProperty, clearConstraints, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, getAlignment, getBottom, getCenter, getContentBias, getLeft, getMargin, getRight, getTop, layoutChildren, leftProperty, rightProperty, setAlignment, setBottom, setCenter, setLeft, setMargin, setRight, setTop, topProperty
Methods inherited from class javafx.scene.layout.Pane
getChildren
Methods inherited from class javafx.scene.layout.Region
backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, computeMaxHeight, computeMaxWidth, getBackground, getBorder, getClassCssMetaData, getCssMetaData, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getUserAgentStylesheet, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, isResizable, isScaleShape, isSnapToPixel, layoutInArea, layoutInArea, layoutInArea, layoutInArea, maxHeight, maxHeightProperty, maxWidth, maxWidthProperty, minHeight, minHeightProperty, minWidth, minWidthProperty, opaqueInsetsProperty, paddingProperty, positionInArea, positionInArea, prefHeight, prefHeightProperty, prefWidth, prefWidthProperty, resize, scaleShapeProperty, setBackground, setBorder, setCacheShape, setCenterShape, setHeight, setMaxHeight, setMaxSize, setMaxWidth, setMinHeight, setMinSize, setMinWidth, setOpaqueInsets, setPadding, setPrefHeight, setPrefSize, setPrefWidth, setScaleShape, setShape, setSnapToPixel, setWidth, shapeProperty, snappedBottomInset, snappedLeftInset, snappedRightInset, snappedTopInset, snapPosition, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, snapToPixelProperty, widthProperty
Methods inherited from class javafx.scene.Parent
getBaselineOffset, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, queryAccessibleAttribute, requestLayout, requestParentLayout, setNeedsLayout, updateBounds
Methods inherited from class javafx.scene.Node
accessibleHelpProperty, accessibleRoleDescriptionProperty, accessibleRoleProperty, accessibleTextProperty, addEventFilter, addEventHandler, applyCss, autosize, blendModeProperty, boundsInLocalProperty, boundsInParentProperty, buildEventDispatchChain, cacheHintProperty, cacheProperty, clipProperty, computeAreaInScreen, contains, contains, cursorProperty, depthTestProperty, disabledProperty, disableProperty, effectiveNodeOrientationProperty, effectProperty, eventDispatcherProperty, executeAccessibleAction, fireEvent, focusedProperty, focusTraversableProperty, focusVisibleProperty, focusWithinProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInitialFocusTraversable, getInputMethodRequests, getLayoutBounds, getLayoutX, getLayoutY, getLocalToParentTransform, getLocalToSceneTransform, getNodeOrientation, getOnContextMenuRequested, getOnDragDetected, getOnDragDone, getOnDragDropped, getOnDragEntered, getOnDragExited, getOnDragOver, getOnInputMethodTextChanged, getOnKeyPressed, getOnKeyReleased, getOnKeyTyped, getOnMouseClicked, getOnMouseDragEntered, getOnMouseDragExited, getOnMouseDragged, getOnMouseDragOver, getOnMouseDragReleased, getOnMouseEntered, getOnMouseExited, getOnMouseMoved, getOnMousePressed, getOnMouseReleased, getOnRotate, getOnRotationFinished, getOnRotationStarted, getOnScroll, getOnScrollFinished, getOnScrollStarted, getOnSwipeDown, getOnSwipeLeft, getOnSwipeRight, getOnSwipeUp, getOnTouchMoved, getOnTouchPressed, getOnTouchReleased, getOnTouchStationary, getOnZoom, getOnZoomFinished, getOnZoomStarted, getOpacity, getParent, getProperties, getPseudoClassStates, getRotate, getRotationAxis, getScaleX, getScaleY, getScaleZ, getScene, getStyle, getStyleableParent, getStyleClass, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, getViewOrder, hasProperties, hoverProperty, idProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, isFocusVisible, isFocusWithin, isHover, isManaged, isMouseTransparent, isPickOnBounds, isPressed, isVisible, layoutBoundsProperty, layoutXProperty, layoutYProperty, localToParent, localToParent, localToParent, localToParent, localToParent, localToParentTransformProperty, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToSceneTransformProperty, localToScreen, localToScreen, localToScreen, localToScreen, localToScreen, lookupAll, managedProperty, mouseTransparentProperty, nodeOrientationProperty, notifyAccessibleAttributeChanged, onContextMenuRequestedProperty, onDragDetectedProperty, onDragDoneProperty, onDragDroppedProperty, onDragEnteredProperty, onDragExitedProperty, onDragOverProperty, onInputMethodTextChangedProperty, onKeyPressedProperty, onKeyReleasedProperty, onKeyTypedProperty, onMouseClickedProperty, onMouseDragEnteredProperty, onMouseDragExitedProperty, onMouseDraggedProperty, onMouseDragOverProperty, onMouseDragReleasedProperty, onMouseEnteredProperty, onMouseExitedProperty, onMouseMovedProperty, onMousePressedProperty, onMouseReleasedProperty, onRotateProperty, onRotationFinishedProperty, onRotationStartedProperty, onScrollFinishedProperty, onScrollProperty, onScrollStartedProperty, onSwipeDownProperty, onSwipeLeftProperty, onSwipeRightProperty, onSwipeUpProperty, onTouchMovedProperty, onTouchPressedProperty, onTouchReleasedProperty, onTouchStationaryProperty, onZoomFinishedProperty, onZoomProperty, onZoomStartedProperty, opacityProperty, parentProperty, parentToLocal, parentToLocal, parentToLocal, parentToLocal, parentToLocal, pickOnBoundsProperty, pressedProperty, pseudoClassStateChanged, relocate, removeEventFilter, removeEventHandler, requestFocus, resizeRelocate, rotateProperty, rotationAxisProperty, scaleXProperty, scaleYProperty, scaleZProperty, sceneProperty, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, screenToLocal, screenToLocal, screenToLocal, setAccessibleHelp, setAccessibleRole, setAccessibleRoleDescription, setAccessibleText, setBlendMode, setCache, setCacheHint, setClip, setCursor, setDepthTest, setDisable, setDisabled, setEffect, setEventDispatcher, setEventHandler, setFocused, setFocusTraversable, setHover, setId, setInputMethodRequests, setLayoutX, setLayoutY, setManaged, setMouseTransparent, setNodeOrientation, setOnContextMenuRequested, setOnDragDetected, setOnDragDone, setOnDragDropped, setOnDragEntered, setOnDragExited, setOnDragOver, setOnInputMethodTextChanged, setOnKeyPressed, setOnKeyReleased, setOnKeyTyped, setOnMouseClicked, setOnMouseDragEntered, setOnMouseDragExited, setOnMouseDragged, setOnMouseDragOver, setOnMouseDragReleased, setOnMouseEntered, setOnMouseExited, setOnMouseMoved, setOnMousePressed, setOnMouseReleased, setOnRotate, setOnRotationFinished, setOnRotationStarted, setOnScroll, setOnScrollFinished, setOnScrollStarted, setOnSwipeDown, setOnSwipeLeft, setOnSwipeRight, setOnSwipeUp, setOnTouchMoved, setOnTouchPressed, setOnTouchReleased, setOnTouchStationary, setOnZoom, setOnZoomFinished, setOnZoomStarted, setOpacity, setPickOnBounds, setPressed, setRotate, setRotationAxis, setScaleX, setScaleY, setScaleZ, setStyle, setTranslateX, setTranslateY, setTranslateZ, setUserData, setViewOrder, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, toString, translateXProperty, translateYProperty, translateZProperty, usesMirroring, viewOrderProperty, visibleProperty
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface javafx.css.Styleable
getStyleableNode
-
Constructor Details
-
LadderGameBoardCreatorView
public LadderGameBoardCreatorView()Constructs a newLadderGameBoardCreatorView
instance. Initializes the UI elements for component listing, background/pattern selection, and board dimension controls.
-
-
Method Details
-
getComponentListContent
public javafx.scene.layout.VBox getComponentListContent()Returns the VBox container that holds the list of placed components. Each item in this list typically displays information about a component, such as its type, image, and origin/destination tiles.- Returns:
- The
VBox
for the component list.
-
getBackgroundComboBox
Returns the ComboBox used for selecting the board's background image.- Returns:
- The
ComboBox
for background selection.
-
getPatternComboBox
Returns the ComboBox used for selecting the visual pattern applied to the board's grid.- Returns:
- The
ComboBox
for pattern selection.
-
getRowsSpinner
Returns the Spinner used for adjusting the number of rows on the board.- Returns:
- The
Spinner
for row selection.
-
getColumnsSpinner
Returns the Spinner used for adjusting the number of columns on the board.- Returns:
- The
Spinner
for column selection.
-
setRowSpinner
public void setRowSpinner(int rows) Sets the value of the rows spinner and re-attaches its listener. This is typically used when loading an existing board configuration.- Parameters:
rows
- The number of rows to set.
-
setColumnSpinner
public void setColumnSpinner(int columns) Sets the value of the columns spinner and re-attaches its listener. This is typically used when loading an existing board configuration.- Parameters:
columns
- The number of columns to set.
-
initializeView
Initializes the main view components of the ladder game board creator. This method sets up the component selection panel, the board configuration panel, and the central board display area. It also configures the overall layout and styling of the view.- Parameters:
components
- A map where keys are component categories (e.g., "Ladder", "Slide") and values are arrays of image paths for the components in that category.board
- TheLadderGameBoard
instance to be displayed and configured.
-
createBoardStackPane
Creates and returns aLadderGameBoardStackPane
instance to be used as the central area for displaying the board being created. This method overrides the parent class's method to provide a specific type of board container.- Specified by:
createBoardStackPane
in classBoardCreatorView
- Returns:
- A new
LadderGameBoardStackPane
for the board display.
-
addToComponentList
public void addToComponentList(String displayName, javafx.scene.image.Image componentImage, Runnable onDelete, int originTileId, int destinationTileId) Adds a visual representation of a placed component to the component list panel on the right side of the view. Each entry includes the component's display name, its image, its origin and destination tile IDs, and a delete button.- Parameters:
displayName
- The user-friendly name of the component type.componentImage
- TheImage
of the component.onDelete
- ARunnable
action to be executed when the delete button for this component is clicked.originTileId
- The ID of the tile where the component originates.destinationTileId
- The ID of the tile where the component leads or ends.
-