Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /* BindingComboitemRenderer.java
 
 	Purpose:
 		
 	Description:
 		
 	History:
 		Jan 3, 2008 10:54:54 AM , Created by jumperchen
 
Copyright (C) 2007 Potix Corporation. All Rights Reserved.
{{IS_RIGHT
	This program is distributed under LGPL Version 2.1 in the hope that
	it will be useful, but WITHOUT ANY WARRANTY.
}}IS_RIGHT
*/
package org.zkoss.zkplus.databind;
import static org.zkoss.lang.Generics.cast;

Deprecated:
As of release 7.0.0, replace with new ZK binding.
Author(s):
jumperchen
Since:
3.0.2
	private static final long serialVersionUID = 200808191415L;
	private static final String KIDS = "zkplus.databind.KIDS";
	private DataBinder _binder;
	private int x = 0;
	public BindingComboitemRenderer(Comboitem templateDataBinder binder) {
		 = template;
		 = binder;
	}
	public void render(Comboitem itemObject beanint indexthrows Exception {
		final List<Componentkids = cast((Listitem.getAttribute());
		item.getChildren().addAll(kids);
		//item.removeAttribute(KIDS);
		//remove template mark of cloned component and its descendants
		//setup clone id
		BindingRendererUtil.setupCloneIds(item);
		//bind bean to the associated listitem and its descendants
		final Map<ObjectObjecttemplatemap = cast((Mapitem.getAttribute(.));
		templatemap.put(varnamebean);
		//apply the data binding
		//feature# 3026221: Databinder shall fire onCreate when cloning each items
		DataBinder.postOnCreateEvents(item); //since 5.0.4
	}
	public Comboitem newComboitem(Combobox combobox) {
		//clone from template
		final Comboitem clone = (Comboitem).clone();
		//TODO: see if databinder has this kind of Comboitem, if not, add new CollectionListItem 
		//avoid duplicate id error, will set to new id when render()
		//Bug #1962153: Data binding generates duplicate id in some case add "_".
		if (clone.getId().length() > 0) {
			clone.setId(null);
		}
		//link cloned component with template
		//each Comboitem and and it descendants share the same templatemap
		Map<ObjectObjecttemplatemap = new HashMap<ObjectObject>(8);
		BindingRendererUtil.linkTemplates(clonetemplatemap);
		//link this template map to parent templatemap (Combobox in Combobox)
		Map parenttemplatemap = (Mapcombobox.getAttribute(.);
		if (parenttemplatemap != null) {
			templatemap.put(.parenttemplatemap);
		}
		//kept clone kids somewhere to avoid create too many components in browser
		final List<Componentkids = new ArrayList<Component>(clone.getChildren());
		clone.setAttribute(kids);
		clone.getChildren().clear();
		return clone;
	}
New to GrepCode? Check out our FAQ X