0

please help - how to bind data to Listbox use iterator in GenericForwardComposer ??????

asked 2013-01-10 09:43:48 +0800

zerocold gravatar image zerocold
128 1

I am new comer in ZK.

I have big problem, i can not show my db to Listbox

this is my controller:

public void onClick$searchButton1(Event event) throws InterruptedException {
List<SearchEj> persons = new ArrayList<SearchEj>();
SearchEjServices ejService = new SearchEjServices(null, null);
List<SearchEj> ls = ejService.findAll();
personModelList.addAll(ls);

theList.setModel(personModelList);
}

Zul:

<listbox id="theList" mold="paging"
pageSize="30" vflex="true" >
<listhead sizable="true">
<listheader label="ATM ID" sort="auto" />
<listheader label="Type" sort="auto" />
<listheader label="File Name" sort="auto" />
<listheader label="File Path" sort="auto" />
</listhead>
<listitem >
<listcell label="${each.sATMID}"></listcell>
<listcell label="${each.iTaskType}"></listcell>
<listcell label="${each.sEJFileName}"></listcell>
<listcell label="${each.sEJFilePath}"></listcell>
</listitem>
</listbox>


How can i fix it :( please help me

delete flag offensive retag edit

31 Answers

Sort by ยป oldest newest most voted
0

answered 2013-01-10 12:33:12 +0800

Senthilchettyin gravatar image Senthilchettyin flag of India
2623 3 8
http://emrpms.blogspot.in...

Please check here

link publish delete flag offensive edit
0

answered 2013-01-10 19:16:13 +0800

zerocold gravatar image zerocold
128 1

thank you Senthilchettyin

but i want to use iteriator to bind data as java simple. so could you explain for me ?

link publish delete flag offensive edit
0

answered 2013-01-10 19:27:54 +0800

zerocold gravatar image zerocold
128 1

@Senthilchettyin: i did as you show me, it's show all database but blank :-s i dont know why
i have all record that i have. but blank in listbox

link publish delete flag offensive edit
0

answered 2013-01-11 07:12:35 +0800

zerocold gravatar image zerocold
128 1

anyone can help me ?

link publish delete flag offensive edit
0

answered 2013-01-11 10:23:15 +0800

zerocold gravatar image zerocold
128 1

please help me :(

link publish delete flag offensive edit
0

answered 2013-01-11 14:08:59 +0800

sjoshi gravatar image sjoshi flag of India
3493 1 8
http://zkframeworkhint.bl...

Please Share your Java Class how you implemented getIemrendered() in Java Class?

link publish delete flag offensive edit
0

answered 2013-01-11 18:28:44 +0800

zerocold gravatar image zerocold
128 1

this is my Controller :

package de.forsthaus.webui.blog;

import java.io.Serializable;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import mcrt.config.ConnectODBC_DSN;
import mcrt.model.SearchEj;
import mcrt.model.SearchEjServices;

import org.apache.log4j.Logger;
import org.zkoss.util.resource.Labels;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Path;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.Events;
import org.zkoss.zk.ui.util.Clients;
import org.zkoss.zkplus.databind.BindingListModelList;
import org.zkoss.zul.Borderlayout;
import org.zkoss.zul.Iframe;
import org.zkoss.zul.Intbox;
import org.zkoss.zul.ListModel;
import org.zkoss.zul.ListModelList;
import org.zkoss.zul.Listbox;
import org.zkoss.zul.Listcell;
import org.zkoss.zul.Listitem;
import org.zkoss.zul.Window;

import com.lowagie.text.ListItem;

import de.forsthaus.webui.guestbook.model.GuestBookListtemRenderer;
import de.forsthaus.webui.util.GFCBaseCtrl;

/**
 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++<br>
 * This is the controller class for the /WEB-INF/blog/blog.zul file. <br>
 * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++<br>
 * 
 * @author bbruhns
 * @author sgerth
 */
public class BlogCtrl extends GFCBaseCtrl implements Serializable {

	private static final long serialVersionUID = 12L;
	private static final Logger logger = Logger.getLogger(BlogCtrl.class);

	/*
	 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	 * All the components that are defined here and have a corresponding
	 * component with the same 'id' in the zul-file are getting autowired by our
	 * 'extends GFCBaseCtrl' GenericForwardComposer.
	 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	 */

	protected Window windowBlog; // autowired
	protected Borderlayout borderLayout_blog; // autowired
	protected Iframe iFrameBlog; // autowired

	private Listbox theList;
	private List<SearchEj> pLists;
	private List<SearchEj> ejfiles = new ArrayList<SearchEj>();
	private ListModelList listModel;
    

	/**
	 * default constructor.<br>
	 */
	public BlogCtrl() {
		super();
	}

	ListModelList personModelList = new ListModelList();

	@Override
	public void doAfterCompose(Component window) throws Exception {
		super.doAfterCompose(window);

		/**
		 * 1. Set an 'alias' for this composer name to access it in the
		 * zul-file.<br>
		 * 2. Set the parameter 'recurse' to 'false' to avoid problems with
		 * managing more than one zul-file in one page. Otherwise it would be
		 * overridden and can ends in curious error messages.
		 */
//		SearchEjServices ejService = new SearchEjServices(null, null);
//		listModel =  new ListModelList(ejService.findAll());
//		theList.setItemRenderer(new MyItemRenderer()); 
	

		this.self.setAttribute("controller", this, false);
		SearchEjServices ejService = new SearchEjServices(null, null);
		ejfiles = ejService.findAll();
	}

	// +++++++++++++++++++++++++++++++++++++++++++++++++ //
	// +++++++++++++++ Component Events ++++++++++++++++ //
	// +++++++++++++++++++++++++++++++++++++++++++++++++ //

	public void onCreate$windowBlog(Event event) throws Exception {

		doFitSize();

		loadDocument(event);
	}

	public void onClick$btnRefresh(Event event) throws InterruptedException {
		doFitSize();
	}

	 
	public void onClick$searchButton1(Event event) throws InterruptedException {
 
		SearchEjServices ejService = new SearchEjServices(null, null);
		ejfiles = ejService.findAll();
		theList.getItems().clear();
		theList.setModel(new ListModelList(ejfiles));
		//theList.setModel(listModel);
		//Listitem listitem = new Listitem();
		theList.renderAll();
		  
	}

	 
	 
	public List<SearchEj> getEjfiles() {
		return ejfiles;
	}

	// +++++++++++++++++++++++++++++++++++++++++++++++++ //
	// +++++++++++++++++ Business Logic ++++++++++++++++ //
	// +++++++++++++++++++++++++++++++++++++++++++++++++ //

	/**
	 * Loads the document and startet an echo event message.
	 * 
	 * @param event
	 * @throws Exception
	 */
	public void loadDocument(Event event) {

		// we load the website in an Echo-event to show a message to the
		// user if this is a long running operation.
		Clients.showBusy(Labels
				.getLabel("message.Information.LongOperationIsRunning"));
		Events.echoEvent("onLoadDocument", BlogCtrl.this.windowBlog, null);
	}

	public void onLoadDocument() {

		try {
			iFrameBlog.setSrc("ejm/index.zul");
		} finally {
			Clients.clearBusy(); // close the message
		}

	}

	// +++++++++++++++++++++++++++++++++++++++++++++++++ //
	// ++++++++++++++++++++ Helpers ++++++++++++++++++++ //
	// +++++++++++++++++++++++++++++++++++++++++++++++++ //

	/**
	 * Recalculates the container size for this controller and resize them.
	 * 
	 * Calculate how many rows have been place in the listbox. Get the
	 * currentDesktopHeight from a hidden Intbox from the index.zul that are
	 * filled by onClientInfo() in the indexCtroller.
	 */
	public void doFitSize() {
		// normally 0 ! Or we have a i.e. a toolBar on top of the listBox.
		final int specialSize = 26;
		final int height = ((Intbox) Path
				.getComponent("/outerIndexWindow/currentDesktopHeight"))
				.getValue().intValue();
		final int maxListBoxHeight = height - specialSize - 88;
		this.borderLayout_blog.setHeight(String.valueOf(maxListBoxHeight)
				+ "px");

		borderLayout_blog.invalidate();
	}

}

This is my model

package mcrt.model;

import de.forsthaus.backend.model.Entity;

public class SearchEj { 
	
	private String iEJFile;
	private String sTaskID;
	private String sATMID; 
	private String sEJFilePath;
	private String sEJFileName;
	private String iFileSize;
	private String dStartDate;
	private String dEndDate;
	private String sTaskName;
	private String tStartTime;
	private String tEndTime;
	private String iEJFileType;
	private String sDescription;
	private String sATMEJFilePath;
	private String sATMEJFileName;
	private String iTaskType;
	
	public SearchEj(String iEJFile,String sTaskID,String sATMID,String sEJFilePath,
			String sEJFileName,String iFileSize,String dStartDate,
			String dEndDate,String sTaskName,String tStartTime,
			String tEndTime,String iEJFileType, String sDescription,
			String sATMEJFilePath,String sATMEJFileName,String iTaskType){
		this.iEJFile = iEJFile;
		this.sTaskID = sTaskID;
		this.sATMID = sATMID;
		this.sEJFilePath = sEJFilePath;
		this.sEJFileName = sEJFileName;
		this.iFileSize = iFileSize;
		this.dStartDate = dStartDate;
		this.dEndDate = dEndDate;
		this.sTaskName = sTaskName;
		this.tStartTime = tStartTime;
		this.tEndTime = tEndTime;
		this.iEJFileType = iEJFileType;
		this.sDescription = sDescription;
		this.sATMEJFilePath = sATMEJFilePath;
		this.sATMEJFileName = sATMEJFileName;
		this.iTaskType = iTaskType;
	}
	
	 public SearchEj(){} 
	 public String getiEJFile() { return this.iEJFile; }
	 public void setiEJFile(String ejfile){ this.iEJFile = ejfile; }
	 public String getTaskID(){ return this.sTaskID; }
	 public void setTaskID(String taskID){ this.sTaskID = taskID; }
	 public String getsATMID(){ return this.sATMID; }
	 public void setsATMID(String sATMID){  this.sATMID = sATMID;  }
	 public String getsEJFilePath(){  return this.sEJFilePath;  }
	 public void setsEJFilePath(String ejfilepath){  this.sEJFilePath = ejfilepath;  }
	 public String getsEJFileName(){ return this.sEJFileName; }
	 public void setsEJFileName(String ejfilename){  this.sEJFileName = ejfilename;  }
	 public String getiFileSize(){return this.iFileSize;}
	 public void setiFileSize(String ejfilesize){this.iFileSize = ejfilesize;}
	 public String getdStartDate(){return this.dStartDate;}
	 public void setdStartDate(String startdate){this.dStartDate = startdate;}
	 public String getdEndDate(){return this.dEndDate;}
	 public void setdEndDate(String enddate){this.dEndDate = enddate;}
	 public String getsTaskName(){return this.sTaskName;}
	 public void setsTaskName(String taskname){this.sTaskName = taskname;}
	 public String gettStartTime(){return this.tStartTime;}
	 public void settStartTime(String starttime){this.tStartTime = starttime;}
	 public String gettEndTime(){return this.tEndTime;}
	 public void settEndTime(String endtime){this.tEndTime = endtime;}
	 public String getiEJFileType(){return this.iEJFileType;}
	 public void setiEJFileType(String ejfiletype){this.iEJFileType = ejfiletype;}
	 public String getsDescription(){return this.sDescription;}
	 public void setsDescription(String description){this.sDescription = description;}
	 public String getsATMEJFilePath(){return this.sATMEJFilePath;}
	 public void setsATMEJFilePath(String atmejfilepath){this.sATMEJFilePath = atmejfilepath;}
	 public String getsATMEJFileName(){return this.sATMEJFileName;}
	 public void setsATMEJFileName(String atmejfilename){this.sATMEJFileName = atmejfilename;}
	 public String getiTaskType(){return this.iTaskType;}
	 public void setiTaskType(String tasktype){this.iTaskType = tasktype;}

	 
	 
}


this is my view

<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" ?>
 
	<div  width="100%"
		height="100%"  
		apply="de.forsthaus.webui.blog.BlogCtrl" id="plstWin">
 
		ATM ID:
		<textbox id="atmId1" />
		Upload type:
		<listbox id="uploadType" mold="select" tabindex="8">
			<listitem label="       " value="0" />
			<listitem label="Immediate" value="1" />
			<listitem label="Schedule" value="2" />
		</listbox>
		Start from:
		<datebox id="dateStartFrom" format="dd-MM-yyyy" />
		to:
		<datebox id="dateEndTo" format="dd-MM-yyyy" />
		File name:
		<textbox id="fileName" value="" />
		<button id="searchButton1" label="Search" />
		<groupbox open="false">
			<grid>
				<rows>
					<row>
						ATM ID:
						<textbox id="atmId2" value="" />
					</row>
					<row></row>
					<row>
						<button id="bttsearch" label="Refresh" />
					</row>
				</rows>
			</grid>
		</groupbox>

	  	  <listbox id="theList"
			emptyMessage="No Ej file found in the result" height="100%"
			style="margin-top:10px;font-size:10px;"  mold="paging"
			pageSize="30" width="100%">
			<listhead>
				<listheader   label="Atm ID" />
				<listheader   label="Type" />
				<listheader   label="File Name" />
				<listheader   label="File Path" />
				<listheader width="100px" label="Size" />
				<listheader width="150px" label="Start Date" />
				<listheader width="150px" label="End Date" />
			</listhead> 
			<listitem  self="@{each=file}">
					<listcell label="${file.sATMID}"></listcell>
					<listcell label="${file.iTaskType}"></listcell>
					<listcell label="${file.sEJFileName}"></listcell>
					<listcell label="${file.sEJFilePath}"></listcell>
					<listcell>
						<label value="${file.iFileSize}" />
					</listcell>
					<listcell>
					<label value="${file.dStartDate}" />
						<!--  <label value="@{file.dStartDate, converter='mcrt.ultility.DateCustom'}" />-->
						<!--  <custom-attributes format="dd-MM-yyyy" />-->
					</listcell>
					<listcell>
						<label value="${file.dEndDate}" />
					</listcell>
				</listitem> 
		</listbox>  <div>


please help me :(

i bind data but it blank ( still have record & paging )

link publish delete flag offensive edit
0

answered 2013-01-12 13:17:17 +0800

sjoshi gravatar image sjoshi flag of India
3493 1 8
http://zkframeworkhint.bl...

As you are using apply and gave your class to this apply then you have to Wire your component in Java Class . As i am looking in your Java Class you did not Wire any component in Java Class.So how you will get the Data in ZUL page? How ZUL page know from where i have to load the data? OtherWise you have to use ViewModel in ZUl page .
See these two example
Wiring Example
ViewModel Example

Please let me know if you still ave any issue

link publish delete flag offensive edit
0

answered 2013-01-13 16:36:04 +0800

zerocold gravatar image zerocold
128 1

yes, i do as you say, but my listbox can not show all data, it know have data ( have paging, counted them ) but in field dont show

link publish delete flag offensive edit
0

answered 2013-01-13 17:57:01 +0800

sjoshi gravatar image sjoshi flag of India
3493 1 8
http://zkframeworkhint.bl...

What about this class GFCBaseCtrl.java This is main class which is know about the ZUL page Please post this class also You have to use @Wire in this class as i am assuming. ;So in your afterCompose after add Selector.wireComponent(view,null,null) something like this.

link publish delete flag offensive edit
Your answer
Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

[hide preview]

Question tools

Follow

RSS

Stats

Asked: 2013-01-10 09:43:48 +0800

Seen: 261 times

Last updated: Jan 15 '13

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