Package org.openstreetmap.josm.gui.io
Class LayerNameAndFilePathTableCell
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- org.openstreetmap.josm.gui.io.LayerNameAndFilePathTableCell
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,javax.accessibility.Accessible
,javax.swing.CellEditor
,javax.swing.table.TableCellEditor
,javax.swing.table.TableCellRenderer
class LayerNameAndFilePathTableCell extends javax.swing.JPanel implements javax.swing.table.TableCellRenderer, javax.swing.table.TableCellEditor
Display and edit layer name and file path in aJTable
. Note: Do not use the same object both asTableCellRenderer
andTableCellEditor
- this can mess up the current editor component by subsequent calls to the renderer (#12462).
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
LayerNameAndFilePathTableCell.LaunchFileChooserAction
-
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
btnFileChooser
private CellEditorSupport
cellEditorSupport
private static java.awt.Color
COLOR_ERROR
private static GBC
DEFAULT_CELL_STYLE
private static java.lang.String
ELLIPSIS
private java.lang.String
extension
private javax.swing.JLabel
lblFilename
private javax.swing.JLabel
lblLayerName
private JosmTextField
tfFilename
private java.io.File
value
-
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 LayerNameAndFilePathTableCell()
constructor that sets the default on each element
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addCellEditorListener(javax.swing.event.CellEditorListener l)
private java.lang.String
addLblFilename(SaveLayerInfo info)
Adds filename label to (this) using the given info.private java.lang.String
addLblLayerName(SaveLayerInfo info)
Adds layer name label to (this) using the given info.void
cancelCellEditing()
private static boolean
canWrite(java.io.File f)
java.lang.Object
getCellEditorValue()
java.awt.Component
getTableCellEditorComponent(javax.swing.JTable table, java.lang.Object value, boolean isSelected, int row, int column)
java.awt.Component
getTableCellRendererComponent(javax.swing.JTable table, java.lang.Object value, boolean isSelected, boolean hasFocus, int row, int column)
renderer used while not editing the file pathboolean
isCellEditable(java.util.EventObject anEvent)
private java.lang.String
makePathFit(java.lang.String t)
Makes the given path fit lblFilename, appends ellipsis on the left if it doesn't fit.void
removeCellEditorListener(javax.swing.event.CellEditorListener l)
boolean
shouldSelectCell(java.util.EventObject anEvent)
boolean
stopCellEditing()
-
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, 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, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, 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
-
COLOR_ERROR
private static final java.awt.Color COLOR_ERROR
-
ELLIPSIS
private static final java.lang.String ELLIPSIS
-
lblLayerName
private final javax.swing.JLabel lblLayerName
-
lblFilename
private final javax.swing.JLabel lblFilename
-
tfFilename
private final JosmTextField tfFilename
-
btnFileChooser
private final javax.swing.JButton btnFileChooser
-
DEFAULT_CELL_STYLE
private static final GBC DEFAULT_CELL_STYLE
-
cellEditorSupport
private final transient CellEditorSupport cellEditorSupport
-
extension
private java.lang.String extension
-
value
private java.io.File value
-
-
Constructor Detail
-
LayerNameAndFilePathTableCell
LayerNameAndFilePathTableCell()
constructor that sets the default on each element
-
-
Method Detail
-
getTableCellRendererComponent
public java.awt.Component getTableCellRendererComponent(javax.swing.JTable table, java.lang.Object value, boolean isSelected, boolean hasFocus, int row, int column)
renderer used while not editing the file path- Specified by:
getTableCellRendererComponent
in interfacejavax.swing.table.TableCellRenderer
-
getTableCellEditorComponent
public java.awt.Component getTableCellEditorComponent(javax.swing.JTable table, java.lang.Object value, boolean isSelected, int row, int column)
- Specified by:
getTableCellEditorComponent
in interfacejavax.swing.table.TableCellEditor
-
canWrite
private static boolean canWrite(java.io.File f)
-
addLblLayerName
private java.lang.String addLblLayerName(SaveLayerInfo info)
Adds layer name label to (this) using the given info. Returns tooltip that should be added to the panel- Parameters:
info
- information, user preferences and save/upload states of the layer- Returns:
- tooltip that should be added to the panel
-
addLblFilename
private java.lang.String addLblFilename(SaveLayerInfo info)
Adds filename label to (this) using the given info. Returns tooltip that should be added to the panel- Parameters:
info
- information, user preferences and save/upload states of the layer- Returns:
- tooltip that should be added to the panel
-
makePathFit
private java.lang.String makePathFit(java.lang.String t)
Makes the given path fit lblFilename, appends ellipsis on the left if it doesn't fit. Idea: /home/user/josm → …/user/josm → …/josm; and take the first one that fits- Parameters:
t
- complete path- Returns:
- shorter path
-
addCellEditorListener
public void addCellEditorListener(javax.swing.event.CellEditorListener l)
- Specified by:
addCellEditorListener
in interfacejavax.swing.CellEditor
-
cancelCellEditing
public void cancelCellEditing()
- Specified by:
cancelCellEditing
in interfacejavax.swing.CellEditor
-
getCellEditorValue
public java.lang.Object getCellEditorValue()
- Specified by:
getCellEditorValue
in interfacejavax.swing.CellEditor
-
isCellEditable
public boolean isCellEditable(java.util.EventObject anEvent)
- Specified by:
isCellEditable
in interfacejavax.swing.CellEditor
-
removeCellEditorListener
public void removeCellEditorListener(javax.swing.event.CellEditorListener l)
- Specified by:
removeCellEditorListener
in interfacejavax.swing.CellEditor
-
shouldSelectCell
public boolean shouldSelectCell(java.util.EventObject anEvent)
- Specified by:
shouldSelectCell
in interfacejavax.swing.CellEditor
-
stopCellEditing
public boolean stopCellEditing()
- Specified by:
stopCellEditing
in interfacejavax.swing.CellEditor
-
-