package gov.nasa.jpl.mbee.mdk.mms.actions; import com.nomagic.magicdraw.actions.ActionsStateUpdater; import com.nomagic.magicdraw.actions.MDAction; import com.nomagic.magicdraw.core.Application; import com.nomagic.magicdraw.core.Project; import com.nomagic.magicdraw.esi.EsiUtils; import com.nomagic.magicdraw.teamwork.application.TeamworkUtils; import gov.nasa.jpl.mbee.mdk.MMSSyncPlugin; import gov.nasa.jpl.mbee.mdk.mms.sync.jms.JMSSyncProjectEventListenerAdapter; import gov.nasa.jpl.mbee.mdk.util.TicketUtils; import gov.nasa.jpl.mbee.mdk.util.Utils; import java.awt.event.ActionEvent; public class MMSLoginAction extends MDAction { private static final long serialVersionUID = 1L; public static final String DEFAULT_ID = "Login"; public MMSLoginAction() { super(DEFAULT_ID, "Login", null, null); } @Override public void actionPerformed(ActionEvent e) { loginAction(Application.getInstance().getProject()); } public static boolean loginAction(Project project) { if (project == null) { Utils.showPopupMessage("You need to have a project open first!"); return false; } if (project.isRemote() && (TeamworkUtils.getLoggedUserName() == null && EsiUtils.getTeamworkService().getConnectedUser() == null)) { Utils.showPopupMessage("You need to be logged in to Teamwork Cloud first!"); return false; } if (!TicketUtils.acquireMmsTicket(project)) { return false; } ActionsStateUpdater.updateActionsState(); Application.getInstance().getGUILog().log("[INFO] MMS login complete."); JMSSyncProjectEventListenerAdapter.closeJMS(project); JMSSyncProjectEventListenerAdapter.initializeJMS(project); return true; } }