Class AbstractPropertyEditorPanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- com.inductiveautomation.ignition.designer.propertyeditor.AbstractPropertyEditorPanel
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,javax.accessibility.Accessible
,javax.swing.Scrollable
- Direct Known Subclasses:
CategoryPanel
,ClientGeneralPropsPanel
,ClientLaunchPropsPanel
,ClientLoginPropsPanel
,ClientPermissionsPropsPanel
,ClientPollingPropsPanel
,ClientUIPropsPanel
,DesignerGeneralPropsPanel
,DesignerWindowEditPropsPanel
,PermissionsPropsPanel
,ProjectGlobalPropsPanel
public abstract class AbstractPropertyEditorPanel extends javax.swing.JPanel implements javax.swing.Scrollable
Base class for all property editing pages. SeeDesignerContext.addPropertyEditor(Class)
for a more detailed description. Subclasses must have either a nullary (no-arg) constructor, or one that takes aDesignerContext
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
AbstractPropertyEditorPanel.ComponentChangeListener
-
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 boolean
changed
-
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 Modifier Constructor Description protected
AbstractPropertyEditorPanel()
protected
AbstractPropertyEditorPanel(java.awt.LayoutManager layout)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract java.lang.Object
commit()
Create the object to be serialized and stored in the page's corresponding project resourcejava.lang.Object
deserialize(DesignerContext context, byte[] data)
Turn bytes stored in this panel's project resource into the correct object type for this panel.boolean
dryCommit()
Test the input of the page for validity before commit.abstract java.lang.String
getCategory()
Returns a dot-separated category placement.javax.swing.Icon
getIcon()
protected AbstractPropertyEditorPanel.ComponentChangeListener
getListener()
Returns a shared instanceof (for this panel) of a ComponentChangeListenerjava.awt.Dimension
getPreferredScrollableViewportSize()
java.lang.String
getResourceName()
int
getResourceScope()
The application scope for the ProjectResource that represents this property categoryabstract ResourceType
getResourceType()
The resource type key used to look up this page's project resourceint
getScrollableBlockIncrement(java.awt.Rectangle visibleRect, int orientation, int direction)
boolean
getScrollableTracksViewportHeight()
boolean
getScrollableTracksViewportWidth()
int
getScrollableUnitIncrement(java.awt.Rectangle visibleRect, int orientation, int direction)
abstract java.lang.String
getTitleKey()
Resource key for the banner on top of the editor panelabstract void
initProps(java.lang.Object props)
Initialize the page with the given properties.protected int
intValueOf(javax.swing.JSpinner spinner)
boolean
isChanged()
Have any of the properties represented by this page changed?protected void
listenTo(AbstractProfileOptionDropdown... boxes)
Adds a listener to the component(s) that will set the changed boolean when the value changesprotected void
listenTo(javax.swing.AbstractButton... buttons)
Adds a listener to the component(s) that will set the changed boolean when the value changesprotected void
listenTo(javax.swing.JComboBox... boxes)
Adds a listener to the component(s) that will set the changed boolean when the value changesprotected void
listenTo(javax.swing.JSlider... sliders)
Adds a listener to the component(s) that will set the changed boolean when the value changesprotected void
listenTo(javax.swing.JSpinner... spinners)
Adds a listener to the component(s) that will set the changed boolean when the value changesprotected void
listenTo(javax.swing.text.JTextComponent... fields)
Adds a listener to the component(s) that will set the changed boolean when the value changesvoid
notifyClosed()
Override and implement this to do any cleanup when the UI is no longer shown.byte[]
serialize(DesignerContext context, java.lang.Object object)
Turn the object this panel is editing into a byte[] to be stored in a ProjectResource.void
setChanged(boolean b)
-
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
-
-
-
-
Method Detail
-
setChanged
public void setChanged(boolean b)
-
getListener
protected AbstractPropertyEditorPanel.ComponentChangeListener getListener()
Returns a shared instanceof (for this panel) of a ComponentChangeListener
-
listenTo
protected void listenTo(javax.swing.JComboBox... boxes)
Adds a listener to the component(s) that will set the changed boolean when the value changes
-
listenTo
protected void listenTo(AbstractProfileOptionDropdown... boxes)
Adds a listener to the component(s) that will set the changed boolean when the value changes
-
listenTo
protected void listenTo(javax.swing.AbstractButton... buttons)
Adds a listener to the component(s) that will set the changed boolean when the value changes
-
listenTo
protected void listenTo(javax.swing.text.JTextComponent... fields)
Adds a listener to the component(s) that will set the changed boolean when the value changes
-
listenTo
protected void listenTo(javax.swing.JSpinner... spinners)
Adds a listener to the component(s) that will set the changed boolean when the value changes
-
listenTo
protected void listenTo(javax.swing.JSlider... sliders)
Adds a listener to the component(s) that will set the changed boolean when the value changes
-
getCategory
public abstract java.lang.String getCategory()
Returns a dot-separated category placement. Something like: "Client.Launching"
-
getTitleKey
public abstract java.lang.String getTitleKey()
Resource key for the banner on top of the editor panel
-
getIcon
public javax.swing.Icon getIcon()
-
getResourceName
public java.lang.String getResourceName()
-
initProps
public abstract void initProps(java.lang.Object props)
Initialize the page with the given properties.- Parameters:
props
- Deserialized object from this page's corresponding ProjectResource, or null if the resource didn't exist.
-
notifyClosed
public void notifyClosed()
Override and implement this to do any cleanup when the UI is no longer shown.
-
isChanged
public boolean isChanged()
Have any of the properties represented by this page changed?
-
dryCommit
public boolean dryCommit()
Test the input of the page for validity before commit.- Returns:
- true if the page will commit successfully, false otherwise
-
commit
public abstract java.lang.Object commit()
Create the object to be serialized and stored in the page's corresponding project resource
-
serialize
public byte[] serialize(DesignerContext context, java.lang.Object object) throws java.lang.Exception
Turn the object this panel is editing into a byte[] to be stored in a ProjectResource. Default implementation uses Ignition'sXMLSerializer
with gzip=true- Throws:
java.lang.Exception
-
deserialize
public java.lang.Object deserialize(DesignerContext context, byte[] data) throws java.lang.Exception
Turn bytes stored in this panel's project resource into the correct object type for this panel. Default implementation simply callsClientContext.deserialize(byte[], Logger)
- Throws:
java.lang.Exception
-
getResourceType
public abstract ResourceType getResourceType()
The resource type key used to look up this page's project resource
-
getResourceScope
public int getResourceScope()
The application scope for the ProjectResource that represents this property category
-
intValueOf
protected int intValueOf(javax.swing.JSpinner spinner)
-
getPreferredScrollableViewportSize
public java.awt.Dimension getPreferredScrollableViewportSize()
- Specified by:
getPreferredScrollableViewportSize
in interfacejavax.swing.Scrollable
-
getScrollableUnitIncrement
public int getScrollableUnitIncrement(java.awt.Rectangle visibleRect, int orientation, int direction)
- Specified by:
getScrollableUnitIncrement
in interfacejavax.swing.Scrollable
-
getScrollableBlockIncrement
public int getScrollableBlockIncrement(java.awt.Rectangle visibleRect, int orientation, int direction)
- Specified by:
getScrollableBlockIncrement
in interfacejavax.swing.Scrollable
-
getScrollableTracksViewportWidth
public boolean getScrollableTracksViewportWidth()
- Specified by:
getScrollableTracksViewportWidth
in interfacejavax.swing.Scrollable
-
getScrollableTracksViewportHeight
public boolean getScrollableTracksViewportHeight()
- Specified by:
getScrollableTracksViewportHeight
in interfacejavax.swing.Scrollable
-
-