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:
AbstractPerspectivePropsPanel
,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
static class
AbstractPropertyEditorPanel.State
-
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
protected AbstractPropertyEditorPanel.State
state
-
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 void
addStateChangeListener(com.inductiveautomation.ignition.designer.propertyeditor.AbstractPropertyEditorPanel.StateListener listener)
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.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)
AbstractPropertyEditorPanel.State
getState()
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.void
override(DesignerContext context)
Copy the target resource into the local project.void
revert(DesignerContext context)
Revert this panel's resource to its inherited state.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)
void
setState(AbstractPropertyEditorPanel.State state)
-
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
-
changed
protected boolean changed
-
state
protected AbstractPropertyEditorPanel.State state
-
-
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
-
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?
-
getState
public AbstractPropertyEditorPanel.State getState()
-
setState
public void setState(AbstractPropertyEditorPanel.State state)
-
addStateChangeListener
public void addStateChangeListener(com.inductiveautomation.ignition.designer.propertyeditor.AbstractPropertyEditorPanel.StateListener listener)
-
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
-
revert
public void revert(DesignerContext context)
Revert this panel's resource to its inherited state.
-
override
public void override(DesignerContext context)
Copy the target resource into the local project.
-
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
-
-