import jalview.gui.AlignFrame;
import jalview.gui.AlignViewport;
import jalview.gui.AlignmentPanel;
+import jalview.gui.CalculationChooser;
import jalview.gui.Desktop;
import jalview.gui.Preferences;
import jalview.gui.PromptUserConfig;
import jalview.io.NewickFile;
import jalview.io.gff.SequenceOntologyFactory;
import jalview.javascript.JSFunctionExec;
-import jalview.javascript.JalviewLiteJsApi;
import jalview.javascript.MouseOverStructureListener;
import jalview.renderer.seqfeatures.FeatureRenderer;
import jalview.schemes.ColourSchemeI;
* @author $author$
* @version $Revision$
*/
-public class Jalview implements ApplicationSingletonI, JalviewLiteJsApi
+public class Jalview implements ApplicationSingletonI, JalviewJSApi
{
public static Jalview getInstance()
public String appletResourcePath;
- private JalviewAppLoader appLoader;
+ JalviewAppLoader appLoader;
protected JSFunctionExec jsFunctionExec;
getInstance().doMain(args);
}
+ /**
+ * Allow an outside entity to initiate the second half of argument parsing
+ * (only).
+ *
+ * @param args
+ * @return null is good
+ */
+ @Override
+ public Object parseArguments(String[] args)
+ {
+
+ try
+ {
+ ArgsParser aparser = new ArgsParser(args);
+ return parseArguments(aparser, false);
+ } catch (Throwable t)
+ {
+ return t;
+ }
+ }
+
private static void logClass(String name)
{
// BH - for event debugging in JavaScript
}
}
+ parseArguments(aparser, true);
+ }
+
+ private Object parseArguments(ArgsParser aparser,
+ boolean isStartup)
+ {
+ boolean isJS = Platform.isJS();
+
+ Desktop desktop = (headless ? null : Desktop.getInstance());
// script to execute after all loading is
// completed one way or another
// extract groovy argument and execute if necessary
}
desktop.setInBatchMode(false);
}
+
+ return null;
}
private boolean checkStartVamas(ArgsParser aparser)
// the Jalview specific remnants can now be imported into the new
// session at the user's leisure.
Cache.log.info(
- "Skipping Push for import of data into existing vamsas session."); // TODO:
+ "Skipping Push for import of data into existing vamsas session.");
+ // TODO:
// enable
// this
// when
appLoader.load(app);
}
+ /**
+ *
+ * @see jalview.bin.JalviewLiteJsApi#getSelectedSequences()
+ */
@Override
public String getSelectedSequences()
{
- // TODO Auto-generated method stub
- return null;
+ return getSelectedSequencesFrom(getCurrentAlignFrame());
}
+ /**
+ *
+ * @see jalview.bin.JalviewLiteJsApi#getSelectedSequences(java.lang.String)
+ */
@Override
public String getSelectedSequences(String sep)
{
- // TODO Auto-generated method stub
- return null;
+ return getSelectedSequencesFrom(getCurrentAlignFrame(), sep);
}
+ /**
+ *
+ * @see jalview.bin.JalviewLiteJsApi#getSelectedSequencesFrom(jalview.appletgui
+ * .AlignFrame)
+ */
@Override
public String getSelectedSequencesFrom(AlignFrameI alf)
{
- // TODO Auto-generated method stub
- return null;
+ return getSelectedSequencesFrom(alf, null);
}
+ /**
+ *
+ * @see jalview.bin.JalviewLiteJsApi#getSelectedSequencesFrom(jalview.appletgui
+ * .AlignFrame, java.lang.String)
+ */
@Override
- public String getSelectedSequencesFrom(AlignFrameI alf,
- String sep)
+ public String getSelectedSequencesFrom(AlignFrameI alf, String sep)
{
- // TODO Auto-generated method stub
- return null;
+ return appLoader.getSelectedSequencesFrom(alf, sep);
}
+ /**
+ *
+ * @see jalview.bin.JalviewLiteJsApi#getSelectedSequencesFrom(jalview.appletgui
+ * .AlignFrame, java.lang.String)
+ */
@Override
public void highlight(String sequenceId, String position,
String alignedPosition)
{
- // TODO Auto-generated method stub
-
+ highlightIn(getCurrentAlignFrame(), sequenceId, position,
+ alignedPosition);
}
@Override
public void highlightIn(AlignFrameI alf,
String sequenceId, String position, String alignedPosition)
{
- // TODO Auto-generated method stub
-
+ appLoader.highlightIn(alf, sequenceId, position,
+ alignedPosition);
}
@Override
public void select(String sequenceIds, String columns)
{
- // TODO Auto-generated method stub
-
+ selectIn(getCurrentAlignFrame(), sequenceIds, columns, null);
}
@Override
public void select(String sequenceIds, String columns, String sep)
{
- // TODO Auto-generated method stub
-
+ selectIn(getCurrentAlignFrame(), sequenceIds, columns, sep);
}
@Override
public void selectIn(AlignFrameI alf, String sequenceIds,
String columns)
{
- // TODO Auto-generated method stub
-
+ selectIn(alf, sequenceIds, columns, null);
}
@Override
public void selectIn(AlignFrameI alf, String sequenceIds,
String columns, String sep)
{
- // TODO Auto-generated method stub
-
+ appLoader.selectIn(alf, sequenceIds, columns, sep);
}
@Override
public String getSelectedSequencesAsAlignment(String format,
String suffix)
{
- // TODO Auto-generated method stub
- return null;
+ return getSelectedSequencesAsAlignmentFrom(getCurrentAlignFrame(),
+ format, suffix);
}
@Override
public String getSelectedSequencesAsAlignmentFrom(
- AlignFrameI alf, String format, String suffix)
+ AlignFrameI alf, String format, String sep)
{
- // TODO Auto-generated method stub
- return null;
+ return appLoader.getSelectedSequencesAsAlignmentFrom(alf, format, sep);
}
@Override
public String getAlignmentOrder()
{
- // TODO Auto-generated method stub
- return null;
+ return getAlignmentFrom(getCurrentAlignFrame(), null);
}
@Override
public String getAlignmentOrderFrom(AlignFrameI alf)
{
- // TODO Auto-generated method stub
- return null;
+ return getAlignmentFrom(alf, null);
}
@Override
public String getAlignmentOrderFrom(AlignFrameI alf,
String sep)
{
- // TODO Auto-generated method stub
- return null;
+ return appLoader.getAlignmentOrderFrom(alf, sep);
}
@Override
public String orderBy(String order, String undoName)
{
- // TODO Auto-generated method stub
- return null;
+ return orderBy(order, undoName, null);
}
@Override
public String orderBy(String order, String undoName, String sep)
{
- // TODO Auto-generated method stub
- return null;
+ return orderAlignmentBy(getCurrentAlignFrame(), order, undoName, sep);
}
@Override
public String orderAlignmentBy(AlignFrameI alf,
String order, String undoName, String sep)
{
- // TODO Auto-generated method stub
- return null;
+ return appLoader.orderAlignmentBy(alf, order, undoName, sep);
}
@Override
public String getAlignment(String format)
{
- // TODO Auto-generated method stub
- return null;
+ return getAlignmentFrom(null, format, null);
}
@Override
public String getAlignmentFrom(AlignFrameI alf,
String format)
{
- // TODO Auto-generated method stub
- return null;
+ return getAlignmentFrom(alf, format, null);
}
@Override
public String getAlignment(String format, String suffix)
{
- // TODO Auto-generated method stub
- return null;
+ return getAlignmentFrom(getCurrentAlignFrame(), format, suffix);
}
@Override
public String getAlignmentFrom(AlignFrameI alf,
String format, String suffix)
{
- // TODO Auto-generated method stub
- return null;
+ return appLoader.getAlignmentFrom(alf, format, suffix);
}
@Override
public AlignFrameI loadAlignment(String text,
String title)
{
- // TODO Auto-generated method stub
- return null;
+ return appLoader.loadAlignment(text, AlignFrame.DEFAULT_WIDTH,
+ AlignFrame.DEFAULT_HEIGHT, title);
}
@Override
public boolean addPdbFile(AlignFrameI alFrame,
String sequenceId, String pdbEntryString, String pdbFile)
{
- // TODO Auto-generated method stub
- return false;
+ return appLoader.addPdbFile(alFrame, sequenceId, pdbEntryString,
+ pdbFile);
}
@Override
public void scrollViewToIn(AlignFrameI alf,
String topRow, String leftHandColumn)
{
- // TODO Auto-generated method stub
-
+ appLoader.scrollViewToIn(alf, topRow, leftHandColumn);
}
@Override
public void scrollViewToRowIn(AlignFrameI alf,
String topRow)
{
- // TODO Auto-generated method stub
-
+ appLoader.scrollViewToRowIn(alf, topRow);
}
@Override
public void scrollViewToColumnIn(AlignFrameI alf,
String leftHandColumn)
{
- // TODO Auto-generated method stub
-
+ appLoader.scrollViewToColumnIn(alf, leftHandColumn);
}
@Override
public String getFeatureGroups()
{
- // TODO Auto-generated method stub
- return null;
+ return getFeatureGroupsOn(getCurrentAlignFrame());
}
@Override
public String getFeatureGroupsOn(AlignFrameI alf)
{
- // TODO Auto-generated method stub
- return null;
+ return appLoader.getFeatureGroupsOn(alf);
}
@Override
public String getFeatureGroupsOfState(boolean visible)
{
- // TODO Auto-generated method stub
- return null;
+ return getFeatureGroupsOfStateOn(getCurrentAlignFrame(), visible);
}
@Override
public String getFeatureGroupsOfStateOn(AlignFrameI alf,
boolean visible)
{
- // TODO Auto-generated method stub
- return null;
+ return appLoader.getFeatureGroupsOfStateOn(alf, visible);
}
@Override
public void setFeatureGroupStateOn(AlignFrameI alf,
String groups, boolean state)
{
- // TODO Auto-generated method stub
-
+ setFeatureGroupStateOn(alf, groups, state);
}
@Override
public void setFeatureGroupState(String groups, boolean state)
{
- // TODO Auto-generated method stub
-
+ appLoader.setFeatureGroupStateOn(getCurrentAlignFrame(), groups, state);
}
@Override
public String getSeparator()
{
- // TODO Auto-generated method stub
- return null;
+ return appLoader.getSeparator();
}
@Override
public void setSeparator(String separator)
{
- // TODO Auto-generated method stub
-
+ appLoader.setSeparator(separator);
}
@Override
public String getJsMessage(String messageclass, String viewId)
{
- // TODO Auto-generated method stub
+ // see http://www.jalview.org/examples/jalviewLiteJs.html
return null;
}
+ /**
+ * Open a new Tree panel on the desktop statically. Params are standard (not
+ * set by Groovy). No dialog is opened.
+ *
+ * @param af
+ * @param treeType
+ * @param modelName
+ * @return null, or the string "label.you_need_at_least_n_sequences" if number
+ * of sequences selected is inappropriate
+ */
+ @Override
+ public Object openTreePanel(AlignFrame af, String treeType,
+ String modelName)
+ {
+ return CalculationChooser.openTreePanel(af, treeType, modelName, null);
+ }
+
+ /**
+ * public static method for JalviewJS API to open a PCAPanel without
+ * necessarily using a dialog.
+ *
+ * @param af
+ * @param modelName
+ * @return the PCAPanel, or the string "label.you_need_at_least_n_sequences"
+ * if number of sequences selected is inappropriate
+ */
+ @Override
+ public Object openPcaPanel(AlignFrame af, String modelName)
+ {
+ return CalculationChooser.openPcaPanel(af, modelName, null);
+ }
+
}