• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  *  Licensed to the Apache Software Foundation (ASF) under one or more
3  *  contributor license agreements.  See the NOTICE file distributed with
4  *  this work for additional information regarding copyright ownership.
5  *  The ASF licenses this file to You under the Apache License, Version 2.0
6  *  (the "License"); you may not use this file except in compliance with
7  *  the License.  You may obtain a copy of the License at
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  *  Unless required by applicable law or agreed to in writing, software
12  *  distributed under the License is distributed on an "AS IS" BASIS,
13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *  See the License for the specific language governing permissions and
15  *  limitations under the License.
16  */
17 package java.beans;
18 
19 import java.awt.Component;
20 import java.awt.Graphics;
21 import java.awt.Rectangle;
22 import java.util.ArrayList;
23 import java.util.Iterator;
24 import java.util.List;
25 
26 import org.apache.harmony.beans.internal.nls.Messages;
27 
28 public class PropertyEditorSupport implements PropertyEditor {
29 
30     Object source = null;
31 
32     List<PropertyChangeListener> listeners = new ArrayList<PropertyChangeListener>();
33 
34     Object oldValue = null;
35 
36     Object newValue = null;
37 
PropertyEditorSupport(Object source)38     public PropertyEditorSupport(Object source) {
39         if (source == null) {
40             throw new NullPointerException(Messages.getString("beans.0C")); //$NON-NLS-1$
41         }
42         this.source = source;
43     }
44 
PropertyEditorSupport()45     public PropertyEditorSupport() {
46         source = this;
47     }
48 
paintValue(Graphics gfx, Rectangle box)49     public void paintValue(Graphics gfx, Rectangle box) {
50     }
51 
setAsText(String text)52     public void setAsText(String text) throws IllegalArgumentException {
53         if (newValue instanceof String) {
54             setValue(text);
55         } else {
56             throw new IllegalArgumentException(text);
57         }
58     }
59 
getTags()60     public String[] getTags() {
61         return null;
62     }
63 
getJavaInitializationString()64     public String getJavaInitializationString() {
65         return "???"; //$NON-NLS-1$
66     }
67 
getAsText()68     public String getAsText() {
69         return newValue == null ? "null" : newValue.toString(); //$NON-NLS-1$
70     }
71 
setValue(Object value)72     public void setValue(Object value) {
73         this.oldValue = this.newValue;
74         this.newValue = value;
75         firePropertyChange();
76     }
77 
getValue()78     public Object getValue() {
79         return newValue;
80     }
81 
setSource(Object source)82     public void setSource(Object source) {
83         if (source == null) {
84             throw new NullPointerException(Messages.getString("beans.0C")); //$NON-NLS-1$
85         }
86         this.source = source;
87     }
88 
getSource()89     public Object getSource() {
90         return source;
91     }
92 
removePropertyChangeListener( PropertyChangeListener listener)93     public synchronized void removePropertyChangeListener(
94             PropertyChangeListener listener) {
95         if (listeners != null) {
96             listeners.remove(listener);
97         }
98     }
99 
addPropertyChangeListener( PropertyChangeListener listener)100     public synchronized void addPropertyChangeListener(
101             PropertyChangeListener listener) {
102         listeners.add(listener);
103     }
104 
getCustomEditor()105     public Component getCustomEditor() {
106         return null;
107     }
108 
supportsCustomEditor()109     public boolean supportsCustomEditor() {
110         return false;
111     }
112 
isPaintable()113     public boolean isPaintable() {
114         return false;
115     }
116 
firePropertyChange()117     public void firePropertyChange() {
118         if (listeners.size() > 0) {
119             PropertyChangeEvent event = new PropertyChangeEvent(source, null,
120                     oldValue, newValue);
121             Iterator<PropertyChangeListener> iterator = listeners.iterator();
122 
123             while (iterator.hasNext()) {
124                 PropertyChangeListener listener = iterator.next();
125                 listener.propertyChange(event);
126             }
127         }
128     }
129 }
130