Class ComponentScopeEditor.BindingCompatibleNodeEditor

  • All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible
    Enclosing class:
    ComponentScopeEditor

    protected class ComponentScopeEditor.BindingCompatibleNodeEditor
    extends PerspectiveNodeEditor
    This custom node editor is what extends the base Json Editor's node editor in order to add perspective-specific things like the binding control in the left-side gutter and the documentation and non-persistent indicators in the right-hand icon area.

    It also listens to the component prop document model for any changes to the overall prop config for the scope, and updates the ui accordingly.

    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

      • 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 Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void changeNodeType​(NodeType type)
      Called when the user requests a type change from the menu action item.
      protected javax.swing.JComponent createValueEditor​(DocumentNode node, java.awt.event.MouseListener popupListener)
      Called for "value" nodes, that is, nodes that are not objects or arrays, in order to create an editor for them.
      protected java.lang.String getAddChildText​(DocumentNode parent)  
      protected java.util.Optional<javax.swing.JComponent> getObjectHelper​(JsonSchema schema)
      Called for object-typed nodes, in order to optionally create a helper component that will be added to the right of the object size indicator.
      protected void initContextMenu​(javax.swing.JPopupMenu menu)
      Called to initialize the context menu at the very end (to add actions after the cut, copy, paste, delete, and type actions.
      protected void onDestroy()
      Subclasses may override this to do something when the editor is being destroyed
      protected void onInit()
      Subclasses may override this to provide custom initialization.
      protected void onPropConfigChanged​(PropertyConfigCollection newCollection)  
      protected void openBindingEditor​(BindingConfig binding)  
      • 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, transferFocus, transferFocusBackward, transferFocusUpCycle
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • BindingCompatibleNodeEditor

        public BindingCompatibleNodeEditor​(JsonEditor jsonEditor,
                                           int depth,
                                           @Nullable
                                           NodeEditor parentEditor,
                                           @Nullable
                                           DocumentNode node)
    • Method Detail

      • onInit

        protected void onInit()
        Description copied from class: NodeEditor
        Subclasses may override this to provide custom initialization.
        Overrides:
        onInit in class NodeEditor
      • changeNodeType

        protected void changeNodeType​(NodeType type)
        Called when the user requests a type change from the menu action item. Checks to see if the model will have any orphaned bindings caused by a type change and warns users before committing to the change.
        Overrides:
        changeNodeType in class NodeEditor
      • getObjectHelper

        protected java.util.Optional<javax.swing.JComponent> getObjectHelper​(JsonSchema schema)
        Description copied from class: NodeEditor
        Called for object-typed nodes, in order to optionally create a helper component that will be added to the right of the object size indicator.
        Overrides:
        getObjectHelper in class NodeEditor
      • createValueEditor

        protected javax.swing.JComponent createValueEditor​(DocumentNode node,
                                                           java.awt.event.MouseListener popupListener)
        Description copied from class: NodeEditor
        Called for "value" nodes, that is, nodes that are not objects or arrays, in order to create an editor for them.

        If your editor happens to implement NodeEditor.ValueEditorComponent, you'll get additional functionality like schema and ui lifecycle support

        Overrides:
        createValueEditor in class NodeEditor
        popupListener - Mouse listener to add to any interior components in order for the context menu to work correctly
        Returns:
        A component to use as the editor
      • onDestroy

        protected void onDestroy()
        Description copied from class: NodeEditor
        Subclasses may override this to do something when the editor is being destroyed
        Overrides:
        onDestroy in class NodeEditor
      • initContextMenu

        protected void initContextMenu​(javax.swing.JPopupMenu menu)
        Description copied from class: NodeEditor
        Called to initialize the context menu at the very end (to add actions after the cut, copy, paste, delete, and type actions.
        Overrides:
        initContextMenu in class NodeEditor
      • openBindingEditor

        protected void openBindingEditor​(@Nullable
                                         BindingConfig binding)