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 gov.nasa.jpl.mbee.mdk.MMSSyncPlugin;
import gov.nasa.jpl.mbee.mdk.util.TicketUtils;
import gov.nasa.jpl.mbee.mdk.mms.sync.jms.JMSSyncProjectEventListenerAdapter;
import gov.nasa.jpl.mbee.mdk.mms.sync.status.SyncStatusConfigurator;
import java.awt.event.ActionEvent;
public class MMSLogoutAction extends MDAction {
private static final long serialVersionUID = 1L;
public static final String DEFAULT_ID = "Logout";
public MMSLogoutAction() {
super(DEFAULT_ID, "Logout", null, null);
}
@Override
public void actionPerformed(ActionEvent e) {
logoutAction(Application.getInstance().getProject());
}
public static void logoutAction(Project project) {
TicketUtils.clearTicket(project);
Application.getInstance().getGUILog().log("[INFO] MMS logout complete.");
ActionsStateUpdater.updateActionsState();
if (!JMSSyncProjectEventListenerAdapter.getProjectMapping(project).getJmsMessageListener().isDisabled()) {
JMSSyncProjectEventListenerAdapter.closeJMS(project);
Application.getInstance().getGUILog().log("[WARNING] " + project.getName() + " - Reverting to offline mode. All changes will be saved in the model until reconnected. Reason: You must be logged into MMS.");
}
SyncStatusConfigurator.getSyncStatusAction().update();
}
@Override
public void updateState() {
setEnabled(TicketUtils.isTicketSet(Application.getInstance().getProject()));
}
}