Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /* BindingListitemRenderer.java
  
  {{IS_NOTE
  	Purpose:
  		
  	Description:
  		
  	History:
  		Sat Feb  3 14:18:27     2007, Created by Henri
 }}IS_NOTE
 
 Copyright (C) 2007 Potix Corporation. All Rights Reserved.
 
 {{IS_RIGHT
 }}IS_RIGHT
 */
 package org.zkoss.zkplus.databind;
 
 import java.util.List;
 import java.util.Map;
 
 import static org.zkoss.lang.Generics.cast;
 

Deprecated:
As of release 7.0.0, replace with new ZK binding.
 
 /*package*/ class BindingListitemRenderer 
 	private static final long serialVersionUID = 200808191417L;
 	private static final String KIDS = "zkplus.databind.KIDS";
 	private Listitem _template;
 	private DataBinder _binder;
 	private int x = 0;
 	
 	public BindingListitemRenderer(Listitem templateDataBinder binder) {
 		 = template;
 		 = binder;
 	}
 	
 	//-- ListitemRendererExt --//
 	public Listitem newListitem(Listbox listbox) {
 		//clone from template
 		final Listitem clone = (Listitem).clone();
 		//TODO: see if databinder has this kind of Listitem, 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 Listitem and and it decendants share the same templatemap
 		Map<ObjectObjecttemplatemap = new HashMap<ObjectObject>(8);
 		BindingRendererUtil.linkTemplates(clonetemplatemap);
 		
 		//link this template map to parent templatemap (Listbox in Listbox)
 		Map parenttemplatemap = (Maplistbox.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;
 	}
 	
 	public Listcell newListcell(Listitem item) {
 		return null;
 	}
 	
 	public int getControls() {
 		return ;
 	}
 	
 	//-- ListitemRenderer --//
 	public void render(Listitem itemjava.lang.Object beanint index) {
 		final List<Componentkids = cast((Listitem.getAttribute());
 		item.getChildren().addAll(kids);
 		//item.removeAttribute(KIDS);
 			
 		//remove template mark of cloned component and its decendant
 			
 		//setup clone id
 		BindingRendererUtil.setupCloneIds(item);
 
 		//bind bean to the associated listitem and its decendant
 		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
	}
New to GrepCode? Check out our FAQ X