KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sf > launch4j > binding > JTextComponentBinding


1 /*
2     Launch4j (http://launch4j.sourceforge.net/)
3     Cross-platform Java application wrapper for creating Windows native executables.
4
5     Copyright (C) 2004, 2006 Grzegorz Kowal
6
7     This program is free software; you can redistribute it and/or modify
8     it under the terms of the GNU General Public License as published by
9     the Free Software Foundation; either version 2 of the License, or
10     (at your option) any later version.
11
12     This program 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
15     GNU General Public License for more details.
16
17     You should have received a copy of the GNU General Public License
18     along with this program; if not, write to the Free Software
19     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20 */

21
22 /*
23  * Created on Apr 30, 2005
24  */

25 package net.sf.launch4j.binding;
26
27 import java.awt.Color JavaDoc;
28
29 import javax.swing.text.JTextComponent JavaDoc;
30
31 import org.apache.commons.beanutils.BeanUtils;
32
33 /**
34  * Handles JEditorPane, JTextArea, JTextField
35  *
36  * @author Copyright (C) 2005 Grzegorz Kowal
37  */

38 public class JTextComponentBinding implements Binding {
39     private final String JavaDoc _property;
40     private final JTextComponent JavaDoc _textComponent;
41     private final String JavaDoc _defaultValue;
42     private final Color JavaDoc _validColor;
43
44     public JTextComponentBinding(String JavaDoc property, JTextComponent JavaDoc textComponent,
45             String JavaDoc defaultValue) {
46         if (property == null || textComponent == null || defaultValue == null) {
47             throw new NullPointerException JavaDoc();
48         }
49         if (property.equals("")) {
50             throw new IllegalArgumentException JavaDoc();
51         }
52         _property = property;
53         _textComponent = textComponent;
54         _defaultValue = defaultValue;
55         _validColor = _textComponent.getBackground();
56     }
57
58     public String JavaDoc getProperty() {
59         return _property;
60     }
61
62     public void clear(IValidatable bean) {
63         _textComponent.setText(_defaultValue);
64     }
65
66     public void put(IValidatable bean) {
67         try {
68             String JavaDoc s = BeanUtils.getProperty(bean, _property);
69             // XXX displays zeros as blank
70
_textComponent.setText(s != null && !s.equals("0") ? s : "");
71         } catch (Exception JavaDoc e) {
72             throw new BindingException(e);
73         }
74     }
75
76     public void get(IValidatable bean) {
77         try {
78             BeanUtils.setProperty(bean, _property, _textComponent.getText());
79         } catch (Exception JavaDoc e) {
80             throw new BindingException(e);
81         }
82     }
83     
84     public void markValid() {
85         _textComponent.setBackground(_validColor);
86         _textComponent.requestFocusInWindow();
87     }
88
89     public void markInvalid() {
90         _textComponent.setBackground(Binding.INVALID_COLOR);
91     }
92     
93     public void setEnabled(boolean enabled) {
94         _textComponent.setEnabled(enabled);
95     }
96 }
97
Popular Tags