KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > genimen > djeneric > tools > specifier > components > DjTextField


1 /*
2  * Copyright (c) 2001-2005 by Genimen BV (www.genimen.com) All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without modification, is permitted
5  * provided that the following conditions are met:
6  * - Redistributions of source code must retain the above copyright notice, this list of conditions
7  * and the following disclaimer.
8  * - Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * - All advertising materials mentioning features or use of this software must display the
12  * following acknowledgment: "This product includes Djeneric."
13  * - Products derived from this software may not be called "Djeneric" nor may
14  * "Djeneric" appear in their names without prior written permission of Genimen BV.
15  * - Redistributions of any form whatsoever must retain the following acknowledgment: "This
16  * product includes Djeneric."
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS IS"
19  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21  * ARE DISCLAIMED. IN NO EVENT SHALL GENIMEN BV, DJENERIC.ORG,
22  * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  */

30 package com.genimen.djeneric.tools.specifier.components;
31
32 import java.awt.event.FocusEvent JavaDoc;
33 import java.awt.event.FocusListener JavaDoc;
34
35 import javax.swing.JComponent JavaDoc;
36 import javax.swing.JTextField JavaDoc;
37
38 import com.genimen.djeneric.repository.exceptions.DjenericException;
39 import com.genimen.djeneric.tools.specifier.interfaces.ObjectViewer;
40 import com.genimen.djeneric.util.DjLogger;
41
42 public class DjTextField extends JTextField JavaDoc implements DjBindable, FocusListener JavaDoc
43 {
44   private static final long serialVersionUID = 1L;
45   private BindingMediator _mediator;
46
47   public DjTextField(ObjectViewer viewer, String JavaDoc propertyName) throws DjenericException
48   {
49     super();
50     addFocusListener(this);
51     _mediator = new BindingMediator(this, viewer, propertyName);
52   }
53
54   public boolean isComponentWritable()
55   {
56     return _mediator.isComponentWritable();
57   }
58
59   public void clear()
60   {
61     setText("");
62   }
63
64   public void apply() throws DjenericException
65   {
66     _mediator.setValue(getText());
67   }
68
69   public void focusGained(FocusEvent JavaDoc e)
70   {
71     selectAll();
72   }
73
74   public void focusLost(FocusEvent JavaDoc e)
75   {
76     try
77     {
78       apply();
79       synchronize();
80     }
81     catch (Exception JavaDoc x)
82     {
83       DjLogger.log(x);
84     }
85   }
86
87   public void setPropertyName(String JavaDoc propertyName) throws DjenericException
88   {
89     _mediator.setPropertyName(propertyName);
90   }
91
92   public void setViewer(ObjectViewer viewer)
93   {
94     _mediator.setViewer(viewer);
95   }
96
97   public void synchronize() throws DjenericException
98   {
99     setText(_mediator.getPropertyValueString());
100     setCaretPosition(0);
101   }
102
103   public Object JavaDoc getDisplayedValue()
104   {
105     return getText();
106   }
107
108   public String JavaDoc getPropertyName()
109   {
110     return _mediator.getPropertyName();
111   }
112
113   public JComponent JavaDoc getFocussableComponent()
114   {
115     return this;
116   }
117 }
Popular Tags