Package net.sf.freecol.client.gui.panel
Class TradeRouteInputPanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- net.sf.freecol.client.gui.panel.MigPanel
-
- net.sf.freecol.client.gui.panel.FreeColPanel
-
- net.sf.freecol.client.gui.panel.TradeRouteInputPanel
-
- All Implemented Interfaces:
java.awt.event.ActionListener
,java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,java.util.EventListener
,javax.accessibility.Accessible
,javax.swing.event.ListSelectionListener
public final class TradeRouteInputPanel extends FreeColPanel implements javax.swing.event.ListSelectionListener
Allows the user to edit trade routes.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
TradeRouteInputPanel.AllGoodsTypesPanel
Panel for all types of goods that can be loaded onto a carrier.private class
TradeRouteInputPanel.DestinationCellRenderer
private class
TradeRouteInputPanel.StopGoodsTypesPanel
Panel for the types of goods that are to be loaded onto the carrier at the current stop.private class
TradeRouteInputPanel.StopListHandler
TransferHandler for Stops.private static class
TradeRouteInputPanel.StopListTransferable
private class
TradeRouteInputPanel.StopRenderer
-
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description private javax.swing.JButton
addStopButton
A button to add stops with.private TradeRouteInputPanel.AllGoodsTypesPanel
allGoodsTypesPanel
The panel displaying all goods types that could be transported.private javax.swing.JComboBox<java.lang.String>
destinationSelector
A box to select stops to add.private java.awt.event.MouseListener
dragListener
Mouse listener to use throughout.private static java.util.logging.Logger
logger
private javax.swing.JCheckBox
messagesBox
Toggle message display.private TradeRoute
newRoute
The original route passed to this panel.private javax.swing.JButton
removeStopButton
A button to remove stops with.static java.awt.datatransfer.DataFlavor
STOP_FLAVOR
private TradeRouteInputPanel.StopGoodsTypesPanel
stopGoodsTypesPanel
The panel displaying the goods types to collect at the selected stop.private javax.swing.JList<TradeRouteStop>
stopList
The list of stops to show.private javax.swing.DefaultListModel<TradeRouteStop>
stopListModel
Model to contain the current stops.private javax.swing.JTextField
tradeRouteName
The user-editable name of the trade route.private javax.swing.TransferHandler
transferHandler
The TransferHandler for the cargo labels.-
Fields inherited from class net.sf.freecol.client.gui.panel.FreeColPanel
CANCEL, editable, HELP, MARGIN, NL_SPAN_SPLIT_2, OK, okButton, SPAN_SPLIT_2
-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
-
Constructor Summary
Constructors Constructor Description TradeRouteInputPanel(FreeColClient freeColClient, TradeRoute newRoute)
Create a panel to define trade route cargos.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
actionPerformed(java.awt.event.ActionEvent ae)
private void
addSelectedStops()
Add any stops selected in the destination selector.private GoodsTypeLabel
buildCargoLabel(GoodsType gt)
Convenience function to build a newGoodsTypeLabel
.private void
cancelImport(GoodsType gt)
Cancel import of goods at the selected stops.void
cancelTradeRoute()
Make sure the original route is invalid and remove this panel.private void
deleteCurrentlySelectedStops()
Delete any stops currently selected in the stop list.private void
enableImport(GoodsType gt)
Import new goods at the selected stops.void
removeNotify()
private void
updateButtons()
Enables the remove stop button if a stop is selected and disables it otherwise.private void
updateCargoPanel(TradeRouteStop stop)
Update the cargo panel to show a given stop.void
valueChanged(javax.swing.event.ListSelectionEvent e)
private boolean
verifyNewTradeRoute()
Check that the trade route is valid.-
Methods inherited from class net.sf.freecol.client.gui.panel.FreeColPanel
addClosingCallback, createColonyButton, getClientOptions, getFreeColClient, getGame, getGUI, getImageLibrary, getMap, getMyPlayer, getSmallAbstractUnitImage, getSpecification, igc, isEditable, requestFocus, setCancelComponent
-
Methods inherited from class net.sf.freecol.client.gui.panel.MigPanel
getMigLayout, getUIClassID
-
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, paramString, setUI, updateUI
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
-
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
logger
private static final java.util.logging.Logger logger
-
STOP_FLAVOR
public static final java.awt.datatransfer.DataFlavor STOP_FLAVOR
-
newRoute
private final TradeRoute newRoute
The original route passed to this panel. We are careful not to modify it until we are sure all is well.
-
transferHandler
private javax.swing.TransferHandler transferHandler
The TransferHandler for the cargo labels.
-
dragListener
private transient java.awt.event.MouseListener dragListener
Mouse listener to use throughout.
-
stopListModel
private javax.swing.DefaultListModel<TradeRouteStop> stopListModel
Model to contain the current stops.
-
stopList
private javax.swing.JList<TradeRouteStop> stopList
The list of stops to show.
-
tradeRouteName
private javax.swing.JTextField tradeRouteName
The user-editable name of the trade route.
-
destinationSelector
private javax.swing.JComboBox<java.lang.String> destinationSelector
A box to select stops to add.
-
messagesBox
private javax.swing.JCheckBox messagesBox
Toggle message display.
-
addStopButton
private javax.swing.JButton addStopButton
A button to add stops with.
-
removeStopButton
private javax.swing.JButton removeStopButton
A button to remove stops with.
-
allGoodsTypesPanel
private TradeRouteInputPanel.AllGoodsTypesPanel allGoodsTypesPanel
The panel displaying all goods types that could be transported.
-
stopGoodsTypesPanel
private TradeRouteInputPanel.StopGoodsTypesPanel stopGoodsTypesPanel
The panel displaying the goods types to collect at the selected stop.
-
-
Constructor Detail
-
TradeRouteInputPanel
public TradeRouteInputPanel(FreeColClient freeColClient, TradeRoute newRoute)
Create a panel to define trade route cargos.- Parameters:
freeColClient
- TheFreeColClient
for the game.newRoute
- TheTradeRoute
to operate on.
-
-
Method Detail
-
updateCargoPanel
private void updateCargoPanel(TradeRouteStop stop)
Update the cargo panel to show a given stop.- Parameters:
stop
- TheTradeRouteStop
to select.
-
enableImport
private void enableImport(GoodsType gt)
Import new goods at the selected stops.- Parameters:
gt
- TheGoodsType
to import.
-
cancelImport
private void cancelImport(GoodsType gt)
Cancel import of goods at the selected stops.- Parameters:
gt
- TheGoodsType
to stop importing.
-
addSelectedStops
private void addSelectedStops()
Add any stops selected in the destination selector.
-
buildCargoLabel
private GoodsTypeLabel buildCargoLabel(GoodsType gt)
Convenience function to build a newGoodsTypeLabel
.- Parameters:
gt
- TheGoodsType
for the label.- Returns:
- A
GoodsTypeLabel
for the goods type.
-
deleteCurrentlySelectedStops
private void deleteCurrentlySelectedStops()
Delete any stops currently selected in the stop list.
-
cancelTradeRoute
public void cancelTradeRoute()
Make sure the original route is invalid and remove this panel. Public so that this panel can be signalled to close if the parent TradeRoutePanel is closed.
-
updateButtons
private void updateButtons()
Enables the remove stop button if a stop is selected and disables it otherwise.
-
verifyNewTradeRoute
private boolean verifyNewTradeRoute()
Check that the trade route is valid.- Returns:
- True if the trade route is valid.
-
actionPerformed
public void actionPerformed(java.awt.event.ActionEvent ae)
- Specified by:
actionPerformed
in interfacejava.awt.event.ActionListener
- Overrides:
actionPerformed
in classFreeColPanel
-
valueChanged
public void valueChanged(javax.swing.event.ListSelectionEvent e)
- Specified by:
valueChanged
in interfacejavax.swing.event.ListSelectionListener
-
removeNotify
public void removeNotify()
- Overrides:
removeNotify
in classFreeColPanel
-
-