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

📄 simplecategorymodel.java

📁 非常接近C/S操作方式的Java Ajax框架-ZK 用ZK框架使你的B/S应用程序更漂亮更易操作。 官网:www.zkoss.org
💻 JAVA
字号:
/* SimpleCategoryModel.java{{IS_NOTE	Purpose:			Description:			History:		Thu Aug 14 11:25:51     2006, Created by henrichen}}IS_NOTECopyright (C) 2006 Potix Corporation. All Rights Reserved.{{IS_RIGHT	This program is distributed under GPL Version 2.0 in the hope that	it will be useful, but WITHOUT ANY WARRANTY.}}IS_RIGHT*/package org.zkoss.zul;import org.zkoss.lang.Objects;import org.zkoss.zul.event.ChartDataEvent;import org.zkoss.zul.event.ChartDataListener;import org.jfree.data.general.*;import org.jfree.data.category.*;import java.util.Set;import java.util.Map;import java.util.List;import java.util.HashSet;import java.util.HashMap;import java.util.LinkedHashMap;import java.util.Iterator;import java.util.ArrayList;import java.util.Collection;/** * A Category data model implementation of {@link CategoryModel}. * A Category model is an N series of (category, value) data objects. * * @author henrichen * @see CategoryModel * @see Chart */public class SimpleCategoryModel extends AbstractChartModel implements CategoryModel {	private Map _seriesMap = new HashMap(13); // (series, usecount)	private List _seriesList = new ArrayList(13);	private Map _categoryMap = new HashMap(13); // (category, usecount)	private List _categoryList = new ArrayList(13);		private Map _valueMap = new LinkedHashMap(79);		//-- CategoryModel --//	public Comparable getSeries(int index) {		return (Comparable)_seriesList.get(index);	}	public Comparable getCategory(int index) {		return (Comparable)_categoryList.get(index);	}		public Collection getSeries() {		return _seriesList;	}	public Collection getCategories() {		return _categoryList;	}		public Collection getKeys() {		return _valueMap.keySet();	}		public Number getValue(Comparable series, Comparable category) {		List key = new ArrayList(2);		key.add(series);		key.add(category);		Number num = (Number) _valueMap.get(key);		return num;	}	public void setValue(Comparable series, Comparable category, Number value) {		List key = new ArrayList(2);		key.add(series);		key.add(category);				if (!_valueMap.containsKey(key)) {			if (!_categoryMap.containsKey(category)) {				_categoryMap.put(category, new Integer(1));				_categoryList.add(category);			} else {				Integer count = (Integer) _categoryMap.get(category);				_categoryMap.put(category, new Integer(count.intValue()+1));			}						if (!_seriesMap.containsKey(series)) {				_seriesMap.put(series, new Integer(1));				_seriesList.add(series);			} else {				Integer count = (Integer) _seriesMap.get(series);				_seriesMap.put(series, new Integer(count.intValue()+1));			}		} else {			Number ovalue = (Number) _valueMap.get(key);			if (Objects.equals(ovalue, value)) {				return;			}		}				_valueMap.put(key, value);		fireEvent(ChartDataEvent.CHANGED, (String) series, category);	}		public void removeValue(Comparable series, Comparable category) {		List key = new ArrayList(2);		key.add(series);		key.add(category);		if (!_valueMap.containsKey(key)) {			return;		}						_valueMap.remove(key);				int ccount = ((Integer) _categoryMap.get(category)).intValue();		if (ccount > 1) {			_categoryMap.put(category, new Integer(ccount-1));		} else {			_categoryMap.remove(category);			_categoryList.remove(category);		}				int scount = ((Integer) _seriesMap.get(series)).intValue();		if (scount > 1) {			_seriesMap.put(series, new Integer(scount-1));		} else {			_seriesMap.remove(series);			_seriesList.remove(series);		}				fireEvent(ChartDataEvent.REMOVED, (String)series, category);	}		public void clear() {		_seriesMap.clear();		_seriesList.clear();		_categoryMap.clear();		_categoryList.clear();		_valueMap.clear();		fireEvent(ChartDataEvent.REMOVED, null, null);	}}

⌨️ 快捷键说明

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