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 asTableCellRendererandTableCellEditor- 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 classLayerNameAndFilePathTableCell.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.JButtonbtnFileChooserprivate CellEditorSupportcellEditorSupportprivate static java.awt.ColorCOLOR_ERRORprivate static GBCDEFAULT_CELL_STYLEprivate static java.lang.StringELLIPSISprivate java.lang.Stringextensionprivate javax.swing.JLabellblFilenameprivate javax.swing.JLabellblLayerNameprivate JosmTextFieldtfFilenameprivate java.io.Filevalue-
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 voidaddCellEditorListener(javax.swing.event.CellEditorListener l)private java.lang.StringaddLblFilename(SaveLayerInfo info)Adds filename label to (this) using the given info.private java.lang.StringaddLblLayerName(SaveLayerInfo info)Adds layer name label to (this) using the given info.voidcancelCellEditing()private static booleancanWrite(java.io.File f)java.lang.ObjectgetCellEditorValue()java.awt.ComponentgetTableCellEditorComponent(javax.swing.JTable table, java.lang.Object value, boolean isSelected, int row, int column)java.awt.ComponentgetTableCellRendererComponent(javax.swing.JTable table, java.lang.Object value, boolean isSelected, boolean hasFocus, int row, int column)renderer used while not editing the file pathbooleanisCellEditable(java.util.EventObject anEvent)private java.lang.StringmakePathFit(java.lang.String t)Makes the given path fit lblFilename, appends ellipsis on the left if it doesn't fit.voidremoveCellEditorListener(javax.swing.event.CellEditorListener l)booleanshouldSelectCell(java.util.EventObject anEvent)booleanstopCellEditing()-
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:
getTableCellRendererComponentin 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:
getTableCellEditorComponentin 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:
addCellEditorListenerin interfacejavax.swing.CellEditor
-
cancelCellEditing
public void cancelCellEditing()
- Specified by:
cancelCellEditingin interfacejavax.swing.CellEditor
-
getCellEditorValue
public java.lang.Object getCellEditorValue()
- Specified by:
getCellEditorValuein interfacejavax.swing.CellEditor
-
isCellEditable
public boolean isCellEditable(java.util.EventObject anEvent)
- Specified by:
isCellEditablein interfacejavax.swing.CellEditor
-
removeCellEditorListener
public void removeCellEditorListener(javax.swing.event.CellEditorListener l)
- Specified by:
removeCellEditorListenerin interfacejavax.swing.CellEditor
-
shouldSelectCell
public boolean shouldSelectCell(java.util.EventObject anEvent)
- Specified by:
shouldSelectCellin interfacejavax.swing.CellEditor
-
stopCellEditing
public boolean stopCellEditing()
- Specified by:
stopCellEditingin interfacejavax.swing.CellEditor
-
-