Class ProjectsManager
java.lang.Object
com.nomagic.magicdraw.core.project.ProjectsManager
- All Implemented Interfaces:
ProjectPersistenceManager
Stores and manages multiple projects.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addCreatedProject
(Project project) Adds just created project to this manager, but this project activation event will not be fired, because it is still not loaded or initialized from template.void
addProjectListener
(ProjectEventListener listener) Adds new project listener.void
Closes current project.void
closeProject
(Project project) Closes given projectvoid
Close active project without trying to save it.void
closeProjectNoSave
(Project project) Close project without trying to save it.boolean
Test if given path exists in projects list.Creates new project.createProjectFromTemplate
(String templatePath) Creates a new project from the given template.void
exportModule
(Project prj, Collection packages, String description, ProjectDescriptor module) Export local (not teamwork) module into given descriptorcom.nomagic.ci.persistence.IAttachedProject
findAttachedProject
(Project project, ProjectDescriptor projectDescriptor) Find used module according given project descriptor.findProject
(ProjectDescriptor projectDescriptor) Find loaded project according given project descriptor.Find project to activatevoid
fireProjectActivated
(Project project) Notifies project event listeners that the given project is activated.void
fireProjectActivatedFromGUI
(Project project) Method fires project activated.void
fireProjectClosed
(Project project) Method fires project closed event.void
fireProjectCreated
(Project project) Method fires event when project was created.void
fireProjectDeactivated
(Project project) Notifies project event listeners that the given project is deactivated.void
fireProjectModelLoaded
(Project project) Fire event when project model is loaded but diagrams are still not loaded.void
fireProjectOpened
(Project project) Method fires event when project was opened.void
fireProjectOpenedFromGUI
(Project project) Method fires project open.void
Fire event when project or module started using new module.void
Fire event when project or module stops using module.void
fireProjectPartLoaded
(Project project, com.nomagic.ci.persistence.IProject storage) Fire event when project model or its part is loaded with diagrams.void
fireProjectPartRemoved
(com.nomagic.ci.persistence.IProject storage) Fire event when project used project is removed from projectvoid
fireProjectPreActivated
(Project project) Notifies project event listeners about project pre activation.void
fireProjectPreClosed
(Project project) Method fires project pre closed event.void
fireProjectPreClosedFinal
(Project project) Method fires project pre closed final event.void
fireProjectPreDeactivated
(Project project) Notifies project event listeners about project pre deactivation.void
fireProjectPreSaved
(Project project, boolean teamwork) Method fires project pre saved event.void
fireProjectReplaced
(Project oldProject, Project newProject) Method fires the ProjectReplaced notificationvoid
fireProjectSaved
(Project project, boolean teamwork) Method fires ProjectSaved event.void
fireProjectUsedFromGUI
(Project project, com.nomagic.ci.persistence.IProject using, com.nomagic.ci.persistence.IAttachedProject used) Returns active open project.getEsiProject
(String projectID, String version) Returns ESI project if it is opened and it meets search criteria.Getter for unique project name : Untitled+numbergetNameForProject
(String base, boolean avoidNumber) Getter for unique project name : "base"+numberstatic String
getPreferredProjectPath
(String projectName, Project relatedProject) Looks for possible path for project with a given name.getProject
(String path) Searches for given path in projects list and returns the project.getProject
(Predicate<Project> filter) Look for a project for a given predicate.getProject
(org.eclipse.emf.common.util.URI uri) Searches for given uri in projects list and returns the project.getProjectByFileName
(String fileName) Look for a project with a given fileName.getProjectByName
(String name) Look for a project with a given name.Returns list of open projects.static String
Returns recent file path or examples directory pathgetTeamworkProject
(String projectID, String version) Look for a teamwork project with a given id and versiongetTeamworkProject
(String projectID, String version, boolean checkLatest) Look for a teamwork project with a given id and versionvoid
importModule
(Project project, ProjectDescriptor descriptor) Import module into project from given descriptorboolean
Import project.boolean
isProjectActive
(Project project) Method checks if given project is active at this time.boolean
isProjectLoaded
(Project project) Get if project is fully loaded.void
loadProject
(ProjectDescriptor descriptor, boolean silent) Loads project from location, described in a project descriptor.void
loadProject
(ProjectDescriptor descriptor, ProgressStatus status) Loads new project from given descriptor.void
reloadModule
(Project project, ProjectDescriptor projectDescriptor) Reloads module.void
removeProject
(Project project) Removes project from storage, does not activate previous one.void
removeProjectListener
(ProjectEventListener listener) Removes project listener.void
reportError
(String message, Exception ex) boolean
saveModule
(Project project, com.nomagic.ci.persistence.IAttachedProject module, boolean silent, boolean temporalSave) Save module from current project into given location.boolean
saveModule
(Project project, com.nomagic.ci.persistence.IAttachedProject module, boolean silent, ProgressStatus status) Saves module without any additional dependencies checking.boolean
saveModule
(Project project, com.nomagic.ci.persistence.IAttachedProject module, boolean silent, ProgressStatus status, boolean temporalSave) Saves module without any additional dependencies checking.boolean
saveModule
(Project project, com.nomagic.ci.persistence.IAttachedProject module, boolean silent, ProgressStatus status, URI saveTo) Saves module without any additional dependencies checking.boolean
saveModule
(Project project, com.nomagic.ci.persistence.IAttachedProject module, boolean silent, ProgressStatus status, URI saveTo, boolean temporalSave) Saves module without any additional dependencies checking.boolean
saveProject
(ProjectDescriptor descriptor, boolean silent) Saves project into location specified by descriptor.boolean
saveProject
(ProjectDescriptor descriptor, ProgressStatus status, boolean silent) Saves or commits project.void
setActiveProject
(Project project) Sets given project as active.void
sharePackage
(Project project, List<Package> packages) Deprecated.void
sharePackage
(Project project, List<Package> packages, String description) Share given list of packages in project.void
unloadModule
(Project project, ProjectDescriptor moduleDescriptor) Unload modulevoid
updateEnvironment
(Project project) Updates GUI by given project.void
updateEnvironment
(Project project, boolean wasAlreadyActivated) Updates GUI by given project.boolean
useModule
(Project project, ProjectDescriptor module) Use module in given project from given descriptor.
-
Constructor Details
-
ProjectsManager
public ProjectsManager()Constructor.
-
-
Method Details
-
getProjects
Returns list of open projects.- Returns:
- list of open projects.
-
updateEnvironment
Updates GUI by given project.- Parameters:
project
- project project
-
updateEnvironment
Updates GUI by given project.- Parameters:
project
- project given projectwasAlreadyActivated
- if project was already activated
-
isProjectActive
Method checks if given project is active at this time.- Parameters:
project
- project to check.- Returns:
- true if given project is active.
-
setActiveProject
Sets given project as active. Updates GUI.- Parameters:
project
- the project to be set as active.
-
addCreatedProject
Adds just created project to this manager, but this project activation event will not be fired, because it is still not loaded or initialized from template.- Parameters:
project
- created project
-
getActiveProject
Returns active open project.- Returns:
- active project.
-
findProjectToActivate
Find project to activate- Returns:
- active project.
-
removeProject
Removes project from storage, does not activate previous one.- Parameters:
project
- project project
-
getProjectByName
Look for a project with a given name.- Parameters:
name
- the project name- Returns:
- found project with given name or a null
-
getProjectByFileName
Look for a project with a given fileName.- Parameters:
fileName
- the project fileName- Returns:
- found project with given fileName or a null
-
getProject
Look for a project for a given predicate.- Parameters:
filter
- predicate- Returns:
- found project or a null. Active project is returned if it matches given predicate
-
getProject
Searches for given path in projects list and returns the project.- Parameters:
path
- path- Returns:
- found project or null
-
getProject
Searches for given uri in projects list and returns the project.- Parameters:
uri
- uri- Returns:
- found project or null
-
getTeamworkProject
Look for a teamwork project with a given id and version- Parameters:
projectID
- the project nameversion
- project version (-1 if not specified)- Returns:
- found project
-
getTeamworkProject
@CheckForNull public Project getTeamworkProject(String projectID, @CheckForNull String version, boolean checkLatest) Look for a teamwork project with a given id and version- Parameters:
projectID
- the project nameversion
- project version (-1 if not specified)checkLatest
- flag if to check latest version or not, if version is null, it is not counted as other version if flag is false- Returns:
- found project
-
getEsiProject
Returns ESI project if it is opened and it meets search criteria.- Parameters:
projectID
- remote project id.version
- project version.- Returns:
- project or null.
-
contains
Test if given path exists in projects list.- Parameters:
path
- path- Returns:
- true if exists
-
getNameForProject
Getter for unique project name : Untitled+number- Returns:
- unique project name
-
getNameForProject
Getter for unique project name : "base"+number- Parameters:
base
- base part of unique nameavoidNumber
- avoid numbers- Returns:
- unique name
-
addProjectListener
Adds new project listener.- Parameters:
listener
- listener to be added.
-
removeProjectListener
Removes project listener.- Parameters:
listener
- listener to be removed.
-
loadProject
Loads new project from given descriptor.- Specified by:
loadProject
in interfaceProjectPersistenceManager
- Parameters:
descriptor
- descriptorstatus
- status monitor
-
loadProject
Loads project from location, described in a project descriptor. Loading is done on EDT.- Specified by:
loadProject
in interfaceProjectPersistenceManager
- Parameters:
descriptor
- the project descriptor.silent
- if true, loads without GUI interruptions.
-
saveProject
Saves project into location specified by descriptor.- Specified by:
saveProject
in interfaceProjectPersistenceManager
- Parameters:
descriptor
- the project descriptor.silent
- if true, saves without GUI interruptions.
-
saveProject
Description copied from interface:ProjectPersistenceManager
Saves or commits project.- Specified by:
saveProject
in interfaceProjectPersistenceManager
- Parameters:
descriptor
- descriptor of project to save.status
- status to display operation status.silent
- true if no gui should be shown durring save/commmit- Returns:
- false if saving fails.
-
createProject
Creates new project.- Returns:
- created project.
-
createProjectFromTemplate
Creates a new project from the given template.- Parameters:
templatePath
- absolute template path- Returns:
- created project.
-
closeProjectNoSave
public void closeProjectNoSave()Close active project without trying to save it. -
closeProjectNoSave
Close project without trying to save it.- Parameters:
project
- project to close
-
closeProject
@OpenApi public void closeProject()Closes current project. -
closeProject
Closes given project- Parameters:
project
- project to close
-
useModule
Use module in given project from given descriptor.Need to update
ProjectOptions
before using local module:
String moduleDir = moduleFile.getParent();
ProjectOptions projectOptions = project.getOptions();
Listdirectories = projectOptions.getModulesDirectories(true);
if (!directories.contains(moduleDir))
{
projectOptions.addModuleDirectory(moduleDir);
}- Specified by:
useModule
in interfaceProjectPersistenceManager
- Parameters:
project
- projectmodule
- module- Returns:
- true if module was used
-
reloadModule
Reloads module.- Specified by:
reloadModule
in interfaceProjectPersistenceManager
- Parameters:
project
- the project.projectDescriptor
- the ProjectDescriptor of the module.
-
importModule
@OpenApi public void importModule(Project project, ProjectDescriptor descriptor) throws ReadOnlyElementException Import module into project from given descriptor- Specified by:
importModule
in interfaceProjectPersistenceManager
- Parameters:
project
- projectdescriptor
- descriptor- Throws:
ReadOnlyElementException
- if user has no rights to perform this action.
-
exportModule
@OpenApi public void exportModule(Project prj, Collection packages, String description, ProjectDescriptor module) Export local (not teamwork) module into given descriptor- Specified by:
exportModule
in interfaceProjectPersistenceManager
- Parameters:
prj
- current projectpackages
- "shared" packages in projectdescription
- module descriptionmodule
- module location descriptor
-
saveModule
@OpenApi public boolean saveModule(Project project, com.nomagic.ci.persistence.IAttachedProject module, boolean silent, boolean temporalSave) Save module from current project into given location.- Specified by:
saveModule
in interfaceProjectPersistenceManager
- Parameters:
project
- projectmodule
- module to savesilent
- do not show UI messagestemporalSave
- do not change module location after save- Returns:
- true if module was saved
-
saveModule
@OpenApi public boolean saveModule(Project project, com.nomagic.ci.persistence.IAttachedProject module, boolean silent, ProgressStatus status) Saves module without any additional dependencies checking.- Specified by:
saveModule
in interfaceProjectPersistenceManager
- Parameters:
project
- projectmodule
- module to savesilent
- save in silent modestatus
- progress status- Returns:
- true if operation was successful
-
saveModule
@OpenApi public boolean saveModule(Project project, com.nomagic.ci.persistence.IAttachedProject module, boolean silent, ProgressStatus status, boolean temporalSave) Saves module without any additional dependencies checking.- Specified by:
saveModule
in interfaceProjectPersistenceManager
- Parameters:
project
- projectmodule
- module to savesilent
- save in silent modestatus
- progress statustemporalSave
- do not change module location after save- Returns:
- true if operation was successful
-
saveModule
@OpenApi public boolean saveModule(Project project, com.nomagic.ci.persistence.IAttachedProject module, boolean silent, ProgressStatus status, URI saveTo) Saves module without any additional dependencies checking.- Parameters:
project
- projectmodule
- module to savestatus
- statussilent
- save in silent modesaveTo
- where to save module, can be null, then module is saved to module.getURI() location- Returns:
- true if operation was successful
-
saveModule
@OpenApi public boolean saveModule(Project project, com.nomagic.ci.persistence.IAttachedProject module, boolean silent, @CheckForNull ProgressStatus status, @CheckForNull URI saveTo, boolean temporalSave) Saves module without any additional dependencies checking.- Parameters:
project
- projectmodule
- module to savesilent
- save in silent modestatus
- progress statussaveTo
- where to save module, can be null, then module is saved to module.getURI() locationtemporalSave
- do not change module location after save- Returns:
- true if operation was successful
-
getRecentFilePath
Returns recent file path or examples directory path- Returns:
- recent file path
-
getPreferredProjectPath
@CheckForNull public static String getPreferredProjectPath(String projectName, Project relatedProject) Looks for possible path for project with a given name. Searches among recent projects for project with a given name. Also looks in given project (if not null) dir and modules path for a file with a given name.- Parameters:
projectName
- the given project namerelatedProject
- related project. Maybe be null- Returns:
- preferred path to save a project
-
unloadModule
Unload module- Specified by:
unloadModule
in interfaceProjectPersistenceManager
- Parameters:
project
- projectmoduleDescriptor
- module descriptor
-
isProjectLoaded
Get if project is fully loaded. We can not work with data while project is loading. Since project does not provide synchronization mechanism, we may get concurrent modification exceptions. Once project becomes "loaded" it stays loaded until closed.- Parameters:
project
- project- Returns:
- true when particular project is loaded and open - when PROJECT_OPENED event is fired.
-
findAttachedProject
@OpenApi @CheckForNull public com.nomagic.ci.persistence.IAttachedProject findAttachedProject(Project project, ProjectDescriptor projectDescriptor) Find used module according given project descriptor.- Parameters:
project
- project using module.projectDescriptor
- project descriptor of module.- Returns:
- found attached project or null
-
findProject
Find loaded project according given project descriptor.- Parameters:
projectDescriptor
- project descriptor.- Returns:
null
if project not found.
-
importProject
Import project.- Specified by:
importProject
in interfaceProjectPersistenceManager
- Parameters:
pd
- project descriptor to import.- Returns:
- true if project was imported
-
fireProjectModelLoaded
Fire event when project model is loaded but diagrams are still not loaded.- Parameters:
project
- project which model is loaded.
-
fireProjectPartLoaded
Fire event when project model or its part is loaded with diagrams. Event is fired when part of model is loaded and after teamwork update part is loaded and elements is removed.- Parameters:
project
- the projectstorage
- the part of project is loaded.
-
fireProjectPartRemoved
public void fireProjectPartRemoved(com.nomagic.ci.persistence.IProject storage) Fire event when project used project is removed from project- Parameters:
storage
- the part of project which is removed
-
fireProjectPartAttached
Fire event when project or module started using new module.- Parameters:
usage
- added usage.
-
fireProjectPartDetached
Fire event when project or module stops using module.- Parameters:
usage
- removed usage.
-
reportError
-
fireProjectActivated
Notifies project event listeners that the given project is activated.- Parameters:
project
- project that is activated.
-
fireProjectPreActivated
Notifies project event listeners about project pre activation.- Parameters:
project
- project that will be activated.
-
fireProjectDeactivated
Notifies project event listeners that the given project is deactivated.- Parameters:
project
- project that is deactivated.
-
fireProjectPreDeactivated
Notifies project event listeners about project pre deactivation.- Parameters:
project
- project that will be deactivated.
-
fireProjectOpened
Method fires event when project was opened.- Parameters:
project
- project which was opened.
-
fireProjectCreated
Method fires event when project was created.- Parameters:
project
- project which was created.
-
fireProjectSaved
Method fires ProjectSaved event.- Parameters:
project
- saved project.teamwork
- true if project saved in teamwork.
-
fireProjectPreSaved
Method fires project pre saved event.- Parameters:
project
- saved project.teamwork
- true if project saved in teamwork.
-
fireProjectReplaced
Method fires the ProjectReplaced notification- Parameters:
oldProject
- project, which was replacednewProject
- project, which replaced the old project- See Also:
-
fireProjectClosed
Method fires project closed event.- Parameters:
project
- closed project.
-
fireProjectPreClosed
Method fires project pre closed event.- Parameters:
project
- closed project.
-
fireProjectPreClosedFinal
Method fires project pre closed final event.- Parameters:
project
- closed project.
-
fireProjectOpenedFromGUI
Method fires project open.- Parameters:
project
- closed project.
-
fireProjectActivatedFromGUI
Method fires project activated.- Parameters:
project
- closed project.
-
fireProjectUsedFromGUI
public void fireProjectUsedFromGUI(Project project, com.nomagic.ci.persistence.IProject using, com.nomagic.ci.persistence.IAttachedProject used)
-
sharePackage(com.nomagic.magicdraw.core.Project, java.util.List, String)
.