📄 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 的子类,这样此类就是一个观察者类。
* 其次,此类主要时实现从模板中读取各个采集字段的名称,
* 然后显示在主界面中。
* @author wbz
*
*/
public class TableView extends AbstractView
{
private DefaultTableModel itsTableModel=null;
private String itsTitle=null;
/**
* 构造函数,通过和任务对应的文件路径构建一个TableView对象,
* 在构造函数中,主要是根据文件名利用TaskProperties类读取文件中的内容,
* 然后添加到主界面的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,主要实现接收被观察者发送过来的数据。
* 在此主要作用是,根据当采集到一条数据时,就会通过此函数把采集的数据
* 传递过来显示。
*/
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 );//分析发送过来的采集数据
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 );//把采集过来的数据添加到Vector中
itsTableModel = (DefaultTableModel) ViewManager.getInstance().getTable(itsTitle).getModel();
itsTableModel.addRow( v );
itsTableModel.fireTableDataChanged();//把数据添加在Table中显示。
// System.out.println( aItem );
}
/*
public void setTableModel(DefaultTableModel m)
{
itsTableModel = m;
}
*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -