01: /*
02: *
03: * JMoney - A Personal Finance Manager
04: * Copyright (c) 2004 Nigel Westbury <westbury@users.sourceforge.net>
05: *
06: *
07: * This program is free software; you can redistribute it and/or modify
08: * it under the terms of the GNU General Public License as published by
09: * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
20: *
21: */
22:
23: package net.sf.jmoney.fields;
24:
25: import java.util.Comparator;
26:
27: import net.sf.jmoney.model2.ExtendableObject;
28: import net.sf.jmoney.model2.IPropertyControl;
29: import net.sf.jmoney.model2.IPropertyControlFactory;
30: import net.sf.jmoney.model2.ScalarPropertyAccessor;
31:
32: import org.eclipse.swt.SWT;
33: import org.eclipse.swt.widgets.Composite;
34:
35: /**
36: * A control factory to edit normal text.
37: *
38: * @author Nigel Westbury
39: * @author Johann Gyger
40: */
41: public class TextControlFactory implements
42: IPropertyControlFactory<String> {
43:
44: public IPropertyControl createPropertyControl(Composite parent,
45: ScalarPropertyAccessor<String> propertyAccessor) {
46: return new TextEditor(parent, SWT.NONE, propertyAccessor);
47: }
48:
49: public String formatValueForMessage(
50: ExtendableObject extendableObject,
51: ScalarPropertyAccessor<? extends String> propertyAccessor) {
52: String value = extendableObject
53: .getPropertyValue(propertyAccessor);
54: if (value == null || value.length() == 0) {
55: return "empty";
56: } else {
57: return "'" + value + "'";
58: }
59: }
60:
61: public String formatValueForTable(
62: ExtendableObject extendableObject,
63: ScalarPropertyAccessor<? extends String> propertyAccessor) {
64: return extendableObject.getPropertyValue(propertyAccessor);
65: }
66:
67: public String getDefaultValue() {
68: return null;
69: }
70:
71: public boolean isEditable() {
72: return true;
73: }
74:
75: public Comparator<String> getComparator() {
76: return new Comparator<String>() {
77: public int compare(String text1, String text2) {
78: return text1.compareTo(text2);
79: }
80: };
81: }
82: }
|