Class NewResourceAction
- java.lang.Object
-
- javax.swing.AbstractAction
-
- com.inductiveautomation.ignition.designer.tabbedworkspace.NewResourceAction
-
- All Implemented Interfaces:
java.awt.event.ActionListener
,java.io.Serializable
,java.lang.Cloneable
,java.util.EventListener
,javax.swing.Action
- Direct Known Subclasses:
ReportingResourceWorkspace.NewReportResourceAction
public abstract class NewResourceAction extends javax.swing.AbstractAction
This action will pop up theCreateResourceDialog
. There are two ways that implementations of this abstract class are meant to be used:1. The legacy way: override
createPrototype()
and return your object. It will be serialized using Ignition's default XML serialization and the resulting bytes will be stored in the resources as data.bin2. The Ignition 8.0 way: Override
configureResource(ProjectResourceBuilder)
and invoke methods on the resource builder. Don't worry about setting project name, resource path, or scope - these will be set automatically.After the resource is created it will be opened in your workspace.
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected ResourceFolderNode
folder
protected TabbedResourceWorkspace
workspace
-
Constructor Summary
Constructors Constructor Description NewResourceAction(TabbedResourceWorkspace workspace, ResourceFolderNode folder)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
actionPerformed(java.awt.event.ActionEvent event)
protected void
configureResource(ProjectResourceBuilder builder)
The default implementation of this simply calls putData() with the prototype bytes in order to be backwards compatible with the legacy method of project resources only having one binary file in them.protected java.lang.Object
createPrototype()
protected byte[]
createPrototypeBytes()
protected ResourceFolderNode
getFolder()
Provides an opportunity for subclasses to provide the parent folder lazilyprotected abstract java.lang.String
newResourceName()
protected void
onAfterResourceAdded(ProjectResource resource)
Do more things after the resource is created here, if you want.-
Methods inherited from class javax.swing.AbstractAction
addPropertyChangeListener, clone, firePropertyChange, getKeys, getPropertyChangeListeners, getValue, isEnabled, putValue, removePropertyChangeListener, setEnabled
-
-
-
-
Field Detail
-
workspace
protected final TabbedResourceWorkspace workspace
-
folder
protected final ResourceFolderNode folder
-
-
Constructor Detail
-
NewResourceAction
public NewResourceAction(TabbedResourceWorkspace workspace, ResourceFolderNode folder)
-
-
Method Detail
-
actionPerformed
public void actionPerformed(java.awt.event.ActionEvent event)
-
onAfterResourceAdded
protected void onAfterResourceAdded(ProjectResource resource) throws java.lang.Exception
Do more things after the resource is created here, if you want.- Throws:
java.lang.Exception
-
getFolder
protected ResourceFolderNode getFolder()
Provides an opportunity for subclasses to provide the parent folder lazily
-
configureResource
protected void configureResource(ProjectResourceBuilder builder) throws java.lang.Exception
The default implementation of this simply calls putData() with the prototype bytes in order to be backwards compatible with the legacy method of project resources only having one binary file in them.To make a more modern project resource with specific named files init, override this method and do not use
createPrototype()
- Throws:
java.lang.Exception
-
createPrototypeBytes
protected byte[] createPrototypeBytes() throws java.lang.Exception
- Throws:
java.lang.Exception
-
createPrototype
protected java.lang.Object createPrototype()
-
newResourceName
protected abstract java.lang.String newResourceName()
-
-