org.openstreetmap.josm.gui.conflict.pair
Class ConflictResolver

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.ConflictResolver
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.PropertyChangeListener, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible

public class ConflictResolver
extends javax.swing.JPanel
implements java.beans.PropertyChangeListener

An UI component for resolving conflicts between two OsmPrimitives. This component emits PropertyChangeEvents for three properties:

See Also:
Serialized Form

Nested Class Summary
 
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  Conflict<? extends OsmPrimitive> conflict
           
private  java.util.List<IConflictResolver> conflictResolvers
           
private  javax.swing.ImageIcon mergeComplete
           
private  javax.swing.ImageIcon mergeIncomplete
           
private  OsmPrimitive my
           
static java.lang.String MY_PRIMITIVE_PROP
          name of the property for the OsmPrimitive in the role "my"
private  NodeListMerger nodeListMerger
           
private  PropertiesMerger propertiesMerger
           
private  RelationMemberMerger relationMemberMerger
           
static java.lang.String RESOLVED_COMPLETELY_PROP
          name of the property indicating whether all conflicts are resolved, isResolvedCompletely()
private  boolean resolvedCompletely
          indicates whether the current conflict is resolved completely
private  javax.swing.JTabbedPane tabbedPane
           
private  TagMerger tagMerger
           
private  OsmPrimitive their
           
static java.lang.String THEIR_PRIMITIVE_PROP
          name of the property for the OsmPrimitive in the role "my"
 
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
ConflictResolver()
          constructor
 
Method Summary
protected  void build()
          builds the UI
 Command buildResolveCommand()
          Builds the resolution command(s) for the resolved conflicts in this ConflictResolver
 boolean isResolvedCompletely()
          Replies true all differences in this conflicts are resolved
protected  void loadIcons()
          loads the required icons
 void populate(Conflict<? extends OsmPrimitive> conflict)
          populates the conflict resolver with the conflicts between my and their
 void propertyChange(java.beans.PropertyChangeEvent evt)
          handles property change events
 void selectFirstTabWithConflicts()
           
protected  void setMy(OsmPrimitive my)
          Sets the OsmPrimitive in the role "my"
protected  void setTheir(OsmPrimitive their)
          Sets the OsmPrimitive in the role "their".
 void unregisterListeners()
           
protected  void updateResolvedCompletely()
          Updates the state of the property RESOLVED_COMPLETELY_PROP
 
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

RESOLVED_COMPLETELY_PROP

public static final java.lang.String RESOLVED_COMPLETELY_PROP
name of the property indicating whether all conflicts are resolved, isResolvedCompletely()


MY_PRIMITIVE_PROP

public static final java.lang.String MY_PRIMITIVE_PROP
name of the property for the OsmPrimitive in the role "my"


THEIR_PRIMITIVE_PROP

public static final java.lang.String THEIR_PRIMITIVE_PROP
name of the property for the OsmPrimitive in the role "my"


tabbedPane

private javax.swing.JTabbedPane tabbedPane

tagMerger

private TagMerger tagMerger

nodeListMerger

private NodeListMerger nodeListMerger

relationMemberMerger

private RelationMemberMerger relationMemberMerger

propertiesMerger

private PropertiesMerger propertiesMerger

conflictResolvers

private final java.util.List<IConflictResolver> conflictResolvers

my

private OsmPrimitive my

their

private OsmPrimitive their

conflict

private Conflict<? extends OsmPrimitive> conflict

mergeComplete

private javax.swing.ImageIcon mergeComplete

mergeIncomplete

private javax.swing.ImageIcon mergeIncomplete

resolvedCompletely

private boolean resolvedCompletely
indicates whether the current conflict is resolved completely

Constructor Detail

ConflictResolver

public ConflictResolver()
constructor

Method Detail

loadIcons

protected void loadIcons()
loads the required icons


build

protected void build()
builds the UI


setMy

protected void setMy(OsmPrimitive my)
Sets the OsmPrimitive in the role "my"

Parameters:
my - the primitive in the role "my"

setTheir

protected void setTheir(OsmPrimitive their)
Sets the OsmPrimitive in the role "their".

Parameters:
their - the primitive in the role "their"

propertyChange

public void propertyChange(java.beans.PropertyChangeEvent evt)
handles property change events

Specified by:
propertyChange in interface java.beans.PropertyChangeListener

populate

public void populate(Conflict<? extends OsmPrimitive> conflict)
populates the conflict resolver with the conflicts between my and their

Parameters:
my - my primitive (i.e. the primitive in the local dataset)
their - their primitive (i.e. the primitive in the server dataset)

selectFirstTabWithConflicts

public void selectFirstTabWithConflicts()

buildResolveCommand

public Command buildResolveCommand()
Builds the resolution command(s) for the resolved conflicts in this ConflictResolver

Returns:
the resolution command

updateResolvedCompletely

protected void updateResolvedCompletely()
Updates the state of the property RESOLVED_COMPLETELY_PROP


isResolvedCompletely

public boolean isResolvedCompletely()
Replies true all differences in this conflicts are resolved

Returns:
true all differences in this conflicts are resolved

unregisterListeners

public void unregisterListeners()


JOSM