|
Processing... Keep the keyword blank and click 'Search' can see all the cars.
Description & Source Code
demo.zul
<window title="Search" width="600px" border="normal" apply="demo.getting_started.mvc.SearchController"> <hlayout valign="middle"> Keyword: <textbox id="keywordBox" /> <button id="searchButton" label="Search" iconSclass="z-icon-search" /> </hlayout> <listbox id="carListbox" emptyMessage="No car found in the result" height="160px" style="margin-top:10px"> <listhead> <listheader label="Model" /> <listheader label="Make" /> <listheader label="Price" width="20%"/> </listhead> <template name="model"> <listitem> <listcell label="${each.model}"></listcell> <listcell label="${each.make}"></listcell> <listcell>$<label value="${each.price}" /></listcell> </listitem> </template> </listbox> <hlayout style="margin-top:20px" id="detailBox" visible="false"> <image id="previewImage" style="padding:10px" /> <vlayout> <hlayout> Model : <label id="modelLabel" style="font-weight:bold"/> </hlayout> <hlayout> Make : <label id="makeLabel" style="font-weight:bold"/> </hlayout> <hlayout> Price : <span>$<label id="priceLabel" style="font-weight:bold"/></span> </hlayout> <label id="descriptionLabel" /> </vlayout> </hlayout> </window> SearchController.java
package demo.getting_started.mvc; import java.util.List; import java.util.Set; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.select.SelectorComposer; import org.zkoss.zk.ui.select.annotation.Listen; import org.zkoss.zk.ui.select.annotation.Wire; import org.zkoss.zul.Image; import org.zkoss.zul.Label; import org.zkoss.zul.ListModelList; import org.zkoss.zul.Listbox; import org.zkoss.zul.Textbox; import org.zkoss.zul.ext.Selectable; import demo.getting_started.tutorial.Car; import demo.getting_started.tutorial.CarService; import demo.getting_started.tutorial.CarServiceImpl; public class SearchController extends SelectorComposer<Component> { private static final long serialVersionUID = 1L; @Wire private Textbox keywordBox; @Wire private Listbox carListbox; @Wire private Label modelLabel; @Wire private Label makeLabel; @Wire private Label priceLabel; @Wire private Label descriptionLabel; @Wire private Image previewImage; @Wire private Component detailBox; private CarService carService = new CarServiceImpl(); @Listen("onClick = #searchButton") public void search(){ String keyword = keywordBox.getValue(); List<Car> result = carService.search(keyword); carListbox.setModel(new ListModelList<Car>(result)); } @Listen("onSelect = #carListbox") public void showDetail(){ detailBox.setVisible(true); Set<Car> selection = ((Selectable<Car>)carListbox.getModel()).getSelection(); if (selection!=null && !selection.isEmpty()){ Car selected = selection.iterator().next(); previewImage.setSrc(selected.getPreview()); modelLabel.setValue(selected.getModel()); makeLabel.setValue(selected.getMake()); priceLabel.setValue(selected.getPrice().toString()); descriptionLabel.setValue(selected.getDescription()); } } } Car.java
package demo.getting_started.tutorial; public class Car { private Integer id; private String model; private String make; private String preview; private String description; private Integer price; public Car() { } public Car(Integer id, String model, String make, String description, String preview, Integer price) { this.id = id; this.model = model; this.make = make; this.preview = preview; this.description = description; this.price = price; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getMake() { return make; } public void setMake(String make) { this.make = make; } public String getPreview() { return preview; } public void setPreview(String preview) { this.preview = preview; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public Integer getPrice() { return price; } public void setPrice(Integer price) { this.price = price; } public String getModel() { return model; } public void setModel(String model) { this.model = model; } } CarService.java
package demo.getting_started.tutorial; import java.util.List; public interface CarService { /** * Retrieve all cars in the catalog. * @return all cars */ public List<Car> findAll(); /** * search cars according to keyword in name and company. * @param keyword for search * @return list of car that match the keyword */ public List<Car> search(String keyword); }
Copyright © 2005-2024 Potix Corporation All rights reserved.
|
Processing... |