Class DesignerProjectTreeImpl
java.lang.Object
com.inductiveautomation.ignition.common.project.AbstractProject
com.inductiveautomation.ignition.designer.project.DesignerProjectTreeImpl
- All Implemented Interfaces:
Project,DesignableProject,Serializable
- See Also:
-
Field Summary
Fields inherited from interface com.inductiveautomation.ignition.common.project.Project
GLOBAL_PROJECT_NAME, PIPELINE_PROJECT_NAME, PROJECT_NAME_PATTERN, SFC_PROJECT_NAME -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidapplyChange(ProjectChange change) Apply a set of changes, pulled from the gateway, to this project.browse(ResourcePath path) voidcreateResource(ProjectResource resource) Create a new resource.voiddeleteResource(ResourcePath path) Delete the resource at a given path.booleandiscardChanges(ResourcePath path) Discards any local changes for a path.voiddiscardOverrides(ResourcePath path) Discards changes made to overridden resourcesGet a List of all resources in this project and all parent projects.getConflicts(Collection<ChangeOperation> changes) Return the project name where the given ResourcePath is actually defined.Get theProjectManifestfor this Project.getName()Gets the snapshots from the effective project, in order of project inheritance (leaf project last)getResource(ResourcePath path) Finds the resource at the given path, using an effective view of the resources in this project chain.booleanisChanged(ResourcePath path) booleanisConflict(ResourcePath path) booleanisInherited(ResourcePath path) booleanisLocal(ResourcePath path) booleanisOverridable(ResourcePath path) booleanisOverridden(ResourcePath path) voidmodifyResource(ProjectResource resource) Modify an existing resource.voidnotifyPushComplete(List<ChangeOperation> changesPushed) Notify that a push was completed.voidRemoves allProjectResourceListeners.voidrenameResource(ResourcePath sourcePath, String newName) Rename a resource at the given path.protected ProjectDiff.EffectiveDiffCall this after one or more resources or manifests have been changed.Methods inherited from class com.inductiveautomation.ignition.common.project.AbstractProject
addProjectResourceListener, getEffectiveResources, getListeners, getResources, getResourcesOfType, hasResourcesOfType, removeProjectResourceListenerMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.inductiveautomation.ignition.designer.project.DesignableProject
createOrModify, createOrModify, createResourceSafe, createResourceSafe, deleteResource, getLocalResource, getLocalResource, isProtected, modifyResource, modifyResourceIfLocal, renameResource, setProtectedMethods inherited from interface com.inductiveautomation.ignition.common.project.Project
addProjectResourceListener, getDescription, getParent, getResource, getResources, getResourcesOfType, getSingletonResource, getTitle, hasResourcesOfType, isEnabled, isInheritable, isRunnable, removeProjectResourceListener
-
Constructor Details
-
DesignerProjectTreeImpl
-
-
Method Details
-
updateEffectiveState
Description copied from class:AbstractProjectCall this after one or more resources or manifests have been changed. This will calculate the effective change to the resources and notify listeners.- Overrides:
updateEffectiveStatein classAbstractProject
-
getResource
Description copied from interface:ProjectFinds the resource at the given path, using an effective view of the resources in this project chain.- Specified by:
getResourcein interfaceProject- Parameters:
path- Not null- Returns:
- The matching project resource or empty if not found.
-
browse
-
modifyResource
Description copied from interface:DesignableProjectModify an existing resource. Must already exist as a local resource, otherwise this will throw anResourceNotFoundException- Specified by:
modifyResourcein interfaceDesignableProject- Throws:
ResourceNotFoundException
-
createResource
Description copied from interface:DesignableProjectCreate a new resource.Will also create any folders needed along the new resource's path.
- Specified by:
createResourcein interfaceDesignableProject- Throws:
NameInUseException- if the resource's name is is already in use by a local sibling.ResourceNamingException
-
deleteResource
Description copied from interface:DesignableProjectDelete the resource at a given path.- Specified by:
deleteResourcein interfaceDesignableProject- Throws:
ResourceNotFoundException
-
renameResource
Description copied from interface:DesignableProjectRename a resource at the given path.- Specified by:
renameResourcein interfaceDesignableProject- Throws:
ResourceNamingException
-
discardChanges
Description copied from interface:DesignableProjectDiscards any local changes for a path.- Specified by:
discardChangesin interfaceDesignableProject- Returns:
- true if there were changes to discard, false if there were no changes in the first place.
-
discardOverrides
Description copied from interface:DesignableProjectDiscards changes made to overridden resources- Specified by:
discardOverridesin interfaceDesignableProject
-
isLocal
- Specified by:
isLocalin interfaceDesignableProject- Returns:
- True if there is a project resource at the given path that defined in the local project.
-
isChanged
- Specified by:
isChangedin interfaceDesignableProject- Returns:
- True if there is a resource at the given path that has been locally altered.
-
isInherited
- Specified by:
isInheritedin interfaceDesignableProject- Returns:
- True if there is a resource at the given path that is inherited from a parent project
-
isOverridable
- Specified by:
isOverridablein interfaceDesignableProject- Returns:
- False if there is an inherited resource that does not allow overrides. True otherwise.
-
isOverridden
- Specified by:
isOverriddenin interfaceDesignableProject- Returns:
- True if there is a resource at the given path defined in this project that is overriding a resource from a parent project at the same path.
-
isConflict
- Specified by:
isConflictin interfaceDesignableProject- Returns:
- True if there is a resource with a conflicting (but differently cased) name at the given path - see
NameCollisionException
-
getDefiningProject
Description copied from interface:DesignableProjectReturn the project name where the given ResourcePath is actually defined.- Specified by:
getDefiningProjectin interfaceDesignableProject
-
getName
-
getManifest
Description copied from interface:ProjectGet theProjectManifestfor this Project.- Specified by:
getManifestin interfaceProject- Returns:
- the
ProjectManifestfor this Project.
-
getProjectInheritanceStructure
- Specified by:
getProjectInheritanceStructurein interfaceProject- Returns:
- A list of all of the projects and their manifests that comprise the inheritance chain of this project. This list is ordered in ascending inheritance order, from leaf project first to super-most project last.
-
getAllResources
Description copied from interface:ProjectGet a List of all resources in this project and all parent projects.This includes resources belonging to parent projects in the inheritance chain if this is a "stack" of projects. This means that there may be multiple resources for any given
ResourcePath.This project instance may not contain all resources that exist for the project on disk, depending on the
ResourceFilterused to load it.- Specified by:
getAllResourcesin interfaceProject- Returns:
- all the resources belonging to this project instance, including resources from parent projects.
-
getProjectSnapshots
Description copied from interface:ProjectGets the snapshots from the effective project, in order of project inheritance (leaf project last)- Specified by:
getProjectSnapshotsin interfaceProject- Returns:
- A list of ProjectSnapshots, one per project represented in the effective project.
-
getChanges
- Specified by:
getChangesin interfaceDesignableProject- Returns:
- The change operations that have occurred on this project since loaded or since the last applyChanges
-
getConflicts
- Specified by:
getConflictsin interfaceDesignableProject- Parameters:
changes- Diff operations applicable to the local project- Returns:
- a collection of the change operations that conflict with local changes
-
applyChange
Apply a set of changes, pulled from the gateway, to this project. For local resources, this will update the "local" reference of the ResourceTreeNode so that further calls to get snapshots will reflect these changes.- Parameters:
change- The change collection to apply.- Throws:
NameCollisionException
-
notifyPushComplete
Notify that a push was completed. This is a signal to the project that some resources may no longer be considered modified.- Parameters:
changesPushed- A list of the changes that were pushed, which may be a subset of those retrieved viagetChanges()
-
removeAllProjectResourceListeners
public void removeAllProjectResourceListeners()Removes allProjectResourceListeners. This should only be used when shutting down a designer instance or switching the projects in the designer.
-