重定义wicket分页组件PagingNavigator

1.Navigator.java
package com.logcd.wicket.list;

import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.markup.html.navigation.paging.IPageable;
import org.apache.wicket.markup.html.navigation.paging.IPagingLabelProvider;
import org.apache.wicket.markup.html.navigation.paging.PagingNavigation;
import org.apache.wicket.markup.html.navigation.paging.PagingNavigator;
import org.apache.wicket.model.LoadableDetachableModel;

public class Navigator extends PagingNavigator {

	private static final long serialVersionUID = 1;

	public Navigator(String arg0, final IPageable arg1,final Integer total) {
		super(arg0, arg1);
		Link totallink = new Link("totallink") {
			private static final long serialVersionUID = 1;

			@Override
			public boolean isEnabled() {
				return arg1.getPageCount() - 1 > 0;
			}

			@Override
			public void onClick() {
				arg1.setCurrentPage(arg1.getPageCount() - 1);
			}
		};
		totallink.add(new Label("totalcount", new LoadableDetachableModel() {
			private static final long serialVersionUID = 1;

			@Override
			protected Object load() {
				return String.valueOf(arg1.getPageCount());
			}
		}));
		this.add(totallink);
		this.add(new Label("total",total.toString()));
	}

	public Navigator(String arg0, final IPageable arg1,
			IPagingLabelProvider arg2,final Integer total) {
		super(arg0, arg1, arg2);
		Link totallink = new Link("totallink") {
			private static final long serialVersionUID = 1;

			@Override
			public boolean isEnabled() {
				return arg1.getPageCount() - 1 > 0;
			}

			@Override
			public void onClick() {
				arg1.setCurrentPage(arg1.getPageCount() - 1);
			}
		};
		totallink.add(new Label("totalcount", new LoadableDetachableModel() {
			private static final long serialVersionUID = 1;

			@Override
			protected Object load() {
				return String.valueOf(arg1.getPageCount());
			}
		}));
		this.add(totallink);
		this.add(new Label("total",total.toString()));
	}

	@Override
	protected PagingNavigation newNavigation(IPageable arg0,
			IPagingLabelProvider arg1) {
		return new PagingSetting("navigation", arg0, arg1, this);
	}

}


2.PagingSetting.java:用于,显示控制
package com.logcd.wicket.list;

import org.apache.wicket.markup.html.navigation.paging.IPageable;
import org.apache.wicket.markup.html.navigation.paging.IPagingLabelProvider;
import org.apache.wicket.markup.html.navigation.paging.PagingNavigation;

public class PagingSetting extends PagingNavigation {

	private static final long serialVersionUID = 1;

	@SuppressWarnings("unused")
	private IPageable arg1 = null;

	private Navigator style = null;

	public PagingSetting(String arg0, IPageable arg1, IPagingLabelProvider arg2,
			Navigator style) {
		super(arg0, arg1, arg2);
		this.arg1 = arg1;
		this.style = style;
		this.setViewSize(5);
	}

	@Override
	protected void onModelChanged() {
		super.onModelChanged();
		style.get("first").setVisible(true);
		style.get("prev").setVisible(true);
		style.get("next").setVisible(true);
		style.get("last").setVisible(true);
		if (arg1.getCurrentPage() < 2) {
			style.get("first").setVisible(false);
		}
		if (arg1.getCurrentPage() < 1) {
			style.get("prev").setVisible(false);
		}
		if (arg1.getCurrentPage() > arg1.getPageCount() - 2) {
			style.get("next").setVisible(false);
		}
		if (arg1.getCurrentPage() > arg1.getPageCount() - 3) {
			style.get("last").setVisible(false);
		}
	}
}



3.Navigator.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link type="text/css" rel="stylesheet" href="styles/wicket.css"></link>
<link type="text/css" rel="stylesheet" href="styles/office.css"></link>
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
</head>
<body>
	<table border="0" cellspacing="0" cellpadding="0">
		  <tr>
			<td align="center" valign="middle">
			<wicket:panel>
			  <a wicket:id="first" class="text">首页</a>
			  
			   <a wicket:id="prev" class="text">上一页</a>  
			  
			  <span wicket:id="navigation">&nbsp; <a wicket:id="pageLink"
			    href="#"><span wicket:id="pageNumber" class="text">0</span></a> </span>
			  
			    <a wicket:id="next" class="text">下一页</a> 
			  
			  <a wicket:id="last" class="text">尾页</a>
			    
		    	&nbsp;&nbsp;总页数:<a wicket:id="totallink" href="#"><span
			    wicket:id="totalcount">0</span></a>&nbsp;页&nbsp;&nbsp; 
			    总记录数:<span wicket:id="total">0</span> 条&nbsp;
			</wicket:panel>
			</td>
		</tr>
	</table>
</body>
</html>


4.应用
(1)java:
form.add(new Navigator("navigator", listView2,listView2.getList().size()));

(2)html:
<style type="text/css">
<!--
    i,em{
    	font-style: normal;
    	color: #CCCCCC;
    }
    #datNav{
	border:1px solid #8C9EBF;
         width:100%;
	table-layout:fixed;
	line-height: 20px;
	background-color:#F4F8FF;	
    }	    
-->
</style>

<div class="datNav"><span wicket:id ="navigator">这里显示分页操作</span></div>

你可能感兴趣的:(apache,DAO,html,tapestry,wicket)