?? tableview.java
字號:
/*
* *****************************************************
* Copyright (c) 2005 IIM Lab. All Rights Reserved.
* Created by xuehao at 2005-10-12
* Contact: zxuehao@mail.ustc.edu.cn
* *****************************************************
*/
package org.indigo.gui;
import org.indigo.parser.ItemParser;
import org.indigo.util.MainConfig;
import org.indigo.util.TaskProperties;
import org.jdom.Element;
import java.util.Observable;
import java.util.StringTokenizer;
import java.util.Vector;
import javax.swing.table.DefaultTableModel;
/**
* AbstractView 的子類,這樣此類就是一個觀察者類。
* 其次,此類主要時實(shí)現(xiàn)從模板中讀取各個采集字段的名稱,
* 然后顯示在主界面中。
* @author wbz
*
*/
public class TableView extends AbstractView
{
private DefaultTableModel itsTableModel=null;
private String itsTitle=null;
/**
* 構(gòu)造函數(shù),通過和任務(wù)對應(yīng)的文件路徑構(gòu)建一個TableView對象,
* 在構(gòu)造函數(shù)中,主要是根據(jù)文件名利用TaskProperties類讀取文件中的內(nèi)容,
* 然后添加到主界面的Table中顯示。
* @param itsPropertyFile
*/
public TableView( String itsPropertyFile )
{
itsCount = 0;
int i,j;
i = itsPropertyFile.lastIndexOf( "/" );
j = itsPropertyFile.lastIndexOf( "." );
itsTitle = itsPropertyFile.substring( i+1, j );
String str=null;
int ruleCount = 0;
TaskProperties props = new TaskProperties();
props.open( itsPropertyFile );
// add the table in the tabpane
ViewManager.getInstance().addTabbedPane( itsTitle );
DefaultTableModel tableModel = null;
str = props.getProperty("Name0" );
// System.out.println( "itsTitle="+itsTitle );
tableModel = (DefaultTableModel) ViewManager.getInstance().getTable(itsTitle).getModel();
if( str==null || str.trim().equals("") )
tableModel.addColumn( "序號" );
else
tableModel.addColumn( str );
str = props.getProperty("RuleCount");
ruleCount = Integer.parseInt(str);
for( i=0; i<ruleCount; i++ )
{
str = props.getProperty("Name" + (i + 1) );
tableModel = (DefaultTableModel) ViewManager.getInstance().getTable(itsTitle).getModel();
if( str==null || str.trim().equals("") )
tableModel.addColumn( "unkown" );
else
tableModel.addColumn( str );
}
str = MainConfig.getInstance().getProperty( "ShowUrl" );
if( str==null || str.equals("") || str.equalsIgnoreCase("false") )
{
}else
if( str.equalsIgnoreCase("true") )
{
tableModel.addColumn( "url" );
}
// System.out.println( itsTitle );
}
private int itsCount;
/**
* 繼承自AbstractView,主要實(shí)現(xiàn)接收被觀察者發(fā)送過來的數(shù)據(jù)。
* 在此主要作用是,根據(jù)當(dāng)采集到一條數(shù)據(jù)時,就會通過此函數(shù)把采集的數(shù)據(jù)
* 傳遞過來顯示。
*/
public void update(Observable o, Object arg)
{
int i;
String aItem=(String)arg;
String str=aItem;
String sub;
Vector v = new Vector();
v.add( String.valueOf(++itsCount) );
i = str.indexOf( ItemParser.GAP_TOKEN );//分析發(fā)送過來的采集數(shù)據(jù)
while( i!=-1 )
{
sub = str.substring( 0, i );
v.add( sub );
str = str.substring( i+1 );
i = str.indexOf( ItemParser.GAP_TOKEN );
}
v.add( str );//把采集過來的數(shù)據(jù)添加到Vector中
itsTableModel = (DefaultTableModel) ViewManager.getInstance().getTable(itsTitle).getModel();
itsTableModel.addRow( v );
itsTableModel.fireTableDataChanged();//把數(shù)據(jù)添加在Table中顯示。
// System.out.println( aItem );
}
/*
public void setTableModel(DefaultTableModel m)
{
itsTableModel = m;
}
*/
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -