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

public class LadderGameBoardCreatorView extends BoardCreatorView
LadderGameBoardCreatorView.

This class extends BoardCreatorView and is responsible for presenting the UI for creating and customizing LadderGameBoards. 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

    Constructors
    Constructor
    Description
    Constructs a new LadderGameBoardCreatorView instance.
  • Method Summary

    Modifier and Type
    Method
    Description
    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.
    protected BoardStackPane
    Creates and returns a LadderGameBoardStackPane 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
    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 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 new LadderGameBoardCreatorView 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

      public javafx.scene.control.ComboBox<String> getBackgroundComboBox()
      Returns the ComboBox used for selecting the board's background image.
      Returns:
      The ComboBox for background selection.
    • getPatternComboBox

      public javafx.scene.control.ComboBox<String> getPatternComboBox()
      Returns the ComboBox used for selecting the visual pattern applied to the board's grid.
      Returns:
      The ComboBox for pattern selection.
    • getRowsSpinner

      public javafx.scene.control.Spinner<Integer> getRowsSpinner()
      Returns the Spinner used for adjusting the number of rows on the board.
      Returns:
      The Spinner for row selection.
    • getColumnsSpinner

      public javafx.scene.control.Spinner<Integer> 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

      public void initializeView(Map<String,String[]> components, LadderGameBoard board)
      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 - The LadderGameBoard instance to be displayed and configured.
    • createBoardStackPane

      protected BoardStackPane createBoardStackPane()
      Creates and returns a LadderGameBoardStackPane 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 class BoardCreatorView
      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 - The Image of the component.
      onDelete - A Runnable 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.