Class ValidatorTreePanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JTree
-
- org.openstreetmap.josm.gui.dialogs.validator.ValidatorTreePanel
-
- All Implemented Interfaces:
java.awt.image.ImageObserver,java.awt.MenuContainer,java.io.Serializable,javax.accessibility.Accessible,javax.swing.Scrollable,DataSetListener,Destroyable
public class ValidatorTreePanel extends javax.swing.JTree implements Destroyable, DataSetListener
A panel that displays the error tree. The selection manager respects clicks into the selection list. Ctrl-click will remove entries from the list while single click will make the clicked entry the only selection.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classValidatorTreePanel.GroupTreeNode-
Nested classes/interfaces inherited from class javax.swing.JTree
javax.swing.JTree.AccessibleJTree, javax.swing.JTree.DropLocation, javax.swing.JTree.DynamicUtilTreeNode, javax.swing.JTree.EmptySelectionModel, javax.swing.JTree.TreeModelHandler, javax.swing.JTree.TreeSelectionRedirector
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<TestError>errorsThe list of errors shown in the tree, normally identical to field validationErrors in current edit layerprivate java.util.Set<? extends OsmPrimitive>filterIffilteris notnullonly errors are displayed that refer to one of the primitives in the filter.private ListenerList<java.lang.Runnable>invalidationListenersprivate booleanresetScheduledif true, buildTree() does nothingprotected javax.swing.tree.DefaultTreeModelvalTreeModelThe validation data.-
Fields inherited from class javax.swing.JTree
ANCHOR_SELECTION_PATH_PROPERTY, CELL_EDITOR_PROPERTY, CELL_RENDERER_PROPERTY, cellEditor, cellRenderer, editable, EDITABLE_PROPERTY, EXPANDS_SELECTED_PATHS_PROPERTY, INVOKES_STOP_CELL_EDITING_PROPERTY, invokesStopCellEditing, LARGE_MODEL_PROPERTY, largeModel, LEAD_SELECTION_PATH_PROPERTY, ROOT_VISIBLE_PROPERTY, rootVisible, ROW_HEIGHT_PROPERTY, rowHeight, SCROLLS_ON_EXPAND_PROPERTY, scrollsOnExpand, SELECTION_MODEL_PROPERTY, selectionModel, selectionRedirector, SHOWS_ROOT_HANDLES_PROPERTY, showsRootHandles, TOGGLE_CLICK_COUNT_PROPERTY, toggleClickCount, TREE_MODEL_PROPERTY, treeModel, treeModelListener, VISIBLE_ROW_COUNT_PROPERTY, visibleRowCount
-
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 ValidatorTreePanel()ConstructorValidatorTreePanel(java.util.List<TestError> errors)Constructor
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddInvalidationListener(java.lang.Runnable listener)Add a new invalidation listenerprivate static java.lang.StringaddSize(java.lang.String msg, java.util.Collection<?> coll)voidbuildTree()Builds the errors treevoidbuildTree(boolean expandAgain)Builds the errors treeprivate voidbuildTreeInternal(boolean expandAgain)voiddataChanged(DataChangedEvent event)Called after big changes in dataset.voiddestroy()Called when the object has been destroyed.voidexpandAll()Expands complete treeprivate booleanfilterRemovedPrimitives()Remove errors which refer to removed or purged primitives.java.util.List<TestError>getErrors()Returns the errors of the treejava.util.Set<? extends OsmPrimitive>getFilter()Returns the filter listjavax.swing.tree.DefaultMutableTreeNodegetRoot()Returns the root node model.private static java.lang.StringgetTesterDetails(TestError e)java.lang.StringgetToolTipText(java.awt.event.MouseEvent e)voidnodeMoved(NodeMovedEvent event)A node's coordinates were modified.voidotherDatasetChange(AbstractDatasetChangedEvent event)Minor dataset change, currently only changeset id changed is supported, but can be extended in future.voidprimitivesAdded(PrimitivesAddedEvent event)A bunch of primitives were added into the DataSet, or existing deleted/invisible primitives were resurrected.voidprimitivesRemoved(PrimitivesRemovedEvent event)A bunch of primitives were removed from the DataSet, or preexisting primitives were marked as deleted.voidrelationMembersChanged(RelationMembersChangedEvent event)A relation's members have changed.voidremoveInvalidationListener(java.lang.Runnable listener)Remove an invalidation listenerprivate static java.lang.StringremoveSize(java.lang.String msg)voidresetErrors()Updates the current errors listvoidselectRelatedErrors(java.util.Collection<OsmPrimitive> primitives)Selects all errors related to the specifiedprimitives, i.e.voidsetErrorList(java.util.List<TestError> errors)Sets the errors list used by a data layervoidsetErrors(java.util.List<TestError> newerrors)Clears the current error list and adds these errors to itvoidsetFilter(java.util.Set<? extends OsmPrimitive> filter)Set the filter list to a set of primitivesvoidsetResetScheduled()Can be called to suppress execution of buildTree() while doing multiple updates.voidsetVisible(boolean v)voidtagsChanged(TagsChangedEvent event)There was some change in the tag set of a primitive.static voidvisitTestErrors(javax.swing.tree.DefaultMutableTreeNode root, java.util.function.Consumer<TestError> visitor)Visitor call for allTestErrornodes children of root, in breadth-first order.static voidvisitTestErrors(javax.swing.tree.DefaultMutableTreeNode root, java.util.function.Consumer<TestError> visitor, java.util.Set<javax.swing.tree.DefaultMutableTreeNode> processedNodes)Visitor call for allTestErrornodes children of root, in breadth-first order.static voidvisitTreeNodes(javax.swing.tree.DefaultMutableTreeNode root, java.util.function.Consumer<javax.swing.tree.DefaultMutableTreeNode> visitor)Visitor call for all tree nodes children of root, in breadth-first order.private voidwalkAndSelectRelatedErrors(javax.swing.tree.TreePath p, java.util.function.Predicate<OsmPrimitive> isRelevant, java.util.Collection<javax.swing.tree.TreePath> paths)voidwayNodesChanged(WayNodesChangedEvent event)A way's node list was changed.-
Methods inherited from class javax.swing.JTree
addSelectionInterval, addSelectionPath, addSelectionPaths, addSelectionRow, addSelectionRows, addTreeExpansionListener, addTreeSelectionListener, addTreeWillExpandListener, cancelEditing, clearSelection, clearToggledPaths, collapsePath, collapseRow, convertValueToText, createTreeModel, createTreeModelListener, expandPath, expandRow, fireTreeCollapsed, fireTreeExpanded, fireTreeWillCollapse, fireTreeWillExpand, fireValueChanged, getAccessibleContext, getAnchorSelectionPath, getCellEditor, getCellRenderer, getClosestPathForLocation, getClosestRowForLocation, getDefaultTreeModel, getDescendantToggledPaths, getDragEnabled, getDropLocation, getDropMode, getEditingPath, getExpandedDescendants, getExpandsSelectedPaths, getInvokesStopCellEditing, getLastSelectedPathComponent, getLeadSelectionPath, getLeadSelectionRow, getMaxSelectionRow, getMinSelectionRow, getModel, getNextMatch, getPathBetweenRows, getPathBounds, getPathForLocation, getPathForRow, getPreferredScrollableViewportSize, getRowBounds, getRowCount, getRowForLocation, getRowForPath, getRowHeight, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getScrollsOnExpand, getSelectionCount, getSelectionModel, getSelectionPath, getSelectionPaths, getSelectionRows, getShowsRootHandles, getToggleClickCount, getTreeExpansionListeners, getTreeSelectionListeners, getTreeWillExpandListeners, getUI, getUIClassID, getVisibleRowCount, hasBeenExpanded, isCollapsed, isCollapsed, isEditable, isEditing, isExpanded, isExpanded, isFixedRowHeight, isLargeModel, isPathEditable, isPathSelected, isRootVisible, isRowSelected, isSelectionEmpty, isVisible, makeVisible, paramString, removeDescendantSelectedPaths, removeDescendantToggledPaths, removeSelectionInterval, removeSelectionPath, removeSelectionPaths, removeSelectionRow, removeSelectionRows, removeTreeExpansionListener, removeTreeSelectionListener, removeTreeWillExpandListener, scrollPathToVisible, scrollRowToVisible, setAnchorSelectionPath, setCellEditor, setCellRenderer, setDragEnabled, setDropMode, setEditable, setExpandedState, setExpandsSelectedPaths, setInvokesStopCellEditing, setLargeModel, setLeadSelectionPath, setModel, setRootVisible, setRowHeight, setScrollsOnExpand, setSelectionInterval, setSelectionModel, setSelectionPath, setSelectionPaths, setSelectionRow, setSelectionRows, setShowsRootHandles, setToggleClickCount, setUI, setVisibleRowCount, startEditingAtPath, stopEditing, treeDidChange, 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, 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, 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
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.openstreetmap.josm.data.osm.event.DataSetListener
dataChangedIndividualEvents
-
-
-
-
Field Detail
-
valTreeModel
protected javax.swing.tree.DefaultTreeModel valTreeModel
The validation data.
-
errors
private transient java.util.List<TestError> errors
The list of errors shown in the tree, normally identical to field validationErrors in current edit layer
-
filter
private transient java.util.Set<? extends OsmPrimitive> filter
Iffilteris notnullonly errors are displayed that refer to one of the primitives in the filter.
-
invalidationListeners
private final transient ListenerList<java.lang.Runnable> invalidationListeners
-
resetScheduled
private boolean resetScheduled
if true, buildTree() does nothing
-
-
Constructor Detail
-
ValidatorTreePanel
public ValidatorTreePanel(java.util.List<TestError> errors)
Constructor- Parameters:
errors- The list of errors
-
ValidatorTreePanel
public ValidatorTreePanel()
Constructor
-
-
Method Detail
-
getToolTipText
public java.lang.String getToolTipText(java.awt.event.MouseEvent e)
- Overrides:
getToolTipTextin classjavax.swing.JTree
-
getTesterDetails
private static java.lang.String getTesterDetails(TestError e)
-
setVisible
public void setVisible(boolean v)
- Overrides:
setVisiblein classjavax.swing.JComponent
-
buildTree
public void buildTree()
Builds the errors tree
-
buildTree
public void buildTree(boolean expandAgain)
Builds the errors tree- Parameters:
expandAgain- if true, try to expand the same rows as before
-
buildTreeInternal
private void buildTreeInternal(boolean expandAgain)
-
addSize
private static java.lang.String addSize(java.lang.String msg, java.util.Collection<?> coll)
-
removeSize
private static java.lang.String removeSize(java.lang.String msg)
-
addInvalidationListener
public void addInvalidationListener(java.lang.Runnable listener)
Add a new invalidation listener- Parameters:
listener- The listener
-
removeInvalidationListener
public void removeInvalidationListener(java.lang.Runnable listener)
Remove an invalidation listener- Parameters:
listener- The listener- Since:
- 10880
-
setErrorList
public final void setErrorList(java.util.List<TestError> errors)
Sets the errors list used by a data layer- Parameters:
errors- The error list that is used by a data layer
-
setErrors
public void setErrors(java.util.List<TestError> newerrors)
Clears the current error list and adds these errors to it- Parameters:
newerrors- The validation errors
-
getErrors
public java.util.List<TestError> getErrors()
Returns the errors of the tree- Returns:
- the errors of the tree
-
selectRelatedErrors
public void selectRelatedErrors(java.util.Collection<OsmPrimitive> primitives)
Selects all errors related to the specifiedprimitives, i.e. whereTestError.getPrimitives()returns a primitive present inprimitives.- Parameters:
primitives- collection of primitives
-
walkAndSelectRelatedErrors
private void walkAndSelectRelatedErrors(javax.swing.tree.TreePath p, java.util.function.Predicate<OsmPrimitive> isRelevant, java.util.Collection<javax.swing.tree.TreePath> paths)
-
getFilter
public java.util.Set<? extends OsmPrimitive> getFilter()
Returns the filter list- Returns:
- the set of primitives used for filtering
-
setFilter
public void setFilter(java.util.Set<? extends OsmPrimitive> filter)
Set the filter list to a set of primitives- Parameters:
filter- the list of primitives used for filtering
-
resetErrors
public void resetErrors()
Updates the current errors list
-
expandAll
public void expandAll()
Expands complete tree
-
getRoot
public javax.swing.tree.DefaultMutableTreeNode getRoot()
Returns the root node model.- Returns:
- The root node model
-
destroy
public void destroy()
Description copied from interface:DestroyableCalled when the object has been destroyed.- Specified by:
destroyin interfaceDestroyable
-
visitTreeNodes
public static void visitTreeNodes(javax.swing.tree.DefaultMutableTreeNode root, java.util.function.Consumer<javax.swing.tree.DefaultMutableTreeNode> visitor)
Visitor call for all tree nodes children of root, in breadth-first order.- Parameters:
root- Root nodevisitor- Visitor- Since:
- 13940
-
visitTestErrors
public static void visitTestErrors(javax.swing.tree.DefaultMutableTreeNode root, java.util.function.Consumer<TestError> visitor)
Visitor call for allTestErrornodes children of root, in breadth-first order.- Parameters:
root- Root nodevisitor- Visitor- Since:
- 13940
-
visitTestErrors
public static void visitTestErrors(javax.swing.tree.DefaultMutableTreeNode root, java.util.function.Consumer<TestError> visitor, java.util.Set<javax.swing.tree.DefaultMutableTreeNode> processedNodes)
Visitor call for allTestErrornodes children of root, in breadth-first order.- Parameters:
root- Root nodevisitor- VisitorprocessedNodes- Set of already visited nodes (optional)- Since:
- 13940
-
primitivesRemoved
public void primitivesRemoved(PrimitivesRemovedEvent event)
Description copied from interface:DataSetListenerA bunch of primitives were removed from the DataSet, or preexisting primitives were marked as deleted.- Specified by:
primitivesRemovedin interfaceDataSetListener- Parameters:
event- An event for an collection of newly-invisible primitives
-
primitivesAdded
public void primitivesAdded(PrimitivesAddedEvent event)
Description copied from interface:DataSetListenerA bunch of primitives were added into the DataSet, or existing deleted/invisible primitives were resurrected.- Specified by:
primitivesAddedin interfaceDataSetListener- Parameters:
event- An event for an collection of newly-visible primitives
-
tagsChanged
public void tagsChanged(TagsChangedEvent event)
Description copied from interface:DataSetListenerThere was some change in the tag set of a primitive. It can have been a tag addition, tag removal or change in tag value.- Specified by:
tagsChangedin interfaceDataSetListener- Parameters:
event- the event for the primitive, whose tags were affected.
-
nodeMoved
public void nodeMoved(NodeMovedEvent event)
Description copied from interface:DataSetListenerA node's coordinates were modified.- Specified by:
nodeMovedin interfaceDataSetListener- Parameters:
event- The event for the node that was moved.
-
wayNodesChanged
public void wayNodesChanged(WayNodesChangedEvent event)
Description copied from interface:DataSetListenerA way's node list was changed.- Specified by:
wayNodesChangedin interfaceDataSetListener- Parameters:
event- The event for the way that was modified.
-
relationMembersChanged
public void relationMembersChanged(RelationMembersChangedEvent event)
Description copied from interface:DataSetListenerA relation's members have changed.- Specified by:
relationMembersChangedin interfaceDataSetListener- Parameters:
event- The event for the relation that was modified.
-
otherDatasetChange
public void otherDatasetChange(AbstractDatasetChangedEvent event)
Description copied from interface:DataSetListenerMinor dataset change, currently only changeset id changed is supported, but can be extended in future.- Specified by:
otherDatasetChangein interfaceDataSetListener- Parameters:
event- the event for data modification
-
dataChanged
public void dataChanged(DataChangedEvent event)
Description copied from interface:DataSetListenerCalled after big changes in dataset. Usually other events are stopped using Dataset.beginUpdate() and after operation is completed (Dataset.endUpdate()),DataSetListener.dataChanged(DataChangedEvent event)is called.- Specified by:
dataChangedin interfaceDataSetListener- Parameters:
event- data change event
-
setResetScheduled
public void setResetScheduled()
Can be called to suppress execution of buildTree() while doing multiple updates. Caller must call resetErrors() to end this state.- Since:
- 14849
-
filterRemovedPrimitives
private boolean filterRemovedPrimitives()
Remove errors which refer to removed or purged primitives.- Returns:
- true if error list was changed
-
-