📄 listdatamodel.java
字号:
package com.zmc.ebook.maker;
//import com.sun.java.swing.*;
//import com.sun.java.swing.event.*;
import java.util.Vector;
import javax.swing.AbstractListModel;
import javax.swing.event.ListDataEvent;
import javax.swing.event.ListDataListener;
/**
*
* @(#)ListDataModel.java 1.0 10/24/99
* Copyright (c) 1999 Nantian R&D. All Rights Reserved.
*
*
* @version 1.0 10/24/99
* @author ZhongMingChang
*
*/
public class ListDataModel extends AbstractListModel {
private Vector dataList = new Vector(100);
private Vector listDataListeners = new Vector(10);
private boolean isSort = false;
/**
* ListDataModel constructor comment.
*/
public ListDataModel() {
super();
}
/**
* ListDataModel constructor comment.
*/
public ListDataModel(String[] data)
{
super();
if (data == null)
return;
for (int i = 0; i < data.length; i++)
{
dataList.addElement(data[i]);
}
}
/**
* ListDataModel constructor comment.
*/
public ListDataModel(boolean isSort) {
super();
this.isSort = isSort;
}
/**
* ListDataModel constructor comment.
*/
public ListDataModel(boolean isSort, String[] items)
{
super();
this.isSort = isSort;
if (isSort)
{
QSortAlgorithm qSort = new QSortAlgorithm();
try{
qSort.sort(items);
}catch(Exception e)
{
}
}
for (int i = 0; i < items.length; i++)
{
addItem(items[i]);
}
}
/**
* This method was created by ZhongMingChang.
*/
public void addItem(String items[])
{
/*
int len = dataList.size() - 1;
if( len < 0 )
len = 0;
for(int i=0; i< items.length; i++)
{
dataList.addElement( items[i] );
}
fireIntervalAdded(this, len, dataList.size()-1);
*/
try
{
if (isSort)//sort the items
{
QSortAlgorithm qSort = new QSortAlgorithm();
qSort.sort(items);
}
for (int i = 0; i < items.length; i++)
{
addItem(items[i]);
}
}
catch (Exception e)
{
}
}
/**
*
* This method was created by ZhongMingChang.
* 05/13/2000
*
*
* @param item java.lang.Object
*/
public void addItem(Object item)
{
if (item instanceof String)
addItem((String) item);
else
{
String itemStr = item.toString();
if (isSort)
{
String tmp = itemStr.toLowerCase();
int i = 0;
for (i = 0; i < dataList.size(); i++)
{
String aItem = dataList.elementAt(i).toString();
if (tmp.compareTo(aItem.toLowerCase()) <= 0)
break;
}
insertItem(item, i);
}
else
{
dataList.addElement(item);
fireIntervalAdded(this, dataList.size() - 1, dataList.size() - 1);
}
}
}
/**
* This method was created by ZhongMingChang.
*/
public void addItem(String item) {
if( isSort )
{
String tmp = item.toLowerCase();
int i=0;
for( i=0; i<dataList.size(); i++)
{
String aItem = (String)dataList.elementAt(i);
if( tmp.compareTo(aItem.toLowerCase()) <= 0)
break;
}
insertItem( item, i );
}
else
{
dataList.addElement( item );
fireIntervalAdded(this, dataList.size()-1, dataList.size()-1);
}
}
/**
* This method was created by ZhongMingChang.
*/
public void addListDataListener(ListDataListener l)
{
listDataListeners.addElement(l);
}
/**
* This method was created by ZhongMingChang.
*/
public void clearAllItem() {
fireIntervalRemoved(this, 0, dataList.size()-1);
dataList.removeAllElements();
}
/**
*
* This method was created by ZhongMingChang.
* 05/13/2000
*
*
* @return int
* @param name java.lang.String
*/
public int findItem(String name) {
for( int i=0; i<this.dataList.size(); i++)
{
String item = (String)dataList.elementAt(i);
if( item.regionMatches(true, 0, name, 0, name.length()) )
return i;
}
return -1;
}
/**
* This method was created by ZhongMingChang.
*/
protected void fireContentsChanged(Object source, int index0, int index1)
{
ListDataEvent e = null;
for (int i = listDataListeners.size()-1; i >= 0; i -= 1)
{
if (e == null)
{
e = new ListDataEvent(this, ListDataEvent.CONTENTS_CHANGED, index0, index1);
}
((ListDataListener) listDataListeners.elementAt(i)).contentsChanged(e);
}
}
public void updateItem( Object item)
{
int idx = this.dataList.indexOf( item );
this.fireContentsChanged(this, idx, idx);
}
/**
* This method was created by ZhongMingChang.
*/
protected void fireIntervalAdded(Object source, int index0, int index1)
{
ListDataEvent e = null;
for (int i = listDataListeners.size()-1; i >= 0; i -= 1)
{
if (e == null)
{
e = new ListDataEvent(this, ListDataEvent.INTERVAL_ADDED, index0, index1);
}
((ListDataListener) listDataListeners.elementAt(i)).intervalAdded(e);
}
}
/**
* This method was created by ZhongMingChang.
*/
protected void fireIntervalRemoved(Object source, int index0, int index1)
{
ListDataEvent e = null;
for (int i = listDataListeners.size()-1; i >= 0; i -= 1)
{
if (e == null)
{
e = new ListDataEvent(this, ListDataEvent.INTERVAL_REMOVED, index0, index1);
}
((ListDataListener) listDataListeners.elementAt(i)).intervalRemoved(e);
}
}
/**
*
* This method was created by ZhongMingChang.
* 02/12/2000
*
*
* @return java.lang.String[]
*/
public String[] getAllItems() {
String[] elements = new String[dataList.size()];
for( int i=0; i< dataList.size(); i++)
elements[i] = (String)dataList.elementAt(i);
return elements;
}
/**
* getElementAt method comment.
*/
public Object getElementAt(int arg1) {
try{
return dataList.elementAt(arg1);
}catch(Exception e)
{
System.out.println(e);
return null;
}
}
/**
* getSize method comment.
*/
public int getSize() {
return dataList.size();
}
/**
* This method was created by ZhongMingChang.
*/
public void insertItem(Object item, int idx)
{
try
{
dataList.insertElementAt(item, idx);
fireIntervalAdded(this, idx, idx + 1);
} catch (Exception e)
{
dataList.addElement(item);
}
}
/**
* This method was created by ZhongMingChang.
*/
public void insertItem(String item, int idx)
{
try
{
if (dataList.size() == idx)
dataList.addElement(item);
else
{
dataList.insertElementAt(item, idx);
fireIntervalAdded(this, idx, idx + 1);
}
}
catch (Exception e)
{
dataList.addElement(item);
}
}
/**
*
* This method was created by ZhongMingChang.
* 05/13/2000
*
*
*/
public void removeAllItem() {
try
{
fireIntervalRemoved(this, 0, dataList.size()-1);
dataList.removeAllElements();
} catch (Exception e)
{
}
}
/**
* This method was created by ZhongMingChang.
*/
public void removeItem(int idx)
{
try
{
dataList.removeElementAt(idx );
fireIntervalRemoved(this, idx, idx);
} catch (Exception e)
{
}
}
/**
* This method was created by ZhongMingChang.
*/
public void removeItem(String item) {
int idx = dataList.indexOf( item);
fireIntervalRemoved(this, idx, idx);
dataList.removeElement( item );
}
public void removeItem(Object obj)
{
int idx = dataList.indexOf( obj );
fireIntervalRemoved(this, idx, idx);
dataList.removeElement( obj );
}
/**
* This method was created by ZhongMingChang.
*/
public void removeListDataListener(ListDataListener l)
{
listDataListeners.removeElement(l);
}
/**
*
* This method was created by ZhongMingChang.
* 05/13/2000
*
*
* @param isSort boolean
*/
public void setSort( boolean isSort ) {
this.isSort = isSort;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -