Class VisionDesignerImpl
- java.lang.Object
-
- com.inductiveautomation.ignition.designer.model.AbstractDesignerModuleHook
-
- com.inductiveautomation.factorypmi.designer.model.VisionDesignerImpl
-
- All Implemented Interfaces:
DesignerModuleHook,VisionClientInterface,VisionDesignerInterface
public class VisionDesignerImpl extends AbstractDesignerModuleHook implements VisionDesignerInterface
This is the core of the Vision module, implementing bothDesignerModuleHookandVisionDesignerInterface. Most of the heavy lifting is actually done in theWindowWorkspaceclass.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classVisionDesignerImpl.Handler
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringMODULE_ID-
Fields inherited from interface com.inductiveautomation.vision.api.client.VisionClientInterface
VISION_MODULE_ID
-
-
Constructor Summary
Constructors Constructor Description VisionDesignerImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddDesignableProjectListener()voidaddExtensibleBindingType(BindingType binding)Adds a new binding type to be used in the extensible binding systemvoidaddNewTemplate(ResourcePath parentFolder, int width, int height)voidaddNewTemplate(ResourcePath parentFolder, int width, int height, java.util.function.Consumer<ResourcePath> onAfter)voidaddNewTemplate(ResourcePath parentFolder, VisionTemplate template)voidaddNewTemplate(ResourcePath parentFolder, VisionTemplate template, java.util.function.Consumer<ResourcePath> onFinished)voidaddNewWindow(ResourcePath parentFolder, int width, int height, java.util.function.Consumer<ResourcePath> onAfter)Adds a new window to theFPMIAppbeing designedvoidaddNewWindow(ResourcePath parentFolder, FPMIWindow newWindow)voidaddNewWindow(ResourcePath parentFolder, FPMIWindow newWindow, java.util.function.Consumer<ResourcePath> onFinished)Adds a new window to theFHMIAppbeing designedvoidaddWindowDropHandler(WindowDropHandler handler)Add a new drop handler for custom drop types onto windows and templatesvoidaddWindowListener(VisionWindowListener listener)Adds a listener to be notified when windows are opened and closed.java.awt.ComponentcloneComponent(java.awt.Component comp)booleanconfigureBinding(java.awt.Component component, java.lang.String property, BindingConfiguration configuration)Configures a new property binding for the component.property using the given configuration.voidconfigureDeserializer(XMLDeserializer deserializer)voidconfigureSerializer(XMLSerializer s)Provides the module a chance to add serialization delegates to the serializer custom for classes that might be encountered when serializing objects provided by this moduleFPMIWindowcreateNewDockedWindow(int width, int height, int side)FPMIWindowcreateNewMainWindow()FPMIWindowcreateNewPopupWindow()BindingTypegetBindingType(java.lang.String bindingTypeKey)ClientScriptEditorgetClientEventScriptEditor()DesignerPrefsgetCurrentPrefs()DesignerContextgetDesignerContext()java.util.Collection<BindingType>getExtensibleBindings()java.util.List<com.jidesoft.docking.DockableFrame>getFrames()A list of DockableFrames that this module provides, that should be available to all workspaces.WindowUtilitiesgetGuiUtil()WindowUtilitiesgetGuiUtil(java.lang.String desktopHandle)Gets the WindowUtilities for a secondary desktop, by handleVisionDesignerImpl.HandlergetHandler()MenuBarMergegetMenu()MenuBarMergegetModuleMenu()Returns a menu merge for any global menu additions.java.util.List<com.jidesoft.action.CommandBar>getModuleToolbars()Returns the toolbars for the module.NavUtilitiesgetNavUtil()Gets the NavUtilities (for the primary desktopNavUtilitiesgetNavUtil(java.lang.String desktopHandle)Gets the NavUtilities for a secondary desktop, by handlePaletteImplgetPalette()DesignableProjectgetProject()java.lang.StringgetResourceCategoryKey(ProjectResourceId resource)Used by modules that add project resources to an Ignition project.java.lang.StringgetResourceDisplayName(ProjectResourceId resource)Allows a module to give an appropriate display name for the resource.javax.swing.IcongetResourceIcon(ProjectResourceId resource)Allows a module to give an appropriate icon for a resource.FPMIAppgetRoot()WindowFolderNodegetRootFolderNode()ResourcePathgetSelectedTemplateFolder()ResourcePathgetSelectedWindowFolder()Returns the id of the currently selected window folder in the project browser tree.java.util.List<WindowDropHandler>getWindowDropHandlers()WindowWorkspacegetWorkspace()protected voidinitSearchProviders()voidnewDockedWindow(ResourcePath parentFolder)voidnewDockedWindow(ResourcePath parentFolder, java.util.function.Consumer<ResourcePath> onFinished)voidnewMainWindow(ResourcePath folder)voidnewMainWindow(ResourcePath folder, java.util.function.Consumer<ResourcePath> onFinished)voidnewPopupWindow(ResourcePath parentFolder)voidnewPopupWindow(ResourcePath parentFolder, java.util.function.Consumer<ResourcePath> onFinished)voidnotifyActivationStateChanged(LicenseState licenseState)Notifies this designer module that its license state has changed.voidnotifyDesignableContainerClosed(ResourcePath path)voidnotifyProjectSaveDone()Notifies the module that the save operation has finished.voidnotifyProjectSaveStart(SaveContext save)Notifies the module that the user has requested that the project is saved.voidopenBindingDialog(java.awt.Component component, java.lang.String propertyName)Opens the binding dialog for a given component.voidremoveDesignableProjectListener()voidremoveWindowListener(VisionWindowListener listiner)Removes window listenerbyte[]serializeProjectResource(java.lang.Object obj)Serializes an object to be stored in a ProjectResource.voidsetContext(DesignerContext context)voidsetWorkspace(WindowWorkspace workspace)voidshutdown()Called when the module is shut down.voidstartup(DesignerContext designerContext, LicenseState activationState)The main entrypoint for the module hook.java.util.function.Consumer<ProjectResourceBuilder>windowResourceBuilder(FPMIWindow newWindow, boolean openOnStartIfFirst)-
Methods inherited from class com.inductiveautomation.ignition.designer.model.AbstractDesignerModuleHook
configureFunctionFactory, createPermissionKeys, initializeScriptManager
-
-
-
-
Field Detail
-
MODULE_ID
public static final java.lang.String MODULE_ID
- See Also:
- Constant Field Values
-
-
Method Detail
-
startup
public void startup(DesignerContext designerContext, LicenseState activationState) throws java.lang.Exception
Description copied from interface:DesignerModuleHookThe main entrypoint for the module hook. This will only be called once for a given project. If another project is ever opened,DesignerModuleHook.shutdown()will be called and a new hook will be instantiated- Specified by:
startupin interfaceDesignerModuleHook- Overrides:
startupin classAbstractDesignerModuleHook- Throws:
java.lang.Exception- if the module was not able to be initialized for the given project.
-
shutdown
public void shutdown()
Description copied from interface:DesignerModuleHookCalled when the module is shut down. This will happen if the user opens a different project within the same designer session - the existing modules will be shut down, and new module hooks will be instantiated and started up.- Specified by:
shutdownin interfaceDesignerModuleHook- Overrides:
shutdownin classAbstractDesignerModuleHook
-
addDesignableProjectListener
public void addDesignableProjectListener()
-
removeDesignableProjectListener
public void removeDesignableProjectListener()
-
addWindowDropHandler
public void addWindowDropHandler(WindowDropHandler handler)
Description copied from interface:VisionDesignerInterfaceAdd a new drop handler for custom drop types onto windows and templates- Specified by:
addWindowDropHandlerin interfaceVisionDesignerInterface
-
getWindowDropHandlers
public java.util.List<WindowDropHandler> getWindowDropHandlers()
-
getResourceCategoryKey
public java.lang.String getResourceCategoryKey(ProjectResourceId resource)
Description copied from interface:DesignerModuleHookUsed by modules that add project resources to an Ignition project. This will be called when the exporter is displaying all of the resources inside a project for export. Only project resources that match this module's ID will passed to this function.
Used by the import/export system.
- Specified by:
getResourceCategoryKeyin interfaceDesignerModuleHook- Overrides:
getResourceCategoryKeyin classAbstractDesignerModuleHook- Parameters:
resource- A project resource that was added by this module.- Returns:
- A bundle resource key for the category of this resource.
-
getResourceDisplayName
public java.lang.String getResourceDisplayName(ProjectResourceId resource)
Description copied from interface:DesignerModuleHookAllows a module to give an appropriate display name for the resource. For most resources this won't be necessary (the resource's name itself should be used), but for some resources whose name is null, this may be appropriate.
Used by the import/export system.
- Specified by:
getResourceDisplayNamein interfaceDesignerModuleHook- Overrides:
getResourceDisplayNamein classAbstractDesignerModuleHook- Returns:
- the name for a resource, or null to use the resource's folder path/name.
-
getResourceIcon
public javax.swing.Icon getResourceIcon(ProjectResourceId resource)
Description copied from interface:DesignerModuleHookAllows a module to give an appropriate icon for a resource.
Used by the import/export system.
- Specified by:
getResourceIconin interfaceDesignerModuleHook- Overrides:
getResourceIconin classAbstractDesignerModuleHook
-
getModuleMenu
public MenuBarMerge getModuleMenu()
Description copied from interface:DesignerModuleHookReturns a menu merge for any global menu additions. May be null.- Specified by:
getModuleMenuin interfaceDesignerModuleHook- Overrides:
getModuleMenuin classAbstractDesignerModuleHook- See Also:
JMenuMerge
-
getMenu
public MenuBarMerge getMenu()
- Returns:
- the
MenuBarMergespecific to the vision workspace
-
getModuleToolbars
@Nonnull public java.util.List<com.jidesoft.action.CommandBar> getModuleToolbars()
Description copied from interface:DesignerModuleHookReturns the toolbars for the module. May be empty but not null.- Specified by:
getModuleToolbarsin interfaceDesignerModuleHook- Overrides:
getModuleToolbarsin classAbstractDesignerModuleHook
-
getFrames
@Nonnull public java.util.List<com.jidesoft.docking.DockableFrame> getFrames()
Description copied from interface:DesignerModuleHookA list of DockableFrames that this module provides, that should be available to all workspaces.- Specified by:
getFramesin interfaceDesignerModuleHook- Overrides:
getFramesin classAbstractDesignerModuleHook
-
notifyActivationStateChanged
public void notifyActivationStateChanged(LicenseState licenseState)
Description copied from interface:DesignerModuleHookNotifies this designer module that its license state has changed. This could mean that the trial mode has expired (or been reset), the module has been activated, etc.- Specified by:
notifyActivationStateChangedin interfaceDesignerModuleHook- Overrides:
notifyActivationStateChangedin classAbstractDesignerModuleHook
-
addWindowListener
public void addWindowListener(VisionWindowListener listener)
Description copied from interface:VisionClientInterfaceAdds a listener to be notified when windows are opened and closed. Only works during runtime, not designer- Specified by:
addWindowListenerin interfaceVisionClientInterface
-
removeWindowListener
public void removeWindowListener(VisionWindowListener listiner)
Description copied from interface:VisionClientInterfaceRemoves window listener- Specified by:
removeWindowListenerin interfaceVisionClientInterface
-
configureSerializer
public void configureSerializer(XMLSerializer s)
Description copied from interface:DesignerModuleHookProvides the module a chance to add serialization delegates to the serializer custom for classes that might be encountered when serializing objects provided by this module- Specified by:
configureSerializerin interfaceDesignerModuleHook- Overrides:
configureSerializerin classAbstractDesignerModuleHook
-
configureDeserializer
public void configureDeserializer(XMLDeserializer deserializer)
- Specified by:
configureDeserializerin interfaceDesignerModuleHook- Overrides:
configureDeserializerin classAbstractDesignerModuleHook
-
notifyProjectSaveStart
public void notifyProjectSaveStart(SaveContext save)
Description copied from interface:DesignerModuleHookNotifies the module that the user has requested that the project is saved. The module must check-in any checked-out resources that it is holding.- Specified by:
notifyProjectSaveStartin interfaceDesignerModuleHook- Overrides:
notifyProjectSaveStartin classAbstractDesignerModuleHook
-
notifyProjectSaveDone
public void notifyProjectSaveDone()
Description copied from interface:DesignerModuleHookNotifies the module that the save operation has finished. This is the cue to check-out any previously checked-out resources that it was forced to check-in before the save.- Specified by:
notifyProjectSaveDonein interfaceDesignerModuleHook- Overrides:
notifyProjectSaveDonein classAbstractDesignerModuleHook
-
initSearchProviders
protected void initSearchProviders()
-
notifyDesignableContainerClosed
public void notifyDesignableContainerClosed(ResourcePath path)
-
setContext
public void setContext(DesignerContext context)
-
getProject
public DesignableProject getProject()
-
getRoot
public FPMIApp getRoot()
-
getHandler
public VisionDesignerImpl.Handler getHandler()
-
getClientEventScriptEditor
public ClientScriptEditor getClientEventScriptEditor()
-
addNewTemplate
public void addNewTemplate(ResourcePath parentFolder, int width, int height)
-
addNewTemplate
public void addNewTemplate(ResourcePath parentFolder, int width, int height, java.util.function.Consumer<ResourcePath> onAfter)
-
addNewTemplate
public void addNewTemplate(ResourcePath parentFolder, VisionTemplate template)
-
addNewTemplate
public void addNewTemplate(ResourcePath parentFolder, VisionTemplate template, java.util.function.Consumer<ResourcePath> onFinished)
-
newMainWindow
public void newMainWindow(ResourcePath folder)
-
newMainWindow
public void newMainWindow(ResourcePath folder, java.util.function.Consumer<ResourcePath> onFinished)
-
createNewMainWindow
public FPMIWindow createNewMainWindow()
-
createNewDockedWindow
public FPMIWindow createNewDockedWindow(int width, int height, int side)
-
newDockedWindow
public void newDockedWindow(ResourcePath parentFolder)
-
newDockedWindow
public void newDockedWindow(ResourcePath parentFolder, java.util.function.Consumer<ResourcePath> onFinished)
-
createNewPopupWindow
public FPMIWindow createNewPopupWindow()
-
newPopupWindow
public void newPopupWindow(ResourcePath parentFolder)
-
newPopupWindow
public void newPopupWindow(ResourcePath parentFolder, java.util.function.Consumer<ResourcePath> onFinished)
-
addNewWindow
public void addNewWindow(ResourcePath parentFolder, FPMIWindow newWindow)
-
windowResourceBuilder
public java.util.function.Consumer<ProjectResourceBuilder> windowResourceBuilder(FPMIWindow newWindow, boolean openOnStartIfFirst)
-
addNewWindow
public void addNewWindow(ResourcePath parentFolder, FPMIWindow newWindow, java.util.function.Consumer<ResourcePath> onFinished)
Adds a new window to theFHMIAppbeing designed
-
getSelectedWindowFolder
public ResourcePath getSelectedWindowFolder()
Returns the id of the currently selected window folder in the project browser tree.
-
getSelectedTemplateFolder
public ResourcePath getSelectedTemplateFolder()
-
getRootFolderNode
public WindowFolderNode getRootFolderNode()
-
serializeProjectResource
public byte[] serializeProjectResource(java.lang.Object obj) throws SerializationExceptionSerializes an object to be stored in a ProjectResource. Serialized code is stored in a GZipped byte array.- Throws:
SerializationException
-
addExtensibleBindingType
public void addExtensibleBindingType(BindingType binding)
Description copied from interface:VisionClientInterfaceAdds a new binding type to be used in the extensible binding system- Specified by:
addExtensibleBindingTypein interfaceVisionClientInterface
-
getBindingType
public BindingType getBindingType(java.lang.String bindingTypeKey)
- Specified by:
getBindingTypein interfaceVisionClientInterface
-
getNavUtil
public NavUtilities getNavUtil()
Description copied from interface:VisionClientInterfaceGets the NavUtilities (for the primary desktop- Specified by:
getNavUtilin interfaceVisionClientInterface
-
getNavUtil
public NavUtilities getNavUtil(java.lang.String desktopHandle)
Description copied from interface:VisionClientInterfaceGets the NavUtilities for a secondary desktop, by handle- Specified by:
getNavUtilin interfaceVisionClientInterface
-
getGuiUtil
public WindowUtilities getGuiUtil()
- Specified by:
getGuiUtilin interfaceVisionClientInterface
-
getGuiUtil
public WindowUtilities getGuiUtil(java.lang.String desktopHandle)
Description copied from interface:VisionClientInterfaceGets the WindowUtilities for a secondary desktop, by handle- Specified by:
getGuiUtilin interfaceVisionClientInterface
-
getExtensibleBindings
public java.util.Collection<BindingType> getExtensibleBindings()
-
getPalette
public PaletteImpl getPalette()
- Specified by:
getPalettein interfaceVisionDesignerInterface
-
addNewWindow
public void addNewWindow(ResourcePath parentFolder, int width, int height, java.util.function.Consumer<ResourcePath> onAfter)
Description copied from interface:VisionDesignerInterfaceAdds a new window to theFPMIAppbeing designed- Specified by:
addNewWindowin interfaceVisionDesignerInterface
-
cloneComponent
public java.awt.Component cloneComponent(java.awt.Component comp)
- Specified by:
cloneComponentin interfaceVisionDesignerInterface
-
getCurrentPrefs
public DesignerPrefs getCurrentPrefs()
- Specified by:
getCurrentPrefsin interfaceVisionDesignerInterface
-
getWorkspace
public WindowWorkspace getWorkspace()
- Specified by:
getWorkspacein interfaceVisionDesignerInterface
-
setWorkspace
public void setWorkspace(WindowWorkspace workspace)
-
getDesignerContext
public DesignerContext getDesignerContext()
- Specified by:
getDesignerContextin interfaceVisionDesignerInterface
-
openBindingDialog
public void openBindingDialog(java.awt.Component component, java.lang.String propertyName) throws NotBindableExceptionDescription copied from interface:VisionDesignerInterfaceOpens the binding dialog for a given component. The component should be on a window that is currently open for design- Specified by:
openBindingDialogin interfaceVisionDesignerInterface- Throws:
NotBindableException
-
configureBinding
public boolean configureBinding(java.awt.Component component, java.lang.String property, BindingConfiguration configuration) throws java.lang.ExceptionDescription copied from interface:VisionDesignerInterfaceConfigures a new property binding for the component.property using the given configuration. The binding type is defined by the configuration'sBindingConfiguration.getBindingType()- Specified by:
configureBindingin interfaceVisionDesignerInterface- Throws:
java.lang.Exception
-
-