Class BasicBlockUI

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

    public abstract class BasicBlockUI
    extends javax.swing.JPanel
    This is the "reference" UI used by the alarm pipeline editor. Developers are free to create their own UI styles by following the interfaces defined on Block. If you'd like a block style that looks like the ones found in the alarm pipelines, using this UI will save a lot of effort.
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      protected class  BasicBlockUI.InParamPanel  
      protected class  BasicBlockUI.OutParamPanel  
      protected class  BasicBlockUI.ParamPanel  
      • 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 
      Modifier and Type Field Description
      protected java.awt.Color backgroundConnected  
      protected java.awt.Color backgroundUnconnected  
      protected Block block  
      protected java.awt.Color borderConnected  
      protected java.awt.Color borderSelected  
      protected java.awt.Color borderUnconnected  
      protected boolean connected
      Is this block "connected" meaning is there a path from the starting block to this one?
      protected javax.swing.JPanel header  
      protected boolean mirrored
      When mirrored, the inputs are positioned on the right, and the outputs on the left, which is opposite of standard
      protected java.awt.Color pinHover  
      protected boolean selected
      Is this block "selected" meaning it is highlighted for moving around and editing
      • 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
    • Constructor Summary

      Constructors 
      Constructor Description
      BasicBlockUI​(Block block)  
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected BasicBlockUI.ParamPanel createEmpty​(AnchorType ioType)  
      java.util.List<AnchorPoint> getAnchorPoints()
      Returns the list of anchor points created by this block UI.
      protected abstract java.util.Collection<AnchorDescriptor> getAnchors()
      The inputs/outputs for the block
      java.awt.Color getBackgroundConnected()  
      protected java.awt.Shape getBackgroundShape​(int w, int h)  
      java.awt.Color getBackgroundUnconnected()  
      Block getBlock()  
      java.awt.Color getBorderConnected()  
      java.awt.Color getBorderSelected()  
      java.awt.Color getBorderUnconnected()  
      protected abstract javax.swing.Icon getIcon()
      The small icon for the header of the block
      java.awt.Color getPinHover()  
      protected abstract java.lang.String getTitle()
      The title for the header of the block
      protected void initDetailsPanel​(javax.swing.JPanel details)
      Override this to add contents to the details panel
      protected void initEmptyDetailsPanel​(javax.swing.JPanel bottom)  
      protected void initHeader​(javax.swing.JPanel header)
      Initialize the header panel.
      void install​(BlockComponent parent)
      Install this block ui onto the BlockComponent.
      boolean isConnected()  
      protected abstract boolean isDetailsPanelRequired()
      Returning true from this will turn on a details panel beneath the inputs and outputs.
      boolean isMirrored()  
      boolean isSelected()  
      protected void paintComponent​(java.awt.Graphics graphics)  
      void rebuildUI()  
      void setBackgroundConnected​(java.awt.Color backgroundConnected)  
      void setBackgroundUnconnected​(java.awt.Color backgroundUnconnected)  
      void setBorderConnected​(java.awt.Color borderConnected)  
      void setBorderSelected​(java.awt.Color borderSelected)  
      void setBorderUnconnected​(java.awt.Color borderUnconnected)  
      void setBounds​(int x, int y, int width, int height)  
      void setConnected​(boolean connected)  
      void setMirrored​(boolean mirrored)  
      void setPinHover​(java.awt.Color pinHover)  
      void setSelected​(boolean selected)  
      • 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, 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, 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

      • backgroundUnconnected

        protected java.awt.Color backgroundUnconnected
      • backgroundConnected

        protected java.awt.Color backgroundConnected
      • borderConnected

        protected java.awt.Color borderConnected
      • borderSelected

        protected java.awt.Color borderSelected
      • borderUnconnected

        protected java.awt.Color borderUnconnected
      • pinHover

        protected java.awt.Color pinHover
      • header

        protected javax.swing.JPanel header
      • connected

        protected boolean connected
        Is this block "connected" meaning is there a path from the starting block to this one?
      • selected

        protected boolean selected
        Is this block "selected" meaning it is highlighted for moving around and editing
      • mirrored

        protected boolean mirrored
        When mirrored, the inputs are positioned on the right, and the outputs on the left, which is opposite of standard
      • block

        protected final Block block
    • Constructor Detail

      • BasicBlockUI

        public BasicBlockUI​(Block block)
    • Method Detail

      • getBlock

        public Block getBlock()
      • setBounds

        public void setBounds​(int x,
                              int y,
                              int width,
                              int height)
        Overrides:
        setBounds in class java.awt.Component
      • getAnchors

        protected abstract java.util.Collection<AnchorDescriptor> getAnchors()
        The inputs/outputs for the block
      • getTitle

        protected abstract java.lang.String getTitle()
        The title for the header of the block
      • getIcon

        protected abstract javax.swing.Icon getIcon()
        The small icon for the header of the block
      • isDetailsPanelRequired

        protected abstract boolean isDetailsPanelRequired()
        Returning true from this will turn on a details panel beneath the inputs and outputs. If you return true from this, you should also override and implement initDetailsPanel(JPanel)
      • initDetailsPanel

        protected void initDetailsPanel​(javax.swing.JPanel details)
        Override this to add contents to the details panel
      • getAnchorPoints

        public java.util.List<AnchorPoint> getAnchorPoints()

        Returns the list of anchor points created by this block UI. Intended to be used by Block implementations as the return value for Block.getAnchorPoints()

        WARNING These anchor points will be re-created when the UI changes (for example, due to a block structure change event). This means that you cannot hang onto them, e.g. in a Connection object. Please use LookupConnection to avoid this problem.

      • rebuildUI

        public void rebuildUI()
      • getBackgroundShape

        protected java.awt.Shape getBackgroundShape​(int w,
                                                    int h)
      • paintComponent

        protected void paintComponent​(java.awt.Graphics graphics)
        Overrides:
        paintComponent in class javax.swing.JComponent
      • isMirrored

        public boolean isMirrored()
      • setMirrored

        public void setMirrored​(boolean mirrored)
      • setConnected

        public void setConnected​(boolean connected)
      • isConnected

        public boolean isConnected()
      • setSelected

        public void setSelected​(boolean selected)
      • isSelected

        public boolean isSelected()
      • initHeader

        protected void initHeader​(javax.swing.JPanel header)
        Initialize the header panel. Default implementation adds icon and title label
      • getBackgroundUnconnected

        public java.awt.Color getBackgroundUnconnected()
      • setBackgroundUnconnected

        public void setBackgroundUnconnected​(java.awt.Color backgroundUnconnected)
      • getBackgroundConnected

        public java.awt.Color getBackgroundConnected()
      • setBackgroundConnected

        public void setBackgroundConnected​(java.awt.Color backgroundConnected)
      • getBorderConnected

        public java.awt.Color getBorderConnected()
      • setBorderConnected

        public void setBorderConnected​(java.awt.Color borderConnected)
      • getBorderSelected

        public java.awt.Color getBorderSelected()
      • setBorderSelected

        public void setBorderSelected​(java.awt.Color borderSelected)
      • getBorderUnconnected

        public java.awt.Color getBorderUnconnected()
      • setBorderUnconnected

        public void setBorderUnconnected​(java.awt.Color borderUnconnected)
      • getPinHover

        public java.awt.Color getPinHover()
      • setPinHover

        public void setPinHover​(java.awt.Color pinHover)
      • initEmptyDetailsPanel

        protected void initEmptyDetailsPanel​(javax.swing.JPanel bottom)