|
@@ -1,202 +1,202 @@ |
1 |
|
- |
// This Source Code is in the Public Domain per: http://unlicense.org |
2 |
|
- |
package org.litesoft.aokeyhole.swing; |
3 |
|
- |
|
4 |
|
- |
import org.litesoft.aokeyhole.objects.*; |
5 |
|
- |
import org.litesoft.aokeyhole.objects.attributes.*; |
6 |
|
- |
import org.litesoft.aokeyhole.objects.support.*; |
7 |
|
- |
import org.litesoft.aokeyhole.swing.namevaluecomponents.*; |
8 |
|
- |
import org.litesoft.aokeyhole.toolkit.*; |
9 |
|
- |
import org.litesoft.aokeyhole.toolkit.editorviewer.*; |
10 |
|
- |
|
11 |
|
- |
import java.util.*; |
12 |
|
- |
|
13 |
|
- |
public class SwingEditViewPanelFactory implements EditViewPanelFactory, |
14 |
|
- |
SwingObjectPropertyComponentFactory, |
15 |
|
- |
SwingAttributePropertyComponentFactory { |
16 |
|
- |
@Override |
17 |
|
- |
public EditViewPanelController createEditViewPanelController( boolean pEditable, String pSubSystemName, ObjectSet[] pObjectSets, |
18 |
|
- |
AttributeSet[] pAttributeSets, ActionsListener pActionsListener, |
19 |
|
- |
NewObjectTypeSelectionListener pNewObjectTypeSelectionListener, |
20 |
|
- |
NewAttributeTypeSelectionListener pNewAttributeTypeSelectionListener, |
21 |
|
- |
NameValueChangedByUserListener pNameValueChangedByUserListener ) { |
22 |
|
- |
SwingEditViewCardedJPanel carded = new SwingEditViewCardedJPanel( pActionsListener, pNameValueChangedByUserListener ); |
23 |
|
- |
|
24 |
|
- |
if ( pEditable ) { |
25 |
|
- |
List<ObjectSet> zObjectSets = new ArrayList<ObjectSet>(); |
26 |
|
- |
for ( ObjectSet zObjectSet : pObjectSets ) { |
27 |
|
- |
if ( zObjectSet.acceptableForSubSystem( pSubSystemName ) ) { |
28 |
|
- |
zObjectSets.add( zObjectSet ); |
29 |
|
- |
} |
30 |
|
- |
} |
31 |
|
- |
if ( zObjectSets.size() > 1 ) { |
32 |
|
- |
carded.addNewObjectTypeSelector( new AddNewObjectTypeSelectorJPanel( zObjectSets, pActionsListener, pNewObjectTypeSelectionListener ) ); |
33 |
|
- |
} else { |
34 |
|
- |
carded.addNewObjectTypeSelector( zObjectSets.get( 0 ), pNewObjectTypeSelectionListener ); |
35 |
|
- |
} |
36 |
|
- |
carded.addNewAttributeTypeSelector( pAttributeSets, pActionsListener, pNewAttributeTypeSelectionListener ); |
37 |
|
- |
} |
38 |
|
- |
|
39 |
|
- |
carded.addObjects( this ); |
40 |
|
- |
|
41 |
|
- |
carded.addAttributes( this ); |
42 |
|
- |
|
43 |
|
- |
return carded; |
44 |
|
- |
} |
45 |
|
- |
|
46 |
|
- |
@Override |
47 |
|
- |
public VerticalGrowableIndicatingComponent[] createComponentsForObject( NameValueChangedByUserListener pNameValueChangedByUserListener, ObjectSet pObjectSet, |
48 |
|
- |
SubSystemMetaData pSubSystemMetaData ) { |
49 |
|
- |
NamedStringFieldComponent zNameComponent = createComponentName( pNameValueChangedByUserListener, false ); |
50 |
|
- |
List<VerticalGrowableIndicatingComponent> collector = init( zNameComponent ); |
51 |
|
- |
String zParentLabel = pObjectSet.getParentLabel( pSubSystemMetaData.getName() ); |
52 |
|
- |
if ( zParentLabel != null ) { |
53 |
|
- |
collector.add( createComponentParent( pSubSystemMetaData, pObjectSet, pNameValueChangedByUserListener, zParentLabel, zNameComponent ) ); |
54 |
|
- |
} |
55 |
|
- |
addToForObject( pNameValueChangedByUserListener, collector, pObjectSet.getPMDs() ); |
56 |
|
- |
return fini( pNameValueChangedByUserListener, collector ); |
57 |
|
- |
} |
58 |
|
- |
|
59 |
|
- |
@Override |
60 |
|
- |
public VerticalGrowableIndicatingComponent[] createComponentsForAttribute( NameValueChangedByUserListener pNameValueChangedByUserListener, boolean pVirtual, |
61 |
|
- |
AttributeSet pAttributeSet, ObjectMetaData pObjectMetaData ) { |
62 |
|
- |
AttributeType zAttributeType = pAttributeSet.getType(); |
63 |
|
- |
List<VerticalGrowableIndicatingComponent> collector = init( createComponentName( pNameValueChangedByUserListener, pAttributeSet instanceof ID_Set ) ); |
64 |
|
- |
if ( (zAttributeType instanceof AbstractAttributeTypeRelated) && !(zAttributeType instanceof NoPeerAttribute) ) { |
65 |
|
- |
collector.add( createComponentRelatedTo( pObjectMetaData, pAttributeSet, pVirtual, (AbstractAttributeTypeRelated) zAttributeType, |
66 |
|
- |
pNameValueChangedByUserListener ) ); |
67 |
|
- |
if ( !pVirtual && !(pAttributeSet instanceof NoBackRefAttribute) && !(zAttributeType instanceof NoBackRefAttribute) ) { |
68 |
|
- |
collector.add( createComponentBackRef( pObjectMetaData, pNameValueChangedByUserListener ) ); |
69 |
|
- |
} |
70 |
|
- |
} else if ( zAttributeType instanceof AbstractValidOptionsAttributeTypeSimple ) { |
71 |
|
- |
collector.add( createComponentValidOptions( pNameValueChangedByUserListener ) ); |
72 |
|
- |
} |
73 |
|
- |
ObjectSet zObjectSet = pObjectMetaData.getObjectSet(); |
74 |
|
- |
addToForAttribute( pNameValueChangedByUserListener, collector, zObjectSet, |
75 |
|
- |
(pVirtual ? pAttributeSet.getVirtual() : pAttributeSet.getPersisted()).getPMDs() ); |
76 |
|
- |
addToForAttribute( pNameValueChangedByUserListener, collector, zObjectSet, zObjectSet.getAdditionalAttributePMDs( zAttributeType ) ); |
77 |
|
- |
return fini( pNameValueChangedByUserListener, collector ); |
78 |
|
- |
} |
79 |
|
- |
|
80 |
|
- |
protected LabeledComponent createComponentRelatedTo( ObjectMetaData pObjectMetaData, AttributeSet pAttributeSet, boolean pVirtual, |
81 |
|
- |
AbstractAttributeTypeRelated pTypeRelated, |
82 |
|
- |
NameValueChangedByUserListener pNameValueChangedByUserListener ) { |
83 |
|
- |
|
84 |
|
- |
return new RelatedToSelectOptionComponent( pObjectMetaData, pAttributeSet, pVirtual, pTypeRelated, pNameValueChangedByUserListener ).initialize(); |
85 |
|
- |
} |
86 |
|
- |
|
87 |
|
- |
protected LabeledComponent createComponentBackRef( ObjectMetaData pObjectMetaData, NameValueChangedByUserListener pNameValueChangedByUserListener ) { |
88 |
|
- |
return new BackRefComponent( pObjectMetaData, pNameValueChangedByUserListener ).initialize(); |
89 |
|
- |
} |
90 |
|
- |
|
91 |
|
- |
private List<VerticalGrowableIndicatingComponent> init( VerticalGrowableIndicatingComponent... pInitialComponents ) { |
92 |
|
- |
List<VerticalGrowableIndicatingComponent> collector = new ArrayList<VerticalGrowableIndicatingComponent>(); |
93 |
|
- |
collector.addAll( Arrays.asList( pInitialComponents ) ); |
94 |
|
- |
return collector; |
95 |
|
- |
} |
96 |
|
- |
|
97 |
|
- |
private VerticalGrowableIndicatingComponent[] fini( NameValueChangedByUserListener pNameValueChangedByUserListener, |
98 |
|
- |
List<VerticalGrowableIndicatingComponent> pCollector ) { |
99 |
|
- |
pCollector.add( createComponentNotes( pNameValueChangedByUserListener ) ); |
100 |
|
- |
return pCollector.toArray( new VerticalGrowableIndicatingComponent[pCollector.size()] ); |
101 |
|
- |
} |
102 |
|
- |
|
103 |
|
- |
private NamedStringFieldComponent createComponentName( NameValueChangedByUserListener pNameValueChangedByUserListener, boolean pPermDisabled ) { |
104 |
|
- |
NameValueComponentParams params = new NameValueComponentParams( OABaseNames.NAME, Required.YES ); |
105 |
|
- |
params.setNameValueChangedByUserListener( pNameValueChangedByUserListener ); |
106 |
|
- |
params.setPermDisabled( pPermDisabled ); |
107 |
|
- |
NamedStringFieldComponent rv = new NamedStringFieldComponent( params ); |
108 |
|
- |
rv.initialize(); |
109 |
|
- |
return rv; |
110 |
|
- |
} |
111 |
|
- |
|
112 |
|
- |
private LabeledComponent createComponentParent( SubSystemMetaData pSubSystemMetaData, ObjectSet pObjectSet, |
113 |
|
- |
NameValueChangedByUserListener pNameValueChangedByUserListener, String pParentLabel, |
114 |
|
- |
NamedStringFieldComponent pNameComponent ) { |
115 |
|
- |
return new ParentSelectOptionComponent( pSubSystemMetaData, pObjectSet, pNameValueChangedByUserListener, pParentLabel, pNameComponent ).initialize(); |
116 |
|
- |
} |
117 |
|
- |
|
118 |
|
- |
private LabeledComponent createComponentNotes( NameValueChangedByUserListener pNameValueChangedByUserListener ) { |
119 |
|
- |
return createStringLinesField( pNameValueChangedByUserListener, StringArrayValueStringConverter.TRIM_TRAILING, |
120 |
|
- |
new NameValueComponentParams( OABaseNames.NOTES ).setWrapTextArea( true ) ); |
121 |
|
- |
} |
122 |
|
- |
|
123 |
|
- |
protected LabeledComponent createComponentValidOptions( NameValueChangedByUserListener pNameValueChangedByUserListener ) { |
124 |
|
- |
return createStringLinesField( pNameValueChangedByUserListener, StringArrayValueStringConverter.TRIM_DROP_EMPTY, |
125 |
|
- |
new NameValueComponentParams( AttribNames.VALID_OPTIONS, "Valid Options", Required.YES ) ); |
126 |
|
- |
} |
127 |
|
- |
|
128 |
|
- |
private LabeledComponent createStringLinesField( NameValueChangedByUserListener pNameValueChangedByUserListener, StringArrayValueStringConverter pConverter, |
129 |
|
- |
NameValueComponentParams pBasicParams ) { |
130 |
|
- |
return createStringLinesField( pBasicParams.setValidater( pConverter ).setNameValueChangedByUserListener( pNameValueChangedByUserListener ) ); |
131 |
|
- |
} |
132 |
|
- |
|
133 |
|
- |
private void addToForAttribute( NameValueChangedByUserListener pNameValueChangedByUserListener, List<VerticalGrowableIndicatingComponent> pCollector, |
134 |
|
- |
ObjectSet pObjectSet, PropertyMetaData[] pProperties ) { |
135 |
|
- |
if ( pProperties != null ) { |
136 |
|
- |
for ( PropertyMetaData property : pProperties ) { |
137 |
|
- |
if ( pObjectSet.acceptableAttributePMD( property ) ) { |
138 |
|
- |
pCollector.add( createPropertyComponent( pNameValueChangedByUserListener, property ) ); |
139 |
|
- |
} |
140 |
|
- |
} |
141 |
|
- |
} |
142 |
|
- |
} |
143 |
|
- |
|
144 |
|
- |
private void addToForObject( NameValueChangedByUserListener pNameValueChangedByUserListener, List<VerticalGrowableIndicatingComponent> pCollector, |
145 |
|
- |
PropertyMetaData[] pProperties ) { |
146 |
|
- |
for ( PropertyMetaData property : pProperties ) { |
147 |
|
- |
pCollector.add( createPropertyComponent( pNameValueChangedByUserListener, property ) ); |
148 |
|
- |
} |
149 |
|
- |
} |
150 |
|
- |
|
151 |
|
- |
protected LabeledComponent createPropertyComponent( NameValueChangedByUserListener pNameValueChangedByUserListener, PropertyMetaData pProperty ) { |
152 |
|
- |
NameValueComponentParams params = new NameValueComponentParams( pProperty.getName(), pProperty.getDisplayLabel(), pProperty.getRequired() ); |
153 |
|
- |
params.setValidater( pProperty ).setNameValueChangedByUserListener( pNameValueChangedByUserListener ); |
154 |
|
- |
params.setInitialValue( pProperty.getInitialValue() ); |
155 |
|
- |
switch ( pProperty.getDataType() ) { |
156 |
|
- |
case BOOLEAN: |
157 |
|
- |
return createBooleanField( params ); |
158 |
|
- |
case STRING: |
159 |
|
- |
return createStringField( params, pProperty.getValidOptions() ); |
160 |
|
- |
case INT_POSITIVE: |
161 |
|
- |
return createPositiveIntegerField( params ); |
162 |
|
- |
case DATA_TYPE_CLASS: |
163 |
|
- |
return createSelectorField( params, pProperty.getValidOptions() ); |
164 |
|
- |
case STRING_ARRAY: |
165 |
|
- |
return createStringLinesField( params ); |
166 |
|
- |
default: |
167 |
|
- |
return createStringFieldDisabled( params ); |
168 |
|
- |
} |
169 |
|
- |
} |
170 |
|
- |
|
171 |
|
- |
protected LabeledComponent createBooleanField( NameValueComponentParams pParams ) { |
172 |
|
- |
if ( pParams.isDataRequired() ) { |
173 |
|
- |
return new NamedBooleanFieldComponent( pParams ).initialize(); |
174 |
|
- |
} |
175 |
|
- |
|
176 |
|
- |
return new NamedSelectOptionComponent( pParams.setValidater( ValueStringConverterOptionalBoolean.INSTANCE ), ValueStringConverterOptionalBoolean.OPTIONS ) |
177 |
|
- |
.initialize(); |
178 |
|
- |
} |
179 |
|
- |
|
180 |
|
- |
protected LabeledComponent createStringField( NameValueComponentParams pParams, String[] pValidOptions ) { |
181 |
|
- |
if ( pValidOptions == null ) { |
182 |
|
- |
return new NamedStringFieldComponent( pParams ).initialize(); |
183 |
|
- |
} |
184 |
|
- |
return new NamedSelectOptionComponent( pParams, pValidOptions ).initialize(); |
185 |
|
- |
} |
186 |
|
- |
|
187 |
|
- |
protected LabeledComponent createPositiveIntegerField( NameValueComponentParams pParams ) { |
188 |
|
- |
return new NamedPositiveIntegerFieldComponent( pParams ).initialize(); |
189 |
|
- |
} |
190 |
|
- |
|
191 |
|
- |
protected LabeledComponent createSelectorField( NameValueComponentParams pParams, String[] pValidOptions ) { |
192 |
|
- |
return new NamedSelectOptionComponent( pParams, pValidOptions ).initialize(); |
193 |
|
- |
} |
194 |
|
- |
|
195 |
|
- |
protected LabeledComponent createStringLinesField( NameValueComponentParams pParams ) { |
196 |
|
- |
return new NamedStringLinesFieldComponent( pParams ).initialize(); |
197 |
|
- |
} |
198 |
|
- |
|
199 |
|
- |
protected LabeledComponent createStringFieldDisabled( NameValueComponentParams pParams ) { |
200 |
|
- |
return new NamedStringFieldComponent( pParams.setPermDisabled( true ) ).initialize(); |
201 |
|
- |
} |
202 |
|
- |
} |
|
1 |
+ |
// This Source Code is in the Public Domain per: http://unlicense.org |
|
2 |
+ |
package org.litesoft.aokeyhole.swing; |
|
3 |
+ |
|
|
4 |
+ |
import org.litesoft.aokeyhole.objects.*; |
|
5 |
+ |
import org.litesoft.aokeyhole.objects.attributes.*; |
|
6 |
+ |
import org.litesoft.aokeyhole.objects.support.*; |
|
7 |
+ |
import org.litesoft.aokeyhole.swing.namevaluecomponents.*; |
|
8 |
+ |
import org.litesoft.aokeyhole.toolkit.*; |
|
9 |
+ |
import org.litesoft.aokeyhole.toolkit.editorviewer.*; |
|
10 |
+ |
|
|
11 |
+ |
import java.util.*; |
|
12 |
+ |
|
|
13 |
+ |
public class SwingEditViewPanelFactory implements EditViewPanelFactory, |
|
14 |
+ |
SwingObjectPropertyComponentFactory, |
|
15 |
+ |
SwingAttributePropertyComponentFactory { |
|
16 |
+ |
@Override |
|
17 |
+ |
public EditViewPanelController createEditViewPanelController( boolean pEditable, String pSubSystemName, ObjectSet[] pObjectSets, |
|
18 |
+ |
AttributeSet[] pAttributeSets, ActionsListener pActionsListener, |
|
19 |
+ |
NewObjectTypeSelectionListener pNewObjectTypeSelectionListener, |
|
20 |
+ |
NewAttributeTypeSelectionListener pNewAttributeTypeSelectionListener, |
|
21 |
+ |
NameValueChangedByUserListener pNameValueChangedByUserListener ) { |
|
22 |
+ |
SwingEditViewCardedJPanel carded = new SwingEditViewCardedJPanel( pActionsListener, pNameValueChangedByUserListener ); |
|
23 |
+ |
|
|
24 |
+ |
if ( pEditable ) { |
|
25 |
+ |
List<ObjectSet> zObjectSets = new ArrayList<ObjectSet>(); |
|
26 |
+ |
for ( ObjectSet zObjectSet : pObjectSets ) { |
|
27 |
+ |
if ( zObjectSet.acceptableForSubSystem( pSubSystemName ) ) { |
|
28 |
+ |
zObjectSets.add( zObjectSet ); |
|
29 |
+ |
} |
|
30 |
+ |
} |
|
31 |
+ |
if ( zObjectSets.size() > 1 ) { |
|
32 |
+ |
carded.addNewObjectTypeSelector( new AddNewObjectTypeSelectorJPanel( zObjectSets, pActionsListener, pNewObjectTypeSelectionListener ) ); |
|
33 |
+ |
} else { |
|
34 |
+ |
carded.addNewObjectTypeSelector( zObjectSets.get( 0 ), pNewObjectTypeSelectionListener ); |
|
35 |
+ |
} |
|
36 |
+ |
carded.addNewAttributeTypeSelector( pAttributeSets, pActionsListener, pNewAttributeTypeSelectionListener ); |
|
37 |
+ |
} |
|
38 |
+ |
|
|
39 |
+ |
carded.addObjects( this ); |
|
40 |
+ |
|
|
41 |
+ |
carded.addAttributes( this ); |
|
42 |
+ |
|
|
43 |
+ |
return carded; |
|
44 |
+ |
} |
|
45 |
+ |
|
|
46 |
+ |
@Override |
|
47 |
+ |
public VerticalGrowableIndicatingComponent[] createComponentsForObject( NameValueChangedByUserListener pNameValueChangedByUserListener, ObjectSet pObjectSet, |
|
48 |
+ |
SubSystemMetaData pSubSystemMetaData ) { |
|
49 |
+ |
NamedStringFieldComponent zNameComponent = createComponentName( pNameValueChangedByUserListener, false ); |
|
50 |
+ |
List<VerticalGrowableIndicatingComponent> collector = init( zNameComponent ); |
|
51 |
+ |
String zParentLabel = pObjectSet.getParentLabel( pSubSystemMetaData.getName() ); |
|
52 |
+ |
if ( zParentLabel != null ) { |
|
53 |
+ |
collector.add( createComponentParent( pSubSystemMetaData, pObjectSet, pNameValueChangedByUserListener, zParentLabel, zNameComponent ) ); |
|
54 |
+ |
} |
|
55 |
+ |
addToForObject( pNameValueChangedByUserListener, collector, pObjectSet.getPMDs() ); |
|
56 |
+ |
return fini( pNameValueChangedByUserListener, collector ); |
|
57 |
+ |
} |
|
58 |
+ |
|
|
59 |
+ |
@Override |
|
60 |
+ |
public VerticalGrowableIndicatingComponent[] createComponentsForAttribute( NameValueChangedByUserListener pNameValueChangedByUserListener, boolean pVirtual, |
|
61 |
+ |
AttributeSet pAttributeSet, ObjectMetaData pObjectMetaData ) { |
|
62 |
+ |
AttributeType zAttributeType = pAttributeSet.getType(); |
|
63 |
+ |
List<VerticalGrowableIndicatingComponent> collector = init( createComponentName( pNameValueChangedByUserListener, pAttributeSet instanceof ID_Set ) ); |
|
64 |
+ |
if ( (zAttributeType instanceof AbstractAttributeTypeRelated) && !(zAttributeType instanceof NoPeerAttribute) ) { |
|
65 |
+ |
collector.add( createComponentRelatedTo( pObjectMetaData, pAttributeSet, pVirtual, (AbstractAttributeTypeRelated) zAttributeType, |
|
66 |
+ |
pNameValueChangedByUserListener ) ); |
|
67 |
+ |
if ( !pVirtual && !(pAttributeSet instanceof NoBackRefAttribute) && !(zAttributeType instanceof NoBackRefAttribute) ) { |
|
68 |
+ |
collector.add( createComponentBackRef( pObjectMetaData, pNameValueChangedByUserListener ) ); |
|
69 |
+ |
} |
|
70 |
+ |
} else if ( zAttributeType instanceof AbstractValidOptionsAttributeTypeSimple ) { |
|
71 |
+ |
collector.add( createComponentValidOptions( pNameValueChangedByUserListener ) ); |
|
72 |
+ |
} |
|
73 |
+ |
ObjectSet zObjectSet = pObjectMetaData.getObjectSet(); |
|
74 |
+ |
addToForAttribute( pNameValueChangedByUserListener, collector, zObjectSet, |
|
75 |
+ |
(pVirtual ? pAttributeSet.getVirtual() : pAttributeSet.getPersisted()).getPMDs() ); |
|
76 |
+ |
addToForAttribute( pNameValueChangedByUserListener, collector, zObjectSet, zObjectSet.getAdditionalAttributePMDs( zAttributeType ) ); |
|
77 |
+ |
return fini( pNameValueChangedByUserListener, collector ); |
|
78 |
+ |
} |
|
79 |
+ |
|
|
80 |
+ |
protected LabeledComponent createComponentRelatedTo( ObjectMetaData pObjectMetaData, AttributeSet pAttributeSet, boolean pVirtual, |
|
81 |
+ |
AbstractAttributeTypeRelated pTypeRelated, |
|
82 |
+ |
NameValueChangedByUserListener pNameValueChangedByUserListener ) { |
|
83 |
+ |
|
|
84 |
+ |
return new RelatedToSelectOptionComponent( pObjectMetaData, pAttributeSet, pVirtual, pTypeRelated, pNameValueChangedByUserListener ).initialize(); |
|
85 |
+ |
} |
|
86 |
+ |
|
|
87 |
+ |
protected LabeledComponent createComponentBackRef( ObjectMetaData pObjectMetaData, NameValueChangedByUserListener pNameValueChangedByUserListener ) { |
|
88 |
+ |
return new BackRefComponent( pObjectMetaData, pNameValueChangedByUserListener ).initialize(); |
|
89 |
+ |
} |
|
90 |
+ |
|
|
91 |
+ |
private List<VerticalGrowableIndicatingComponent> init( VerticalGrowableIndicatingComponent... pInitialComponents ) { |
|
92 |
+ |
List<VerticalGrowableIndicatingComponent> collector = new ArrayList<VerticalGrowableIndicatingComponent>(); |
|
93 |
+ |
collector.addAll( Arrays.asList( pInitialComponents ) ); |
|
94 |
+ |
return collector; |
|
95 |
+ |
} |
|
96 |
+ |
|
|
97 |
+ |
private VerticalGrowableIndicatingComponent[] fini( NameValueChangedByUserListener pNameValueChangedByUserListener, |
|
98 |
+ |
List<VerticalGrowableIndicatingComponent> pCollector ) { |
|
99 |
+ |
pCollector.add( createComponentNotes( pNameValueChangedByUserListener ) ); |
|
100 |
+ |
return pCollector.toArray( new VerticalGrowableIndicatingComponent[pCollector.size()] ); |
|
101 |
+ |
} |
|
102 |
+ |
|
|
103 |
+ |
private NamedStringFieldComponent createComponentName( NameValueChangedByUserListener pNameValueChangedByUserListener, boolean pPermDisabled ) { |
|
104 |
+ |
NameValueComponentParams params = new NameValueComponentParams( OABaseNames.NAME, Required.YES ); |
|
105 |
+ |
params.setNameValueChangedByUserListener( pNameValueChangedByUserListener ); |
|
106 |
+ |
params.setPermDisabled( pPermDisabled ); |
|
107 |
+ |
NamedStringFieldComponent rv = new NamedStringFieldComponent( params ); |
|
108 |
+ |
rv.initialize(); |
|
109 |
+ |
return rv; |
|
110 |
+ |
} |
|
111 |
+ |
|
|
112 |
+ |
private LabeledComponent createComponentParent( SubSystemMetaData pSubSystemMetaData, ObjectSet pObjectSet, |
|
113 |
+ |
NameValueChangedByUserListener pNameValueChangedByUserListener, String pParentLabel, |
|
114 |
+ |
NamedStringFieldComponent pNameComponent ) { |
|
115 |
+ |
return new ParentSelectOptionComponent( pSubSystemMetaData, pObjectSet, pNameValueChangedByUserListener, pParentLabel, pNameComponent ).initialize(); |
|
116 |
+ |
} |
|
117 |
+ |
|
|
118 |
+ |
private LabeledComponent createComponentNotes( NameValueChangedByUserListener pNameValueChangedByUserListener ) { |
|
119 |
+ |
return createStringLinesField( pNameValueChangedByUserListener, StringArrayValueStringConverter.TRIM_TRAILING, |
|
120 |
+ |
new NameValueComponentParams( OABaseNames.NOTES ).setWrapTextArea( true ) ); |
|
121 |
+ |
} |
|
122 |
+ |
|
|
123 |
+ |
protected LabeledComponent createComponentValidOptions( NameValueChangedByUserListener pNameValueChangedByUserListener ) { |
|
124 |
+ |
return createStringLinesField( pNameValueChangedByUserListener, StringArrayValueStringConverter.TRIM_DROP_EMPTY, |
|
125 |
+ |
new NameValueComponentParams( AttribNames.VALID_OPTIONS, "Valid Options", Required.YES ) ); |
|
126 |
+ |
} |
|
127 |
+ |
|
|
128 |
+ |
private LabeledComponent createStringLinesField( NameValueChangedByUserListener pNameValueChangedByUserListener, StringArrayValueStringConverter pConverter, |
|
129 |
+ |
NameValueComponentParams pBasicParams ) { |
|
130 |
+ |
return createStringLinesField( pBasicParams.setValidater( pConverter ).setNameValueChangedByUserListener( pNameValueChangedByUserListener ) ); |
|
131 |
+ |
} |
|
132 |
+ |
|
|
133 |
+ |
private void addToForAttribute( NameValueChangedByUserListener pNameValueChangedByUserListener, List<VerticalGrowableIndicatingComponent> pCollector, |
|
134 |
+ |
ObjectSet pObjectSet, PropertyMetaData[] pProperties ) { |
|
135 |
+ |
if ( pProperties != null ) { |
|
136 |
+ |
for ( PropertyMetaData property : pProperties ) { |
|
137 |
+ |
if ( pObjectSet.acceptableAttributePMD( property ) ) { |
|
138 |
+ |
pCollector.add( createPropertyComponent( pNameValueChangedByUserListener, property ) ); |
|
139 |
+ |
} |
|
140 |
+ |
} |
|
141 |
+ |
} |
|
142 |
+ |
} |
|
143 |
+ |
|
|
144 |
+ |
private void addToForObject( NameValueChangedByUserListener pNameValueChangedByUserListener, List<VerticalGrowableIndicatingComponent> pCollector, |
|
145 |
+ |
PropertyMetaData[] pProperties ) { |
|
146 |
+ |
for ( PropertyMetaData property : pProperties ) { |
|
147 |
+ |
pCollector.add( createPropertyComponent( pNameValueChangedByUserListener, property ) ); |
|
148 |
+ |
} |
|
149 |
+ |
} |
|
150 |
+ |
|
|
151 |
+ |
protected LabeledComponent createPropertyComponent( NameValueChangedByUserListener pNameValueChangedByUserListener, PropertyMetaData pProperty ) { |
|
152 |
+ |
NameValueComponentParams params = new NameValueComponentParams( pProperty.getName(), pProperty.getDisplayLabel(), pProperty.getRequired() ); |
|
153 |
+ |
params.setValidater( pProperty ).setNameValueChangedByUserListener( pNameValueChangedByUserListener ); |
|
154 |
+ |
params.setInitialValue( pProperty.getInitialValue() ); |
|
155 |
+ |
switch ( pProperty.getDataType() ) { |
|
156 |
+ |
case BOOLEAN: |
|
157 |
+ |
return createBooleanField( params ); |
|
158 |
+ |
case STRING: |
|
159 |
+ |
return createStringField( params, pProperty.getValidOptions() ); |
|
160 |
+ |
case INT_POSITIVE: |
|
161 |
+ |
return createPositiveIntegerField( params ); |
|
162 |
+ |
case DATA_TYPE_CLASS: |
|
163 |
+ |
return createSelectorField( params, pProperty.getValidOptions() ); |
|
164 |
+ |
case STRING_ARRAY: |
|
165 |
+ |
return createStringLinesField( params ); |
|
166 |
+ |
default: |
|
167 |
+ |
return createStringFieldDisabled( params ); |
|
168 |
+ |
} |
|
169 |
+ |
} |
|
170 |
+ |
|
|
171 |
+ |
protected LabeledComponent createBooleanField( NameValueComponentParams pParams ) { |
|
172 |
+ |
if ( pParams.isDataRequired() ) { |
|
173 |
+ |
return new NamedBooleanFieldComponent( pParams ).initialize(); |
|
174 |
+ |
} |
|
175 |
+ |
|
|
176 |
+ |
return new NamedSelectOptionComponent( pParams.setValidater( ValueStringConverterOptionalBoolean.INSTANCE ), ValueStringConverterOptionalBoolean.OPTIONS ) |
|
177 |
+ |
.initialize(); |
|
178 |
+ |
} |
|
179 |
+ |
|
|
180 |
+ |
protected LabeledComponent createStringField( NameValueComponentParams pParams, String[] pValidOptions ) { |
|
181 |
+ |
if ( pValidOptions == null ) { |
|
182 |
+ |
return new NamedStringFieldComponent( pParams ).initialize(); |
|
183 |
+ |
} |
|
184 |
+ |
return new NamedSelectOptionComponent( pParams, pValidOptions ).initialize(); |
|
185 |
+ |
} |
|
186 |
+ |
|
|
187 |
+ |
protected LabeledComponent createPositiveIntegerField( NameValueComponentParams pParams ) { |
|
188 |
+ |
return new NamedPositiveIntegerFieldComponent( pParams ).initialize(); |
|
189 |
+ |
} |
|
190 |
+ |
|
|
191 |
+ |
protected LabeledComponent createSelectorField( NameValueComponentParams pParams, String[] pValidOptions ) { |
|
192 |
+ |
return new NamedSelectOptionComponent( pParams, pValidOptions ).initialize(); |
|
193 |
+ |
} |
|
194 |
+ |
|
|
195 |
+ |
protected LabeledComponent createStringLinesField( NameValueComponentParams pParams ) { |
|
196 |
+ |
return new NamedStringLinesFieldComponent( pParams ).initialize(); |
|
197 |
+ |
} |
|
198 |
+ |
|
|
199 |
+ |
protected LabeledComponent createStringFieldDisabled( NameValueComponentParams pParams ) { |
|
200 |
+ |
return new NamedStringFieldComponent( pParams.setPermDisabled( true ) ).initialize(); |
|
201 |
+ |
} |
|
202 |
+ |
} |