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
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected ResourceFolderNode folder  
      protected TabbedResourceWorkspace workspace  
      • Fields inherited from class javax.swing.AbstractAction

        changeSupport, enabled
      • Fields inherited from interface javax.swing.Action

        ACCELERATOR_KEY, ACTION_COMMAND_KEY, DEFAULT, DISPLAYED_MNEMONIC_INDEX_KEY, LARGE_ICON_KEY, LONG_DESCRIPTION, MNEMONIC_KEY, NAME, SELECTED_KEY, SHORT_DESCRIPTION, SMALL_ICON
    • 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 lazily
      protected 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
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface javax.swing.Action

        accept
    • 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()