org.openstreetmap.josm.gui.dialogs.relation
Class GenericRelationEditor

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Dialog
                  extended by javax.swing.JDialog
                      extended by org.openstreetmap.josm.gui.ExtendedDialog
                          extended by org.openstreetmap.josm.gui.dialogs.relation.RelationEditor
                              extended by org.openstreetmap.josm.gui.dialogs.relation.GenericRelationEditor
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

public class GenericRelationEditor
extends RelationEditor

This dialog is for editing relations.

See Also:
Serialized Form

Nested Class Summary
(package private) static class GenericRelationEditor.AddAbortException
           
(package private)  class GenericRelationEditor.AddFromSelectionAction
           
(package private)  class GenericRelationEditor.AddSelectedAfterSelection
           
(package private)  class GenericRelationEditor.AddSelectedAtEndAction
           
(package private)  class GenericRelationEditor.AddSelectedAtStartAction
           
(package private)  class GenericRelationEditor.AddSelectedBeforeSelection
           
(package private)  class GenericRelationEditor.AddTagAction
           
(package private)  class GenericRelationEditor.ApplyAction
           
(package private)  class GenericRelationEditor.CancelAction
           
(package private)  class GenericRelationEditor.CopyMembersAction
           
(package private)  class GenericRelationEditor.DeleteCurrentRelationAction
           
(package private)  class GenericRelationEditor.DownloadIncompleteMembersAction
           
(package private)  class GenericRelationEditor.DownloadSelectedIncompleteMembersAction
           
(package private)  class GenericRelationEditor.DuplicateRelationAction
          Creates a new relation with a copy of the current editor state
(package private)  class GenericRelationEditor.EditAction
          Action for editing the currently selected relation
(package private)  class GenericRelationEditor.MemberTableDblClickAdapter
           
(package private)  class GenericRelationEditor.MoveDownAction
           
(package private)  class GenericRelationEditor.MoveUpAction
           
(package private)  class GenericRelationEditor.OKAction
           
(package private)  class GenericRelationEditor.PasteMembersAction
           
(package private)  class GenericRelationEditor.PasteTagsAction
           
(package private)  class GenericRelationEditor.RemoveAction
           
(package private)  class GenericRelationEditor.RemoveSelectedAction
           
(package private)  class GenericRelationEditor.ReverseAction
           
(package private)  class GenericRelationEditor.SavingAction
           
(package private)  class GenericRelationEditor.SelectedMembersForSelectionAction
          Selects members in the relation editor which refer to primitives in the current selection of the context layer.
(package private)  class GenericRelationEditor.SelectPrimitivesForSelectedMembersAction
          Selects primitives in the layer this editor belongs to.
(package private)  class GenericRelationEditor.SetRoleAction
           
(package private)  class GenericRelationEditor.SortAction
           
 
Nested classes/interfaces inherited from class javax.swing.JDialog
javax.swing.JDialog.AccessibleJDialog
 
Nested classes/interfaces inherited from class java.awt.Dialog
java.awt.Dialog.AccessibleAWTDialog, java.awt.Dialog.ModalExclusionType, java.awt.Dialog.ModalityType
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  MemberTable memberTable
          the member table
private  MemberTableModel memberTableModel
           
private  ReferringRelationsBrowser referrerBrowser
           
private  ReferringRelationsBrowserModel referrerModel
           
private  SelectionTable selectionTable
          the model for the selection table
private  SelectionTableModel selectionTableModel
           
private  TagEditorPanel tagEditorPanel
          the tag table and its model
private  AutoCompletingTextField tfRole
           
private  javax.swing.JMenuItem windowMenuItem
          the menu item in the windows menu.
 
Fields inherited from class org.openstreetmap.josm.gui.dialogs.relation.RelationEditor
RELATION_PROP, RELATION_SNAPSHOT_PROP
 
Fields inherited from class org.openstreetmap.josm.gui.ExtendedDialog
buttons, contentInsets, defaultButton, DialogClosedOtherwise
 
Fields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Dialog
DEFAULT_MODALITY_TYPE
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
GenericRelationEditor(OsmDataLayer layer, Relation relation, java.util.Collection<RelationMember> selectedMembers)
          Creates a new relation editor for the given relation.
 
Method Summary
static Command addPrimitivesToRelation(Relation orig, java.util.Collection<? extends OsmPrimitive> primitivesToAdd)
           
protected  void addToWindowMenu()
          adds current relation editor to the windows menu (in the "volatile" group) o
protected  javax.swing.JToolBar buildLeftButtonPanel()
          build the panel with the buttons on the left
protected  javax.swing.JPanel buildMemberEditorPanel()
          builds the panel for the relation member editor
protected  javax.swing.JPanel buildOkCancelButtonPanel()
          builds the panel with the OK and the Cancel button
protected  javax.swing.JToolBar buildSelectionControlButtonPanel()
          build the panel with the buttons for adding or removing the current selection
protected  javax.swing.JPanel buildSelectionTablePanel()
          builds the panel with the table displaying the currently selected primitives
protected  javax.swing.JSplitPane buildSplitPane()
          builds the JSplitPane which divides the editor in an upper and a lower half
protected  javax.swing.JPanel buildTagEditorPanel()
          builds the panel with the tag editor
protected  javax.swing.JToolBar buildToolBar()
          Creates the toolbar
protected  void cleanSelfReferences()
          checks whether the current relation has members referring to itself.
(package private) static boolean confirmAddingPrimtive(OsmPrimitive primitive)
           
protected  java.awt.Dimension findMaxDialogSize()
          Tries to find a good value of how large the dialog should be
private  void registerCopyPasteAction(javax.swing.AbstractAction action, java.lang.Object actionName, javax.swing.KeyStroke shortcut)
           
 void setVisible(boolean visible)
          Override setVisible to be able to save the window geometry if required
protected  void updateTags(java.util.List<Tag> tags)
           
(package private) static void warnOfCircularReferences(OsmPrimitive primitive)
           
 
Methods inherited from class org.openstreetmap.josm.gui.dialogs.relation.RelationEditor
addPropertyChangeListener, getEditor, getLayer, getRelation, getRelationSnapshot, isDirtyRelation, registerRelationEditor, removePropertyChangeListener, setRelation, setRelationSnapshot, updateTitle
 
Methods inherited from class org.openstreetmap.josm.gui.ExtendedDialog
buttonAction, configureContextsensitiveHelp, fixFocus, getValue, setButtonIcons, setButtonIcons, setCancelButton, setContent, setContent, setContent, setDefaultButton, setIcon, setIcon, setRememberWindowGeometry, setToggleCheckboxText, setToolTipTexts, setupDialog, showDialog, toggleDisable, toggleEnable
 
Methods inherited from class javax.swing.JDialog
addImpl, createRootPane, dialogInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
 
Methods inherited from class java.awt.Dialog
addNotify, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, setModal, setModalityType, setResizable, setTitle, setUndecorated, show, toBack
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeNotify, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImage, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

tagEditorPanel

private TagEditorPanel tagEditorPanel
the tag table and its model


referrerBrowser

private ReferringRelationsBrowser referrerBrowser

referrerModel

private ReferringRelationsBrowserModel referrerModel

memberTable

private MemberTable memberTable
the member table


memberTableModel

private MemberTableModel memberTableModel

selectionTable

private SelectionTable selectionTable
the model for the selection table


selectionTableModel

private SelectionTableModel selectionTableModel

tfRole

private AutoCompletingTextField tfRole

windowMenuItem

private javax.swing.JMenuItem windowMenuItem
the menu item in the windows menu. Required to properly hide on dialog close.

Constructor Detail

GenericRelationEditor

public GenericRelationEditor(OsmDataLayer layer,
                             Relation relation,
                             java.util.Collection<RelationMember> selectedMembers)
Creates a new relation editor for the given relation. The relation will be saved if the user selects "ok" in the editor. If no relation is given, will create an editor for a new relation.

Parameters:
layer - the OsmDataLayer the new or edited relation belongs to
relation - relation to edit, or null to create a new one.
selectedMembers - a collection of members which shall be selected initially
Method Detail

buildToolBar

protected javax.swing.JToolBar buildToolBar()
Creates the toolbar

Returns:
the toolbar

buildOkCancelButtonPanel

protected javax.swing.JPanel buildOkCancelButtonPanel()
builds the panel with the OK and the Cancel button

Returns:
the panel with the OK and the Cancel button

buildTagEditorPanel

protected javax.swing.JPanel buildTagEditorPanel()
builds the panel with the tag editor

Returns:
the panel with the tag editor

buildMemberEditorPanel

protected javax.swing.JPanel buildMemberEditorPanel()
builds the panel for the relation member editor

Returns:
the panel for the relation member editor

buildSelectionTablePanel

protected javax.swing.JPanel buildSelectionTablePanel()
builds the panel with the table displaying the currently selected primitives

Returns:

buildSplitPane

protected javax.swing.JSplitPane buildSplitPane()
builds the JSplitPane which divides the editor in an upper and a lower half

Returns:
the split panel

buildLeftButtonPanel

protected javax.swing.JToolBar buildLeftButtonPanel()
build the panel with the buttons on the left

Returns:

buildSelectionControlButtonPanel

protected javax.swing.JToolBar buildSelectionControlButtonPanel()
build the panel with the buttons for adding or removing the current selection

Returns:

findMaxDialogSize

protected java.awt.Dimension findMaxDialogSize()
Description copied from class: ExtendedDialog
Tries to find a good value of how large the dialog should be

Overrides:
findMaxDialogSize in class ExtendedDialog
Returns:
Dimension Size of the parent Component or 2/3 of screen size if not available

setVisible

public void setVisible(boolean visible)
Description copied from class: ExtendedDialog
Override setVisible to be able to save the window geometry if required

Overrides:
setVisible in class ExtendedDialog

addToWindowMenu

protected void addToWindowMenu()
adds current relation editor to the windows menu (in the "volatile" group) o


cleanSelfReferences

protected void cleanSelfReferences()
checks whether the current relation has members referring to itself. If so, warns the users and provides an option for removing these members.


registerCopyPasteAction

private void registerCopyPasteAction(javax.swing.AbstractAction action,
                                     java.lang.Object actionName,
                                     javax.swing.KeyStroke shortcut)

updateTags

protected void updateTags(java.util.List<Tag> tags)

confirmAddingPrimtive

static boolean confirmAddingPrimtive(OsmPrimitive primitive)
                              throws GenericRelationEditor.AddAbortException
Throws:
GenericRelationEditor.AddAbortException

warnOfCircularReferences

static void warnOfCircularReferences(OsmPrimitive primitive)

addPrimitivesToRelation

public static Command addPrimitivesToRelation(Relation orig,
                                              java.util.Collection<? extends OsmPrimitive> primitivesToAdd)


JOSM