Revision 1225

View differences:

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