KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > omg > lifl > eclipse > plugin > project > utils > SWT > DirectoryChooserCheckRadioButtonSetter


1 /*====================================================================
2
3 OpenCCM: The Open CORBA Component Model Platform
4 Copyright (C) 2000-2003 USTL - LIFL - GOAL
5 Contact: openccm-team@objectweb.org
6
7 This library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Lesser General Public
9 License as published by the Free Software Foundation; either
10 version 2.1 of the License, or any later version.
11
12 This library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Lesser General Public License for more details.
16
17 You should have received a copy of the GNU Lesser General Public
18 License along with this library; if not, write to the Free Software
19 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
20 USA
21
22 Initial developer(s): offroy ________________________.
23 Contributor(s): ______________________________________.
24
25 ====================================================================*/

26 /*
27  * Created on 10 juin 2003 by jerome OFFROY (offroy@lifl.fr)
28  *
29  */

30  
31 package org.omg.lifl.eclipse.plugin.project.utils.SWT;
32
33 import org.eclipse.swt.SWT;
34 import org.eclipse.swt.widgets.Button;
35 import org.eclipse.swt.widgets.Event;
36 import org.eclipse.swt.widgets.Group;
37 import org.eclipse.swt.widgets.Listener;
38
39 /**
40  * This class is used to make a basic SWT area with a Radio (On/Off) Button SWT widget
41  * which allow configuration of some preferences store in a SetterGroupPreference
42  * this basic SWT use a check button to set its visibility
43  * this class implements update of the Radio Button SWT widget's value
44  * and synchonisation with its corresponding preferences
45  *
46  * @author offroy@lifl.fr
47  *
48  * @version 0.1
49  */

50 public class DirectoryChooserCheckRadioButtonSetter
51     extends DirectoryChooserCheckTextSetter {
52
53     private Button _radios[];
54     private String JavaDoc[] value = { "On", "Off" };
55
56     /**
57      * Constructor
58      * @param parent is the SWT parent group
59      * @param preference the preferences to manage
60      */

61     public DirectoryChooserCheckRadioButtonSetter(
62         Group parent,
63         SetterGroupPreference preference) {
64         super(parent, preference);
65         _text.dispose();
66         _btnChooser.dispose();
67         _radios = new Button[value.length];
68         for (int i = 0; i < _radios.length; i++) {
69             _radios[i] = new Button(getSubGroup(), SWT.RADIO);
70             if (i < value.length && value[i] != null) {
71
72                 _radios[i].setText(value[i]);
73                 _radios[i].addListener(SWT.Selection, new Listener() {
74
75                     public void handleEvent(Event arg0) {
76                         _preference.set_Name(getSelected().trim());
77                     }
78
79                 });
80             } else
81                 _radios[i].setText("");
82
83         }
84         _radios[0].setSelection(true);
85         _preference.set_Name(getSelected().trim());
86
87     }
88     
89     /**
90      * @return the value of the selected radio button
91      */

92     protected String JavaDoc getSelected() {
93         for (int i = 0; i < _radios.length; i++) {
94             if (_radios[i].getSelection())
95                 return _radios[i].getText();
96         }
97         return null;
98     }
99
100     /* (non-Javadoc)
101      * @see org.omg.lifl.plugin.project.utils.SWT.DirectoryChooser#setCheckButton()
102      */

103     protected void setCheckButton() {
104         _checkButton = new Button(subGroup, SWT.CHECK);
105         _checkButton.setSelection(isSubGroupVisible());
106         _checkButton.addListener(SWT.Selection, new Listener() {
107
108             public void handleEvent(Event event) {
109                 setSubGroupVisible(_checkButton.getSelection());
110                 if (subGroup != null) {
111                     //_label.setVisible(isSubGroupVisible());
112
for (int i = 0; i < _radios.length; i++)
113                         _radios[i].setVisible(isSubGroupVisible());
114                     get_preference().setEnable(isSubGroupVisible());
115                 } else //TODO do something when there is no subGroup
116
;
117             }
118
119         });
120
121     }
122
123     /* (non-Javadoc)
124      * @see org.omg.lifl.plugin.project.utils.SWT.DirectoryChooser#config(java.lang.String)
125      */

126     protected void config(String JavaDoc buffer) {
127     }
128
129 }
130
Popular Tags