Class 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 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:
    Serialized Form
    • 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()