Class ResourceEditor<T>
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- com.inductiveautomation.ignition.designer.tabbedworkspace.ResourceEditor<T>
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,javax.accessibility.Accessible
- Direct Known Subclasses:
NamedQueryResourceEditor
,ReportingResourceEditor
public abstract class ResourceEditor<T> extends javax.swing.JPanel
- 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 LoggerEx
log
protected ResourcePath
resourcePath
protected TabbedResourceWorkspace
workspace
-
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 ResourceEditor(TabbedResourceWorkspace workspace, ResourcePath path)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
commit()
Called when it's time to commit the resource being edited.protected LoggerEx
createLogger()
protected T
deserialize(byte[] bytes)
Deserialize the byte[] inside of the project resource's data.bin file into the editing object type for this editor.protected T
deserialize(ProjectResource resource)
Deserialize a project resource into the editing object type for this editor.protected abstract T
getObjectForSave()
Return the object that should be saved to represent this resource in the ProjectResource.protected T
getResource()
ResourcePath
getResourcePath()
java.lang.String
getTabTitle()
protected abstract void
init(T object)
protected boolean
isOptimizeCommits()
Override this and return true if you want commits to use equality on the resource objects to avoid un-necessary commits.protected void
loadResource(ProjectResource resource)
protected void
onCommitFailed(java.lang.Exception ex)
protected byte[]
serialize(T o)
Serializes the object using anXMLSerializer
.protected void
serializeResource(ProjectResourceBuilder builder, T object)
Serialize the object and put the serialized file(s) and attribute(s) into the project resource builder.void
updateResource(ProjectResource resource)
Call this when the resource changes due to project pulls-
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
-
workspace
protected final TabbedResourceWorkspace workspace
-
resourcePath
protected final ResourcePath resourcePath
-
log
protected final LoggerEx log
-
-
Constructor Detail
-
ResourceEditor
public ResourceEditor(TabbedResourceWorkspace workspace, ResourcePath path)
-
-
Method Detail
-
isOptimizeCommits
protected boolean isOptimizeCommits()
Override this and return true if you want commits to use equality on the resource objects to avoid un-necessary commits.
-
createLogger
protected LoggerEx createLogger()
-
loadResource
protected void loadResource(ProjectResource resource)
-
updateResource
public void updateResource(ProjectResource resource)
Call this when the resource changes due to project pulls
-
init
protected abstract void init(T object)
-
getResourcePath
public ResourcePath getResourcePath()
-
getResource
protected T getResource()
-
getTabTitle
public java.lang.String getTabTitle()
-
getObjectForSave
protected abstract T getObjectForSave() throws java.lang.Exception
Return the object that should be saved to represent this resource in the ProjectResource. Will be serialized using an XMLSerializer. Override save() to serialize in a different manner.- Throws:
java.lang.Exception
-
deserialize
protected T deserialize(ProjectResource resource) throws java.lang.Exception
Deserialize a project resource into the editing object type for this editor. Default implementation simply calls this.deserialize(resource.getData()). Override this method if your resource does not use the default data.bin file.- Throws:
java.lang.Exception
-
deserialize
protected T deserialize(byte[] bytes) throws java.lang.Exception
Deserialize the byte[] inside of the project resource's data.bin file into the editing object type for this editor.Default implementation uses an
XMLDeserializer
to deserialize the byte[]. If you serialize your object differently, override this method.If you store your project resource in a different file or set of files, override
deserialize(ProjectResource)
instead.- Throws:
java.lang.Exception
-
serialize
protected byte[] serialize(T o) throws java.lang.Exception
Serializes the object using anXMLSerializer
. If you want to serialize your object into a data.bin using a different encoding override this method.If you want to serialize your object into a different file or multiple files, override
serializeResource(ProjectResourceBuilder, Object)
instead.- Throws:
java.lang.Exception
-
serializeResource
protected void serializeResource(ProjectResourceBuilder builder, T object) throws java.lang.Exception
Serialize the object and put the serialized file(s) and attribute(s) into the project resource builder. Default implementation is:builder.putData(serialize(object));
Implementations don't need to bother setting the project's resourcePath, projectName, or applicationScope; those will be set automatically.- Throws:
java.lang.Exception
-
commit
public void commit()
Called when it's time to commit the resource being edited. Default implementation uses XML serialization. If you override, don't forget to call workspace.project().updateLock
-
onCommitFailed
protected void onCommitFailed(java.lang.Exception ex)
-
-