org.apache.lucene.swing.models

Class TableSearcher


public class TableSearcher
extends AbstractTableModel

This is a TableModel that encapsulates Lucene search logic within a TableModel implementation. It is implemented as a TableModel decorator, similar to the TableSorter demo from Sun that decorates a TableModel and provides sorting functionality. The benefit of this architecture is that you can decorate any TableModel implementation with this searching table model -- making it easy to add searching functionaliy to existing JTables -- or making new search capable table lucene.

This decorator works by holding a reference to a decorated ot inner TableModel. All data is stored within that table model, not this table model. Rather, this table model simply manages links to data in the inner table model according to the search. All methods on TableSearcher forward to the inner table model with subtle filtering or alteration according to the search criteria.

Using the table model: Pass the TableModel you want to decorate in at the constructor. When the TableModel initializes, it displays all search results. Call the search method with any valid Lucene search String and the data will be filtered by the search string. Users can always clear the search at any time by searching with an empty string. Additionally, you can add a button calling the clearSearch() method.

Author:
Jonathan Simon - jonathan_s_simon@yahoo.com

Field Summary

protected TableModel
tableModel
The inner table model we are decorating

Constructor Summary

TableSearcher(TableModel tableModel)

Method Summary

Analyzer
getAnalyzer()
Class
getColumnClass(int column)
int
getColumnCount()
String
getColumnName(int column)
int
getRowCount()
TableModel
getTableModel()
Object
getValueAt(int row, int column)
boolean
isCellEditable(int row, int column)
void
search(String searchString)
Run a new search.
void
setAnalyzer(Analyzer analyzer)
void
setTableModel(TableModel tableModel)
Set the table model used by this table model
void
setValueAt(Object aValue, int row, int column)

Field Details

tableModel

protected TableModel tableModel
The inner table model we are decorating

Constructor Details

TableSearcher

public TableSearcher(TableModel tableModel)
Parameters:
tableModel - The table model to decorate

Method Details

getAnalyzer

public Analyzer getAnalyzer()
Returns:
The current lucene analyzer

getColumnClass

public Class getColumnClass(int column)

getColumnCount

public int getColumnCount()

getColumnName

public String getColumnName(int column)

getRowCount

public int getRowCount()

getTableModel

public TableModel getTableModel()
Returns:
The inner table model this table model is decorating

getValueAt

public Object getValueAt(int row,
                         int column)

isCellEditable

public boolean isCellEditable(int row,
                              int column)

search

public void search(String searchString)
Run a new search.
Parameters:
searchString - Any valid lucene search string

setAnalyzer

public void setAnalyzer(Analyzer analyzer)
Parameters:
analyzer - The new analyzer to use

setTableModel

public void setTableModel(TableModel tableModel)
Set the table model used by this table model
Parameters:
tableModel - The new table model to decorate

setValueAt

public void setValueAt(Object aValue,
                       int row,
                       int column)

Copyright © 2000-2006 Apache Software Foundation. All Rights Reserved.