Subversion Repository Public Repository

litesoft

Diff Revisions 949 vs 950 for /trunk/Java/KeyHole/src/org/litesoft/aokeyhole/objects/AttributeMetaDataValidOptions.java

Diff revisions: vs.
  @@ -1,84 +1,85 @@
1 - // This Source Code is in the Public Domain per: http://unlicense.org
2 - package org.litesoft.aokeyhole.objects;
3 -
4 - import org.litesoft.aokeyhole.objects.support.*;
5 - import org.litesoft.aokeyhole.toolkit.*;
6 - import org.litesoft.commonfoundation.typeutils.*;
7 -
8 - public class AttributeMetaDataValidOptions extends AttributeMetaDataSimple implements HasValidOptions {
9 - public AttributeMetaDataValidOptions( AttributeSet pAttributeSet, Mode pMode, boolean pEditable, boolean pVirtual, PropertyMetaData[] pPropertyMetaDatas,
10 - IdentifierValidator pNameValidator, String pName ) {
11 - super( pAttributeSet, pMode, pEditable, pVirtual, pPropertyMetaDatas, pNameValidator, pName );
12 - }
13 -
14 - public AttributeMetaDataValidOptions( AttributeSet pAttributeSet, Mode pMode, boolean pEditable, boolean pVirtual, PropertyMetaData[] pPropertyMetaDatas,
15 - IdentifierValidator pNameValidator, String pName, String... pOptions ) {
16 - this( pAttributeSet, pMode, pEditable, pVirtual, pPropertyMetaDatas, pNameValidator, pName );
17 - setValidOptions( pOptions );
18 - }
19 -
20 - private String[] mValidOptions = Strings.EMPTY_ARRAY;
21 -
22 - public String[] getValidOptions() {
23 - return mValidOptions;
24 - }
25 -
26 - public void setValidOptions( String[] pValidOptions ) {
27 - if ( pValidOptions != null ) {
28 - mValidOptions = pValidOptions;
29 - }
30 - }
31 -
32 - @Override
33 - protected String[] getAdditionalValues() {
34 - return anyValidOptions() ? mValidOptions : null;
35 - }
36 -
37 - private boolean anyValidOptions() {
38 - return (mValidOptions.length != 0);
39 - }
40 -
41 - private StringBuilder mergeValidOptions( StringBuilder pSB ) {
42 - if ( anyValidOptions() ) {
43 - pSB.append( mValidOptions[0] );
44 - for ( int i = 1; i < mValidOptions.length; i++ ) {
45 - pSB.append( '|' );
46 - pSB.append( mValidOptions[i] );
47 - }
48 - }
49 - return pSB;
50 - }
51 -
52 - @Override
53 - public void setUpView( NameValuesComponent pNameValuesComponent ) {
54 - super.setUpView( pNameValuesComponent );
55 -
56 - pNameValuesComponent.setValue( AttribNames.VALID_OPTIONS, mergeValidOptions( new StringBuilder() ).toString() );
57 - }
58 -
59 - @Override
60 - protected void saveFromViewCollectChanges( ChangeHandler pChanges, NameValuesComponent pNameValuesComponent ) {
61 - super.saveFromViewCollectChanges( pChanges, pNameValuesComponent );
62 -
63 - pChanges.add( checkValidOptionsChange( pNameValuesComponent.getValue( AttribNames.VALID_OPTIONS ) ) );
64 - }
65 -
66 - protected ChangeFragment checkValidOptionsChange( String pNewValue ) {
67 - String[] zCurValidOptions = getValidOptions();
68 - String[] zNewValidOptions = StringArrayValueStringConverter.TRIM_DROP_EMPTY.split( pNewValue );
69 - return !Objects.areArraysEqual( zCurValidOptions, zNewValidOptions ) ? new ChangeValidOptions( zNewValidOptions ) : null;
70 - }
71 -
72 - protected class ChangeValidOptions implements ChangeFragment {
73 - private String[] mNewValidOptions;
74 -
75 - public ChangeValidOptions( String[] pNewValidOptions ) {
76 - mNewValidOptions = pNewValidOptions;
77 - }
78 -
79 - @Override
80 - public void commitChange() {
81 - setValidOptions( mNewValidOptions );
82 - }
83 - }
84 - }
1 + // This Source Code is in the Public Domain per: http://unlicense.org
2 + package org.litesoft.aokeyhole.objects;
3 +
4 + import org.litesoft.aokeyhole.objects.support.*;
5 + import org.litesoft.aokeyhole.toolkit.*;
6 + import org.litesoft.commonfoundation.base.*;
7 + import org.litesoft.commonfoundation.typeutils.*;
8 +
9 + public class AttributeMetaDataValidOptions extends AttributeMetaDataSimple implements HasValidOptions {
10 + public AttributeMetaDataValidOptions( AttributeSet pAttributeSet, Mode pMode, boolean pEditable, boolean pVirtual, PropertyMetaData[] pPropertyMetaDatas,
11 + IdentifierValidator pNameValidator, String pName ) {
12 + super( pAttributeSet, pMode, pEditable, pVirtual, pPropertyMetaDatas, pNameValidator, pName );
13 + }
14 +
15 + public AttributeMetaDataValidOptions( AttributeSet pAttributeSet, Mode pMode, boolean pEditable, boolean pVirtual, PropertyMetaData[] pPropertyMetaDatas,
16 + IdentifierValidator pNameValidator, String pName, String... pOptions ) {
17 + this( pAttributeSet, pMode, pEditable, pVirtual, pPropertyMetaDatas, pNameValidator, pName );
18 + setValidOptions( pOptions );
19 + }
20 +
21 + private String[] mValidOptions = Strings.EMPTY_ARRAY;
22 +
23 + public String[] getValidOptions() {
24 + return mValidOptions;
25 + }
26 +
27 + public void setValidOptions( String[] pValidOptions ) {
28 + if ( pValidOptions != null ) {
29 + mValidOptions = pValidOptions;
30 + }
31 + }
32 +
33 + @Override
34 + protected String[] getAdditionalValues() {
35 + return anyValidOptions() ? mValidOptions : null;
36 + }
37 +
38 + private boolean anyValidOptions() {
39 + return (mValidOptions.length != 0);
40 + }
41 +
42 + private StringBuilder mergeValidOptions( StringBuilder pSB ) {
43 + if ( anyValidOptions() ) {
44 + pSB.append( mValidOptions[0] );
45 + for ( int i = 1; i < mValidOptions.length; i++ ) {
46 + pSB.append( '|' );
47 + pSB.append( mValidOptions[i] );
48 + }
49 + }
50 + return pSB;
51 + }
52 +
53 + @Override
54 + public void setUpView( NameValuesComponent pNameValuesComponent ) {
55 + super.setUpView( pNameValuesComponent );
56 +
57 + pNameValuesComponent.setValue( AttribNames.VALID_OPTIONS, mergeValidOptions( new StringBuilder() ).toString() );
58 + }
59 +
60 + @Override
61 + protected void saveFromViewCollectChanges( ChangeHandler pChanges, NameValuesComponent pNameValuesComponent ) {
62 + super.saveFromViewCollectChanges( pChanges, pNameValuesComponent );
63 +
64 + pChanges.add( checkValidOptionsChange( pNameValuesComponent.getValue( AttribNames.VALID_OPTIONS ) ) );
65 + }
66 +
67 + protected ChangeFragment checkValidOptionsChange( String pNewValue ) {
68 + String[] zCurValidOptions = getValidOptions();
69 + String[] zNewValidOptions = StringArrayValueStringConverter.TRIM_DROP_EMPTY.split( pNewValue );
70 + return !Currently.areEqual( zCurValidOptions, zNewValidOptions ) ? new ChangeValidOptions( zNewValidOptions ) : null;
71 + }
72 +
73 + protected class ChangeValidOptions implements ChangeFragment {
74 + private String[] mNewValidOptions;
75 +
76 + public ChangeValidOptions( String[] pNewValidOptions ) {
77 + mNewValidOptions = pNewValidOptions;
78 + }
79 +
80 + @Override
81 + public void commitChange() {
82 + setValidOptions( mNewValidOptions );
83 + }
84 + }
85 + }