Class 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 class  ValidatorTreePanel.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
      • 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

      Fields 
      Modifier and Type Field Description
      private java.util.List<TestError> errors
      The list of errors shown in the tree, normally identical to field validationErrors in current edit layer
      private java.util.Set<? extends OsmPrimitive> filter
      If filter is not null only errors are displayed that refer to one of the primitives in the filter.
      private ListenerList<java.lang.Runnable> invalidationListeners  
      private boolean resetScheduled
      if true, buildTree() does nothing
      protected javax.swing.tree.DefaultTreeModel valTreeModel
      The 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
      • Fields inherited from class java.awt.Component

        accessibleContext, 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
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addInvalidationListener​(java.lang.Runnable listener)
      Add a new invalidation listener
      private static java.lang.String addSize​(java.lang.String msg, java.util.Collection<?> coll)  
      void buildTree()
      Builds the errors tree
      void buildTree​(boolean expandAgain)
      Builds the errors tree
      private void buildTreeInternal​(boolean expandAgain)  
      void dataChanged​(DataChangedEvent event)
      Called after big changes in dataset.
      void destroy()
      Called when the object has been destroyed.
      void expandAll()
      Expands complete tree
      private boolean filterRemovedPrimitives()
      Remove errors which refer to removed or purged primitives.
      java.util.List<TestError> getErrors()
      Returns the errors of the tree
      java.util.Set<? extends OsmPrimitive> getFilter()
      Returns the filter list
      javax.swing.tree.DefaultMutableTreeNode getRoot()
      Returns the root node model.
      private static java.lang.String getTesterDetails​(TestError e)  
      java.lang.String getToolTipText​(java.awt.event.MouseEvent e)  
      void nodeMoved​(NodeMovedEvent event)
      A node's coordinates were modified.
      void otherDatasetChange​(AbstractDatasetChangedEvent event)
      Minor dataset change, currently only changeset id changed is supported, but can be extended in future.
      void primitivesAdded​(PrimitivesAddedEvent event)
      A bunch of primitives were added into the DataSet, or existing deleted/invisible primitives were resurrected.
      void primitivesRemoved​(PrimitivesRemovedEvent event)
      A bunch of primitives were removed from the DataSet, or preexisting primitives were marked as deleted.
      void relationMembersChanged​(RelationMembersChangedEvent event)
      A relation's members have changed.
      void removeInvalidationListener​(java.lang.Runnable listener)
      Remove an invalidation listener
      private static java.lang.String removeSize​(java.lang.String msg)  
      void resetErrors()
      Updates the current errors list
      void selectRelatedErrors​(java.util.Collection<OsmPrimitive> primitives)
      Selects all errors related to the specified primitives, i.e.
      void setErrorList​(java.util.List<TestError> errors)
      Sets the errors list used by a data layer
      void setErrors​(java.util.List<TestError> newerrors)
      Clears the current error list and adds these errors to it
      void setFilter​(java.util.Set<? extends OsmPrimitive> filter)
      Set the filter list to a set of primitives
      void setResetScheduled()
      Can be called to suppress execution of buildTree() while doing multiple updates.
      void setVisible​(boolean v)  
      void tagsChanged​(TagsChangedEvent event)
      There was some change in the tag set of a primitive.
      static void visitTestErrors​(javax.swing.tree.DefaultMutableTreeNode root, java.util.function.Consumer<TestError> visitor)
      Visitor call for all TestError nodes children of root, in breadth-first order.
      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 all TestError nodes children of root, in breadth-first order.
      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.
      private void walkAndSelectRelatedErrors​(javax.swing.tree.TreePath p, java.util.function.Predicate<OsmPrimitive> isRelevant, java.util.Collection<javax.swing.tree.TreePath> paths)  
      void wayNodesChanged​(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
    • 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
        If filter is not null only errors are displayed that refer to one of the primitives in the filter.
      • resetScheduled

        private boolean resetScheduled
        if true, buildTree() does nothing
    • Method Detail

      • getToolTipText

        public java.lang.String getToolTipText​(java.awt.event.MouseEvent e)
        Overrides:
        getToolTipText in class javax.swing.JTree
      • setVisible

        public void setVisible​(boolean v)
        Overrides:
        setVisible in class javax.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
      • 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<TestErrorgetErrors()
        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 specified primitives, i.e. where TestError.getPrimitives() returns a primitive present in primitives.
        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 OsmPrimitivegetFilter()
        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
      • 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 node
        visitor - Visitor
        Since:
        13940
      • visitTestErrors

        public static void visitTestErrors​(javax.swing.tree.DefaultMutableTreeNode root,
                                           java.util.function.Consumer<TestError> visitor)
        Visitor call for all TestError nodes children of root, in breadth-first order.
        Parameters:
        root - Root node
        visitor - 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 all TestError nodes children of root, in breadth-first order.
        Parameters:
        root - Root node
        visitor - Visitor
        processedNodes - Set of already visited nodes (optional)
        Since:
        13940
      • tagsChanged

        public void tagsChanged​(TagsChangedEvent event)
        Description copied from interface: DataSetListener
        There 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:
        tagsChanged in interface DataSetListener
        Parameters:
        event - the event for the primitive, whose tags were affected.
      • 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