java.lang.Object
javax.swing.AbstractAction
com.inductiveautomation.ignition.designer.tabbedworkspace.NewResourceAction
All Implemented Interfaces:
ActionListener, Serializable, Cloneable, EventListener, Action
Direct Known Subclasses:
ReportingResourceWorkspace.NewReportResourceAction

public abstract class NewResourceAction extends AbstractAction
This action will pop up the CreateResourceDialog. 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.bin

2. 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:
  • Field Details

  • Constructor Details

  • Method Details

    • actionPerformed

      public void actionPerformed(ActionEvent event)
    • onAfterResourceAdded

      protected void onAfterResourceAdded(ProjectResource resource) throws Exception
      Do more things after the resource is created here, if you want.
      Throws:
      Exception
    • getFolder

      protected ResourceFolderNode getFolder()
      Provides an opportunity for subclasses to provide the parent folder lazily
    • configureResource

      protected void configureResource(ProjectResourceBuilder builder) throws 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:
      Exception
    • createPrototypeBytes

      protected byte[] createPrototypeBytes() throws Exception
      Throws:
      Exception
    • createPrototype

      protected Object createPrototype()
    • newResourceName

      protected abstract String newResourceName()