org.openstreetmap.josm.gui.conflict.pair
Class ListMerger<T extends PrimitiveId>

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by org.openstreetmap.josm.gui.conflict.pair.ListMerger<T>
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.PropertyChangeListener, java.io.Serializable, java.util.EventListener, java.util.Observer, javax.accessibility.Accessible
Direct Known Subclasses:
NodeListMerger, RelationMemberMerger

public abstract class ListMerger<T extends PrimitiveId>
extends javax.swing.JPanel
implements java.beans.PropertyChangeListener, java.util.Observer

A UI component for resolving conflicts in two lists of entries of type T.

See Also:
ListMergeModel, Serialized Form

Nested Class Summary
(package private)  class ListMerger.AdjustmentSynchronizer
          Synchronizes scrollbar adjustments between a set of Adjustables.
(package private)  class ListMerger.CopyAfterCurrentLeftAction
          Action for copying selected nodes in the list of my nodes to the list of merged nodes.
(package private)  class ListMerger.CopyAfterCurrentRightAction
           
(package private)  class ListMerger.CopyAllLeft
           
(package private)  class ListMerger.CopyAllRight
           
(package private)  class ListMerger.CopyBeforeCurrentLeftAction
          Action for copying selected nodes in the list of my nodes to the list of merged nodes.
(package private)  class ListMerger.CopyBeforeCurrentRightAction
           
(package private)  class ListMerger.CopyEndLeftAction
          Action for copying selected nodes in the list of my nodes to the list of merged nodes.
(package private)  class ListMerger.CopyEndRightAction
           
(package private)  class ListMerger.CopyStartLeftAction
          Action for copying selected nodes in the list of my nodes to the list of merged nodes.
(package private)  class ListMerger.CopyStartRightAction
           
(package private)  class ListMerger.FreezeAction
          Action for freezing the current state of the list merger
static interface ListMerger.FreezeActionProperties
           
(package private)  class ListMerger.MoveDownMergedAction
          Action for moving the currently selected entries in the list of merged entries one position down
(package private)  class ListMerger.MoveUpMergedAction
           
(package private)  class ListMerger.RemoveMergedAction
          Action for removing the selected entries in the list of merged entries from the list of merged entries.
 
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
 
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  ListMerger.AdjustmentSynchronizer adjustmentSynchronizer
           
private  javax.swing.JCheckBox cbLockMergedScrolling
           
private  javax.swing.JCheckBox cbLockMyScrolling
           
private  javax.swing.JCheckBox cbLockTheirScrolling
           
private  ListMerger.CopyAfterCurrentLeftAction copyAfterCurrentLeftAction
           
private  ListMerger.CopyAfterCurrentRightAction copyAfterCurrentRightAction
           
private  ListMerger.CopyAllLeft copyAllLeft
           
private  ListMerger.CopyAllRight copyAllRight
           
private  ListMerger.CopyBeforeCurrentLeftAction copyBeforeCurrentLeftAction
           
private  ListMerger.CopyBeforeCurrentRightAction copyBeforeCurrentRightAction
           
private  ListMerger.CopyEndLeftAction copyEndLeftAction
           
private  ListMerger.CopyEndRightAction copyEndRightAction
           
private  ListMerger.CopyStartLeftAction copyStartLeftAction
           
private  ListMerger.CopyStartRightAction copyStartRightAction
           
private  ListMerger.FreezeAction freezeAction
           
private  javax.swing.JLabel lblFrozenState
           
private  javax.swing.JLabel lblMergedVersion
           
private  javax.swing.JLabel lblMyVersion
           
private  javax.swing.JLabel lblTheirVersion
           
protected  OsmPrimitivesTable mergedEntriesTable
           
protected  ListMergeModel<T> model
           
private  ListMerger.MoveDownMergedAction moveDownMergedAction
           
private  ListMerger.MoveUpMergedAction moveUpMergedAction
           
protected  OsmPrimitivesTable myEntriesTable
           
private  ListMerger.RemoveMergedAction removeMergedAction
           
protected  OsmPrimitivesTable theirEntriesTable
           
 
Fields inherited from class javax.swing.JComponent
accessibleContext, 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
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
ListMerger(ListMergeModel<T> model)
           
 
Method Summary
protected  void build()
           
protected  javax.swing.JPanel buildAdjustmentLockControlPanel(javax.swing.JCheckBox cb)
           
protected  javax.swing.JPanel buildComparePairSelectionPanel()
           
protected  javax.swing.JPanel buildFrozeStateControlPanel()
           
protected  javax.swing.JPanel buildLeftButtonPanel()
           
protected abstract  javax.swing.JScrollPane buildMergedElementsTable()
           
protected  javax.swing.JPanel buildMergedListControlButtons()
           
protected abstract  javax.swing.JScrollPane buildMyElementsTable()
           
protected  javax.swing.JPanel buildRightButtonPanel()
           
protected abstract  javax.swing.JScrollPane buildTheirElementsTable()
           
protected  javax.swing.JScrollPane embeddInScrollPane(javax.swing.JTable table)
           
protected
<P extends OsmPrimitive>
OsmDataLayer
findLayerFor(P primitive)
           
 ListMergeModel<T> getModel()
           
protected  void handlePropertyChangeFrozen(boolean oldValue, boolean newValue)
           
 void propertyChange(java.beans.PropertyChangeEvent evt)
           
 void unlinkAsListener()
           
 void update(java.util.Observable o, java.lang.Object arg)
           
protected  void wireActionsToSelectionModels()
           
 
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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, 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

myEntriesTable

protected OsmPrimitivesTable myEntriesTable

mergedEntriesTable

protected OsmPrimitivesTable mergedEntriesTable

theirEntriesTable

protected OsmPrimitivesTable theirEntriesTable

model

protected ListMergeModel<T extends PrimitiveId> model

copyStartLeftAction

private ListMerger.CopyStartLeftAction copyStartLeftAction

copyBeforeCurrentLeftAction

private ListMerger.CopyBeforeCurrentLeftAction copyBeforeCurrentLeftAction

copyAfterCurrentLeftAction

private ListMerger.CopyAfterCurrentLeftAction copyAfterCurrentLeftAction

copyEndLeftAction

private ListMerger.CopyEndLeftAction copyEndLeftAction

copyAllLeft

private ListMerger.CopyAllLeft copyAllLeft

copyStartRightAction

private ListMerger.CopyStartRightAction copyStartRightAction

copyBeforeCurrentRightAction

private ListMerger.CopyBeforeCurrentRightAction copyBeforeCurrentRightAction

copyAfterCurrentRightAction

private ListMerger.CopyAfterCurrentRightAction copyAfterCurrentRightAction

copyEndRightAction

private ListMerger.CopyEndRightAction copyEndRightAction

copyAllRight

private ListMerger.CopyAllRight copyAllRight

moveUpMergedAction

private ListMerger.MoveUpMergedAction moveUpMergedAction

moveDownMergedAction

private ListMerger.MoveDownMergedAction moveDownMergedAction

removeMergedAction

private ListMerger.RemoveMergedAction removeMergedAction

freezeAction

private ListMerger.FreezeAction freezeAction

adjustmentSynchronizer

private ListMerger.AdjustmentSynchronizer adjustmentSynchronizer

cbLockMyScrolling

private javax.swing.JCheckBox cbLockMyScrolling

cbLockMergedScrolling

private javax.swing.JCheckBox cbLockMergedScrolling

cbLockTheirScrolling

private javax.swing.JCheckBox cbLockTheirScrolling

lblMyVersion

private javax.swing.JLabel lblMyVersion

lblMergedVersion

private javax.swing.JLabel lblMergedVersion

lblTheirVersion

private javax.swing.JLabel lblTheirVersion

lblFrozenState

private javax.swing.JLabel lblFrozenState
Constructor Detail

ListMerger

public ListMerger(ListMergeModel<T> model)
Method Detail

buildMyElementsTable

protected abstract javax.swing.JScrollPane buildMyElementsTable()

buildMergedElementsTable

protected abstract javax.swing.JScrollPane buildMergedElementsTable()

buildTheirElementsTable

protected abstract javax.swing.JScrollPane buildTheirElementsTable()

embeddInScrollPane

protected javax.swing.JScrollPane embeddInScrollPane(javax.swing.JTable table)

wireActionsToSelectionModels

protected void wireActionsToSelectionModels()

buildLeftButtonPanel

protected javax.swing.JPanel buildLeftButtonPanel()

buildRightButtonPanel

protected javax.swing.JPanel buildRightButtonPanel()

buildMergedListControlButtons

protected javax.swing.JPanel buildMergedListControlButtons()

buildAdjustmentLockControlPanel

protected javax.swing.JPanel buildAdjustmentLockControlPanel(javax.swing.JCheckBox cb)

buildComparePairSelectionPanel

protected javax.swing.JPanel buildComparePairSelectionPanel()

buildFrozeStateControlPanel

protected javax.swing.JPanel buildFrozeStateControlPanel()

build

protected void build()

handlePropertyChangeFrozen

protected void handlePropertyChangeFrozen(boolean oldValue,
                                          boolean newValue)

propertyChange

public void propertyChange(java.beans.PropertyChangeEvent evt)
Specified by:
propertyChange in interface java.beans.PropertyChangeListener

getModel

public ListMergeModel<T> getModel()

update

public void update(java.util.Observable o,
                   java.lang.Object arg)
Specified by:
update in interface java.util.Observer

unlinkAsListener

public void unlinkAsListener()

findLayerFor

protected final <P extends OsmPrimitive> OsmDataLayer findLayerFor(P primitive)


JOSM