Class JythonBuilder
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- com.inductiveautomation.factorypmi.designer.eventhandling.JythonBuilder
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,javax.accessibility.Accessible
- Direct Known Subclasses:
DBBrowserBuilder
,NavigationBuilder
,PropertySetBuilder
,ScriptEditorBuilder
,TagSetBuilder
public abstract class JythonBuilder extends javax.swing.JPanel
Base class for the different action tabs of the event configuration UI.- 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
-
-
Field Summary
Fields Modifier and Type Field Description protected VisionDesignerImpl
fpmi
protected ComponentScriptEditor
parent
-
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 JythonBuilder(java.awt.LayoutManager layout, ComponentScriptEditor parent)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected static void
appendWarning(java.lang.StringBuilder script, java.lang.String builderName)
protected static java.lang.String
applyDictionaryStyleAccess(java.lang.String str)
Applies dictionary-style access to python statements which may have object member names with spaces in them (see FB3163).protected static void
buildPropertyReference(java.lang.StringBuilder realBuilder, java.lang.String path, PropertyNode valueNode, java.lang.String compName, java.lang.String varName, java.lang.String setValue, java.lang.String tab)
Generates Jython code, indented bytab
, that either gets or sets a property.protected void
fireNodeUpdated()
Tell the event tree that this event has changed and needs to be redrawnprotected javax.swing.JComponent
getBean()
BindingRoot
getBindingRoot()
abstract java.lang.String
getDisplayName()
abstract javax.swing.Icon
getIcon()
MethodDescriptorNode
getMethodNode()
protected PropertyNode
getPropertyNode(java.lang.String path)
javax.swing.Icon
getSpacedIcon()
abstract boolean
handles(MethodDescriptorNode node)
Return true if you're the appropriate type of builder to handle the node as it's currently configuredprotected static boolean
isStringNumber(java.lang.String s)
Returns true if the given string parses out to a number.protected static java.lang.String
parseNodePropertyValue(PropertyNode valueNode)
protected PropertyDialog
propertyDialog()
Gets the lazily-created instance of PropertyDialog for this builder pane.void
setBindingRoot(BindingRoot root)
void
setMethodNode(MethodDescriptorNode methodNode)
abstract void
updateDisplay()
Called when the selected event changes and when the tab is made visible.-
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, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
parent
protected ComponentScriptEditor parent
-
fpmi
protected VisionDesignerImpl fpmi
-
-
Constructor Detail
-
JythonBuilder
public JythonBuilder(java.awt.LayoutManager layout, ComponentScriptEditor parent)
-
-
Method Detail
-
setMethodNode
public void setMethodNode(MethodDescriptorNode methodNode)
-
getMethodNode
public MethodDescriptorNode getMethodNode()
-
getBean
protected javax.swing.JComponent getBean()
-
fireNodeUpdated
protected void fireNodeUpdated()
Tell the event tree that this event has changed and needs to be redrawn
-
updateDisplay
public abstract void updateDisplay()
Called when the selected event changes and when the tab is made visible.
-
handles
public abstract boolean handles(MethodDescriptorNode node)
Return true if you're the appropriate type of builder to handle the node as it's currently configured
-
getDisplayName
public abstract java.lang.String getDisplayName()
-
getIcon
public abstract javax.swing.Icon getIcon()
-
getSpacedIcon
public javax.swing.Icon getSpacedIcon()
-
getBindingRoot
public BindingRoot getBindingRoot()
-
setBindingRoot
public void setBindingRoot(BindingRoot root)
-
propertyDialog
protected PropertyDialog propertyDialog()
Gets the lazily-created instance of PropertyDialog for this builder pane.
-
isStringNumber
protected static boolean isStringNumber(java.lang.String s)
Returns true if the given string parses out to a number.
-
getPropertyNode
protected PropertyNode getPropertyNode(java.lang.String path)
-
appendWarning
protected static void appendWarning(java.lang.StringBuilder script, java.lang.String builderName)
-
buildPropertyReference
protected static void buildPropertyReference(java.lang.StringBuilder realBuilder, java.lang.String path, PropertyNode valueNode, java.lang.String compName, java.lang.String varName, java.lang.String setValue, java.lang.String tab)
Generates Jython code, indented bytab
, that either gets or sets a property.- Parameters:
realBuilder
- The buffer that the generated Jython code will be appended topath
- The path to the property to get or set.valueNode
- The PropertyNode for the destination propertycompName
- The name of a new Jython variable that will be set to the component that owns the property. If this is null, the get/set will be made in a more compressed formvarName
- If non-null, the name of a new Jython variable that will be assigned the value of valueNodesetValue
- If non-null, the property will be set to this value. Should be pre-quoted if desired.tab
- The tab level for this new code
-
parseNodePropertyValue
protected static java.lang.String parseNodePropertyValue(PropertyNode valueNode)
-
applyDictionaryStyleAccess
protected static java.lang.String applyDictionaryStyleAccess(java.lang.String str)
Applies dictionary-style access to python statements which may have object member names with spaces in them (see FB3163). For example: converts foo.Hello World.bar to foo["Hello World"].bar- Parameters:
str
- The string to apply dictionary style access rules- Returns:
- The string which is modified to follow dictionary style access rules in order to avoid jython syntax errors
-
-