Revision 632

View differences:

org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.impl/src/main/java/org/gvsig/tools/swing/impl/dynobject/DefaultJDynObjectComponent.java
257 257
			tab = (MyTab) this.tabComponents.get(group);
258 258
			if (tab == null) {
259 259
				pane = (MyTab) createPanel(group);
260
				this.getTabComponent().addTab(group, new JScrollPane(pane));
260
				this.getTabComponent().addTab(getGroupText(group),
261
						new JScrollPane(pane));
261 262
				tabComponents.put(group, pane);
262 263
			} else {
263 264
				tab.load(this.getDynObject());
......
266 267
		this.tabPanel.setTabPlacement(tabPosition);
267 268
	}
268 269

  
270
	private String getGroupText(String groupName) {
271
		if (this.getModel().isGroupCompulsory(groupName)) {
272
			return groupName + "*";
273
		}
274
		return groupName;
275
	}
276

  
269 277
	private String[] getGroups() {
270 278
		return this.getModel().getGroups();
271 279
	}
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.impl/src/main/java/org/gvsig/tools/swing/impl/dynobject/AbstractDynObjectModel.java
56 56

  
57 57
    private Map<String, List<DynFieldModel>> modelsList;
58 58
    protected DynStruct dynStruct;
59
	private List<String> compulsoryGroups;
59 60

  
60 61
    /**
61 62
     * Constructor.
......
71 72
     */
72 73
    public AbstractDynObjectModel(DynStruct definition, boolean initAll) {
73 74
        this.dynStruct = definition;
75
		this.compulsoryGroups = new ArrayList<String>();
74 76
        this.modelsList = new LinkedHashMap<String, List<DynFieldModel>>();
75
        if (initAll) {
77
		if (initAll) {
76 78
            initDynFieldModelList();
77 79
        }
78 80
    }
79 81

  
80
    /**
81
     * Creates a new DynFieldModel object with a default group set to "General"
82
     * and a field name
83
     * set to the <b>fieldName</b> value, and returns the created DynFieldModel.
84
     */
82
	public boolean isGroupCompulsory(String groupName) {
83
		return this.compulsoryGroups.contains(groupName);
84
	}
85

  
86
	/**
87
	 * Creates a new DynFieldModel object with a default group set to "General"
88
	 * and a field name set to the <b>fieldName</b> value, and returns the
89
	 * created DynFieldModel.
90
	 */
85 91
    public DynFieldModel add(String fieldName) {
86 92
        return add(this.getGenericLabel(), fieldName);
87 93
    }
......
102 108
            List<DynFieldModel> list = getGroupElements(group);
103 109
            if (isNewElement(list, elem)) {
104 110
                list.add(list.size(), elem);
111
				if (elem.getDynField().isMandatory()) {
112
					if (!this.compulsoryGroups.contains(group)) {
113
						compulsoryGroups.add(group);
114
					}
115
				}
105 116
            }
106 117
            return elem;
107 118
        }
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.impl/src/main/java/org/gvsig/tools/swing/impl/dynobject/DefaultDynObjectModel.java
112 112
							|| ((field.isContainer()) && (field
113 113
									.getElementsType().getType() == DataTypes.DYNOBJECT)))
114 114
						if (field.isMandatory()) {
115
							this.add(field.getName() + "*", field.getName());
115
							this.add(field.getName(), field.getName());
116 116
						} else {
117 117
							this.add(field.getName(), field.getName());
118 118
						}
119
					else
119
					else{
120 120
						this.add(getGenericLabel(), field.getName());
121
					}
121 122
				}
122 123
			}
123 124
		}
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.api/src/main/java/org/gvsig/tools/swing/api/dynobject/DynObjectModel.java
109 109
     */
110 110
    public String[] getGroups();
111 111
    
112
	/**
113
	 * Determines if a group contains compulsory fields or not
114
	 * 
115
	 * @param groupName
116
	 *            the current groupName
117
	 * 
118
	 * @return if it has compulsory elements or not
119
	 */
120
	public boolean isGroupCompulsory(String groupName);
112 121

  
122
	/**
123
	 * Returns a generic label for this group
124
	 * 
125
	 * @return
126
	 */
113 127
    public String getGenericLabel() ;
114 128
}

Also available in: Unified diff