Class BaseTradeDialog
- java.lang.Object
-
- javafx.scene.Node
-
- javafx.scene.Parent
-
- javafx.scene.Group
-
- ch.sahits.game.openpatrician.javafx.dialog.Dialog
-
- ch.sahits.game.openpatrician.display.dialog.CloseButtonDialog
-
- ch.sahits.game.openpatrician.display.dialog.TabelViewDialog
-
- ch.sahits.game.openpatrician.display.dialog.BaseTradeDialog
-
- All Implemented Interfaces:
ICloseButtonDialog
,IDialog
,javafx.css.Styleable
,javafx.event.EventTarget
- Direct Known Subclasses:
CityShipTradeDialog
,CityStorageTradeDialog
,StorageShipTradeDialog
public abstract class BaseTradeDialog extends TabelViewDialog
-
-
Field Summary
Fields Modifier and Type Field Description private UserActions
actionFactory
protected ICityPlayerProxyJFX
city
Reference to the city view modelprivate ComputablePriceV2
computablePrice
private org.springframework.context.ApplicationContext
context
protected Locale
locale
protected org.springframework.context.MessageSource
messageSource
private javafx.beans.property.ObjectProperty<ETransferAmount>
movableAmount
private TransferUtil
transferUtil
private ModelTranslations
translator
private EDialogType
type
-
Fields inherited from class ch.sahits.game.openpatrician.display.dialog.TabelViewDialog
grid
-
Fields inherited from class ch.sahits.game.openpatrician.display.dialog.CloseButtonDialog
clientEventBus
-
Fields inherited from class ch.sahits.game.openpatrician.javafx.dialog.Dialog
decoratedTextFactory
-
Fields inherited from interface ch.sahits.game.openpatrician.display.dialog.ICloseButtonDialog
CLOSE_BTN_Y_POS, CLOSE_BUTTON_HEIGHT, CLOSE_BUTTON_PADDING, CLOSE_BUTTON_WIDTH
-
Fields inherited from interface ch.sahits.game.openpatrician.javafx.dialog.IDialog
FRAME_BORDER, HEIGHT, INSET, WIDTH, WRAPPING_WIDTH
-
-
Constructor Summary
Constructors Constructor Description BaseTradeDialog(ICityPlayerProxyJFX city, EDialogType type)
-
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 warehouseprivate javafx.beans.property.ReadOnlyIntegerProperty
getStoredAmountProperty(IWare ware, INavigableVessel ship, java.util.Optional<ITradingOffice> office)
Retrieve the stored amountprotected 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 ch.sahits.game.openpatrician.display.dialog.TabelViewDialog
setModel
-
Methods inherited from class ch.sahits.game.openpatrician.display.dialog.CloseButtonDialog
addButtomControlButtons, closeLabelProperty, executeOnCloseButtonClicked, getCloseButton, getCloseLabel, getTitle, removeDecoratedContent, setCloseLabel, setTitle, titleProperty
-
Methods inherited from class ch.sahits.game.openpatrician.javafx.dialog.Dialog
close, getContent, replaceContent, replaceContent
-
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
-
-
-
-
Field Detail
-
movableAmount
private javafx.beans.property.ObjectProperty<ETransferAmount> movableAmount
-
city
protected final ICityPlayerProxyJFX city
Reference to the city view model
-
transferUtil
@Autowired private TransferUtil transferUtil
-
locale
@Autowired protected Locale locale
-
translator
@Autowired private ModelTranslations translator
-
messageSource
@Autowired protected org.springframework.context.MessageSource messageSource
-
computablePrice
@Autowired private ComputablePriceV2 computablePrice
-
actionFactory
@Autowired private UserActions actionFactory
-
context
@Autowired private org.springframework.context.ApplicationContext context
-
type
private EDialogType type
-
-
Constructor Detail
-
BaseTradeDialog
public BaseTradeDialog(ICityPlayerProxyJFX city, EDialogType type)
-
-
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()
-
createModel
private Table createModel(ICityPlayerProxyJFX cityProxy)
-
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 observedware
- which is observed- Returns:
- boolean observable
-
createTransferable
private ITransferableJFX createTransferable()
-
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 wareship
- Reference to the shipoffice
- 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 retrievedship
- vessel on which to look for the waresoffice
- 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 boughtavailableAmount
- available amount of the wareamountToBuy
- 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 soldavailableAmount
- available amountamountToSell
- 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.
-
getDialogType
public EDialogType getDialogType()
-
-