allows for null Jmol viewer
[jalview.git] / src2 / fr / orsay / lri / varna / controlers / ControleurVueAnnotation.java
1 /*
2  VARNA is a tool for the automated drawing, visualization and annotation of the secondary structure of RNA, designed as a companion software for web servers and databases.
3  Copyright (C) 2008  Kevin Darty, Alain Denise and Yann Ponty.
4  electronic mail : Yann.Ponty@lri.fr
5  paper mail : LRI, bat 490 Université Paris-Sud 91405 Orsay Cedex France
6
7  This file is part of VARNA version 3.1.
8  VARNA version 3.1 is free software: you can redistribute it and/or 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  VARNA version 3.1 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
12  without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13  See the GNU General Public License for more details.
14
15  You should have received a copy of the GNU General Public License along with VARNA version 3.1.
16  If not, see http://www.gnu.org/licenses.
17  */
18 package fr.orsay.lri.varna.controlers;
19
20 import java.awt.Color;
21 import java.awt.event.ActionEvent;
22 import java.awt.event.ActionListener;
23
24 import javax.swing.JColorChooser;
25 import javax.swing.event.CaretEvent;
26 import javax.swing.event.CaretListener;
27 import javax.swing.event.ChangeEvent;
28 import javax.swing.event.ChangeListener;
29
30 import fr.orsay.lri.varna.views.VueAnnotation;
31 import fr.orsay.lri.varna.views.VueUI;
32
33 /**
34  * Annotation View Controller
35  * 
36  * @author Darty@lri.fr
37  * 
38  */
39 public class ControleurVueAnnotation implements CaretListener, ChangeListener,
40                 ActionListener {
41
42         protected VueAnnotation _vueAnnot;
43
44         /**
45          * Creates a ControleurVueAnnotation
46          * 
47          * @param vueAnnot
48          */
49         public ControleurVueAnnotation(VueAnnotation vueAnnot) {
50                 _vueAnnot = vueAnnot;
51         }
52
53         public void caretUpdate(CaretEvent arg0) {
54                 _vueAnnot.update();
55         }
56
57         public void stateChanged(ChangeEvent arg0) {
58                 _vueAnnot.update();
59         }
60
61         public void actionPerformed(ActionEvent arg0) {
62                 if (arg0.getActionCommand().equals("setcolor")) {
63                         final VueUI vui = _vueAnnot.get_vp().getVARNAUI(); // BH SwingJS
64                         vui.showColorDialog("Pick a color", _vueAnnot.getTextAnnotation().getColor(), new Runnable() {
65
66                                 @Override
67                                 public void run() {
68                                         Color c = (Color) vui.dialogReturnValue;
69                                         if (c != null)
70                                                 _vueAnnot.updateColor(c);
71                                         _vueAnnot.update();
72                                 }
73                                 
74                         });
75                         
76 //was:                  Color c = JColorChooser.showDialog(_vueAnnot.get_vp(),
77 //                                      "Pick a color", _vueAnnot.getTextAnnotation().getColor());
78 //                      if (c != null) {
79 //                              _vueAnnot.updateColor(c);
80 //                      }
81
82                 }
83                 _vueAnnot.update();
84         }
85 }