Subversion Repository Public Repository

litesoft

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
// This Source Code is in the Public Domain per: http://unlicense.org
package org.litesoft.aokeyhole.objects;

import org.litesoft.aokeyhole.objects.support.*;
import org.litesoft.aokeyhole.toolkit.*;
import org.litesoft.commonfoundation.typeutils.*;

public class AttributeMetaDataValidOptions extends AttributeMetaDataSimple implements HasValidOptions
{
    public AttributeMetaDataValidOptions( AttributeSet pAttributeSet, Mode pMode, boolean pEditable, boolean pVirtual, PropertyMetaData[] pPropertyMetaDatas,
                                          IdentifierValidator pNameValidator, String pName )
    {
        super( pAttributeSet, pMode, pEditable, pVirtual, pPropertyMetaDatas, pNameValidator, pName );
    }

    public AttributeMetaDataValidOptions( AttributeSet pAttributeSet, Mode pMode, boolean pEditable, boolean pVirtual, PropertyMetaData[] pPropertyMetaDatas,
                                          IdentifierValidator pNameValidator, String pName, String... pOptions )
    {
        this( pAttributeSet, pMode, pEditable, pVirtual, pPropertyMetaDatas, pNameValidator, pName );
        setValidOptions( pOptions );
    }

    private String[] mValidOptions = Strings.EMPTY_ARRAY;

    public String[] getValidOptions()
    {
        return mValidOptions;
    }

    public void setValidOptions( String[] pValidOptions )
    {
        if ( pValidOptions != null )
        {
            mValidOptions = pValidOptions;
        }
    }

    @Override
    protected String[] getAdditionalValues()
    {
        return anyValidOptions() ? mValidOptions : null;
    }

    private boolean anyValidOptions()
    {
        return (mValidOptions.length != 0);
    }

    private StringBuilder mergeValidOptions( StringBuilder pSB )
    {
        if ( anyValidOptions() )
        {
            pSB.append( mValidOptions[0] );
            for ( int i = 1; i < mValidOptions.length; i++ )
            {
                pSB.append( '|' );
                pSB.append( mValidOptions[i] );
            }
        }
        return pSB;
    }

    @Override
    public void setUpView( NameValuesComponent pNameValuesComponent )
    {
        super.setUpView( pNameValuesComponent );

        pNameValuesComponent.setValue( AttribNames.VALID_OPTIONS, mergeValidOptions( new StringBuilder() ).toString() );
    }

    @Override
    protected void saveFromViewCollectChanges( ChangeHandler pChanges, NameValuesComponent pNameValuesComponent )
    {
        super.saveFromViewCollectChanges( pChanges, pNameValuesComponent );

        pChanges.add( checkValidOptionsChange( pNameValuesComponent.getValue( AttribNames.VALID_OPTIONS ) ) );
    }

    protected ChangeFragment checkValidOptionsChange( String pNewValue )
    {
        String[] zCurValidOptions = getValidOptions();
        String[] zNewValidOptions = StringArrayValueStringConverter.TRIM_DROP_EMPTY.split( pNewValue );
        return !Objects.areArraysEqual( zCurValidOptions, zNewValidOptions ) ? new ChangeValidOptions( zNewValidOptions ) : null;
    }

    protected class ChangeValidOptions implements ChangeFragment
    {
        private String[] mNewValidOptions;

        public ChangeValidOptions( String[] pNewValidOptions )
        {
            mNewValidOptions = pNewValidOptions;
        }

        @Override
        public void commitChange()
        {
            setValidOptions( mNewValidOptions );
        }
    }
}

Commits for litesoft/trunk/Java/KeyHole/src/org/litesoft/aokeyhole/objects/AttributeMetaDataValidOptions.java

Diff revisions: vs.
Revision Author Commited Message
947 Diff Diff GeorgeS picture GeorgeS Fri 06 Jun, 2014 23:36:56 +0000

Correct Spelling of package!

939 Diff Diff GeorgeS picture GeorgeS Mon 02 Jun, 2014 21:30:31 +0000

Extracting commonfoundation

809 Diff Diff GeorgeS picture GeorgeS Thu 16 Aug, 2012 04:10:46 +0000
800 Diff Diff GeorgeS picture GeorgeS Wed 15 Aug, 2012 03:33:38 +0000
787 Diff Diff GeorgeS picture GeorgeS Mon 30 Jul, 2012 03:00:12 +0000
193 Diff Diff GeorgeS picture GeorgeS Wed 04 May, 2011 00:59:58 +0000
49 Diff Diff GeorgeS picture GeorgeS Mon 12 Apr, 2010 02:59:10 +0000

License Text

17 Diff Diff GeorgeS picture GeorgeS Thu 18 Feb, 2010 23:54:44 +0000
2 GeorgeS picture GeorgeS Sun 07 Feb, 2010 12:50:58 +0000