您的位置:首页 > 产品设计 > UI/UE

wicket中当在一个类中要操作种UI时,的解决办法

2008-04-02 17:18 405 查看
package com.shzhsoft.webapp.test.datatable;

import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeModel;

import org.apache.wicket.extensions.markup.html.tree.table.ColumnLocation;
import org.apache.wicket.extensions.markup.html.tree.table.IColumn;
import org.apache.wicket.extensions.markup.html.tree.table.PropertyRenderableColumn;
import org.apache.wicket.extensions.markup.html.tree.table.PropertyTreeColumn;
import org.apache.wicket.extensions.markup.html.tree.table.TreeTable;
import org.apache.wicket.extensions.markup.html.tree.table.ColumnLocation.Alignment;
import org.apache.wicket.extensions.markup.html.tree.table.ColumnLocation.Unit;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.markup.html.panel.Panel;
/**
*
* @author 向诗熠
* 测试树的操作,点击树上的节点弹出Panel,以产生不同的页面
*/
public class TreeTestPage extends WebPage {

private static final long serialVersionUID = 1L;
TreePanelOne treePanelOne;
TreePanelTwo treePanelTwo;
TreeTable tree;
public TreeTestPage(){
super();
treePanelOne=new TreePanelOne("first");
add(treePanelOne);
treePanelTwo=new TreePanelTwo("second");
add(treePanelTwo);
IColumn columns[] = new IColumn[] { new PropertyTreeColumn(new
ColumnLocation(Alignment.LEFT, 18, Unit.EM), "作者", "userObject.author"),
new PropertyRenderableColumn(new ColumnLocation(Alignment.LEFT, 12,
Unit.EM), "标题", "userObject.title"), };
tree = new TreeTable("treeTable", buildTreeModel(), columns){
private static final long serialVersionUID = 1L;
//private void
};
tree.getTreeState().setAllowSelectMultiple(true);
add(tree);

add(new Link("expandAll") {
private static final long serialVersionUID = 1L;

public void onClick() {
tree.getTreeState().expandAll();
treePanelOne.setVisible(false);
treePanelTwo.setVisible(true);
}
});

add(new Link("collapseAll") {
private static final long serialVersionUID = 1L;

public void onClick() {
tree.getTreeState().collapseAll();
treePanelOne.setVisible(true);
treePanelTwo.setVisible(false);
}
});
}

private TreeModel buildTreeModel() {
Book rootBook = new Book();
rootBook.setAuthor("根作者");
rootBook.setTitle("根标题");
DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode(rootBook);
for (int i = 0; i < 10; i++) {
Book parentBook = new Book();
DefaultMutableTreeNode parentNode = new DefaultMutableTreeNode(parentBook);
parentBook.setAuthor("父作者"+ i);
parentBook.setTitle("父标题" + i);
for (int j = 0; j < 5; j++) {
Book childBook = new Book();
childBook.setAuthor("子作者" + (10 * i + j));
childBook.setTitle("子标题"+ (10 * i + j));
parentNode.add(new DefaultMutableTreeNode(childBook));
}
rootNode.add(parentNode);
}
return new DefaultTreeModel(rootNode);
}

//------------
public class TreePanelOne extends Panel{
private static final long serialVersionUID = 1L;
public TreePanelOne(String id){
super(id);
this.add(new Label("message","第一个窗体,以维护单位信息"));
this.setVisible(false);
}

}
//------------------------------
public class TreePanelTwo extends Panel{
private static final long serialVersionUID = 1L;
public TreePanelTwo(String id){
super(id);
this.add(new Label("message","第二个窗体,维护规则号信息"));
this.setVisible(false);
}
}
}

下面是几个HtML TreeTestPage.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Insert title here</title>
<style type="text/css" media="all">
<!div.
mytree
div.wickettree
{
height: 80em;
}
>
</style>
</head>
<body>
<table>
<tr>
<td>
<table>
<a href="#" wicket:id="expandAll">展开所有结点</a>
<a href="#" wicket:id="collapseAll">折叠所有结点</a>
<div wicket:id="treeTable" class="mytree"></div>
</table>
</td>
<td>
<table>
<span wicket:id="first"></span>
<span wicket:id="second"></span>
</table>
</td>
</tr>
</table>
</body>
</html>

//TreeTestPage$TreePanelOne .html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<wicket:panel>
<span wicket:id="message"></span>
</wicket:panel>
</body>
</html>
//TreeTestPage$TreePanelTwo .html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<wicket:panel>
<span wicket:id="message"></span>
</wicket:panel>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐