package com.cipres.mrBayesPlugin; import java.io.File; import java.io.FileInputStream; import java.util.Collection; import java.util.List; import java.util.Properties; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import javax.swing.JPanel; import org.json.simple.JSONArray; import org.json.simple.parser.ParseException; import org.ngbw.directclient.CiApplication; import org.ngbw.directclient.CiCipresException; import org.ngbw.directclient.CiClient; import org.ngbw.directclient.CiJob; import com.biomatters.geneious.publicapi.components.Dialogs; import com.biomatters.geneious.publicapi.components.Dialogs.DialogOptions; import com.biomatters.geneious.publicapi.documents.AnnotatedPluginDocument; import com.biomatters.geneious.publicapi.plugin.DocumentOperation; import com.biomatters.geneious.publicapi.plugin.DocumentOperationException; import com.biomatters.geneious.publicapi.plugin.DocumentSelectionSignature; import com.biomatters.geneious.publicapi.plugin.GeneiousActionOptions; import com.biomatters.geneious.publicapi.plugin.Options; import com.cipres.mrBayesPlugin.models.UserModel; import com.cipres.mrBayesPlugin.ui.JobManagePanel; import com.cipres.mrBayesPlugin.ui.LoginOptions; import com.cipres.mrBayesPlugin.utilities.CipresUtilities; import com.cipres.mrBayesPlugin.utilities.ClientCheckResult; import com.cipres.mrBayesPlugin.utilities.DataHandlingUtilities; import jebl.util.CompositeProgressListener; import jebl.util.ProgressListener; /** * * @author rjzheng * @author mgujral * */ public class CipresMrBayesToolbar extends DocumentOperation{ private static final String APPNAME = CipresUtilities.APPNAME; public static CiClient myClient; private JPanel displayGuiModel; private static Boolean newUser = true; public static Boolean getNewUser(){ return newUser; } public String getUniqueId(){ return "MrBayes_CIPRES"; } @Override public GeneiousActionOptions getActionOptions() { return new GeneiousActionOptions("CIPRES...").setMainMenuLocation(GeneiousActionOptions.MainMenu.Tools); } @Override public String getHelp() { return "Getting Help"; } @Override public DocumentSelectionSignature[] getSelectionSignatures() { return new DocumentSelectionSignature[0]; } //Geneious will display the Options returned from this method as a panel before calling performOperation(). public Options getOptions(final AnnotatedPluginDocument[] docs) throws DocumentOperationException{ Options options = null; if (CipresUtilities.isNewUser()) { options = new LoginOptions(); options.canRestoreDefaults(); } return options; } //This is the method that does all the work. Geneious passes a list of the documents that were selected when the user //started the operation, a progressListener, and the options panel that we returned in the getOptionsPanel() method above. public List performOperation(AnnotatedPluginDocument[] docs, ProgressListener progress, Options options) throws DocumentOperationException{ String userName = null; String password = null; if (options instanceof LoginOptions) { LoginOptions loginOpt = (LoginOptions)options; userName = loginOpt.getUsername(); password = loginOpt.getPassword(); } newUser = !CipresMrBayesInitializer.Instance.initialize(userName, password); if (newUser == false) { myClient = CipresMrBayesInitializer.Instance.getMyClient(); JSONArray retJSONArray = null; try { retJSONArray = CipresUtilities.updateList(myClient, CipresMrBayesInitializer.Instance.getUserModel()); } catch (ParseException e) { e.printStackTrace(); } displayGuiModel = new JobManagePanel().createPanel(retJSONArray); DialogOptions dialogOptions = new DialogOptions(new Dialogs.DialogAction[] {Dialogs.CANCEL}, "CIPRES jobs"); Dialogs.showDialog(dialogOptions, displayGuiModel); } return null; } public static void main(String[] args){ CiApplication app = CiApplication.getInstance(); String url = app.getRestUrl(); String appName = app.getAppname(); String appKey = app.getAppKey(); System.out.println("URL: " + url); System.out.println("AppName: " + appName); System.out.println("AppKey: " + appKey); } }