Class BaseTradeDialog

    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      private javafx.beans.binding.StringBinding buyPrice​(IWare ware, javafx.beans.property.ReadOnlyIntegerProperty availableAmount, javafx.beans.binding.IntegerBinding amountToBuy)
      Create the binding for the buy price for the indicated ware.
      private Table createModel​(ICityPlayerProxyJFX cityProxy)  
      protected javafx.beans.value.ObservableValue<? extends java.lang.Boolean> createObservableShipLoad​(INavigableVessel ship, EWare ware)
      Observable value to indicate if the ship has capacity for one more item.
      protected abstract javafx.scene.Group createSubTitle​(ICityPlayerProxyJFX city)
      Provide a group for the sub title.
      private ITransferableJFX createTransferable()  
      private javafx.beans.binding.IntegerBinding getAmountProperty​(javafx.beans.property.ReadOnlyIntegerProperty maxAmount)
      Bind the amount that can be transferred on the maximal available amount as well as the selected transfer amount.
      private javafx.beans.property.ReadOnlyIntegerProperty getAvailableAmountProperty​(ICity city, IWare ware, java.util.Optional<ITradingOffice> office)  
      EDialogType getDialogType()  
      protected java.lang.String getFirstMoveActionHeaderTextKey()
      Text key for the table header of the first action button, defaults to buy.
      protected java.lang.String getSecondMoveActionHeaderTextKey()
      Text key for the table header of the second action button, defaults to sell.
      private AmountablePrice<IWare> getStoredAmountablePrice​(IWare ware, INavigableVessel ship, java.util.Optional<ITradingOffice> office)
      Retrieve the amountable price of a ware from the ship or the warehouse
      private javafx.beans.property.ReadOnlyIntegerProperty getStoredAmountProperty​(IWare ware, INavigableVessel ship, java.util.Optional<ITradingOffice> office)
      Retrieve the stored amount
      protected java.lang.String getTradeFromDestination()
      Trade from the city.
      protected java.lang.String getTradeToDestination()
      Trade to the ship.
      private void initializeModelAndDialog()  
      private javafx.beans.binding.StringBinding sellPrice​(IWare ware, javafx.beans.property.ReadOnlyIntegerProperty availableAmount, javafx.beans.binding.IntegerBinding amountToSell)
      Create a binding for the sell price for the indicated ware.
      • Methods inherited from class javafx.scene.Group

        autoSizeChildrenProperty, getChildren, isAutoSizeChildren, layoutChildren, minHeight, minWidth, prefHeight, prefWidth, setAutoSizeChildren
      • Methods inherited from class javafx.scene.Parent

        computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, 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, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClassCssMetaData, getClip, getContentBias, getCssMetaData, 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, isHover, isManaged, isMouseTransparent, isPickOnBounds, isPressed, isResizable, 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, maxHeight, maxWidth, 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, resize, 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
    • Field Detail

      • movableAmount

        private javafx.beans.property.ObjectProperty<ETransferAmount> movableAmount
      • transferUtil

        @Autowired
        private TransferUtil transferUtil
      • locale

        @Autowired
        protected Locale locale
      • messageSource

        @Autowired
        protected org.springframework.context.MessageSource messageSource
      • actionFactory

        @Autowired
        private UserActions actionFactory
      • context

        @Autowired
        private org.springframework.context.ApplicationContext context
    • Method Detail

      • createSubTitle

        protected abstract javafx.scene.Group createSubTitle​(ICityPlayerProxyJFX city)
        Provide a group for the sub title.
        Parameters:
        city - proxy for which to create the subtitle
        Returns:
        group representing the subtitle
      • initializeModelAndDialog

        @PostConstruct
        private void initializeModelAndDialog()
      • createObservableShipLoad

        protected javafx.beans.value.ObservableValue<? extends java.lang.Boolean> createObservableShipLoad​(INavigableVessel ship,
                                                                                                           EWare ware)
        Observable value to indicate if the ship has capacity for one more item. Default implementation returns always false.
        Parameters:
        ship - on which the ware is observed
        ware - which is observed
        Returns:
        boolean observable
      • getSecondMoveActionHeaderTextKey

        protected java.lang.String getSecondMoveActionHeaderTextKey()
        Text key for the table header of the second action button, defaults to sell.
        Returns:
        text key for the second move action header
      • getFirstMoveActionHeaderTextKey

        protected java.lang.String getFirstMoveActionHeaderTextKey()
        Text key for the table header of the first action button, defaults to buy.
        Returns:
        text key for the first move action header
      • getTradeFromDestination

        protected java.lang.String getTradeFromDestination()
        Trade from the city.
        Returns:
        localized string for the trading from destination
      • getTradeToDestination

        protected java.lang.String getTradeToDestination()
        Trade to the ship.
        Returns:
        localized string for trading to the ship.
      • getStoredAmountProperty

        private javafx.beans.property.ReadOnlyIntegerProperty getStoredAmountProperty​(IWare ware,
                                                                                      INavigableVessel ship,
                                                                                      java.util.Optional<ITradingOffice> office)
        Retrieve the stored amount
        Parameters:
        ware - Reference to the ware
        ship - Reference to the ship
        office - Reference to the trading office
        Returns:
        read only integer property representing the sored amount.
      • getStoredAmountablePrice

        private AmountablePrice<IWare> getStoredAmountablePrice​(IWare ware,
                                                                INavigableVessel ship,
                                                                java.util.Optional<ITradingOffice> office)
        Retrieve the amountable price of a ware from the ship or the warehouse
        Parameters:
        ware - for which the amountable price is retrieved
        ship - vessel on which to look for the wares
        office - trading office to look for the wares
        Returns:
        amountable price for the ware.
      • getAvailableAmountProperty

        private javafx.beans.property.ReadOnlyIntegerProperty getAvailableAmountProperty​(ICity city,
                                                                                         IWare ware,
                                                                                         java.util.Optional<ITradingOffice> office)
      • buyPrice

        private javafx.beans.binding.StringBinding buyPrice​(IWare ware,
                                                            javafx.beans.property.ReadOnlyIntegerProperty availableAmount,
                                                            javafx.beans.binding.IntegerBinding amountToBuy)
        Create the binding for the buy price for the indicated ware.
        Parameters:
        ware - to be bought
        availableAmount - available amount of the ware
        amountToBuy - amount to be bought
        Returns:
        buy price for the amount
      • sellPrice

        private javafx.beans.binding.StringBinding sellPrice​(IWare ware,
                                                             javafx.beans.property.ReadOnlyIntegerProperty availableAmount,
                                                             javafx.beans.binding.IntegerBinding amountToSell)
        Create a binding for the sell price for the indicated ware.
        Parameters:
        ware - to be sold
        availableAmount - available amount
        amountToSell - amount to be sold
        Returns:
        binding representing the sell price
      • getAmountProperty

        private javafx.beans.binding.IntegerBinding getAmountProperty​(javafx.beans.property.ReadOnlyIntegerProperty maxAmount)
        Bind the amount that can be transferred on the maximal available amount as well as the selected transfer amount.
        Parameters:
        maxAmount - maximum amount
        Returns:
        integer binding representing the available amount.