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 TypeMethodDescriptionvoidaddCreatedProject(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.voidaddProjectListener(ProjectEventListener listener) Adds new project listener.voidCloses current project.voidcloseProject(Project project) Closes given projectvoidClose active project without trying to save it.voidcloseProjectNoSave(Project project) Close project without trying to save it.booleanTest if given path exists in projects list.Creates new project.createProjectFromTemplate(String templatePath) Creates a new project from the given template.voidexportModule(Project prj, Collection packages, String description, ProjectDescriptor module) Export local (not teamwork) module into given descriptorcom.nomagic.ci.persistence.IAttachedProjectfindAttachedProject(Project project, ProjectDescriptor projectDescriptor) Find used module according given project descriptor.findProject(ProjectDescriptor projectDescriptor) Find loaded project according given project descriptor.Find project to activatevoidfireProjectActivated(Project project) Notifies project event listeners that the given project is activated.voidfireProjectActivatedFromGUI(Project project) Method fires project activated.voidfireProjectClosed(Project project) Method fires project closed event.voidfireProjectCreated(Project project) Method fires event when project was created.voidfireProjectDeactivated(Project project) Notifies project event listeners that the given project is deactivated.voidfireProjectModelLoaded(Project project) Fire event when project model is loaded but diagrams are still not loaded.voidfireProjectOpened(Project project) Method fires event when project was opened.voidfireProjectOpenedFromGUI(Project project) Method fires project open.voidFire event when project or module started using new module.voidFire event when project or module stops using module.voidfireProjectPartLoaded(Project project, com.nomagic.ci.persistence.IProject storage) Fire event when project model or its part is loaded with diagrams.voidfireProjectPartRemoved(com.nomagic.ci.persistence.IProject storage) Fire event when project used project is removed from projectvoidfireProjectPreActivated(Project project) Notifies project event listeners about project pre activation.voidfireProjectPreClosed(Project project) Method fires project pre closed event.voidfireProjectPreClosedFinal(Project project) Method fires project pre closed final event.voidfireProjectPreDeactivated(Project project) Notifies project event listeners about project pre deactivation.voidfireProjectPreSaved(Project project, boolean teamwork) Method fires project pre saved event.voidfireProjectReplaced(Project oldProject, Project newProject) Method fires the ProjectReplaced notificationvoidfireProjectSaved(Project project, boolean teamwork) Method fires ProjectSaved event.voidfireProjectUsedFromGUI(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 StringgetPreferredProjectPath(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 StringReturns 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 versionvoidimportModule(Project project, ProjectDescriptor descriptor) Import module into project from given descriptorbooleanImport project.booleanisProjectActive(Project project) Method checks if given project is active at this time.booleanisProjectLoaded(Project project) Get if project is fully loaded.voidloadProject(ProjectDescriptor descriptor, boolean silent) Loads project from location, described in a project descriptor.voidloadProject(ProjectDescriptor descriptor, ProgressStatus status) Loads new project from given descriptor.voidreloadModule(Project project, ProjectDescriptor projectDescriptor) Reloads module.voidremoveProject(Project project) Removes project from storage, does not activate previous one.voidremoveProjectListener(ProjectEventListener listener) Removes project listener.voidreportError(String message, Exception ex) booleansaveModule(Project project, com.nomagic.ci.persistence.IAttachedProject module, boolean silent, boolean temporalSave) Save module from current project into given location.booleansaveModule(Project project, com.nomagic.ci.persistence.IAttachedProject module, boolean silent, ProgressStatus status) Saves module without any additional dependencies checking.booleansaveModule(Project project, com.nomagic.ci.persistence.IAttachedProject module, boolean silent, ProgressStatus status, boolean temporalSave) Saves module without any additional dependencies checking.booleansaveModule(Project project, com.nomagic.ci.persistence.IAttachedProject module, boolean silent, ProgressStatus status, URI saveTo) Saves module without any additional dependencies checking.booleansaveModule(Project project, com.nomagic.ci.persistence.IAttachedProject module, boolean silent, ProgressStatus status, URI saveTo, boolean temporalSave) Saves module without any additional dependencies checking.booleansaveProject(ProjectDescriptor descriptor, boolean silent) Saves project into location specified by descriptor.booleansaveProject(ProjectDescriptor descriptor, ProgressStatus status, boolean silent) Saves or commits project.voidsetActiveProject(Project project) Sets given project as active.voidsharePackage(Project project, List<Package> packages) Deprecated.voidsharePackage(Project project, List<Package> packages, String description) Share given list of packages in project.voidunloadModule(Project project, ProjectDescriptor moduleDescriptor) Unload modulevoidupdateEnvironment(Project project) Updates GUI by given project.voidupdateEnvironment(Project project, boolean wasAlreadyActivated) Updates GUI by given project.booleanuseModule(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:
loadProjectin interfaceProjectPersistenceManager- Parameters:
descriptor- descriptorstatus- status monitor
-
loadProject
Loads project from location, described in a project descriptor. Loading is done on EDT.- Specified by:
loadProjectin interfaceProjectPersistenceManager- Parameters:
descriptor- the project descriptor.silent- if true, loads without GUI interruptions.
-
saveProject
Saves project into location specified by descriptor.- Specified by:
saveProjectin interfaceProjectPersistenceManager- Parameters:
descriptor- the project descriptor.silent- if true, saves without GUI interruptions.
-
saveProject
Description copied from interface:ProjectPersistenceManagerSaves or commits project.- Specified by:
saveProjectin 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
ProjectOptionsbefore using local module:
String moduleDir = moduleFile.getParent();
ProjectOptions projectOptions = project.getOptions();
Listdirectories = projectOptions.getModulesDirectories(true);
if (!directories.contains(moduleDir))
{
projectOptions.addModuleDirectory(moduleDir);
}- Specified by:
useModulein interfaceProjectPersistenceManager- Parameters:
project- projectmodule- module- Returns:
- true if module was used
-
reloadModule
Reloads module.- Specified by:
reloadModulein 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:
importModulein 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:
exportModulein 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:
saveModulein 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:
saveModulein 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:
saveModulein 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:
unloadModulein 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:
nullif project not found.
-
importProject
Import project.- Specified by:
importProjectin 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).