Working with projects from Teamwork Server

Use the com.nomagic.magicdraw.teamwork.application.TeamworkUtils utility class to work with projects from Teamwork Server.

The Open API provides Teamwork Server accessing methods. The example of the code:

// check the logged user
if (!user.equals(TeamworkUtils.getLoggedUserName()))
{
// login to the teamwork server
if (!TeamworkUtils.login(server, -1, user, password))
{
// login failed return;
}
}
// load a teamwork project
ProjectDescriptor projectDescriptor = TeamworkUtils.getRemoteProjectDescriptorByQualifiedName(projectName);
ProjectsManager projectsManager = Application.getInstance().getProjectsManager();
projectsManager.loadProject(projectDescriptor, true); Project project = Application.getInstance().getProject();
Model model = project.getModel();
// get locked by a user
Collection userLockedElements = TeamworkUtils.getLockedElement(project, user);
if (!userLockedElements.contains(model))
{
// a model is not locked by a user, get all locked
Collection allLockedElements = TeamworkUtils.getLockedElement(project, null);
if (!allLockedElements.contains(model))
{
// a model is not locked, lock it
TeamworkUtils.lockElement(project, model, false);
}
}
SessionManager.getInstance().createSession("Rename Model");
// change a name
model.setName("MyModel");
SessionManager.getInstance().closeSession();
// unlcok and commit (because do not discard)
TeamworkUtils.unlockElement(project, model, false, false);
projectsManager.closeProject();
// logout
TeamworkUtils.logout();

You can find the code examples in <modeling tool installation directory>\openapi\examples\teamwork