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