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:
ImageObserver
,MenuContainer
,Serializable
,Accessible
,CellEditor
,TableCellEditor
,TableCellRenderer
class LayerNameAndFilePathTableCell extends JPanel implements TableCellRenderer, 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
JPanel.AccessibleJPanel
-
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
-
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
-
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
-
Field Summary
Fields Modifier and Type Field Description private JButton
btnFileChooser
private CellEditorSupport
cellEditorSupport
private static Color
COLOR_ERROR
private static GBC
DEFAULT_CELL_STYLE
private static String
ELLIPSIS
private String
extension
private JLabel
lblFilename
private JLabel
lblLayerName
private JosmTextField
tfFilename
private 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
-
Fields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
-
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(CellEditorListener l)
private String
addLblFilename(SaveLayerInfo info)
Adds filename label to (this) using the given info.private String
addLblLayerName(SaveLayerInfo info)
Adds layer name label to (this) using the given info.void
cancelCellEditing()
private static boolean
canWrite(File f)
Object
getCellEditorValue()
Component
getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column)
Component
getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
renderer used while not editing the file pathboolean
isCellEditable(EventObject anEvent)
private String
makePathFit(String t)
Makes the given path fit lblFilename, appends ellipsis on the left if it doesn't fit.void
removeCellEditorListener(CellEditorListener l)
boolean
shouldSelectCell(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 Color COLOR_ERROR
-
lblLayerName
private final JLabel lblLayerName
-
lblFilename
private final JLabel lblFilename
-
tfFilename
private final JosmTextField tfFilename
-
btnFileChooser
private final JButton btnFileChooser
-
DEFAULT_CELL_STYLE
private static final GBC DEFAULT_CELL_STYLE
-
cellEditorSupport
private final transient CellEditorSupport cellEditorSupport
-
-
Constructor Detail
-
LayerNameAndFilePathTableCell
LayerNameAndFilePathTableCell()
constructor that sets the default on each element
-
-
Method Detail
-
getTableCellRendererComponent
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
renderer used while not editing the file path- Specified by:
getTableCellRendererComponent
in interfaceTableCellRenderer
-
getTableCellEditorComponent
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column)
- Specified by:
getTableCellEditorComponent
in interfaceTableCellEditor
-
addLblLayerName
private 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 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 String makePathFit(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(CellEditorListener l)
- Specified by:
addCellEditorListener
in interfaceCellEditor
-
cancelCellEditing
public void cancelCellEditing()
- Specified by:
cancelCellEditing
in interfaceCellEditor
-
getCellEditorValue
public Object getCellEditorValue()
- Specified by:
getCellEditorValue
in interfaceCellEditor
-
isCellEditable
public boolean isCellEditable(EventObject anEvent)
- Specified by:
isCellEditable
in interfaceCellEditor
-
removeCellEditorListener
public void removeCellEditorListener(CellEditorListener l)
- Specified by:
removeCellEditorListener
in interfaceCellEditor
-
shouldSelectCell
public boolean shouldSelectCell(EventObject anEvent)
- Specified by:
shouldSelectCell
in interfaceCellEditor
-
stopCellEditing
public boolean stopCellEditing()
- Specified by:
stopCellEditing
in interfaceCellEditor
-
-