Class AbstractBlockWorkspace
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JTabbedPane
-
- com.jidesoft.swing.JideTabbedPane
-
- com.inductiveautomation.ignition.designer.designable.AbstractDesignableWorkspace
-
- com.inductiveautomation.ignition.designer.blockandconnector.AbstractBlockWorkspace
-
- All Implemented Interfaces:
java.awt.image.ImageObserver,java.awt.MenuContainer,java.io.Serializable,javax.accessibility.Accessible,javax.swing.SwingConstants
- Direct Known Subclasses:
PipelineBlockWorkspace,StandaloneBandCWorkspace
public abstract class AbstractBlockWorkspace extends AbstractDesignableWorkspace
This workspace is a specialization of AbstractDesignableWorkspace for workspaces that want to use a block-and-connector style of design.
The user is able to arrange the blocks and draw connections between them, but the path of the connections is automatically derived. To use this workspace, you'll want to call
open(BlockDiagramModel)with your own implementation of aBlockDiagramModel.Sub-classes may override various functions in order to alter or augment functionality:
newConnectionPainter(BlockDiagramModel)Override this to create aConnectionPainterto control the visual style of the connections.newEdgeRouter(BlockDiagramModel)Override this to provide your ownEdgeRouter, used to create the connection path between any two blocks.
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected classAbstractBlockWorkspace.ConnectionToolThis extension of the standard SelectionTool is AnchorPoint aware and is used for creating connections between blocks in addition to selecting and moving blocks around-
Nested classes/interfaces inherited from class com.jidesoft.swing.JideTabbedPane
com.jidesoft.swing.JideTabbedPane.ColorProvider, com.jidesoft.swing.JideTabbedPane.GradientColorProvider, com.jidesoft.swing.JideTabbedPane.IgnoreableSingleSelectionModel, com.jidesoft.swing.JideTabbedPane.NoFocusButton, com.jidesoft.swing.JideTabbedPane.PageLastFocusTracker, com.jidesoft.swing.JideTabbedPane.TabListCellRenderer
-
Nested classes/interfaces inherited from class javax.swing.JTabbedPane
javax.swing.JTabbedPane.AccessibleJTabbedPane, javax.swing.JTabbedPane.ModelListener
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description protected BasicGridSettingsgridSettings-
Fields inherited from class com.inductiveautomation.ignition.designer.designable.AbstractDesignableWorkspace
currentTool, DESIGNABLE_CONTAINER_ICON_KEY, DESIGNTIME_PROPNAME, listeners, log, openContainers, selectedItems, selectionControl, selectionTool
-
Fields inherited from class com.jidesoft.swing.JideTabbedPane
_focusChangeListener, _tabEditingAllowed, _tabEditValidator, BOLDACTIVETAB_PROPERTY, BOX_STYLE_PROPERTY, BUTTON_CLOSE, BUTTON_EAST, BUTTON_LIST, BUTTON_NORTH, BUTTON_SOUTH, BUTTON_WEST, COLOR_THEME_DEFAULT, COLOR_THEME_OFFICE2003, COLOR_THEME_VSNET, COLOR_THEME_WIN2K, COLOR_THEME_WINXP, GRIPPER_PROPERTY, HIDE_IF_ONE_TAB_PROPERTY, ONENOTE_COLOR_PROVIDER, PROPERTY_COLOR_THEME, PROPERTY_CONTENT_BORDER_INSETS, PROPERTY_DRAG_OVER_DISABLED, PROPERTY_SELECTED_INDEX, PROPERTY_SHOW_CLOSE_BUTTON_ON_MOUSE_OVER, PROPERTY_TAB_AREA_INSETS, PROPERTY_TAB_COLOR_PROVIDER, PROPERTY_TAB_INSETS, PROPERTY_TAB_LEADING_COMPONENT, PROPERTY_TAB_RESIZE_MODE, PROPERTY_TAB_SHAPE, PROPERTY_TAB_TRAILING_COMPONENT, RESIZE_MODE_COMPRESSED, RESIZE_MODE_DEFAULT, RESIZE_MODE_FIT, RESIZE_MODE_FIXED, RESIZE_MODE_NONE, SCROLL_TAB_ON_WHEEL_PROPERTY, SHAPE_BOX, SHAPE_DEFAULT, SHAPE_ECLIPSE, SHAPE_ECLIPSE3X, SHAPE_EXCEL, SHAPE_FLAT, SHAPE_OFFICE2003, SHAPE_ROUNDED_FLAT, SHAPE_ROUNDED_VSNET, SHAPE_VSNET, SHAPE_WINDOWS, SHAPE_WINDOWS_SELECTED, SHOW_CLOSE_BUTTON_ON_TAB_PROPERTY, SHOW_CLOSE_BUTTON_PROPERTY, SHOW_ICONS_PROPERTY, SHOW_TAB_AREA_PROPERTY, SHOW_TAB_BUTTONS_PROPERTY, SHOW_TAB_CONTENT_PROPERTY, SHRINK_TAB_PROPERTY, TAB_CLOSABLE_PROPERTY, USE_DEFAULT_SHOW_CLOSE_BUTTON_ON_TAB_PROPERTY, USE_DEFAULT_SHOW_ICONS_PROPERTY
-
Fields inherited from class javax.swing.JTabbedPane
changeEvent, changeListener, model, SCROLL_TAB_LAYOUT, tabPlacement, WRAP_TAB_LAYOUT
-
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
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractBlockWorkspace()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract java.lang.StringcopyBlocks(java.util.Collection<Block> blocks)Copy these blocks to a serialized representation which is understood bypasteBlocks(String)javax.swing.JPopupMenucreateConnectorEndMenu(BlockDiagramModel model, AnchorPoint startAnchor, java.awt.Point end)Implement this if you want to present the user with a menu of options when they drop a new connector onto an empty areajava.awt.ColorgetEditorBackground()The background color for the design panelsIGridSettingsgetGridSettings()Returns the settings for the grid/guide/snapping systemDesignableDelegategetItemDelegate(DesignableContainer container)Called to provide the DesignableDelegate that is appropriate for the given DesignableContainerBlockDesignableContainergetSelectedContainer()The currently selected designable container, or null if none is selectedbooleanisRootSelected()protected ConnectionPainternewConnectionPainter(BlockDiagramModel model)protected BlockDesignableContainernewDesignableContainer(BlockDiagramModel model)protected EdgeRouternewEdgeRouter(BlockDiagramModel model)protected IDesignToolnewSelectionTool()protected voidonClose(DesignableContainer container)Provides subclasses a chance to handle when a tab is closedprotected voidopen(BlockDiagramModel model)abstract java.util.Collection<Block>pasteBlocks(java.lang.String xml)Deserialized previously serialized blocks (fromcopyBlocks(Collection)), and return them.-
Methods inherited from class com.inductiveautomation.ignition.designer.designable.AbstractDesignableWorkspace
addDesignableWorkspaceListener, close, createWorkspaceHomeTab, findDesignableContainer, findDropTarget, getAcceptableDropActions, getCurrentTool, getOpenContainerCount, getSelectedDesignPanel, getSelectedItems, getSelectedItemsCount, getSelectionControl, getSelectionPopupMenu, getSelectionTool, getTabPopupMenu, getTabToolTip, handleDoubleClick, handleDrop, handleEditClick, isDesignTime, isOpen, isOpen, isZoomingEnabled, newDesignPanel, newLogger, onBeforeClose, onCurrentToolChanged, onEditorPaint, open, openArbitraryTab, paintInteractionLayerHigh, paintInteractionLayerLow, removeDesignableWorkspaceListener, removeTab, restrictMovementToParentBounds, setCurrentTool, setDesignTime, setSelectedContainer, setSelectedItems, setSelectedItems, setStatusMessage, setupWorkspaceHomeTab, toggleItemSelection, updateMouseLocation, updateSelectionControl, updateStatusBarText
-
Methods inherited from class com.jidesoft.swing.JideTabbedPane
add, addNotify, addTabEditingListener, calculateTabListPopupPosition, cancelTabEditing, clearVisComp, createFocusChangeListener, createNoFocusButton, createTabList, createTabListPopup, editTabAt, fireStateChanged, fireTabEditing, getCloseAction, getColorTheme, getContentBorderInsets, getDefaultColorTheme, getDefaultTabResizeMode, getDefaultTabStyle, getDisplayTitleAt, getEditingTabIndex, getIconForTab, getLastFocusedComponent, getPageLastFocusTrackers, getResourceString, getSelectedTabFont, getStringConverter, getTabAlignment, getTabAreaInsets, getTabAtLocation, getTabColorProvider, getTabEditingListeners, getTabEditingValidator, getTabHeight, getTabInsets, getTabLeadingComponent, getTabListCellRenderer, getTabResizeMode, getTabShape, getTabTrailingComponent, getUI, getUIClassID, hasFocusComponent, hideTabListPopup, insertTab, isAutoFocusOnTabHideClose, isAutoRequestFocus, isBoldActiveTab, isCloseTabOnMouseMiddleButton, isDragOverDisabled, isHideOneTab, isHideTrailingWhileNoButtons, isLayoutTrailingComponentBeforeButtons, isRightClickSelect, isScrollSelectedTabOnWheel, isShowCloseButton, isShowCloseButtonOnMouseOver, isShowCloseButtonOnSelectedTab, isShowCloseButtonOnTab, isShowGripper, isShowIconsOnTab, isShowTabArea, isShowTabButtons, isShowTabContent, isSuppressSetSelectedIndex, isSuppressStateChangedEvents, isTabClosableAt, isTabEditing, isTabEditingAllowed, isTabListPopupVisible, isTabShown, isUseDefaultShowCloseButtonOnTab, isUseDefaultShowIconsOnTab, moveSelectedTabTo, popupSelectedIndex, processMouseSelection, removeAll, removeNotify, removeTabAt, removeTabEditingListener, repaintContentBorder, repaintTabAreaAndContentBorder, requestFocusForVisibleComponent, resetDefaultCloseAction, scrollSelectedTabToVisible, setAutoFocusOnTabHideClose, setAutoRequestFocus, setBoldActiveTab, setCloseAction, setCloseTabOnMouseMiddleButton, setColorTheme, setComponentAt, setContentBorderInsets, setDragOverDisabled, setHideOneTab, setHideTrailingWhileNoButtons, setLayoutTrailingComponentBeforeButtons, setRightClickSelect, setScrollSelectedTabOnWheel, setSelectedIndex, setSelectedTabFont, setShowCloseButton, setShowCloseButtonOnMouseOver, setShowCloseButtonOnSelectedTab, setShowCloseButtonOnTab, setShowGripper, setShowIconsOnTab, setShowTabArea, setShowTabButtons, setShowTabContent, setStringConverter, setSuppressSetSelectedIndex, setSuppressStateChangedEvents, setTabAlignment, setTabAreaInsets, setTabClosableAt, setTabColorProvider, setTabEditingAllowed, setTabEditingValidator, setTabInsets, setTabLeadingComponent, setTabListCellRenderer, setTabResizeMode, setTabShape, setTabTrailingComponent, setUI, setUseDefaultShowCloseButtonOnTab, setUseDefaultShowIconsOnTab, showTabListPopup, stopTabEditing, updateUI
-
Methods inherited from class javax.swing.JTabbedPane
add, add, add, add, addChangeListener, addTab, addTab, addTab, createChangeListener, getAccessibleContext, getBackgroundAt, getBoundsAt, getChangeListeners, getComponentAt, getDisabledIconAt, getDisplayedMnemonicIndexAt, getForegroundAt, getIconAt, getMnemonicAt, getModel, getSelectedComponent, getSelectedIndex, getTabComponentAt, getTabCount, getTabLayoutPolicy, getTabPlacement, getTabRunCount, getTitleAt, getToolTipText, getToolTipTextAt, indexAtLocation, indexOfComponent, indexOfTab, indexOfTab, indexOfTabComponent, isEnabledAt, paramString, remove, remove, removeChangeListener, setBackgroundAt, setDisabledIconAt, setDisplayedMnemonicIndexAt, setEnabledAt, setForegroundAt, setIconAt, setMnemonicAt, setModel, setSelectedComponent, setTabComponentAt, setTabLayoutPolicy, setTabPlacement, setTitleAt, setToolTipTextAt
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, 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, 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
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, 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
-
gridSettings
protected transient BasicGridSettings gridSettings
-
-
Method Detail
-
getSelectedContainer
public BlockDesignableContainer getSelectedContainer()
Description copied from class:AbstractDesignableWorkspaceThe currently selected designable container, or null if none is selected- Overrides:
getSelectedContainerin classAbstractDesignableWorkspace
-
open
protected void open(BlockDiagramModel model)
-
newDesignableContainer
protected BlockDesignableContainer newDesignableContainer(BlockDiagramModel model)
-
createConnectorEndMenu
public javax.swing.JPopupMenu createConnectorEndMenu(BlockDiagramModel model, AnchorPoint startAnchor, java.awt.Point end)
Implement this if you want to present the user with a menu of options when they drop a new connector onto an empty area
-
onClose
protected void onClose(DesignableContainer container)
Description copied from class:AbstractDesignableWorkspaceProvides subclasses a chance to handle when a tab is closed- Overrides:
onClosein classAbstractDesignableWorkspace
-
getItemDelegate
public DesignableDelegate getItemDelegate(DesignableContainer container)
Description copied from class:AbstractDesignableWorkspaceCalled to provide the DesignableDelegate that is appropriate for the given DesignableContainer- Specified by:
getItemDelegatein classAbstractDesignableWorkspace
-
getEditorBackground
public java.awt.Color getEditorBackground()
Description copied from class:AbstractDesignableWorkspaceThe background color for the design panels- Specified by:
getEditorBackgroundin classAbstractDesignableWorkspace
-
getGridSettings
public IGridSettings getGridSettings()
Description copied from class:AbstractDesignableWorkspaceReturns the settings for the grid/guide/snapping system- Specified by:
getGridSettingsin classAbstractDesignableWorkspace
-
newSelectionTool
protected IDesignTool newSelectionTool()
- Overrides:
newSelectionToolin classAbstractDesignableWorkspace
-
newEdgeRouter
protected EdgeRouter newEdgeRouter(BlockDiagramModel model)
-
newConnectionPainter
protected ConnectionPainter newConnectionPainter(BlockDiagramModel model)
-
isRootSelected
public boolean isRootSelected()
-
copyBlocks
public abstract java.lang.String copyBlocks(java.util.Collection<Block> blocks) throws SerializationException
Copy these blocks to a serialized representation which is understood bypasteBlocks(String)- Throws:
SerializationException
-
pasteBlocks
@Nullable public abstract java.util.Collection<Block> pasteBlocks(java.lang.String xml)
Deserialized previously serialized blocks (fromcopyBlocks(Collection)), and return them. If an error occurs, catch and display it, then return null
-
-