zk selecting combobox item programatically

Posted by Abdul Khaliq on Stack Overflow See other posts from Stack Overflow or by Abdul Khaliq
Published on 2010-03-21T17:22:57Z Indexed on 2012/10/01 9:38 UTC
Read the original article Hit count: 307

Filed under:
|
|

I cannot set the value of combobox programatically can some one tell me what missing in the code

 public class Profile extends Window implements AfterCompose {

    @Override
    public void afterCompose() {
       Session session = Sessions.getCurrent(false);
                ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(
                (ServletContext) getDesktop().getWebApp().getNativeContext());

        UsersDao usersDao = (UsersDao) ctx.getBean("daoUsers");


        User user = (User) session.getAttribute("user");
        user = usersDao.getUser(user.getUsername(),user.getPassword());

        Textbox username_t = (Textbox) this.getFellow("username");
        Textbox password_t = (Textbox) this.getFellow("password");
        Textbox conpassword_t = (Textbox) this.getFellow("con_password");
        Textbox firstname_t = (Textbox) this.getFellow("firstName");
        Textbox lastname_t = (Textbox) this.getFellow("lastName");
        Textbox email_t = (Textbox) this.getFellow("email");
        Combobox hintQuestion_t = (Combobox) this.getFellow("hintQuestion");
        Textbox hintAnswer_t = (Textbox) this.getFellow("hintAnswer");
        Combobox locale_t = (Combobox) this.getFellow("locale");
        Combobox authority_t = (Combobox) this.getFellow("authority");

        username_t.setText(user.getUsername());
        firstname_t.setText(user.getUserDetails().getFirstName());
        lastname_t.setText(user.getUserDetails().getLastName());
        email_t.setText(user.getUserDetails().getEmail());
        Comboitem selectedItem = getSelectedIndexComboboxItem(hintQuestion_t, user.getHintQuestion());
        hintQuestion_t.setSelectedItem(selectedItem);
        hintAnswer_t.setText(user.getHintAnswer());
        selectedItem = getSelectedIndexComboboxItem(locale_t, user.getUserDetails().getLocale());
        locale_t.setSelectedItem(selectedItem);
        selectedItem = getSelectedIndexComboboxItem(authority_t, ((Authority)user.getAuthorities().toArray()[0]).getRole());
        authority_t.setSelectedItem(selectedItem);


    }

   private Comboitem getSelectedIndexComboboxItem(Combobox combobox, String value) {
        List<Comboitem> items = combobox.getItems();
        Comboitem item = items.get(0);
        for (int i = 0; i < items.size(); i++) {
            Comboitem comboitem = items.get(i);
            String label = (String)comboitem.getLabel();
            String cval = (String)comboitem.getValue();
            if ((label!=null && label.equalsIgnoreCase(value)) || (cval != null  && cval.equalsIgnoreCase(value))) {
                item = comboitem;
                break;
            }
        }
        return item;
    }
}

// zk file

<window id="profile" use="com.jf.web.zk.ui.Profile">
        <tabbox  id="tabbox" width="40%" >
            <tabs>
                <tab label="Account Information"/>
                <tab label="Personal Information"/>
                <tab label="Contact Details"/>
            </tabs>
            <tabpanels>
                <tabpanel>
                    <grid>
                        <rows>
                            <row>
                                <label value="${i18nUtils.message('user.username')}"/>
                                <hbox>
                                    <textbox id="username" />*,a-zA-Z,0-9
                                </hbox>
                            </row>
                            <row>
                                <label value="${i18nUtils.message('user.password')}"/>
                                <hbox>
                                    <textbox id="password" type="password"/>*
                                </hbox>
                            </row>
                            <row>
                                <label value="${i18nUtils.message('registration.user.password.confirm')}"/>
                                <hbox>
                                    <textbox id="con_password" type="password"/>*
                                </hbox>
                            </row>
                            <row>
                                <label value="${i18nUtils.message('user.details.first.name')}"/>
                                <hbox>
                                    <textbox id="firstName" type="text"/>*
                                </hbox>
                            </row>
                            <row>
                                <label value="${i18nUtils.message('user.details.last.name')}"/>
                                <hbox>
                                    <textbox id="lastName" type="text"/>*
                                </hbox>
                            </row>
                            <row>
                                <label value="${i18nUtils.message('user.details.email')}"/>
                                <hbox>
                                    <textbox id="email" type="text"/>*
                                </hbox>
                            </row>
                            <row>
                                <label value="${i18nUtils.message('user.hint.question')}"/>
                                <hbox>
                                    <combobox id="hintQuestion" onCreate='self.setSelectedIndex(1);'>
                                        <comboitem label="${i18nUtils.message('user.hint.question.possible.value1')}" />
                                        <comboitem label="${i18nUtils.message('user.hint.question.possible.value2')}" />
                                        <comboitem label="${i18nUtils.message('user.hint.question.possible.value3')}" />
                                        <comboitem label="${i18nUtils.message('user.hint.question.possible.value4')}" />
                                        <comboitem label="${i18nUtils.message('user.hint.question.possible.value5')}" />
                                    </combobox>*
                                </hbox>
                            </row>
                            <row>
                                <label value="${i18nUtils.message('user.hint.answer')}"/>
                                <hbox>
                                    <textbox id="hintAnswer" type="text"/>*
                                </hbox>
                            </row>
                            <row>
                                <label value="${i18nUtils.message('user.details.locale')}"/>
                                <hbox>
                                    <combobox id="locale" onCreate='self.setSelectedIndex(1);self.setReadonly(true);'>
                                        <comboitem label="${i18nUtils.message('user.details.locale.en')}" value="en_US"/>
                                        <comboitem label="${i18nUtils.message('user.details.locale.bg')}" value="bg_BG"/>
                                    </combobox>*
                                </hbox>
                            </row>
                            <row>
                                <label value="${i18nUtils.message('authority.account.type')}"/>
                                <hbox>
                                    <combobox id="authority" onCreate='self.setSelectedIndex(0);self.setReadonly(true);'>
                                        <comboitem label="${i18nUtils.message('authority.job.seeker')}" value="Job Seeker"/>
                                        <comboitem label="${i18nUtils.message('authority.employer')}" value="Employer"/>
                                        <comboitem label="${i18nUtils.message('authority.hra')}" value="Human Resource Agency"/>
                                        <comboitem label="${i18nUtils.message('authority.advertiser')}" value="Advertiser"/>
                                    </combobox>*
                                </hbox>
                            </row>
                        </rows>
                    </grid>
                </tabpanel>
            </tabpanels>
        </tabbox>
        <grid width="40%">
            <rows>
                <row>
                    <button label="${i18nUtils.message('bttn.save')}" onClick="save()"/>
                    <button label="${i18nUtils.message('bttn.cancel')}" onClick="cancel()"/>
                </row>
            </rows>
        </grid>
    </window>
</zk>

The "getSelectedIndexComboboxItem()" does return the correct selected item but there seems no effect on the UI. Like for example the locale is set to default Bulgarian language and I need to set it to English.

Abdul Khaliq

© Stack Overflow or respective owner

Related posts about hibernate

Related posts about spring