KickJava   Java API By Example, From Geeks To Geeks.

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


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.metadata.*;
28 import org.openharmonise.vfs.metadata.range.*;
29 import org.openharmonise.vfs.metadata.value.*;
30
31
32 /**
33  * @author Matthew Large
34  * @version $Revision: 1.1 $
35  *
36  */

37 public class TextDetails extends AbstractRangeDetails implements LayoutManager, KeyListener {
38
39     private JLabel m_minLengthLabel = null;
40     private JTextField m_minLengthField = null;
41
42     private JLabel m_maxLengthLabel = null;
43     private JTextField m_maxLengthField = null;
44
45     private RangeValue m_value = null;
46     private StringRange m_range = null;
47
48     /**
49      * @param propInst
50      * @param sTitle
51      */

52     public TextDetails(PropertyInstance propInst) {
53         super(propInst, "Text details");
54         this.setup();
55     }
56     
57     private void setup() {
58         this.setLayout(this);
59         
60         this.m_minLengthLabel = new JLabel("Minimum length");
61         this.add(m_minLengthLabel);
62         this.m_minLengthField = new JTextField();
63         this.m_minLengthField.addKeyListener(this);
64         this.m_minLengthField.setBorder(BorderFactory.createEtchedBorder());
65         this.add(m_minLengthField);
66         
67         this.m_maxLengthLabel = new JLabel("Maximum length");
68         this.add(m_maxLengthLabel);
69         this.m_maxLengthField = new JTextField();
70         this.m_maxLengthField.setBorder(BorderFactory.createEtchedBorder());
71         this.m_maxLengthField.addKeyListener(this);
72         this.add(m_maxLengthField);
73         
74         if(this.getPropertyInstance().getValues().size()>0) {
75             this.m_value = (RangeValue) this.getPropertyInstance().getValues().get(0);
76             Range range = this.m_value.getRange();
77             
78             if(range==null) {
79                 this.m_range = new StringRange();
80                 this.m_value.setRange(m_range);
81             } else {
82                 this.m_range = (StringRange)range;
83             }
84             this.m_minLengthField.setText( Integer.toString( this.m_range.getMinLength() ) );
85             this.m_maxLengthField.setText( Integer.toString( this.m_range.getMaxLength() ) );
86         }
87     }
88
89     /* (non-Javadoc)
90      * @see java.awt.LayoutManager#layoutContainer(java.awt.Container)
91      */

92     public void layoutContainer(Container arg0) {
93         this.m_minLengthLabel.setSize(this.m_minLengthLabel.getPreferredSize());
94         this.m_minLengthLabel.setLocation(20, 20);
95
96         this.m_minLengthField.setSize(40, m_minLengthField.getPreferredSize().height);
97         this.m_minLengthField.setLocation(120, 20);
98         
99         this.m_maxLengthLabel.setSize(this.m_maxLengthLabel.getPreferredSize());
100         this.m_maxLengthLabel.setLocation(20, 50);
101
102         this.m_maxLengthField.setSize(40, m_maxLengthField.getPreferredSize().height);
103         this.m_maxLengthField.setLocation(120, 50);
104         
105         
106     }
107
108     /* (non-Javadoc)
109      * @see java.awt.event.KeyListener#keyPressed(java.awt.event.KeyEvent)
110      */

111     public void keyPressed(KeyEvent arg0) {
112     }
113
114     /* (non-Javadoc)
115      * @see java.awt.event.KeyListener#keyReleased(java.awt.event.KeyEvent)
116      */

117     public void keyReleased(KeyEvent ke) {
118         if(ke.getSource()==this.m_minLengthField) {
119             try {
120                 int nValue = Integer.parseInt(this.m_minLengthField.getText());
121                 this.m_range.setMinLength(nValue);
122                 this.fireRangeDetailsChanged(m_value);
123             } catch(Exception JavaDoc e) {
124             }
125         } else if(ke.getSource()==this.m_maxLengthField) {
126             try {
127                 int nValue = Integer.parseInt(this.m_maxLengthField.getText());
128                 if(nValue<=999) {
129                     this.m_range.setMaxLength(nValue);
130                     this.fireRangeDetailsChanged(m_value);
131                 } else {
132                     this.m_maxLengthField.setText("999");
133                     this.m_range.setMaxLength(999);
134                     this.fireRangeDetailsChanged(m_value);
135                 }
136             } catch(Exception JavaDoc e) {
137             }
138         }
139     }
140
141     /* (non-Javadoc)
142      * @see java.awt.event.KeyListener#keyTyped(java.awt.event.KeyEvent)
143      */

144     public void keyTyped(KeyEvent arg0) {
145     }
146
147 }
148
Popular Tags