01: /*
02: #IFNDEF ALT_LICENSE
03: ThinWire(R) RIA Ajax Framework
04: Copyright (C) 2003-2007 Custom Credit Systems
05:
06: This library is free software; you can redistribute it and/or modify it under
07: the terms of the GNU Lesser General Public License as published by the Free
08: Software Foundation; either version 2.1 of the License, or (at your option) any
09: later version.
10:
11: This library is distributed in the hope that it will be useful, but WITHOUT ANY
12: WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13: PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
14:
15: You should have received a copy of the GNU Lesser General Public License along
16: with this library; if not, write to the Free Software Foundation, Inc., 59
17: Temple Place, Suite 330, Boston, MA 02111-1307 USA
18:
19: Users who would rather have a commercial license, warranty or support should
20: contact the following company who invented, built and supports the technology:
21:
22: Custom Credit Systems, Richardson, TX 75081, USA.
23: email: info@thinwire.com ph: +1 (888) 644-6405
24: http://www.thinwire.com
25: #ENDIF
26: [ v1.2_RC2 ]
27: */
28: package thinwire.ui;
29:
30: import java.util.regex.Pattern;
31:
32: /**
33: * @author Joshua J. Gertzen
34: */
35: abstract class AbstractTextComponent extends AbstractComponent
36: implements TextComponent {
37: private static final Pattern NEW_LINE_PATTERN = Pattern
38: .compile("(?<!\\r)\\n|\\r(?!\\n)");
39:
40: private String text = "";
41:
42: public String getText() {
43: return text;
44: }
45:
46: public void setText(String text) {
47: String oldText = this .text;
48: setTextDirect(text);
49: firePropertyChange(this , PROPERTY_TEXT, oldText, this .text);
50: }
51:
52: void setTextDirect(String text) {
53: if (text == null) {
54: this .text = "";
55: } else {
56: this .text = NEW_LINE_PATTERN.matcher(text).replaceAll(
57: "\r\n");
58: }
59: }
60: }
|