@ -16,12 +16,13 @@ import com.fr.stable.StringUtils;
import javax.swing.JOptionPane ;
import javax.swing.JTree ;
import javax.swing.SwingWorker ;
import javax.swing.event.PopupMenuEvent ;
import javax.swing.event.PopupMenuListener ;
import javax.swing.tree.DefaultMutableTreeNode ;
import javax.swing.tree.DefaultTreeModel ;
import javax.swing.tree.TreeCellRenderer ;
import javax.swing.tree.TreeNode ;
import javax.swing.tree.TreePath ;
import java.awt.event.MouseEvent ;
import java.util.Enumeration ;
/ * *
@ -40,7 +41,7 @@ public class TableSearchTreeComboBox extends FRTreeComboBox {
public TableSearchTreeComboBox ( ChoosePane parent , JTree tree , TreeCellRenderer renderer ) {
super ( tree , renderer ) ;
this . parent = parent ;
setUI ( new TableSearchTreeComboBoxUI ( ) ) ;
initPopupListener ( ) ;
}
protected UIComboBoxEditor createEditor ( ) {
@ -158,12 +159,6 @@ public class TableSearchTreeComboBox extends FRTreeComboBox {
}
}
private static final TableNameFilter EMPTY_FILTER = new TableNameFilter ( ) {
public boolean accept ( TableProcedure procedure ) {
return true ;
}
} ;
/ * *
* 表名模糊搜索实现
* /
@ -184,15 +179,31 @@ public class TableSearchTreeComboBox extends FRTreeComboBox {
}
}
/ * *
* 重写FRTreeComboBoxUI , 实现点击下拉时触发模糊搜索
* /
private class TableSearchTreeComboBoxUI extends FRTreeComboBoxUI {
@Override
public void mouseClicked ( MouseEvent e ) {
searchExecute ( ) ;
private static final TableNameFilter EMPTY_FILTER = new TableNameFilter ( ) {
public boolean accept ( TableProcedure procedure ) {
return true ;
}
} ;
private void initPopupListener ( ) {
// 点击下拉时触发模糊搜索
this . addPopupMenuListener ( new PopupMenuListener ( ) {
@Override
public void popupMenuWillBecomeVisible ( PopupMenuEvent e ) {
searchExecute ( ) ;
}
@Override
public void popupMenuWillBecomeInvisible ( PopupMenuEvent e ) {
}
@Override
public void popupMenuCanceled ( PopupMenuEvent e ) {
}
} ) ;
}
/ * *