⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 alphabeticpager.java

📁 Document will be uploaded soon
💻 JAVA
字号:
package com.component.pagination;

import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Vector;
/**
 * Alphabetic pager.
 * 
 * @author chetan_bh
 */
public class AlphabeticPager extends AbstractPager {

	private String pagerName = PaginationConstants.ALPHABETIC_PAGER; 
	
	Pager subPager;

	public AlphabeticPager(Vector<PageElement> data) {
		super(data);
	}

	public AlphabeticPager(Vector<PageElement> data, int elementsPerPage) {
		super(data, elementsPerPage);
	}

	/* 
	 * TODO Non-Numeric pagers should consider calling subPage() method
	 * whenever the elements in that page exceeds the elementPerPage parameter.
	 * passing the page and the index probably.
	 * 
	 */
	protected Map<String, Map<String, Vector<PageElement>>> page(Vector<PageElement> data)
	{
		Map<String,Map<String, Vector<PageElement>>> returner = new HashMap<String, Map<String, Vector<PageElement>>>();
		Iterator<PageElement> elementsIter = data.iterator();

		String currentPage = "";

		while(elementsIter.hasNext())
		{
			PageElement pageElement = elementsIter.next();
			String displayName = pageElement.getDisplayName();
			char firstChar = displayName.charAt(0);
			currentPage = Character.toString(firstChar);
			// To take care of case insensitive categorization of data.
			currentPage =  currentPage.toUpperCase();
			//System.out.println("returner "+returner);
			Map<String, Vector<PageElement>> subPageMap = returner.get(currentPage);
			Vector<PageElement> page = subPageMap.get(currentPage);
			
			if(page == null)
			{
				page = new Vector<PageElement>();
				page.add(pageElement);                  // call to subPage() should be made at the end of constructing the pageMap 
														// like in Numeric pager.
				subPageMap = new HashMap<String, Vector<PageElement>>();
				subPageMap.put(currentPage, page);
				returner.put(currentPage, subPageMap);
				pageIndices.add(currentPage);
			}else  // here check for numeric paging
			{
				page.add(pageElement);
			}
			numberOfPages = pageIndices.size();
		}
		// Alphabetic sorting of page indices Vector needed.
		Collections.sort(pageIndices);
		return returner;
	}
	
	
	public int getElementsPerPage()
	{
		return elementsPerPage;
	}
	
	// TODO Yet to implement this method fully.
	// This will set elements per page for second level Numeric pager.
	public void setElementsPerPage(int elementsPerPage)
	{
		this.elementsPerPage = elementsPerPage;
	}
	
	public String getPagerName()
	{
		return pagerName;
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Vector<PageElement> elements = new Vector<PageElement>();

		String alphabets = "AbCDEfGHHJAsdGEWYVCBZXhSHhhasHqwHhHH";
		for(int i = 0; i < alphabets.length(); i++)
		{
			PageElement element = new PageElementImpl();
			element.setDisplayName(alphabets.charAt(i)+"-123");
			elements.add(element);
		}
		AlphabeticPager alphaPager = new AlphabeticPager(elements);

		System.out.println("pages "+alphaPager);
	}

	

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -