/*
* $Id$
*
* Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle,
* Santa Clara, California 95054, U.S.A. All rights reserved.
*/
package org.jdesktop.swingx;
import javax.swing.AbstractListModel;
import org.jdesktop.swingx.search.FindTest;
import org.jdesktop.swingx.search.PatternModel;
import org.jdesktop.swingx.search.Searchable;
/**
* Exposing open issues in Searchable implementations.
* PENDING JW: should be in package search - but references swingx package internals.
*
* @author Jeanette Winzenburg
*/
public class FindIssues extends FindTest {
public static void main(String args[]) {
setSystemLF(true);
// Locale.setDefault(new Locale("es"));
FindIssues test = new FindIssues();
try {
// test.runInteractiveTests();
test.runInteractiveTests("interactive.*Mark.*");
} catch (Exception e) {
System.err.println("exception when executing interactive tests:");
e.printStackTrace();
}
}
/**
* Issue #487-swingx: NPE if setting a not-null Searchable before
* showing. Hack around ...
*/
public void testFindBarNPEComponents() {
Searchable searchable = new JXTable().getSearchable();
JXFindBar findBar = new JXFindBar();
// old hack
// findBar.addNotify();
findBar.setSearchable(searchable);
fail("quick hack ... remove me if really fixed");
}
/**
* Issue #236-swingx: backwards match in first row shows not-found-message.
* Trackdown from Nicfagn - findPanel.doSearch always returns the next startIndex
* in backwards search that's -1 which is interpreted as "not-found"
*
*/
public void testFindPanelFirstRowBackwards() {
JXList list = new JXList( new AbstractListModel() {
private String[] data = { "a", "b", "c" };
public Object getElementAt(int index) {
return data[ index ];
}
public int getSize() {
return data.length;
}
});
JXFindPanel findPanel = new JXFindPanel(list.getSearchable());
findPanel.init();
PatternModel patternModel = findPanel.getPatternModel();
patternModel.setBackwards(true);
patternModel.setRawText("a");
int matchIndex = list.getSearchable().search(patternModel.getPattern(),
patternModel.getFoundIndex(), patternModel.isBackwards());
assertEquals("found match", matchIndex, findPanel.doSearch());
}
// -------------------- interactive tests
/**
* #463-swingx: batch find and cellSelection don't play nicely.
*
*/
public void interactiveTableBatchWithCellSelectionIssue() {
JXTable table = new JXTable(new TestTableModel());
table.setCellSelectionEnabled(true);
showWithScrollingInFrame(table, "batch find with cell selection");
}
}