JAL-1620 version bump and release notes
[jalview.git] / src / jalview / structure / StructureListener.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2b1)
3  * Copyright (C) 2014 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.structure;
22
23 public interface StructureListener
24 {
25   /**
26    * 
27    * @return list of structure files (unique IDs/filenames) that this listener
28    *         handles messages for, or null if generic listener (only used by
29    *         removeListener method)
30    */
31   public String[] getPdbFile();
32
33   /**
34    * NOT A LISTENER METHOD! called by structure viewer when the given
35    * atom/structure has been moused over. Typically, implementors call
36    * StructureSelectionManager.mouseOverStructure
37    * 
38    * @param atomIndex
39    * @param strInfo
40    */
41   public void mouseOverStructure(int atomIndex, String strInfo);
42
43   /**
44    * called by StructureSelectionManager to inform viewer to highlight given
45    * atomspec
46    * 
47    * @param atomIndex
48    * @param pdbResNum
49    * @param chain
50    * @param pdbId
51    */
52   public void highlightAtom(int atomIndex, int pdbResNum, String chain,
53           String pdbId);
54
55   /**
56    * called by StructureSelectionManager when the colours of a sequence
57    * associated with a structure have changed.
58    * 
59    * @param source
60    *          (untyped) usually an alignPanel
61    */
62   public void updateColours(Object source);
63
64   /**
65    * called by Jalview to get the colour for the given atomspec
66    * 
67    * @param atomIndex
68    * @param pdbResNum
69    * @param chain
70    * @param pdbId
71    * @return
72    */
73   public java.awt.Color getColour(int atomIndex, int pdbResNum,
74           String chain, String pdbId);
75
76   /**
77    * called by structureSelectionManager to instruct implementor to release any
78    * direct references it may hold to the given object (typically, these are
79    * Jalview alignment panels).
80    * 
81    * @param svl
82    */
83   public void releaseReferences(Object svl);
84 }