d6be32d965e726f1ca42d2e4b31e7be137eefcaa
[jalview.git] / src / jalview / appletgui / AppletJmolBinding.java
1 /**
2  * 
3  */
4 package jalview.appletgui;
5
6 import java.awt.Container;
7 import java.util.BitSet;
8
9 import jalview.datamodel.PDBEntry;
10 import jalview.datamodel.SequenceI;
11
12 import org.jmol.api.JmolAppConsoleInterface;
13 import org.jmol.api.JmolViewer;
14 import org.jmol.popup.JmolPopup;
15
16 class AppletJmolBinding extends jalview.ext.jmol.JalviewJmolBinding
17 {
18
19   /**
20    * Window that contains the bound Jmol instance
21    */
22   private AppletJmol appletJmolBinding;
23
24   public AppletJmolBinding(AppletJmol appletJmol, PDBEntry[] pdbentry, SequenceI[][] seq,
25           String[][] chains, String protocol)
26   {
27     super(pdbentry, seq, chains, protocol);
28     appletJmolBinding = appletJmol;
29   }
30
31   public jalview.api.FeatureRenderer getFeatureRenderer()
32   {
33     if (appletJmolBinding.ap.av.showSequenceFeatures)
34     {
35       if (appletJmolBinding.fr == null)
36       {
37         appletJmolBinding.fr = new jalview.appletgui.FeatureRenderer(appletJmolBinding.ap.av);
38       }
39
40       appletJmolBinding.fr.transferSettings(appletJmolBinding.ap.seqPanel.seqCanvas.getFeatureRenderer());
41     }
42
43     return appletJmolBinding.fr;
44   }
45
46   public jalview.api.SequenceRenderer getSequenceRenderer()
47   {
48     return new SequenceRenderer(appletJmolBinding.ap.av);
49   }
50
51   public void sendConsoleEcho(String strEcho)
52   {
53     if (appletJmolBinding.scriptWindow == null)
54       appletJmolBinding.showConsole(true);
55
56     appletJmolBinding.history.append("\n" + strEcho);
57   }
58
59   public void sendConsoleMessage(String strStatus)
60   {
61     if (appletJmolBinding.history != null && strStatus != null
62             && !strStatus.equals("Script completed"))
63     {
64       appletJmolBinding.history.append("\n" + strStatus);
65     }
66   }
67
68   public void showUrl(String url, String target)
69   {
70     appletJmolBinding.ap.alignFrame.showURL(url, target);
71
72   }
73
74   public void refreshGUI()
75   {
76     appletJmolBinding.updateTitleAndMenus();
77   }
78   
79   public void updateColours(Object source)
80   {
81     AlignmentPanel ap = (AlignmentPanel) source;
82     colourBySequence(ap.av.getShowSequenceFeatures(), ap.av.alignment);
83   }
84
85   public void showUrl(String url)
86   {
87     try
88     {
89       appletJmolBinding.ap.av.applet.getAppletContext().showDocument(new java.net.URL(url),
90               "jmol");
91     } catch (java.net.MalformedURLException ex)
92     {
93     }
94   }
95
96   public void newJmolPopup(boolean translateLocale, String menuName, boolean asPopup)
97   {
98     
99     jmolpopup = JmolPopup.newJmolPopup(viewer,translateLocale, menuName,asPopup);
100   }
101
102   public void notifyScriptTermination(String strStatus, int msWalltime)
103   {
104     // do nothing.
105   }
106
107   public void selectionChanged(BitSet arg0)
108   {
109     // TODO Auto-generated method stub
110     
111   }
112
113   public void refreshPdbEntries()
114   {
115     // TODO Auto-generated method stub
116     
117   }
118
119   @Override
120   public void showConsole(boolean show)
121   {
122     appletJmolBinding.showConsole(show);
123   }
124
125   @Override
126   protected JmolAppConsoleInterface createJmolConsole(JmolViewer viewer2,
127           Container consolePanel, String buttonsToShow)
128   {
129     // TODO Auto-generated method stub
130     return null;
131   }
132
133 }