6285d286d0f1cacd26bac33f1b5a1e2fd131cb38
[jalview.git] / src / jalview / structure / StructureListener.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8)
3  * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle
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 of the License, or (at your option) any later version.
10  *  
11  * Jalview is distributed in the hope that it will be useful, but 
12  * WITHOUT ANY WARRANTY; without even the implied warranty 
13  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
14  * PURPOSE.  See the GNU General Public License for more details.
15  * 
16  * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
17  */
18 package jalview.structure;
19
20 public interface StructureListener
21 {
22   /**
23    * 
24    * @return list of structure files (unique IDs/filenames) that this listener
25    *         handles messages for, or null if generic listener (only used by
26    *         removeListener method)
27    */
28   public String[] getPdbFile();
29
30   /**
31    * NOT A LISTENER METHOD! called by structure viewer when the given
32    * atom/structure has been moused over. Typically, implementors call
33    * StructureSelectionManager.mouseOverStructure
34    * 
35    * @param atomIndex
36    * @param strInfo
37    */
38   public void mouseOverStructure(int atomIndex, String strInfo);
39
40   /**
41    * called by StructureSelectionManager to inform viewer to highlight given
42    * atomspec
43    * 
44    * @param atomIndex
45    * @param pdbResNum
46    * @param chain
47    * @param pdbId
48    */
49   public void highlightAtom(int atomIndex, int pdbResNum, String chain,
50           String pdbId);
51
52   /**
53    * called by StructureSelectionManager when the colours of a sequence
54    * associated with a structure have changed.
55    * 
56    * @param source
57    *          (untyped) usually an alignPanel
58    */
59   public void updateColours(Object source);
60
61   /**
62    * called by Jalview to get the colour for the given atomspec
63    * 
64    * @param atomIndex
65    * @param pdbResNum
66    * @param chain
67    * @param pdbId
68    * @return
69    */
70   public java.awt.Color getColour(int atomIndex, int pdbResNum,
71           String chain, String pdbId);
72
73   /**
74    * called by structureSelectionManager to instruct implementor to release any
75    * direct references it may hold to the given object (typically, these are
76    * Jalview alignment panels).
77    * 
78    * @param svl
79    */
80   public void releaseReferences(Object svl);
81 }