06ad83b97465cd83df948160f8a99823c2fae7e7
[jalviewjs.git] / unused / appletgui / ExtJmol.java
1 /*\r
2  * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)\r
3  * Copyright (C) $$Year-Rel$$ The Jalview Authors\r
4  * \r
5  * This file is part of Jalview.\r
6  * \r
7  * Jalview is free software: you can redistribute it and/or\r
8  * modify it under the terms of the GNU General Public License \r
9  * as published by the Free Software Foundation, either version 3\r
10  * of the License, or (at your option) any later version.\r
11  *  \r
12  * Jalview is distributed in the hope that it will be useful, but \r
13  * WITHOUT ANY WARRANTY; without even the implied warranty \r
14  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR \r
15  * PURPOSE.  See the GNU General Public License for more details.\r
16  * \r
17  * You should have received a copy of the GNU General Public License\r
18  * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.\r
19  * The Jalview Authors are detailed in the 'AUTHORS' file.\r
20  */\r
21 package jalview.appletgui;\r
22 \r
23 import jalview.api.AlignmentViewPanel;\r
24 import jalview.api.FeatureRenderer;\r
25 import jalview.api.SequenceRenderer;\r
26 import jalview.datamodel.PDBEntry;\r
27 import jalview.datamodel.SequenceI;\r
28 import jalview.ext.jmol.JalviewJmolBinding;\r
29 \r
30 import java.awt.Container;\r
31 import java.util.ArrayList;\r
32 import java.util.List;\r
33 import java.util.Map;\r
34 import java.util.Vector;\r
35 \r
36 import org.jmol.api.JmolAppConsoleInterface;\r
37 import org.jmol.java.BS;\r
38 import org.jmol.viewer.Viewer;\r
39 \r
40 /**\r
41  * bind an alignment view to an external Jmol instance.\r
42  * \r
43  * @author JimP\r
44  * \r
45  */\r
46 public class ExtJmol extends JalviewJmolBinding\r
47 {\r
48 \r
49   private AlignmentPanel ap;\r
50 \r
51   protected ExtJmol(jalview.appletgui.AlignFrame alframe,\r
52           PDBEntry[] pdbentry, SequenceI[][] seq, String[][] chains,\r
53           String protocol)\r
54   {\r
55     super(alframe.alignPanel.getStructureSelectionManager(), pdbentry, seq,\r
56             chains, protocol);\r
57   }\r
58 \r
59   public ExtJmol(Viewer viewer, AlignmentPanel alignPanel,\r
60           SequenceI[][] seqs)\r
61   {\r
62     super(alignPanel.getStructureSelectionManager(), seqs, viewer);\r
63     ap = alignPanel;\r
64     notifyFileLoaded(null, null, null, null, 0);\r
65   }\r
66 \r
67   private void notifyFileLoaded(Object object, Object object2, Object object3,\r
68                         Object object4, int i) {\r
69                 // TODO Auto-generated method stub\r
70                 \r
71         }\r
72 \r
73         public void updateColours(Object source)\r
74   {\r
75 \r
76     // TODO Auto-generated method stub\r
77 \r
78   }\r
79 \r
80   public void showUrl(String arg0)\r
81   {\r
82     showUrl(arg0, "jmol");\r
83   }\r
84 \r
85   @Override\r
86   public FeatureRenderer getFeatureRenderer(AlignmentViewPanel alignment)\r
87   {\r
88     AlignmentPanel ap = (AlignmentPanel) alignment;\r
89     if (ap.av.isShowSequenceFeatures())\r
90     {\r
91       return ap.getFeatureRenderer();\r
92     }\r
93     else\r
94     {\r
95       return null;\r
96     }\r
97   }\r
98 \r
99   @Override\r
100   public SequenceRenderer getSequenceRenderer(AlignmentViewPanel alignment)\r
101   {\r
102     return ((AlignmentPanel) alignment).getSequenceRenderer();\r
103   }\r
104 \r
105   @Override\r
106   public void notifyScriptTermination(String strStatus, int msWalltime)\r
107   {\r
108     // ignore\r
109   }\r
110 \r
111   @Override\r
112   public void sendConsoleEcho(String strEcho)\r
113   {\r
114     // ignore\r
115   }\r
116 \r
117   @Override\r
118   public void sendConsoleMessage(String strStatus)\r
119   {\r
120     // ignore\r
121   }\r
122 \r
123   @Override\r
124   public void showUrl(String url, String target)\r
125   {\r
126     ap.alignFrame.showURL(url, target);\r
127   }\r
128 \r
129   @Override\r
130   public void refreshGUI()\r
131   {\r
132     // ignore\r
133   }\r
134 \r
135   public void selectionChanged(BS arg0)\r
136   {\r
137     System.out.println(arg0);\r
138   }\r
139 \r
140   @Override\r
141   public void refreshPdbEntries()\r
142   {\r
143     List<PDBEntry> pdbe = new ArrayList<PDBEntry>();\r
144     List<String> fileids = new ArrayList<String>();\r
145     SequenceI[] sq = ap.av.getAlignment().getSequencesArray();\r
146     for (int s = 0; s < sq.length; s++)\r
147     {\r
148       Vector<PDBEntry> pdbids = sq[s].getPDBId();\r
149       if (pdbids != null)\r
150       {\r
151         for (int pe = 0, peSize = pdbids.size(); pe < peSize; pe++)\r
152         {\r
153           PDBEntry pentry = pdbids.elementAt(pe);\r
154           if (!fileids.contains(pentry.getId()))\r
155           {\r
156             pdbe.add(pentry);\r
157           }\r
158           else\r
159           {\r
160             fileids.add(pentry.getId());\r
161           }\r
162         }\r
163       }\r
164     }\r
165     PDBEntry[] newEntries = new PDBEntry[pdbe.size()];\r
166     for (int pe = 0; pe < pdbe.size(); pe++)\r
167     {\r
168       newEntries[pe] = pdbe.get(pe);\r
169     }\r
170     setPdbentry(newEntries);\r
171   }\r
172 \r
173   @Override\r
174   public void showConsole(boolean show)\r
175   {\r
176     // This never gets called because we haven't overriden the associated Jmol's\r
177     // console\r
178     System.err\r
179             .println("WARNING: unexpected call to ExtJmol's showConsole method. (showConsole="\r
180                     + show);\r
181   }\r
182 \r
183   @Override\r
184   protected JmolAppConsoleInterface createJmolConsole(\r
185           Container consolePanel, String buttonsToShow)\r
186   {\r
187     // TODO Auto-generated method stub\r
188     return null;\r
189   }\r
190 \r
191   @Override\r
192   protected void releaseUIResources()\r
193   {\r
194     ap = null;\r
195     closeConsole();\r
196 \r
197   }\r
198 \r
199   @Override\r
200   public void releaseReferences(Object svl)\r
201   {\r
202     // TODO Auto-generated method stub\r
203 \r
204   }\r
205 \r
206   @Override\r
207   public Map<String, Object> getJSpecViewProperty(String arg0)\r
208   {\r
209     // TODO Auto-generated method stub\r
210     return null;\r
211   }\r
212 \r
213 }\r