技术开发 频道

ZK5.0客户端与服务器端结合的编程方式

  搜索功能

  在StockController.java中我们给TextBox注册一个onChanging事件的监听器,当用户输入时我们搜索股票并把结果显示在ListBox中

  StockController.java

  Java代码

 public class StockController extends GenericForwardComposer {

  Textbox searchBox;

  Listbox itemList;

  Include detail;

  StockDAO dao
= new StockDAO();

  
private static String DETAIL_URL = "price.zul";

  
public void onCreate$main(){

  itemList.setSelectedIndex(
0);

  Events.postEvent(
new Event(Events.ON_SELECT, itemList));

  }

  
public void onSelect$itemList(){

  
int id = ((Stock)itemList.getSelectedItem().getValue()).getId();

  detail.setSrc(DETAIL_URL
+ "?id=" + id);

  }

  
public void onChanging$searchBox(InputEvent event) {

  String key
= event.getValue();

  LinkedList item
= new LinkedList();

  List items
= dao.findAll();

  
if (key.trim().length() != 0) {

  
for (Iterator iterator = items.iterator(); iterator.hasNext();) {

  Stock st
= (Stock) iterator.next();

  
if (st.getName().toLowerCase()

  .indexOf(key.toLowerCase())
!= -1)

  item.add(st);

  }

  itemList.setModel(
new ListModelList(item));

  }
else itemList.setModel(new ListModelList(items));

  }

  
public List getStocks(){

  
return dao.findAll();

  }

  }

  当用户点击任何一支股票,onSelect事件被触发,onSelect$itemList()这个监听方法被执行,然后重新加载price.zul,显示这支股票的历史价格。

  在表格和图中显示股票的历史价格

  在PriceController.java中我们得到股票的历史价格的数据并为图表构建一个合适的模型。

  PriceController.java

  Java代码

public class PriceController extends GenericAutowireComposer {  
    
private StockDAO dao = new StockDAO();  
    
private CategoryModel cateModel;              
    
private List items;
    
public PriceController() {  
        init();  
    }  
    
public void init() {  
        
//get stock id  
        int id = Integer.parseInt((String) Executions.getCurrent().getParameter("id"));      
        Stock stock
= dao.getStock(id);  
        items
= stock.getPriceItems();        
        
//create category model for chart  
        cateModel = new SimpleCategoryModel();  
        
for (Iterator iterator = items.iterator(); iterator.hasNext();) {  
           Price price
= (Price) iterator.next();  
            cateModel.setValue(stock.getName(), price.getDate(), price.getClose());  
        }  
    }  
    
public List getPrices(){  
        
return items;  
    }  
    
public CategoryModel getCateModel() {  
        
return cateModel;  
    }      
}  
0
相关文章