Hi Igor,

Check my response to "Re: [Wicket-user] I see a lot of questions and talk about DropDownChoice and IChoiceRenderer."

I have figured it out and thanks for the help.
Florian

Igor Vaynberg wrote:
since you are using a compound property model, and create your ddc with id "categories" you are trying to access bean.getCategories() property, but i see no such property defined. so why is your form model compound? once again i urge you to read the models wiki page.

-igor


On 5/18/07, *Florian Hehlen* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> 
wrote:

    Here is the bean... sorry I should have thought to include it:

    package com.sag.ids.web.data.dto;

    import com.sag.ids.api.datamodel.java.*;

    import java.io.*;

    public class SymbolDto implements Serializable
    {
        public String
        getIdsDocoId()
        {
            return theIdsDocoId;
        }

        public void
        setIdsDocoId(String aIdsDocoId)
        {
            theIdsDocoId = aIdsDocoId;
        }

        public long
        getIdsSymbolId()
        {
            return theIdsSymbolId;
        }

        public void
        setIdsSymbolId(long aIdsSymbolId)
        {
            theIdsSymbolId = aIdsSymbolId;
        }

        public String
        getName()
        {
            return theName;
        }

        public void
        setName(String aName)
        {
            theName = aName;
        }

        public String
        getCategoryName()
        {
            return theCategoryName;
        }

        public void
        setCategoryName(String aCategoryName)
        {
            theCategoryName = aCategoryName;
        }

        public String
        getCategoryId()
        {
            return theCategoryId;
        }

        public void
        setCategoryId(String aCategoryId)
        {
            theCategoryId = aCategoryId;
        }

        public String
        getProductTypeName()
        {
            return theProductTypeName;
        }

        public void
        setProductTypeName(String aProductTypeName)
        {
            theProductTypeName = aProductTypeName;
        }

        public String
        getProductTypeId()
        {
            return theProductTypeId;
        }

        public void
        setProductTypeId(String aProductTypeId)
        {
            theProductTypeId = aProductTypeId;
        }

        public String
        getUnderlyingTypeName()
        {
            return theUnderlyingTypeName;
        }

        public void
        setUnderlyingTypeName(String aUnderlyingTypeName)
        {
            theUnderlyingTypeName = aUnderlyingTypeName;
        }

        public String
        getUnderlyingTypeId()
        {
            return theUnderlyingTypeId;
        }

        public void
        setUnderlyingTypeId(String aUnderlyingTypeId)
        {
            theUnderlyingTypeId = aUnderlyingTypeId;
        }

        public String
        getCurrencyName()
        {
            return theCurrencyName;
        }

        public void
        setCurrencyName(String aCurrencyName)
        {
            theCurrencyName = aCurrencyName;
        }

        public String
        getCurrencyId()
        {
            return theCurrencyId;
        }

        public void
        setCurrencyId(String aCurrencyId)
        {
            theCurrencyId = aCurrencyId;
        }

        public String
        getExchangeName()
        {
            return theExchangeName;
        }

        public void
        setExchangeName(String aExchangeName)
        {
            theExchangeName = aExchangeName;
        }

        public String
        getExchangeId()
        {
            return theExchangeId;
        }

        public void
        setExchangeId(String aExchangeId)
        {
            theExchangeId = aExchangeId;
        }

        public String
        getDescription()
        {
            return theDescription;
        }

        public void
        setDescription(String aDescription)
        {
            theDescription = aDescription;
        }

        public String
        getTradingHours()
        {
            return theTradingHours;
        }

        public void
        setTradingHours(String aTradingHours)
        {
            theTradingHours = aTradingHours;
        }

        public String
        getUrl()
        {
            return theUrl;
        }

        public void setUrl(String aUrl)
        {
            theUrl = aUrl;
        }

        public double
        getMultiplier()
        {
            return theMultiplier;
        }

        public void
        setMultiplier(double aMultiplier)
        {
            theMultiplier = aMultiplier;
        }

        public void setDaoActionError(String aResult) {
            theDaoActionErrorState = true;
            theDaoActionError = aResult;
        }

        public boolean isDaoActionErrorState()
        {
            return theDaoActionErrorState;
        }

        public String getDaoActionError()
        {
            return theDaoActionError;
        }

        private long theIdsSymbolId = -1;
        private String theIdsDocoId;
        private String theName = "NEW SYMBOL";
        private String theCategoryName = "";
        private String theCategoryId = "";
        private String theProductTypeName = "";
        private String theProductTypeId = "";
        private String theUnderlyingTypeName = "";
        private String theUnderlyingTypeId = "";
        private String theCurrencyName = "";
        private String theCurrencyId = "";
        private String theExchangeName = "";
        private String theExchangeId = "";
        private String theDescription = "";
        private String theTradingHours = "";
        private String theUrl = "";
        private double theMultiplier = -1;

        private String theDaoActionError ="";
        private boolean theDaoActionErrorState;
    }


    Igor Vaynberg wrote:
    no, it doesnt really help since we cant see the bean that is
    inside mySymbol.

    as far as the example below:
    see the use of loadabledetachablemodel below.
    also you are specifying the same model for selection and list of
    choices, that makes no sense. if whatever bean inside mySymbol
    model has a "categories" property, then see my correction below.

    -igor


    On 5/18/07, *Florian Hehlen* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
    wrote:


        public class SymbolAddUpdate extends WebPage
        {
            public SymbolAddUpdate(PageParameters aParams)
            {
                addFeedback();
                addPageTitle("Add/Update Symbol");

                CompoundPropertyModel mySymbol =
        checkNewOrUpdate(aParams, aParams.getString("theSymbolId"));

                final Form myForm = new AddUpdateForm("form.symbol",
        mySymbol);
                add(myForm);

                TextField myName = new TextField("name");

                final ChoiceOptions myOptions = new
        LoadableDetachableModel() (
                        load(){ return
        theDao.findAllCategoriesAsDto()); }}

                final ChoiceRenderer myRenderer = new
        ChoiceRenderer("name", "id");

                final CategoryChoices myCategories = new
        CategoryChoices();
                DropDownChoice myCat
                    = new DropDownChoice("categories",
        myCategories,myRenderer);
                        [...]
}

        I hope this helps.

        thanks,
        florian

        Igor Vaynberg wrote:
        if you show me the exact code snippet that doesnt work that
        will give me the necessary context.

        -igor


        On 5/17/07, *Florian Hehlen* < [EMAIL PROTECTED]
        <mailto:[EMAIL PROTECTED]>> wrote:

            Hi,

            Thanks for the help... It's starting to make more sense
            to me although still not working. The issue is
            definitely with the form model. because all my sandbox
            experiments show me that it all goes to hell when i
            introduce the model in the form. My form is a a bean
            wrapped in a CompoundPropertyModel.

            Maybe you can clarify below your explanation in that
            context.

            florian

            Igor Vaynberg wrote:
            if you type it it looks like this

            DDC<T>(String,IModel<T>,IModel<List<T>>,IChoiceRenderer<T>)

            the first model is the one that holds the selection,
            the second is the one that holds a list of available
            choices.

            the constructor with a single model:

            DDC<T>(String,IModel<List<T>>,IChoiceRenderer<T>)

            is used when you use DDC in combination with a compound
            property model on the form, in which case the ddc's id
            is used as a property expression into form's model to
            determine the selection. there is a great wiki page on
            models.

            so try this

             myForm.add(new DropDownChoice("select",new Model(),new
            MyChoices(),myRenderer));

            this will create a ddc with a null selection. its not
            practical, because to get the selection you have to
            call ddc.getmodelobject(), but it will at least get you
            going before you decide on what model to use.


            -igor


            On 5/16/07, *Florian Hehlen* < [EMAIL PROTECTED]
            <mailto:[EMAIL PROTECTED]>> wrote:

                hi,

                I am new to wicket so I am not sure how simple this
                issue is.

                I am creating DropDownChoice components. I want to
                a)  build the the
                Options from a list of Objects (not primitives) and
                b) want to render
                the option id and value as an attribute of the
                object in the list. this
                definitly works in the following sample code:

                public class WicketSandbox extends WebPage
                {
                    public WicketSandbox()
                    {
                        addPageTitle("Development Sandbox");
                        final Form myForm = new Form("form");
                        add(myForm);

                        final ChoiceRenderer myRenderer = new
                ChoiceRenderer("name", "id");
                        myForm.add(new DropDownChoice("select",new
                MyChoices(),myRenderer));

                    }
                }

                But as soon as I add an IModel to the form it seems
                that the
                DropDownChoice looks up the choices in the form's
                IModel.  I have tried
                to use the other constructors for the
                DropDownChoice which require an
                (String id, IModel model, IModel choices,
                IChoicerenderer renderer) but
                I can't figure out what is the difference between
                the 2 IModel objects
                that have to be provided. If I provide twice a ref
                to the same object I
                get a different error:

                The expression 'id' is neither an index nor is it a
                method for the list class java.util.ArrayList

                this is an improvement because it is accessing the
                right object and
                retrieving the list of choices but not extracting
                the the objects from
                the list as it does when I use (String id, IModel
                choices,
                IChoicerenderer renderer).

                In all cases if I remove the ChoiceRenderer my web
                page builds and
                displays but I see object.toString() values in my
                drop-downs.

                Any tips or pointers would be greatly appreciated.

                Florian Hehlen

                
-------------------------------------------------------------------------
                This SF.net email is sponsored by DB2 Express
                Download DB2 Express C - the FREE version of DB2
                express and take
                control of your XML. No limits. Just data. Click to
                get it now.
                http://sourceforge.net/powerbar/db2/
                _______________________________________________
                Wicket-user mailing list
                Wicket-user@lists.sourceforge.net
                <mailto:Wicket-user@lists.sourceforge.net>
                https://lists.sourceforge.net/lists/listinfo/wicket-user



            
------------------------------------------------------------------------

            
-------------------------------------------------------------------------
            This SF.net email is sponsored by DB2 Express
            Download DB2 Express C - the FREE version of DB2 express and take

            control of your XML. No limits. Just data. Click to get it now.


            http://sourceforge.net/powerbar/db2/
             <http://sourceforge.net/powerbar/db2/>
            
------------------------------------------------------------------------

            _______________________________________________
            Wicket-user mailing list

            Wicket-user@lists.sourceforge.net

             <mailto:Wicket-user@lists.sourceforge.net>
            https://lists.sourceforge.net/lists/listinfo/wicket-user
             <https://lists.sourceforge.net/lists/listinfo/wicket-user>

            
-------------------------------------------------------------------------
            This SF.net email is sponsored by DB2 Express
            Download DB2 Express C - the FREE version of DB2 express
            and take
            control of your XML. No limits. Just data. Click to get
            it now.
            http://sourceforge.net/powerbar/db2/
            _______________________________________________
            Wicket-user mailing list
            Wicket-user@lists.sourceforge.net
            <mailto:Wicket-user@lists.sourceforge.net>
            https://lists.sourceforge.net/lists/listinfo/wicket-user


        ------------------------------------------------------------------------

        
-------------------------------------------------------------------------
        This SF.net email is sponsored by DB2 Express
        Download DB2 Express C - the FREE version of DB2 express and take

        control of your XML. No limits. Just data. Click to get it now.

        http://sourceforge.net/powerbar/db2/
         <http://sourceforge.net/powerbar/db2/>
        ------------------------------------------------------------------------

        _______________________________________________
        Wicket-user mailing list

        Wicket-user@lists.sourceforge.net
         <mailto:Wicket-user@lists.sourceforge.net>
        https://lists.sourceforge.net/lists/listinfo/wicket-user
         <https://lists.sourceforge.net/lists/listinfo/wicket-user>

        
-------------------------------------------------------------------------
        This SF.net email is sponsored by DB2 Express
        Download DB2 Express C - the FREE version of DB2 express and take
        control of your XML. No limits. Just data. Click to get it now.
        http://sourceforge.net/powerbar/db2/
        _______________________________________________
        Wicket-user mailing list
        Wicket-user@lists.sourceforge.net
        <mailto:Wicket-user@lists.sourceforge.net>
        https://lists.sourceforge.net/lists/listinfo/wicket-user


    ------------------------------------------------------------------------

    -------------------------------------------------------------------------
    This SF.net email is sponsored by DB2 Express
    Download DB2 Express C - the FREE version of DB2 express and take

    control of your XML. No limits. Just data. Click to get it now.
    http://sourceforge.net/powerbar/db2/
     <http://sourceforge.net/powerbar/db2/>
    ------------------------------------------------------------------------

    _______________________________________________
    Wicket-user mailing list

    Wicket-user@lists.sourceforge.net <mailto:Wicket-user@lists.sourceforge.net>
    https://lists.sourceforge.net/lists/listinfo/wicket-user
     <https://lists.sourceforge.net/lists/listinfo/wicket-user>

    -------------------------------------------------------------------------
    This SF.net email is sponsored by DB2 Express
    Download DB2 Express C - the FREE version of DB2 express and take
    control of your XML. No limits. Just data. Click to get it now.
    http://sourceforge.net/powerbar/db2/
    _______________________________________________
    Wicket-user mailing list
    Wicket-user@lists.sourceforge.net
    <mailto:Wicket-user@lists.sourceforge.net>
    https://lists.sourceforge.net/lists/listinfo/wicket-user


------------------------------------------------------------------------

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
------------------------------------------------------------------------

_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to