Revision 1225
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.dynform/org.gvsig.tools.dynform.spi/src/main/java/org/gvsig/tools/dynform/spi/dynformfield/AbstractJDynFormField.java | ||
---|---|---|
42 | 42 |
import javax.swing.JTextField; |
43 | 43 |
import javax.swing.JViewport; |
44 | 44 |
import javax.swing.text.JTextComponent; |
45 |
import org.gvsig.tools.dataTypes.CoercionException; |
|
46 |
import org.gvsig.tools.dataTypes.DataTypes; |
|
45 | 47 |
|
46 | 48 |
import org.gvsig.tools.dynform.DynFormFieldDefinition; |
47 | 49 |
import org.gvsig.tools.dynform.JDynForm; |
48 | 50 |
import org.gvsig.tools.dynform.JDynFormField; |
49 | 51 |
import org.gvsig.tools.dynform.spi.DynFormSPIManager; |
52 |
import org.gvsig.tools.dynobject.DynField_v2; |
|
50 | 53 |
import org.gvsig.tools.dynobject.DynObject; |
51 | 54 |
import org.gvsig.tools.service.Manager; |
52 | 55 |
import org.gvsig.tools.service.spi.ServiceManager; |
... | ... | |
119 | 122 |
|
120 | 123 |
public JComponent getJLabel() { |
121 | 124 |
if (this.jlabel == null) { |
122 |
this.jlabel = new JLabel(this.getLabel()); |
|
125 |
if( getTagValueAsBoolean("dynform.label.empty", false) ) { |
|
126 |
this.jlabel = new JLabel(""); |
|
127 |
} else { |
|
128 |
this.jlabel = new JLabel(this.getLabel()); |
|
129 |
} |
|
123 | 130 |
this.jlabel.setLabelFor(this.contents); |
124 | 131 |
if( this.getDefinition().isMandatory() ) { |
125 | 132 |
this.jlabel.setForeground(Color.red.darker()); |
... | ... | |
377 | 384 |
public JDynForm getForm() { |
378 | 385 |
return this.form; |
379 | 386 |
} |
387 |
|
|
388 |
protected int getTagValueAsInt(String tagname, int defaultVaue) { |
|
389 |
return getTagValueAsInt(tagname, null, defaultVaue); |
|
390 |
} |
|
391 |
|
|
392 |
protected int getTagValueAsInt(String tagname1, String tagname2, int defaultVaue) { |
|
393 |
DynField_v2 fielddef = (DynField_v2)this.getDefinition(); |
|
394 |
String tagname = null; |
|
395 |
if( fielddef.getTags().has(tagname1) ) { |
|
396 |
tagname = tagname1; |
|
397 |
} else if( fielddef.getTags().has(tagname2) ) { |
|
398 |
tagname = tagname2; |
|
399 |
} else { |
|
400 |
return defaultVaue; |
|
401 |
} |
|
402 |
try { |
|
403 |
int value = fielddef.getTags().getInt(tagname); |
|
404 |
return value; |
|
405 |
} catch (CoercionException ex) { |
|
406 |
logger.warn("Can't parse tag '"+tagname+"' as int for field '"+fielddef.getName()+"'.",ex); |
|
407 |
} |
|
408 |
return defaultVaue; |
|
409 |
} |
|
410 |
|
|
411 |
protected boolean getTagValueAsBoolean(String tagname, boolean defaultVaue) { |
|
412 |
return getTagValueAsBoolean(tagname, null, defaultVaue); |
|
413 |
} |
|
414 |
|
|
415 |
protected boolean getTagValueAsBoolean(String tagname1, String tagname2, boolean defaultVaue) { |
|
416 |
DynField_v2 fielddef = (DynField_v2)this.getDefinition(); |
|
417 |
String tagname = null; |
|
418 |
if( fielddef.getTags().has(tagname1) ) { |
|
419 |
tagname = tagname1; |
|
420 |
} else if( fielddef.getTags().has(tagname2) ) { |
|
421 |
tagname = tagname2; |
|
422 |
} else { |
|
423 |
return defaultVaue; |
|
424 |
} |
|
425 |
try { |
|
426 |
boolean value = fielddef.getTags().getBoolean(tagname); |
|
427 |
return value; |
|
428 |
} catch (CoercionException ex) { |
|
429 |
logger.warn("Can't parse tag '"+tagname+"' as boolean for field '"+fielddef.getName()+"'.",ex); |
|
430 |
} |
|
431 |
return defaultVaue; |
|
432 |
} |
|
433 |
|
|
434 |
protected String getTagValueAsString(String tagname, String defaultVaue) { |
|
435 |
return getTagValueAsString(tagname, null, defaultVaue); |
|
436 |
} |
|
437 |
|
|
438 |
protected String getTagValueAsString(String tagname1, String tagname2, String defaultVaue) { |
|
439 |
DynField_v2 fielddef = (DynField_v2)this.getDefinition(); |
|
440 |
String tagname = null; |
|
441 |
if( fielddef.getTags().has(tagname1) ) { |
|
442 |
tagname = tagname1; |
|
443 |
} else if( fielddef.getTags().has(tagname2) ) { |
|
444 |
tagname = tagname2; |
|
445 |
} else { |
|
446 |
return defaultVaue; |
|
447 |
} |
|
448 |
try { |
|
449 |
String value = (String) fielddef.getTags().get(tagname,DataTypes.STRING); |
|
450 |
return value; |
|
451 |
} catch (CoercionException ex) { |
|
452 |
logger.warn("Can't parse tag '"+tagname+"' as string for field '"+fielddef.getName()+"'.",ex); |
|
453 |
} |
|
454 |
return defaultVaue; |
|
455 |
} |
|
456 |
|
|
380 | 457 |
} |
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.dynform/org.gvsig.tools.dynform.spi/src/main/java/org/gvsig/tools/dynform/spi/AbstractJDynFormSet.java | ||
---|---|---|
10 | 10 |
import javax.swing.Action; |
11 | 11 |
import javax.swing.JComponent; |
12 | 12 |
import javax.swing.JOptionPane; |
13 |
import org.gvsig.tools.dataTypes.CoercionException; |
|
13 | 14 |
import org.gvsig.tools.dataTypes.DataType; |
14 | 15 |
import org.gvsig.tools.dispose.DisposableIterator; |
15 | 16 |
import org.gvsig.tools.dynform.DynFormDefinition; |
16 | 17 |
import org.gvsig.tools.dynform.JDynFormSet; |
17 | 18 |
import org.gvsig.tools.dynform.spi.dynformfield.VisitableSet; |
19 |
import org.gvsig.tools.dynobject.DynField_v2; |
|
18 | 20 |
import org.gvsig.tools.dynobject.DynObject; |
19 | 21 |
import org.gvsig.tools.dynobject.DynObjectSet; |
20 | 22 |
import org.gvsig.tools.exception.BaseException; |
... | ... | |
269 | 271 |
throw new UnsupportedOperationException(); |
270 | 272 |
} |
271 | 273 |
|
274 |
protected int getTagValueAsInt(String tagname, int defaultVaue) { |
|
275 |
if( definition.getTags().has(tagname) ) { |
|
276 |
try { |
|
277 |
int value = definition.getTags().getInt(tagname); |
|
278 |
return value; |
|
279 |
} catch (CoercionException ex) { |
|
280 |
logger.warn("Can't parse tag '"+tagname+"' as int for text field '"+definition.getName()+"'.",ex); |
|
281 |
} |
|
282 |
} |
|
283 |
return defaultVaue; |
|
284 |
} |
|
272 | 285 |
|
286 |
protected boolean getTagValueAsBoolean(String tagname, boolean defaultVaue) { |
|
287 |
if( definition.getTags().has(tagname) ) { |
|
288 |
try { |
|
289 |
boolean value = definition.getTags().getBoolean(tagname); |
|
290 |
return value; |
|
291 |
} catch (CoercionException ex) { |
|
292 |
logger.warn("Can't parse tag '"+tagname+"' as boolean for text field '"+definition.getName()+"'.",ex); |
|
293 |
} |
|
294 |
} |
|
295 |
return defaultVaue; |
|
296 |
} |
|
297 |
|
|
273 | 298 |
} |
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.dynform/org.gvsig.tools.dynform.impl/src/main/resources/org/gvsig/tools/dynform/main/MapserverLayerPropertiesForm2.xml | ||
---|---|---|
63 | 63 |
<field name="key" type="string" mandatory="false" order="1" |
64 | 64 |
group="Layer"> |
65 | 65 |
<description>Metadata key</description> |
66 |
<tags> |
|
67 |
<value name="dynform.width" value="20" /> |
|
68 |
</tags> |
|
66 | 69 |
</field> |
67 | 70 |
<field name="value" type="string" mandatory="false" order="2" |
68 | 71 |
group="Layer"> |
... | ... | |
1158 | 1161 |
mandatory="false" defaultValue="" group="Drawn Options"> |
1159 | 1162 |
<tags> |
1160 | 1163 |
<value name="ViewMode" value="SimpleTable" /> |
1164 |
<value name="dynform.height" value="200" /> |
|
1161 | 1165 |
</tags> |
1162 | 1166 |
<description>This keyword allows for arbitrary data to be stored as |
1163 | 1167 |
name value pairs. |
... | ... | |
1563 | 1567 |
<value name="TabPlacement" value="2" /> |
1564 | 1568 |
</tags> |
1565 | 1569 |
<fields> |
1566 |
<field name="Name" type="string" mandatory="false" |
|
1570 |
<field name="Name" type="string" subtype="text" mandatory="false"
|
|
1567 | 1571 |
group="General layer Properties"> |
1568 | 1572 |
<description>Layer name</description> |
1573 |
<tags> |
|
1574 |
<value name="rows" value="20" /> |
|
1575 |
</tags> |
|
1569 | 1576 |
</field> |
1570 | 1577 |
<field name="Group" type="string" mandatory="false" |
1571 | 1578 |
group="General layer Properties"> |
... | ... | |
1615 | 1622 |
</description> |
1616 | 1623 |
<tags> |
1617 | 1624 |
<value name="ViewMode" value="SimpleTable" /> |
1625 |
<value name="dynform.height" value="200" /> |
|
1618 | 1626 |
</tags> |
1619 | 1627 |
</field> |
1620 | 1628 |
<field name="Metadata2" type="List" subType="DynObject" typeOfItems="DynObject" classOfItems="MapserverLayerMetadataForm" |
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.dynform/org.gvsig.tools.dynform.impl/src/main/java/org/gvsig/tools/dynform/main/Test.java | ||
---|---|---|
106 | 106 |
|
107 | 107 |
List data = this.createSet(struct); |
108 | 108 |
//showForm("DynForms1", data, false, JDynForm.USE_TABS); |
109 |
showForm("DynForms2", data, false, JDynForm.USE_SEPARATORS);
|
|
109 |
showForm("DynForms2", data, false, JDynForm.USE_TABS);
|
|
110 | 110 |
//showForm("DynForms2-readonly", data, true, JDynForm.USE_SEPARATORS); |
111 | 111 |
//showFormPackageInfo(); |
112 | 112 |
|
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.dynform/org.gvsig.tools.dynform.services/src/main/java/org/gvsig/tools/dynform/services/dynformset/simpletable/SimpleTableJDynFormSet.java | ||
---|---|---|
56 | 56 |
import javax.swing.table.TableModel; |
57 | 57 |
|
58 | 58 |
import org.gvsig.tools.ToolsLocator; |
59 |
import org.gvsig.tools.dataTypes.CoercionException; |
|
59 | 60 |
import org.gvsig.tools.dynform.DynFormDefinition; |
60 | 61 |
import org.gvsig.tools.dynform.DynFormFieldDefinition; |
61 | 62 |
import org.gvsig.tools.dynform.spi.AbstractJDynFormSet; |
... | ... | |
79 | 80 |
|
80 | 81 |
public SimpleTableJDynFormSet(ServiceManager manager, DynFormDefinition definition) throws ServiceException { |
81 | 82 |
super(manager, definition); |
83 |
this.formHeight = 80; |
|
82 | 84 |
} |
83 | 85 |
|
84 | 86 |
@Override |
... | ... | |
151 | 153 |
//table.add(this.form.asJComponent()); |
152 | 154 |
|
153 | 155 |
JScrollPane scrollPane = new JScrollPane(table); |
154 |
scrollPane.setPreferredSize(new Dimension(scrollPane.getWidth(),80));
|
|
156 |
scrollPane.setPreferredSize(new Dimension(scrollPane.getWidth(),this.formHeight));
|
|
155 | 157 |
panel_chartType.add(scrollPane, gbc_table); |
156 | 158 |
|
157 | 159 |
|
... | ... | |
306 | 308 |
for(int i=0; i<this.definition.size(); i++){ |
307 | 309 |
TableColumn col = new TableColumn(); |
308 | 310 |
DynFormFieldDefinition field = this.definition.get(i); |
309 |
|
|
311 |
if( field.getTags().has("dynform.width") ) { |
|
312 |
try { |
|
313 |
int width = field.getTags().getInt("dynform.width"); |
|
314 |
col.setMaxWidth(width); |
|
315 |
} catch (CoercionException ex) { |
|
316 |
// Do nothing |
|
317 |
} |
|
318 |
} |
|
310 | 319 |
col.setHeaderValue(field.getLabel()); |
311 | 320 |
// col.setCellRenderer(getDefaultTableCellRenderer(field)); |
312 | 321 |
// col.setCellEditor(getDefaultTableCellEditor(field)); |
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.dynform/org.gvsig.tools.dynform.services/src/main/java/org/gvsig/tools/dynform/services/dynformfield/DynObjectList/JDynFormFieldDynObjectList.java | ||
---|---|---|
78 | 78 |
DynFormFieldDefinition def = this.getDefinition(); |
79 | 79 |
DynField_v2 fielddef = (DynField_v2)def; |
80 | 80 |
DynStruct struct = fielddef.getDynClassOfItems(); |
81 |
if(fielddef.getTags().has("ViewMode")){ |
|
82 |
String name = (String) fielddef.getTags().get("ViewMode"); |
|
83 |
try{ |
|
84 |
this.jdynFormSet = DynFormLocator.getDynFormManager().createJDynFormSet(name,struct); |
|
85 |
}catch(Exception e){ |
|
86 |
logger.warn("Error en la creaci?n del DynFormSet '"+ name +"'" , e); |
|
87 |
this.jdynFormSet = DynFormLocator.getDynFormManager().createJDynFormSet(struct); |
|
88 |
} |
|
89 |
}else{ |
|
90 |
this.jdynFormSet = DynFormLocator.getDynFormManager().createJDynFormSet(struct); |
|
91 |
} |
|
92 |
this.jdynFormSet.addListener(this); |
|
93 |
if( fielddef.getTags().has("layoutMode") ) { |
|
94 |
this.jdynFormSet.setLayoutMode(fielddef.getTags().getInt("layoutMode")); |
|
95 |
|
|
96 |
} |
|
97 |
|
|
98 |
if( fielddef.getTags().has("allowNew") ) { |
|
99 |
this.jdynFormSet.setAllowNew(fielddef.getTags().getBoolean("allowNew")); |
|
100 |
|
|
101 |
} |
|
102 |
if( fielddef.getTags().has("allowUpdate") ) { |
|
103 |
this.jdynFormSet.setAllowUpdate(fielddef.getTags().getBoolean("allowUpdate")); |
|
104 |
|
|
105 |
} |
|
106 |
if( fielddef.getTags().has("allowDelete") ) { |
|
107 |
this.jdynFormSet.setAllowDelete(fielddef.getTags().getBoolean("allowDelete")); |
|
108 |
|
|
109 |
} |
|
110 |
if( fielddef.getTags().has("allowSearch") ) { |
|
111 |
this.jdynFormSet.setAllowSearch(fielddef.getTags().getBoolean("allowSearch")); |
|
112 |
|
|
113 |
} |
|
114 |
|
|
81 |
String viewMode = getTagValueAsString("ViewMode", "dynform.viewmode", "Subform"); |
|
82 |
try{ |
|
83 |
this.jdynFormSet = DynFormLocator.getDynFormManager().createJDynFormSet(viewMode,struct); |
|
84 |
} catch(Exception e){ |
|
85 |
logger.warn("Error en la creaci?n del DynFormSet '"+ viewMode +"'" , e); |
|
86 |
this.jdynFormSet = DynFormLocator.getDynFormManager().createJDynFormSet(struct); |
|
87 |
} |
|
88 |
|
|
89 |
int height = getTagValueAsInt("dynform.height", -1); |
|
90 |
if( height>0 ) { |
|
91 |
this.jdynFormSet.setFormSize(50,height); |
|
92 |
} |
|
93 |
|
|
94 |
this.jdynFormSet.addListener(this); |
|
95 |
this.jdynFormSet.setLayoutMode(getTagValueAsInt("layoutMode", "dynform.layoutmode",JDynFormSet.USE_PLAIN)); |
|
96 |
this.jdynFormSet.setAllowNew(getTagValueAsBoolean("allowNew", "dynform.action.new", false)); |
|
97 |
this.jdynFormSet.setAllowUpdate(getTagValueAsBoolean("allowUpdate", "dynform.action.update", false)); |
|
98 |
this.jdynFormSet.setAllowDelete(getTagValueAsBoolean("allowDelete", "dynform.action.delete", false)); |
|
99 |
this.jdynFormSet.setAllowSearch(getTagValueAsBoolean("allowSearch", "dynform.action.search", false)); |
|
115 | 100 |
this.jdynFormSet.setAllowClose(false); |
116 | 101 |
this.jdynFormSet.setUseScrollBars(false); |
117 | 102 |
// this.jdynFormSet.setShowMessageStatus(false); |
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.dynform/org.gvsig.tools.dynform.services/src/main/java/org/gvsig/tools/dynform/services/dynformfield/DynObject/JDynFormFieldDynObject.java | ||
---|---|---|
70 | 70 |
this.contents = new JPanel(); |
71 | 71 |
this.contents.setLayout(new BorderLayout()); |
72 | 72 |
try { |
73 |
DynFormFieldDefinition def = this.getDefinition(); |
|
74 |
DynField_v2 fielddef = (DynField_v2)def; |
|
75 |
DynStruct struct = fielddef.getDynClassOfValue(); |
|
73 |
DynStruct struct = this.getDefinition().getDynClassOfValue(); |
|
76 | 74 |
this.jdynForm = DynFormLocator.getDynFormManager().createJDynForm(struct); |
77 |
if( fielddef.getTags().has("layoutMode") ) { |
|
78 |
this.jdynForm.setLayoutMode(fielddef.getTags().getInt("layoutMode")); |
|
79 |
} |
|
75 |
this.jdynForm.setLayoutMode(getTagValueAsInt("layoutMode", "dynform.layoutmode", JDynForm.USE_PLAIN )); |
|
80 | 76 |
this.jdynForm.setUseScrollBars(false); |
81 | 77 |
this.jdynForm.setShowMessageStatus(false); |
82 | 78 |
this.jdynForm.addListener(this); |
... | ... | |
84 | 80 |
this.contents.setVisible(true); |
85 | 81 |
this.jdynForm.setReadOnly(readonly); |
86 | 82 |
if( this.jdynForm.getShowFields().size() >1 ) { |
87 |
this.jdynForm.asJComponent().setBorder(BorderFactory.createLineBorder(Color.GRAY)); |
|
83 |
if( !getTagValueAsBoolean("dynform.border.empty", false) ) { |
|
84 |
this.jdynForm.asJComponent().setBorder(BorderFactory.createLineBorder(Color.GRAY)); |
|
85 |
} |
|
88 | 86 |
} |
89 | 87 |
this.setValue(this.assignedValue); |
90 | 88 |
} catch (Exception e) { |
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.dynform/org.gvsig.tools.dynform.services/src/main/java/org/gvsig/tools/dynform/services/dynformfield/Text/JDynFormFieldText.java | ||
---|---|---|
34 | 34 |
|
35 | 35 |
public class JDynFormFieldText extends AbstractJDynFormField implements JDynFormField { |
36 | 36 |
|
37 |
private final int CHAT_ROW_LIMIT = 3;
|
|
37 |
private final int CHAR_ROW_LIMIT = 3;
|
|
38 | 38 |
private String assignedValue = null; |
39 | 39 |
|
40 | 40 |
public JDynFormFieldText(DynObject parameters, |
... | ... | |
57 | 57 |
this.contents = new JScrollPane(new JCustomTextArea(this.getLabel())); |
58 | 58 |
this.getJTextArea().setLineWrap(true); |
59 | 59 |
this.getJTextArea().setWrapStyleWord(true); |
60 |
this.getJTextArea().setRows(CHAT_ROW_LIMIT); |
|
60 |
|
|
61 |
this.getJTextArea().setRows(getTagValueAsInt("dynform.rows",CHAR_ROW_LIMIT)); |
|
61 | 62 |
if(this.getDefinition().isReadOnly()) { |
62 | 63 |
this.getJTextArea().setEditable(false); |
63 | 64 |
} |
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/dynobject/impl/DefaultTags.java | ||
---|---|---|
38 | 38 |
} |
39 | 39 |
|
40 | 40 |
public boolean has(String name) { |
41 |
if(this.tags == null){ |
|
41 |
if(this.tags == null || name == null){
|
|
42 | 42 |
return false; |
43 | 43 |
} |
44 | 44 |
return this.tags.containsKey(name.toLowerCase()); |
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/dynobject/impl/DefaultDynObject.java | ||
---|---|---|
23 | 23 |
*/ |
24 | 24 |
package org.gvsig.tools.dynobject.impl; |
25 | 25 |
|
26 |
import java.io.StringWriter; |
|
26 | 27 |
import java.util.HashMap; |
27 | 28 |
import java.util.Map; |
29 |
import org.apache.commons.lang3.StringEscapeUtils; |
|
28 | 30 |
import org.gvsig.tools.ToolsLocator; |
29 | 31 |
|
30 | 32 |
import org.gvsig.tools.dataTypes.CoercionException; |
Also available in: Unified diff