Class ConflictResolver
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- 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 twoOsmPrimitive
s. This component emitsPropertyChangeEvent
s for three properties:RESOLVED_COMPLETELY_PROP
- new value istrue
, if the conflict is completely resolvedMY_PRIMITIVE_PROP
- new value is theOsmPrimitive
in the role of my primitiveTHEIR_PRIMITIVE_PROP
- new value is theOsmPrimitive
in the role of their primitive
- Since:
- 1622
- 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
-
-
Field Summary
Fields Modifier and Type Field Description 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 theOsmPrimitive
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 completelyprivate javax.swing.JTabbedPane
tabbedPane
private TagMerger
tagMerger
private OsmPrimitive
their
static java.lang.String
THEIR_PRIMITIVE_PROP
name of the property for theOsmPrimitive
in the role "my"-
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 ConflictResolver()
constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
addTab(java.lang.String title, javax.swing.JComponent tabContent)
protected void
build()
builds the UICommand
buildResolveCommand()
Builds the resolution command(s) for the resolved conflicts in this ConflictResolvervoid
decideRemaining(MergeDecisionType decision)
Decides/resolves
undecided conflicts to the given decision typeboolean
isResolvedCompletely()
Replies true all differences in this conflicts are resolvedprotected void
loadIcons()
loads the required iconsvoid
populate(Conflict<? extends OsmPrimitive> conflict)
populates the conflict resolver with the conflicts between my and theirvoid
propertyChange(java.beans.PropertyChangeEvent evt)
handles property change eventsvoid
registerListeners()
Adds all registered listeners by this conflict resolvervoid
selectFirstTabWithConflicts()
Selects
the first tab with conflictsprotected void
setMy(OsmPrimitive my)
Sets theOsmPrimitive
in the role "my"protected void
setTheir(OsmPrimitive their)
Sets theOsmPrimitive
in the role "their".void
unregisterListeners()
Removes all registered listeners by this conflict resolverprotected void
updateResolvedCompletely()
Updates the state of the propertyRESOLVED_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, 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
-
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 theOsmPrimitive
in the role "my"
-
THEIR_PRIMITIVE_PROP
public static final java.lang.String THEIR_PRIMITIVE_PROP
name of the property for theOsmPrimitive
in the role "my"
-
tabbedPane
private javax.swing.JTabbedPane tabbedPane
-
nodeListMerger
private NodeListMerger nodeListMerger
-
relationMemberMerger
private RelationMemberMerger relationMemberMerger
-
propertiesMerger
private PropertiesMerger propertiesMerger
-
conflictResolvers
private final transient java.util.List<IConflictResolver> conflictResolvers
-
my
private transient OsmPrimitive my
-
their
private transient OsmPrimitive their
-
conflict
private transient 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 final void loadIcons()
loads the required icons
-
build
protected final void build()
builds the UI
-
addTab
private void addTab(java.lang.String title, javax.swing.JComponent tabContent)
-
setMy
protected void setMy(OsmPrimitive my)
Sets theOsmPrimitive
in the role "my"- Parameters:
my
- the primitive in the role "my"
-
setTheir
protected void setTheir(OsmPrimitive their)
Sets theOsmPrimitive
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 interfacejava.beans.PropertyChangeListener
- Parameters:
evt
- the event- See Also:
TagMergeModel
,AbstractListMergeModel
,PropertiesMergeModel
-
populate
public void populate(Conflict<? extends OsmPrimitive> conflict)
populates the conflict resolver with the conflicts between my and their- Parameters:
conflict
- the conflict data set
-
selectFirstTabWithConflicts
public void selectFirstTabWithConflicts()
Selects
the first tab with conflicts
-
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 propertyRESOLVED_COMPLETELY_PROP
-
isResolvedCompletely
public boolean isResolvedCompletely()
Replies true all differences in this conflicts are resolved- Returns:
- true all differences in this conflicts are resolved
-
registerListeners
public void registerListeners()
Adds all registered listeners by this conflict resolver- Since:
- 10454
- See Also:
unregisterListeners()
-
unregisterListeners
public void unregisterListeners()
Removes all registered listeners by this conflict resolver
-
decideRemaining
public void decideRemaining(MergeDecisionType decision)
Decides/resolves
undecided conflicts to the given decision type- Parameters:
decision
- the decision to take for undecided conflicts- Throws:
java.lang.AssertionError
- ifisResolvedCompletely()
does not hold after applying the decision
-
-