KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > openharmonise > him > metadata > range > swing > range > details > NumberDetails


1 /*
2  * The contents of this file are subject to the
3  * Mozilla Public License Version 1.1 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at http://www.mozilla.org/MPL/
6  *
7  * Software distributed under the License is distributed on an "AS IS"
8  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
9  * See the License for the specific language governing rights and
10  * limitations under the License.
11  *
12  * The Initial Developer of the Original Code is Simulacra Media Ltd.
13  * Portions created by Simulacra Media Ltd are Copyright (C) Simulacra Media Ltd, 2004.
14  *
15  * All Rights Reserved.
16  *
17  * Contributor(s):
18  */

19 package org.openharmonise.him.metadata.range.swing.range.details;
20
21 import java.awt.*;
22 import java.awt.event.*;
23
24 import javax.swing.*;
25
26 import org.openharmonise.him.metadata.range.swing.range.*;
27 import org.openharmonise.vfs.gui.*;
28 import org.openharmonise.vfs.metadata.*;
29 import org.openharmonise.vfs.metadata.range.*;
30 import org.openharmonise.vfs.metadata.value.*;
31
32
33 /**
34  * @author Matthew Large
35  * @version $Revision: 1.1 $
36  *
37  */

38 public class NumberDetails extends AbstractRangeDetails implements ActionListener, LayoutManager, KeyListener {
39
40     private JLabel m_minLabel = null;
41     private JTextField m_minField = null;
42     
43     private JLabel m_maxLabel = null;
44     private JTextField m_maxField = null;
45     
46     private JLabel m_floatingPointLabel = null;
47     private JCheckBox m_floatingPointCheck = null;
48     
49     private JLabel m_arrow = null;
50     
51     private RangeValue m_value = null;
52     private Range m_range = null;
53     /**
54      * @param propInst
55      * @param sTitle
56      */

57     public NumberDetails(PropertyInstance propInst) {
58         super(propInst, "Number details");
59         this.setup();
60     }
61     
62     private void setup() {
63         this.setLayout(this);
64         
65         this.m_floatingPointLabel = new JLabel("Include floating point?");
66         this.add(this.m_floatingPointLabel);
67         this.m_floatingPointCheck = new JCheckBox();
68         this.m_floatingPointCheck.addActionListener(this);
69         this.add(this.m_floatingPointCheck);
70         
71         
72         this.m_minLabel = new JLabel("Minimum");
73         this.add(m_minLabel);
74         this.m_minField = new JTextField();
75         this.m_minField.setBorder(BorderFactory.createEtchedBorder());
76         this.m_minField.addKeyListener(this);
77         this.add(m_minField);
78         
79         this.m_arrow = new JLabel();
80         this.m_arrow.setIcon( IconManager.getInstance().getIcon("16-command-right.png") );
81         this.add(this.m_arrow);
82         
83         this.m_maxLabel = new JLabel("Maximum");
84         this.add(m_maxLabel);
85         this.m_maxField = new JTextField();
86         this.m_maxField.setBorder(BorderFactory.createEtchedBorder());
87         this.m_maxField.addKeyListener(this);
88         this.add(m_maxField);
89         
90         if(this.getPropertyInstance().getValues().size()>0) {
91             this.m_value = (RangeValue) this.getPropertyInstance().getValues().get(0);
92             Range range = (Range) this.m_value.getRange();
93             
94             if(range==null) {
95                 this.m_range = (Range) new IntegerRange();
96                 this.m_value.setRange((org.openharmonise.vfs.metadata.Range) m_range);
97             } else {
98                 this.m_range = (Range)range;
99             }
100             
101             if(this.m_range instanceof IntegerRange) {
102                 if(((IntegerRange)this.m_range).getMinimum()!=null) {
103                     this.m_minField.setText( ((IntegerRange)this.m_range).getMinimum().toString() );
104                 }
105                 if(((IntegerRange)this.m_range).getMaximum()!=null) {
106                     this.m_maxField.setText( ((IntegerRange)this.m_range).getMaximum().toString() );
107                 }
108                 this.m_floatingPointCheck.setSelected(false);
109             } else if(this.m_range instanceof FloatRange) {
110                 if(((FloatRange)this.m_range).getMinimum()!=null) {
111                     this.m_minField.setText( ((FloatRange)this.m_range).getMinimum().toString() );
112                 }
113                 if(((FloatRange)this.m_range).getMaximum()!=null) {
114                     this.m_maxField.setText( ((FloatRange)this.m_range).getMaximum().toString() );
115                 }
116                 this.m_floatingPointCheck.setSelected(true);
117             }
118         }
119     }
120
121     /* (non-Javadoc)
122      * @see java.awt.LayoutManager#layoutContainer(java.awt.Container)
123      */

124     public void layoutContainer(Container arg0) {
125         
126         this.m_floatingPointCheck.setSize(this.m_floatingPointCheck.getPreferredSize());
127         this.m_floatingPointCheck.setLocation(20, 20);
128         
129         this.m_floatingPointLabel.setSize(120, this.m_minLabel.getPreferredSize().height);
130         this.m_floatingPointLabel.setLocation(50, 20);
131         
132         this.m_minLabel.setSize(this.m_minLabel.getPreferredSize());
133         this.m_minLabel.setLocation(20, 50);
134
135         this.m_minField.setSize(120, m_minField.getPreferredSize().height);
136         this.m_minField.setLocation(20, 70);
137         
138         this.m_arrow.setSize(this.m_arrow.getPreferredSize());
139         this.m_arrow.setLocation(150, 72);
140         
141         this.m_maxLabel.setSize(this.m_maxLabel.getPreferredSize());
142         this.m_maxLabel.setLocation(180, 50);
143
144         this.m_maxField.setSize(120, m_maxField.getPreferredSize().height);
145         this.m_maxField.setLocation(180, 70);
146         
147         
148     }
149
150     /* (non-Javadoc)
151      * @see java.awt.event.KeyListener#keyPressed(java.awt.event.KeyEvent)
152      */

153     public void keyPressed(KeyEvent arg0) {
154     }
155
156     /**
157      * @param ke
158      */

159     /* (non-Javadoc)
160      * @see java.awt.event.KeyListener#keyReleased(java.awt.event.KeyEvent)
161      */

162     public void keyReleased(KeyEvent ke) {
163         if(ke.getSource()==this.m_minField) {
164             try {
165                 if(this.m_range instanceof IntegerRange) {
166                     Integer JavaDoc nValue = new Integer JavaDoc(Integer.parseInt(this.m_minField.getText()));
167                     ((IntegerRange)this.m_range).setMinimum(nValue);
168                 } else if(this.m_range instanceof FloatRange) {
169                     Float JavaDoc nValue = new Float JavaDoc(Float.parseFloat(this.m_minField.getText()));
170                     ((FloatRange)this.m_range).setMinimum(nValue);
171                 }
172                 this.fireRangeDetailsChanged(m_value);
173             } catch(Exception JavaDoc e) {
174             }
175         } else if(ke.getSource()==this.m_maxField) {
176             try {
177                 if(this.m_range instanceof IntegerRange) {
178                     Integer JavaDoc nValue = new Integer JavaDoc(Integer.parseInt(this.m_maxField.getText()));
179                     ((IntegerRange)this.m_range).setMaximum(nValue);
180                 } else if(this.m_range instanceof FloatRange) {
181                     Float JavaDoc nValue = new Float JavaDoc(Float.parseFloat(this.m_maxField.getText()));
182                     ((FloatRange)this.m_range).setMaximum(nValue);
183                 }
184                 this.fireRangeDetailsChanged(m_value);
185             } catch(Exception JavaDoc e) {
186             }
187         }
188     }
189
190     /* (non-Javadoc)
191      * @see java.awt.event.KeyListener#keyTyped(java.awt.event.KeyEvent)
192      */

193     public void keyTyped(KeyEvent arg0) {
194     }
195
196     /* (non-Javadoc)
197      * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
198      */

199     public void actionPerformed(ActionEvent arg0) {
200         Range currentRange = (Range) this.m_range;
201         Range newRange = null;
202         if(this.m_floatingPointCheck.isSelected()) {
203             IntegerRange tempCurrRange = (IntegerRange)currentRange;
204             FloatRange tempRange = new FloatRange();
205             if(tempCurrRange.getMaximum()!=null) {
206                 tempRange.setMaximum(tempCurrRange.getMaximum().floatValue());
207             } else {
208                 tempRange.setMaximum(-1);
209             }
210             if(tempCurrRange.getMinimum()!=null) {
211                 tempRange.setMinimum(tempCurrRange.getMinimum().floatValue());
212             } else {
213                 tempRange.setMinimum(0);
214             }
215             this.m_range = (Range) tempRange;
216             this.m_value.setRange((org.openharmonise.vfs.metadata.Range) this.m_range);
217             this.fireRangeDetailsChanged(m_value);
218         } else {
219             FloatRange tempCurrRange = (FloatRange)currentRange;
220             IntegerRange tempRange = new IntegerRange();
221             if(tempCurrRange.getMaximum()!=null) {
222                 tempRange.setMaximum(tempCurrRange.getMaximum().intValue());
223             } else {
224                 tempRange.setMaximum(-1);
225             }
226             if(tempCurrRange.getMinimum()!=null) {
227                 tempRange.setMinimum(tempCurrRange.getMinimum().intValue());
228             } else {
229                 tempRange.setMinimum(0);
230             }
231             this.m_range = (Range) tempRange;
232             this.m_value.setRange((org.openharmonise.vfs.metadata.Range) this.m_range);
233             this.fireRangeDetailsChanged(m_value);
234         }
235     }
236
237 }
238
Popular Tags