Revision 270 org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.spi/src/main/java/org/gvsig/tools/swing/spi/AbstractJDynFieldComponent.java

View differences:

AbstractJDynFieldComponent.java
50 50
 * @author 2010- C?sar Ordi?ana - gvSIG team
51 51
 */
52 52
public abstract class AbstractJDynFieldComponent extends AbstractJDynField
53
	implements JDynFieldComponent {
53
    implements JDynFieldComponent {
54 54

  
55 55
    private static final long serialVersionUID = 7833217085675382320L;
56 56

  
......
60 60

  
61 61
    private final ValueField fieldValue;
62 62

  
63
	/**
64
	 * Constructor.
65
	 *  
66
	 * @param dynField
67
	 *            the field of the {@link DynObject} to render
68
	 * @param dynObject
69
	 *            the {@link DynObject} with the attribute to render
70
	 */
71
	public AbstractJDynFieldComponent(DynField dynField, ValueField value)
72
			throws ServiceException {
73
		super(dynField);
74
		fieldValue = value;
75
		listeners = new ArrayList<ValueChangedListener>();
76
		// this.dynObject = dynObject.getDynObject();
77
		manager = ToolsSwingLocator.getDynObjectSwingManager();
78
		this.init();
79
	}
63
    /**
64
     * Constructor.
65
     * 
66
     * @param dynField
67
     *            the field of the {@link DynObject} to render
68
     * @param dynObject
69
     *            the {@link DynObject} with the attribute to render
70
     */
71
    public AbstractJDynFieldComponent(DynField dynField, ValueField value)
72
        throws ServiceException {
73
        super(dynField);
74
        fieldValue = value;
75
        listeners = new ArrayList<ValueChangedListener>();
76
        // this.dynObject = dynObject.getDynObject();
77
        manager = ToolsSwingLocator.getDynObjectSwingManager();
78
        this.init();
79
    }
80 80

  
81
	/*
82
	 * (non-Javadoc)
83
	 * 
84
	 * @seeorg.gvsig.tools.swing.api.dynobject.dynfield.JDynFieldComponent#
85
	 * addValueChangedListener
86
	 * (org.gvsig.tools.swing.api.dynobject.ValueChangedListener)
87
	 */
88
	public void addValueChangedListener(ValueChangedListener listener) {
89
		// If it was the first item, we need to
90
		// initialize Component listeners
91
		// add listener to the dynfield set of listeners
92
		listeners.add(listener);
93
		// set supplementary listeners.
94
		this.setJDynFieldComponentListeners();
95
	}
81
    /*
82
     * (non-Javadoc)
83
     * 
84
     * @seeorg.gvsig.tools.swing.api.dynobject.dynfield.JDynFieldComponent#
85
     * addValueChangedListener
86
     * (org.gvsig.tools.swing.api.dynobject.ValueChangedListener)
87
     */
88
    public void addValueChangedListener(ValueChangedListener listener) {
89
        // If it was the first item, we need to
90
        // initialize Component listeners
91
        // add listener to the dynfield set of listeners
92
        listeners.add(listener);
93
        // set supplementary listeners.
94
        this.setJDynFieldComponentListeners();
95
    }
96 96

  
97
	protected JPanel createBoxLayout(Component component1,
98
			Component component2, Integer marginLeft, Integer marginRight,
99
			JPanel container) {
100
		return this.createBoxRowPanel(container, component1, component2,
101
				marginLeft, marginRight);
102
	}
97
    protected JPanel createBoxLayout(Component component1,
98
        Component component2, Integer marginLeft, Integer marginRight,
99
        JPanel container) {
100
        return this.createBoxRowPanel(container, component1, component2,
101
            marginLeft, marginRight);
102
    }
103 103

  
104
	public void setValue(Object value) {
105
		if (value == null)
106
			setNullValue();
107
		else
108
			setNonNullValue(value);
109
		this.fireValueChangedEvent();
110
	}
104
    public void setValue(Object value) {
105
        if (value == null)
106
            setNullValue();
107
        else
108
            setNonNullValue(value);
109
        this.fireValueChangedEvent();
110
    }
111 111

  
112
	/**
113
	 * @param value
114
	 */
115
	protected abstract void setNonNullValue(Object value);
112
    /**
113
     * @param value
114
     */
115
    protected abstract void setNonNullValue(Object value);
116 116

  
117
	/**
117
    /**
118 118
     * 
119 119
     */
120
	protected abstract void setNullValue();
120
    protected abstract void setNullValue();
121 121

  
122
	/*
123
	 * (non-Javadoc)
124
	 * 
125
	 * @see
126
	 * org.gvsig.tools.swing.api.usability.UsabilitySwingManager#createBoxRowPanel
127
	 * (javax.swing.JPanel, java.awt.Component, java.awt.Component,
128
	 * java.lang.Integer, java.lang.Integer)
129
	 */
130
	public JPanel createBoxRowPanel(JPanel panel, Component labelComponent,
131
			Component fieldLabel, Integer marginLeft, Integer marginRight) {
122
    /*
123
     * (non-Javadoc)
124
     * 
125
     * @see
126
     * 
127
     * org.gvsig.tools.swing.api.usability.UsabilitySwingManager#createBoxRowPanel
128
     * (javax.swing.JPanel, java.awt.Component, java.awt.Component,
129
     * java.lang.Integer, java.lang.Integer)
130
     */
131
    public JPanel createBoxRowPanel(JPanel panel, Component labelComponent,
132
        Component fieldLabel, Integer marginLeft, Integer marginRight) {
132 133

  
133
	// Create a panel that uses GridLayout.
134
	JPanel pane = new JPanel();
135
	pane.setLayout(new BoxLayout(pane, BoxLayout.LINE_AXIS));
136
	pane.add(labelComponent);
137
	if (marginLeft != null)
138
	    pane.add(Box.createHorizontalStrut(marginLeft));
139
	// pane.add(new JSeparator(SwingConstants.VERTICAL));
140
	if (marginRight != null)
141
	    pane.add(Box.createHorizontalStrut(marginRight));
142
	pane.add(fieldLabel, BorderLayout.NORTH);
143
	// if (buttonComponent!=null)
144
	// pane.add(buttonComponent);
145
	pane.setBorder(BorderFactory.createEmptyBorder(1, 1, 1, 1));
146
	return pane;
134
        // Create a panel that uses GridLayout.
135
        JPanel pane = new JPanel();
136
        pane.setLayout(new BoxLayout(pane, BoxLayout.LINE_AXIS));
137
        pane.add(labelComponent);
138
        if (marginLeft != null)
139
            pane.add(Box.createHorizontalStrut(marginLeft));
140
        // pane.add(new JSeparator(SwingConstants.VERTICAL));
141
        if (marginRight != null)
142
            pane.add(Box.createHorizontalStrut(marginRight));
143
        pane.add(fieldLabel, BorderLayout.NORTH);
144
        // if (buttonComponent!=null)
145
        // pane.add(buttonComponent);
146
        pane.setBorder(BorderFactory.createEmptyBorder(1, 1, 1, 1));
147
        return pane;
147 148
    }
148 149

  
149

  
150 150
    protected JButton createButton(String text) {
151
	return ToolsSwingLocator.getUsabilitySwingManager().createJToolButton(
152
		this.translate(text));
151
        return ToolsSwingLocator.getUsabilitySwingManager().createJToolButton(
152
            this.translate(text));
153 153
    }
154
	
154

  
155 155
    /*
156 156
     * (non-Javadoc)
157 157
     * 
......
159 159
     * raiseValueChangedEvent()
160 160
     */
161 161
    public void fireValueChangedEvent() {
162
	for (ValueChangedListener listener : listeners)
163
	    listener.handleValueChanged(this);
162
        for (ValueChangedListener listener : listeners)
163
            listener.handleValueChanged(this);
164 164
    }
165 165

  
166 166
    /**
......
169 169
     * @return the default field's value if any, else null
170 170
     */
171 171
    protected Object getDefaultFieldValue() {
172
	return this.getDynField().getDefaultValue();
172
        return this.getDynField().getDefaultValue();
173 173
    }
174 174

  
175 175
    /*
......
179 179
     * org.gvsig.tools.swing.api.dynobject.dynfield.ValueField#getDefaultValue()
180 180
     */
181 181
    public Object getDefaultValue() {
182
	return fieldValue.getDefaultValue();
182
        return fieldValue.getDefaultValue();
183 183
    }
184 184

  
185 185
    protected String getFieldName() {
186
	return this.getDynField().getName();
186
        return this.getDynField().getName();
187 187
    }
188 188

  
189 189
    /**
......
191 191
     */
192 192
    @Override
193 193
    public Object getFieldValue() {
194
	Object value = fieldValue.getValue();
195
	if (value == null)
196
	    return fieldValue.getDefaultValue();
197
	return value;
194
        Object value = fieldValue.getValue();
195
        if (value == null)
196
            return fieldValue.getDefaultValue();
197
        return value;
198 198
    }
199 199

  
200 200
    /**
......
203 203
     * @return the field's value
204 204
     */
205 205
    protected Object getFieldValue(ValueField fieldValue) {
206
	return fieldValue.getValue();
206
        return fieldValue.getValue();
207 207
    }
208 208

  
209 209
    /*
......
212 212
     * @see org.gvsig.tools.service.Service#getManager()
213 213
     */
214 214
    public Manager getManager() {
215
	return manager;
215
        return manager;
216 216
    }
217 217

  
218 218
    public boolean isMandatory() {
219
	return this.getDynField().isMandatory();
219
        return this.getDynField().isMandatory();
220 220
    }
221 221

  
222 222
    /**
223 223
     * @return
224 224
     */
225 225
    protected boolean isReadOnly() {
226
	return this.getDynField().isReadOnly();
226
        return this.getDynField().isReadOnly();
227 227
    }
228 228

  
229 229
    /*
......
233 233
     * org.gvsig.tools.swing.api.dynobject.dynfield.JDynFieldComponent#isValid()
234 234
     */
235 235
    public boolean isValid() {
236
	// Object value = getValue();
237
	// if ((value==null)||(value.equals("")))
238
	// if (isMandatory())
239
	// return false;
240
	// else if (value==null)
241
	// return true;
242
	return this.validate(this.getValue());
236
        // Object value = getValue();
237
        // if ((value==null)||(value.equals("")))
238
        // if (isMandatory())
239
        // return false;
240
        // else if (value==null)
241
        // return true;
242
        return this.validate(this.getValue());
243 243
    }
244 244

  
245 245
    /**
246 246
     * Stores the edited data into the DynObject field.
247 247
     */
248 248
    public void saveStatus() {
249
	this.setFieldValue(this.getValue());
249
        this.setFieldValue(this.getValue());
250 250
    }
251
    
251

  
252 252
    /**
253 253
     * Sets the value of the {@link DynObject}'s field to manage.
254 254
     * 
......
256 256
     *            the value for the field
257 257
     */
258 258
    public void setFieldValue(Object value) {
259
		if (validate(value)){
260
        	fieldValue.setValue(value);
259
        if (validate(value)) {
260
            fieldValue.setValue(value);
261 261
        }
262 262
    }
263
    
263

  
264 264
    /**
265 265
	 * 
266 266
	 */
267 267
    protected abstract void setJDynFieldComponentListeners();
268 268

  
269 269
    protected String translate(String text) {
270
	return ToolsLocator.getI18nManager().getTranslation(text);
270
        return ToolsLocator.getI18nManager().getTranslation(text);
271 271
    }
272 272

  
273 273
    /**
274 274
     * @param value
275 275
     */
276 276
    private boolean validate(Object value) {
277
	try {
278
	    this.getDynField().validate(value);
279
	    return true;
280
	} catch (DynFieldValidateException e) {
281
	    return false;
282
	}
277
        try {
278
            this.getDynField().validate(value);
279
            return true;
280
        } catch (DynFieldValidateException e) {
281
            return false;
282
        }
283 283
    }
284 284

  
285
}
285
}

Also available in: Unified diff