Would it be appropriate to include a TypeCoercion from String to
SelectModel to go along with this utility method?

On Sat, Mar 7, 2009 at 9:02 PM,  <[email protected]> wrote:
> Author: kmenard
> Date: Sun Mar  8 05:02:49 2009
> New Revision: 751366
>
> URL: http://svn.apache.org/viewvc?rev=751366&view=rev
> Log:
> Fixed TAP5-564: Add StringPropertySelectModel.
>
> Added:
>    
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/util/StringSelectModel.java
>    
> tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/util/StringSelectModelTest.java
>
> Added: 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/util/StringSelectModel.java
> URL: 
> http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/util/StringSelectModel.java?rev=751366&view=auto
> ==============================================================================
> --- 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/util/StringSelectModel.java
>  (added)
> +++ 
> tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/util/StringSelectModel.java
>  Sun Mar  8 05:02:49 2009
> @@ -0,0 +1,58 @@
> +// Copyright 2009 The Apache Software Foundation
> +//
> +// Licensed under the Apache License, Version 2.0 (the "License");
> +// you may not use this file except in compliance with the License.
> +// You may obtain a copy of the License at
> +//
> +//     http://www.apache.org/licenses/LICENSE-2.0
> +//
> +// Unless required by applicable law or agreed to in writing, software
> +// distributed under the License is distributed on an "AS IS" BASIS,
> +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> +// See the License for the specific language governing permissions and
> +// limitations under the License.
> +
> +package org.apache.tapestry5.util;
> +
> +import org.apache.tapestry5.OptionGroupModel;
> +import org.apache.tapestry5.OptionModel;
> +import org.apache.tapestry5.internal.TapestryInternalUtils;
> +import org.apache.tapestry5.internal.OptionModelImpl;
> +import org.apache.tapestry5.ioc.Messages;
> +import static org.apache.tapestry5.ioc.internal.util.Defense.notNull;
> +import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
> +
> +import java.io.Serializable;
> +import java.util.List;
> +import java.util.Collections;
> +import java.util.Arrays;
> +
> +/**
> + * A basic select model for a collection of Strings.
> + */
> +public class StringSelectModel extends AbstractSelectModel implements 
> Serializable
> +{
> +    private List<OptionModel> options = CollectionFactory.newList();
> +
> +    public StringSelectModel(List<String> values)
> +    {
> +        notNull(values, "values");
> +
> +        options = 
> Collections.unmodifiableList(TapestryInternalUtils.toOptionModels(values));
> +    }
> +
> +    public StringSelectModel(String... values)
> +    {
> +        this(Arrays.asList(values));
> +    }
> +
> +    public List<OptionGroupModel> getOptionGroups()
> +    {
> +        return null;
> +    }
> +
> +    public List<OptionModel> getOptions()
> +    {
> +        return options;
> +    }
> +}
>
> Added: 
> tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/util/StringSelectModelTest.java
> URL: 
> http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/util/StringSelectModelTest.java?rev=751366&view=auto
> ==============================================================================
> --- 
> tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/util/StringSelectModelTest.java
>  (added)
> +++ 
> tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/util/StringSelectModelTest.java
>  Sun Mar  8 05:02:49 2009
> @@ -0,0 +1,74 @@
> +// Copyright 2009 The Apache Software Foundation
> +//
> +// Licensed under the Apache License, Version 2.0 (the "License");
> +// you may not use this file except in compliance with the License.
> +// You may obtain a copy of the License at
> +//
> +//     http://www.apache.org/licenses/LICENSE-2.0
> +//
> +// Unless required by applicable law or agreed to in writing, software
> +// distributed under the License is distributed on an "AS IS" BASIS,
> +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> +// See the License for the specific language governing permissions and
> +// limitations under the License.
> +
> +package org.apache.tapestry5.util;
> +
> +import org.apache.tapestry5.test.TapestryTestCase;
> +import org.apache.tapestry5.SelectModel;
> +import org.apache.tapestry5.OptionModel;
> +import org.testng.annotations.Test;
> +
> +import java.util.List;
> +import java.util.Arrays;
> +
> +public class StringSelectModelTest extends TapestryTestCase
> +{
> +   �...@test
> +    public void generated_option_models_list_constructor()
> +    {
> +        replay();
> +
> +        List<String> stooges = Arrays.asList("Moe", "Larry", "Curly Joe");
> +        SelectModel model = new StringSelectModel(stooges);
> +
> +        List<OptionModel> options = model.getOptions();
> +
> +        assertEquals(options.size(), stooges.size());
> +
> +        for (int i = 0; i < options.size(); i++)
> +        {
> +            checkOption(options, i, stooges.get(i));
> +        }
> +
> +        verify();
> +    }
> +
> +   �...@test
> +    public void generated_option_models_vararg_constructor()
> +    {
> +        replay();
> +
> +        SelectModel model = new StringSelectModel("Moe", "Larry", "Curly 
> Joe");
> +
> +        List<OptionModel> options = model.getOptions();
> +
> +        assertEquals(options.size(), 3);
> +
> +        checkOption(options, 0, "Moe");
> +        checkOption(options, 1, "Larry");
> +        checkOption(options, 2, "Curly Joe");
> +
> +        verify();
> +    }
> +
> +    private void checkOption(List<OptionModel> options, int i, String value)
> +    {
> +        OptionModel model = options.get(i);
> +
> +        assertEquals(model.getLabel(), value);
> +        assertFalse(model.isDisabled());
> +        assertSame(model.getValue(), value);
> +        assertNull(model.getAttributes());
> +    }
> +}
>
>
>



-- 
Howard M. Lewis Ship

Creator Apache Tapestry and Apache HiveMind

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to