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>
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>
相关文章推荐
- 错误“操作必须使用一个可更新的查询”原因及解决办法
- Access中"操作必须使用一个可更新的查询"错误的解决办法
- Microsoft JET Database Engine 错误 '80004005' 操作必须使用一个可更新的查询。问题解决办法
- UI-Grid表格元素中多个空格显示为一个空格的解决办法
- 错误“操作必须使用一个可更新的查询”原因及解决办法
- Access数据库 "操作必须使用一个可更新的查询"解决办法
- asp:(0X80004005)操作必须使用一个可更新的查询”错误的解决办法
- 错误“操作必须使用一个可更新的查询”原因及解决办法
- ASP“操作必须使用一个可更新的查询”问题的解决办法
- 【WindowsDDK】内核字符串操作蓝屏的一个解决办法
- "Microsoft OLE DB Provider for ODBC Drivers (0x80004005) 操作必须使用一个可更新的查询”错误的解决办法
- Qt拖拽界面 (*.ui) 缩放问题及解决办法(在最顶层放一个Layout)
- c# winform 时候调用TeeChart时出现 <请考虑更改其中一个程序集的“嵌入互操作类型”属性>的解决办法
- asp.net提示"操作必须使用一个可更新的查询"的解决办法
- “[Microsoft][ODBC Microsoft Access Driver] 操作必须使用一个可更新的查询”的解决办法
- Access提示“操作必须使用一个可更新的查询”的解决办法
- 用oledb读写excel出现“操作必须使用一个可更新的查询”的解决办法
- 错误“操作必须使用一个可更新的查询”原因及解决办法
- 写excel出现“操作必须使用一个可更新的查询”的解决办法