X-Git-Url: http://source.jalview.org/gitweb/?p=jalview.git;a=blobdiff_plain;f=src%2Fjalview%2Fbin%2FJalview.java;h=84fec4569df2aad30c78c0ea9171e28f16861235;hp=ac6fcd666b8c8168915f461fea6dcbb8334d40b9;hb=418006c3714eb8da78234660698231597eb90fb1;hpb=fbb0bb25258ea06802fd971ef94a89687a382996 diff --git a/src/jalview/bin/Jalview.java b/src/jalview/bin/Jalview.java index ac6fcd6..84fec45 100755 --- a/src/jalview/bin/Jalview.java +++ b/src/jalview/bin/Jalview.java @@ -20,14 +20,20 @@ */ package jalview.bin; +import jalview.api.AlignFrameI; import jalview.api.AlignViewportI; import jalview.api.JalviewApp; +import jalview.api.StructureSelectionManagerProvider; import jalview.bin.ApplicationSingletonProvider.ApplicationSingletonI; +import jalview.datamodel.ColumnSelection; +import jalview.datamodel.HiddenColumns; import jalview.datamodel.PDBEntry; +import jalview.datamodel.SequenceGroup; import jalview.datamodel.SequenceI; import jalview.ext.so.SequenceOntology; import jalview.gui.AlignFrame; import jalview.gui.AlignViewport; +import jalview.gui.AlignmentPanel; import jalview.gui.Desktop; import jalview.gui.Preferences; import jalview.gui.PromptUserConfig; @@ -44,13 +50,19 @@ import jalview.io.HtmlSvgOutput; import jalview.io.IdentifyFile; 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; import jalview.schemes.ColourSchemeProperty; +import jalview.structure.SelectionSource; +import jalview.structure.VamsasSource; import jalview.util.MessageManager; import jalview.util.Platform; import jalview.ws.jws2.Jws2Discoverer; +import java.applet.AppletContext; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; @@ -68,6 +80,7 @@ import java.security.PermissionCollection; import java.security.Permissions; import java.security.Policy; import java.util.HashMap; +import java.util.Hashtable; import java.util.Map; import java.util.Vector; import java.util.logging.ConsoleHandler; @@ -79,6 +92,7 @@ import javax.swing.UIManager; import groovy.lang.Binding; import groovy.util.GroovyScriptEngine; +import netscape.javascript.JSObject; /** * Main class for Jalview Application
@@ -128,6 +142,10 @@ public class Jalview implements ApplicationSingletonI, JalviewLiteJsApi public String appletResourcePath; + private JalviewAppLoader appLoader; + + protected JSFunctionExec jsFunctionExec; + public static AlignFrame getCurrentAlignFrame() { return getInstance().currentAlignFrame; @@ -1226,6 +1244,12 @@ public class Jalview implements ApplicationSingletonI, JalviewLiteJsApi */ public void quit() { + if (jsFunctionExec != null) + { + jsFunctionExec.tidyUp(); + jsFunctionExec = null; + } + if (desktop != null) { desktop.quit(); @@ -1266,6 +1290,10 @@ public class Jalview implements ApplicationSingletonI, JalviewLiteJsApi private boolean alignPDBStructures; // From JalviewLite; not implemented + private Hashtable> jsmessages; + + private Hashtable jshashes; + @Override public String getParameter(String name) { @@ -1377,9 +1405,112 @@ public class Jalview implements ApplicationSingletonI, JalviewLiteJsApi "Jalview applet interface newFeatureSettings not implemented"); } + private Vector jsExecQueue; + + @Override + public Vector getJsExecQueue(JSFunctionExec exec) + { + jsFunctionExec = exec; + return (jsExecQueue == null ? (jsExecQueue = new Vector<>()) + : jsExecQueue); + } + + @Override + public AppletContext getAppletContext() + { + // TODO Auto-generated method stub + return null; + } + + @Override + public boolean isJsfallbackEnabled() + { + // TODO Auto-generated method stub + return false; + } + + @Override + public JSObject getJSObject() + { + // TODO Auto-generated method stub + return null; + } + + @Override + public StructureSelectionManagerProvider getStructureSelectionManagerProvider() + { + // TODO Auto-generated method stub + return null; + } + + @Override + public void updateColoursFromMouseOver(Object source, + MouseOverStructureListener mouseOverStructureListener) + { + // TODO Auto-generated method stub + + } + + @Override + public Object[] getSelectionForListener(SequenceGroup seqsel, + ColumnSelection colsel, HiddenColumns hidden, + SelectionSource source, Object alignFrame) + { + // TODO Auto-generated method stub + return null; + } + + @Override + public String arrayToSeparatorList(String[] array) + { + return appLoader.arrayToSeparatorList(array); + } + + @Override + public Hashtable getJSHashes() + { + return (jshashes == null + ? (jshashes = new Hashtable<>()) + : jshashes); + } + + @Override + public Hashtable> getJSMessages() + { + return (jsmessages == null + ? (jsmessages = new Hashtable<>()) + : jsmessages); + } + + @Override + public Object getFrameForSource(VamsasSource source) + { + if (source != null) + { + AlignFrame af; + if (source instanceof jalview.gui.AlignViewport + && source == (af = getCurrentAlignFrame()).getViewport()) + { + // should be valid if it just generated an event! + return af; + } + // TODO: ensure that if '_af' is specified along with a handler + // function, then only events from that alignFrame are sent to that + // function + } + return null; + } + + @Override + public FeatureRenderer getNewFeatureRenderer(AlignViewportI vp) + { + return new jalview.gui.FeatureRenderer((AlignmentPanel) vp); + } + }; - new JalviewAppLoader(true).load(app); + appLoader = new JalviewAppLoader(true); + appLoader.load(app); } @Override @@ -1397,14 +1528,14 @@ public class Jalview implements ApplicationSingletonI, JalviewLiteJsApi } @Override - public String getSelectedSequencesFrom(jalview.appletgui.AlignFrame alf) + public String getSelectedSequencesFrom(AlignFrameI alf) { // TODO Auto-generated method stub return null; } @Override - public String getSelectedSequencesFrom(jalview.appletgui.AlignFrame alf, + public String getSelectedSequencesFrom(AlignFrameI alf, String sep) { // TODO Auto-generated method stub @@ -1420,7 +1551,7 @@ public class Jalview implements ApplicationSingletonI, JalviewLiteJsApi } @Override - public void highlightIn(jalview.appletgui.AlignFrame alf, + public void highlightIn(AlignFrameI alf, String sequenceId, String position, String alignedPosition) { // TODO Auto-generated method stub @@ -1442,7 +1573,7 @@ public class Jalview implements ApplicationSingletonI, JalviewLiteJsApi } @Override - public void selectIn(jalview.appletgui.AlignFrame alf, String sequenceIds, + public void selectIn(AlignFrameI alf, String sequenceIds, String columns) { // TODO Auto-generated method stub @@ -1450,7 +1581,7 @@ public class Jalview implements ApplicationSingletonI, JalviewLiteJsApi } @Override - public void selectIn(jalview.appletgui.AlignFrame alf, String sequenceIds, + public void selectIn(AlignFrameI alf, String sequenceIds, String columns, String sep) { // TODO Auto-generated method stub @@ -1467,7 +1598,7 @@ public class Jalview implements ApplicationSingletonI, JalviewLiteJsApi @Override public String getSelectedSequencesAsAlignmentFrom( - jalview.appletgui.AlignFrame alf, String format, String suffix) + AlignFrameI alf, String format, String suffix) { // TODO Auto-generated method stub return null; @@ -1481,14 +1612,14 @@ public class Jalview implements ApplicationSingletonI, JalviewLiteJsApi } @Override - public String getAlignmentOrderFrom(jalview.appletgui.AlignFrame alf) + public String getAlignmentOrderFrom(AlignFrameI alf) { // TODO Auto-generated method stub return null; } @Override - public String getAlignmentOrderFrom(jalview.appletgui.AlignFrame alf, + public String getAlignmentOrderFrom(AlignFrameI alf, String sep) { // TODO Auto-generated method stub @@ -1510,7 +1641,7 @@ public class Jalview implements ApplicationSingletonI, JalviewLiteJsApi } @Override - public String orderAlignmentBy(jalview.appletgui.AlignFrame alf, + public String orderAlignmentBy(AlignFrameI alf, String order, String undoName, String sep) { // TODO Auto-generated method stub @@ -1525,7 +1656,7 @@ public class Jalview implements ApplicationSingletonI, JalviewLiteJsApi } @Override - public String getAlignmentFrom(jalview.appletgui.AlignFrame alf, + public String getAlignmentFrom(AlignFrameI alf, String format) { // TODO Auto-generated method stub @@ -1540,7 +1671,7 @@ public class Jalview implements ApplicationSingletonI, JalviewLiteJsApi } @Override - public String getAlignmentFrom(jalview.appletgui.AlignFrame alf, + public String getAlignmentFrom(AlignFrameI alf, String format, String suffix) { // TODO Auto-generated method stub @@ -1555,7 +1686,7 @@ public class Jalview implements ApplicationSingletonI, JalviewLiteJsApi } @Override - public void loadAnnotationFrom(jalview.appletgui.AlignFrame alf, + public void loadAnnotationFrom(AlignFrameI alf, String annotation) { // TODO Auto-generated method stub @@ -1570,7 +1701,7 @@ public class Jalview implements ApplicationSingletonI, JalviewLiteJsApi } @Override - public boolean loadFeaturesFrom(jalview.appletgui.AlignFrame alf, + public boolean loadFeaturesFrom(AlignFrameI alf, String features, boolean autoenabledisplay) { // TODO Auto-generated method stub @@ -1585,7 +1716,7 @@ public class Jalview implements ApplicationSingletonI, JalviewLiteJsApi } @Override - public String getFeaturesFrom(jalview.appletgui.AlignFrame alf, + public String getFeaturesFrom(AlignFrameI alf, String format) { // TODO Auto-generated method stub @@ -1600,44 +1731,42 @@ public class Jalview implements ApplicationSingletonI, JalviewLiteJsApi } @Override - public String getAnnotationFrom(jalview.appletgui.AlignFrame alf) + public String getAnnotationFrom(AlignFrameI alf) { // TODO Auto-generated method stub return null; } @Override - public jalview.appletgui.AlignFrame newView() + public AlignFrameI newView() { // TODO Auto-generated method stub return null; } @Override - public jalview.appletgui.AlignFrame newView(String name) + public AlignFrameI newView(String name) { // TODO Auto-generated method stub return null; } @Override - public jalview.appletgui.AlignFrame newViewFrom( - jalview.appletgui.AlignFrame alf) + public AlignFrameI newViewFrom(AlignFrameI alf) { // TODO Auto-generated method stub return null; } @Override - public jalview.appletgui.AlignFrame newViewFrom( - jalview.appletgui.AlignFrame alf, String name) + public AlignFrameI newViewFrom(AlignFrameI alf, String name) { // TODO Auto-generated method stub return null; } @Override - public jalview.appletgui.AlignFrame loadAlignment(String text, + public AlignFrameI loadAlignment(String text, String title) { // TODO Auto-generated method stub @@ -1652,7 +1781,7 @@ public class Jalview implements ApplicationSingletonI, JalviewLiteJsApi } @Override - public void setMouseoverListener(jalview.appletgui.AlignFrame af, + public void setMouseoverListener(AlignFrameI af, String listener) { // TODO Auto-generated method stub @@ -1667,7 +1796,7 @@ public class Jalview implements ApplicationSingletonI, JalviewLiteJsApi } @Override - public void setSelectionListener(jalview.appletgui.AlignFrame af, + public void setSelectionListener(AlignFrameI af, String listener) { // TODO Auto-generated method stub @@ -1682,7 +1811,7 @@ public class Jalview implements ApplicationSingletonI, JalviewLiteJsApi } @Override - public void removeJavascriptListener(jalview.appletgui.AlignFrame af, + public void removeJavascriptListener(AlignFrameI af, String listener) { // TODO Auto-generated method stub @@ -1698,7 +1827,7 @@ public class Jalview implements ApplicationSingletonI, JalviewLiteJsApi } @Override - public boolean addPdbFile(jalview.appletgui.AlignFrame alFrame, + public boolean addPdbFile(AlignFrameI alFrame, String sequenceId, String pdbEntryString, String pdbFile) { // TODO Auto-generated method stub @@ -1706,7 +1835,7 @@ public class Jalview implements ApplicationSingletonI, JalviewLiteJsApi } @Override - public void scrollViewToIn(jalview.appletgui.AlignFrame alf, + public void scrollViewToIn(AlignFrameI alf, String topRow, String leftHandColumn) { // TODO Auto-generated method stub @@ -1714,7 +1843,7 @@ public class Jalview implements ApplicationSingletonI, JalviewLiteJsApi } @Override - public void scrollViewToRowIn(jalview.appletgui.AlignFrame alf, + public void scrollViewToRowIn(AlignFrameI alf, String topRow) { // TODO Auto-generated method stub @@ -1722,7 +1851,7 @@ public class Jalview implements ApplicationSingletonI, JalviewLiteJsApi } @Override - public void scrollViewToColumnIn(jalview.appletgui.AlignFrame alf, + public void scrollViewToColumnIn(AlignFrameI alf, String leftHandColumn) { // TODO Auto-generated method stub @@ -1737,7 +1866,7 @@ public class Jalview implements ApplicationSingletonI, JalviewLiteJsApi } @Override - public String getFeatureGroupsOn(jalview.appletgui.AlignFrame alf) + public String getFeatureGroupsOn(AlignFrameI alf) { // TODO Auto-generated method stub return null; @@ -1751,7 +1880,7 @@ public class Jalview implements ApplicationSingletonI, JalviewLiteJsApi } @Override - public String getFeatureGroupsOfStateOn(jalview.appletgui.AlignFrame alf, + public String getFeatureGroupsOfStateOn(AlignFrameI alf, boolean visible) { // TODO Auto-generated method stub @@ -1759,7 +1888,7 @@ public class Jalview implements ApplicationSingletonI, JalviewLiteJsApi } @Override - public void setFeatureGroupStateOn(jalview.appletgui.AlignFrame alf, + public void setFeatureGroupStateOn(AlignFrameI alf, String groups, boolean state) { // TODO Auto-generated method stub