Revision history [back]

click to hide/show revision 1
initial version

answered 2009-12-15 11:04:15 +0800

btakacs gravatar image btakacs

Hi

I modified DynamicMenu this way:

...
private Object _selectedItem;
...
    private final MenuitemRenderer _defRend = new MenuitemRenderer() {
        public void render(Menuitem mi, Object node){
            if(node instanceof TreeNode){
                TreeNode treeNode=(TreeNode)node;
                mi.setLabel(treeNode.getName());
                mi.setId(treeNode.getId().toString());
                mi.addEventListener("onClick", new EventListener() {
                    public void onEvent(Event event) throws Exception {
                        setSelecteditem(event.getTarget().getId());
                    }
                });
            } 
        }

        public void setSelecteditem(Object selecteditem){
            setSelectedItem(selecteditem);
        }

        public void render(Menu menu, Object node){
            if(node instanceof TreeNode){
                TreeNode treeNode=(TreeNode)node;
                menu.setLabel(treeNode.getName());
            } 
        }
    };

    public Object getSelectedItem() {
        return _selectedItem;
    }

    public void setSelectedItem(Object selectedItem) {
        _selectedItem = selectedItem;
    }

...and this way the component updates the _selectedItem value with the clicked one. But if I would like to bind it to the page like this:

<label id="label" value="${mainMenu.selectedItem}" />

It won't show the value...

I use only the zk-spring variableresolver on the page.

<?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?>

Do I need something else too? Maybe fire an Event in setSelectedItem and make the page catch it? If yes, how? Or is there a way to extend my component and use it this way: <dynamicmenu id="mainMenu" autodrop="true" model="${cmsService.menuDao.root}" **onchange="label.value=this.selectedItem" **=""/>

Thanks: Bence

Support Options
  • Email Support
  • Training
  • Consulting
  • Outsourcing
Learn More