Clover icon

jalviewX

  1. Project Clover database Wed Oct 31 2018 15:13:58 GMT
  2. Package jalview.gui

File AppJmolBinding.java

 

Coverage histogram

../../img/srcFileCovDistChart7.png
28% of files have more coverage

Code metrics

14
33
21
1
218
157
30
0.91
1.57
21
1.43

Classes

Class Line # Actions
AppJmolBinding 39 33 30 24
0.6470588464.7%
 

Contributing tests

This file is covered by 17 tests. .

Source view

1    /*
2    * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3    * Copyright (C) $$Year-Rel$$ The Jalview Authors
4    *
5    * This file is part of Jalview.
6    *
7    * Jalview is free software: you can redistribute it and/or
8    * modify it under the terms of the GNU General Public License
9    * as published by the Free Software Foundation, either version 3
10    * of the License, or (at your option) any later version.
11    *
12    * Jalview is distributed in the hope that it will be useful, but
13    * WITHOUT ANY WARRANTY; without even the implied warranty
14    * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15    * PURPOSE. See the GNU General Public License for more details.
16    *
17    * You should have received a copy of the GNU General Public License
18    * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
19    * The Jalview Authors are detailed in the 'AUTHORS' file.
20    */
21    package jalview.gui;
22   
23    import jalview.api.AlignmentViewPanel;
24    import jalview.api.structures.JalviewStructureDisplayI;
25    import jalview.bin.Cache;
26    import jalview.datamodel.PDBEntry;
27    import jalview.datamodel.SequenceI;
28    import jalview.ext.jmol.JalviewJmolBinding;
29    import jalview.io.DataSourceType;
30    import jalview.structure.StructureSelectionManager;
31   
32    import java.awt.Container;
33    import java.util.Map;
34   
35    import org.jmol.api.JmolAppConsoleInterface;
36    import javajs.util.BS;
37    import org.openscience.jmol.app.jmolpanel.console.AppConsole;
38   
 
39    public class AppJmolBinding extends JalviewJmolBinding
40    {
41    private AppJmol appJmolWindow;
42   
 
43  10 toggle public AppJmolBinding(AppJmol appJmol, StructureSelectionManager sSm,
44    PDBEntry[] pdbentry, SequenceI[][] sequenceIs,
45    DataSourceType protocol)
46    {
47  10 super(sSm, pdbentry, sequenceIs, protocol);
48  10 appJmolWindow = appJmol;
49    }
50   
 
51  12 toggle @Override
52    protected IProgressIndicator getIProgressIndicator()
53    {
54  12 return appJmolWindow.progressBar;
55    }
56   
 
57  9 toggle @Override
58    public SequenceRenderer getSequenceRenderer(AlignmentViewPanel alignment)
59    {
60  9 return new SequenceRenderer(((AlignmentPanel) alignment).av);
61    }
62   
 
63  22 toggle @Override
64    public void sendConsoleEcho(String strEcho)
65    {
66  22 if (console != null)
67    {
68  0 console.sendConsoleEcho(strEcho);
69    }
70    }
71   
 
72  0 toggle @Override
73    public void sendConsoleMessage(String strStatus)
74    {
75  0 if (console != null && strStatus != null)
76    // && !strStatus.equals("Script completed"))
77    // should we squash the script completed string ?
78    {
79  0 console.sendConsoleMessage(strStatus);
80    }
81    }
82   
 
83  0 toggle @Override
84    public void showUrl(String url, String target)
85    {
86  0 try
87    {
88  0 jalview.util.BrowserLauncher.openURL(url);
89    } catch (Exception e)
90    {
91  0 Cache.log.error("Failed to launch Jmol-associated url " + url, e);
92    // TODO: 2.6 : warn user if browser was not configured.
93    }
94    }
95   
 
96  11 toggle @Override
97    public void refreshGUI()
98    {
99    // appJmolWindow.repaint();
100  11 javax.swing.SwingUtilities.invokeLater(new Runnable()
101    {
 
102  11 toggle @Override
103    public void run()
104    {
105  11 appJmolWindow.updateTitleAndMenus();
106  10 appJmolWindow.revalidate();
107    }
108    });
109    }
110   
 
111  911 toggle @Override
112    public void updateColours(Object source)
113    {
114  911 AlignmentPanel ap = (AlignmentPanel) source;
115    // ignore events from panels not used to colour this view
116  911 if (!appJmolWindow.isUsedforcolourby(ap))
117    {
118  892 return;
119    }
120  19 if (!isLoadingFromArchive())
121    {
122  19 colourBySequence(ap);
123    }
124    }
125   
 
126  318 toggle @Override
127    public void notifyScriptTermination(String strStatus, int msWalltime)
128    {
129    // todo - script termination doesn't happen ?
130    // if (console != null)
131    // console.notifyScriptTermination(strStatus,
132    // msWalltime);
133    }
134   
 
135  0 toggle @Override
136    public void showUrl(String url)
137    {
138  0 showUrl(url, "jmol");
139    }
140   
 
141  0 toggle public void newJmolPopup(String menuName)
142    {
143    // jmolpopup = new JmolAwtPopup();
144    // jmolpopup.jpiInitialize((viewer), menuName);
145    }
146   
 
147  0 toggle @Override
148    public void selectionChanged(BS arg0)
149    {
150    // TODO Auto-generated method stub
151   
152    }
153   
 
154  11 toggle @Override
155    public void refreshPdbEntries()
156    {
157    // TODO Auto-generated method stub
158   
159    }
160   
 
161  0 toggle @Override
162    public void showConsole(boolean b)
163    {
164  0 appJmolWindow.showConsole(b);
165    }
166   
 
167  10 toggle @Override
168    protected JmolAppConsoleInterface createJmolConsole(
169    Container consolePanel, String buttonsToShow)
170    {
171  10 viewer.setJmolCallbackListener(this);
172  10 return null;//BH can't do this yet. new AppConsole(viewer, consolePanel, buttonsToShow);
173    }
174   
 
175  10 toggle @Override
176    protected void releaseUIResources()
177    {
178  10 appJmolWindow = null;
179  10 closeConsole();
180    }
181   
 
182  82 toggle @Override
183    public void releaseReferences(Object svl)
184    {
185  82 if (svl instanceof SeqPanel)
186    {
187  82 appJmolWindow.removeAlignmentPanel(((SeqPanel) svl).ap);
188    }
189    }
190   
 
191  0 toggle @Override
192    public Map<String, Object> getJSpecViewProperty(String arg0)
193    {
194    // TODO Auto-generated method stub
195  0 return null;
196    }
197   
 
198  0 toggle @Override
199    public JalviewStructureDisplayI getViewer()
200    {
201  0 return appJmolWindow;
202    }
203   
 
204  11 toggle @Override
205    public jalview.api.FeatureRenderer getFeatureRenderer(
206    AlignmentViewPanel alignment)
207    {
208  11 AlignmentPanel ap = (alignment == null)
209    ? appJmolWindow.getAlignmentPanel()
210    : (AlignmentPanel) alignment;
211  11 if (ap.av.isShowSequenceFeatures())
212    {
213  1 return ap.av.getAlignPanel().getSeqPanel().seqCanvas.fr;
214    }
215   
216  10 return null;
217    }
218    }