01: /*
02: * FilterDataAction.java
03: *
04: * This file is part of SQL Workbench/J, http://www.sql-workbench.net
05: *
06: * Copyright 2002-2008, Thomas Kellerer
07: * No part of this code maybe reused without the permission of the author
08: *
09: * To contact the author please send an email to: support@sql-workbench.net
10: *
11: */
12: package workbench.gui.actions;
13:
14: import java.awt.event.ActionEvent;
15: import javax.swing.event.TableModelEvent;
16: import javax.swing.event.TableModelListener;
17: import workbench.gui.components.WbTable;
18: import workbench.gui.filter.DefineFilterExpressionPanel;
19: import workbench.resource.ResourceMgr;
20:
21: /**
22: * Filter data from a WbTable
23: * @author support@sql-workbench.net
24: */
25: public class FilterDataAction extends WbAction implements
26: TableModelListener {
27: private WbTable client;
28:
29: public FilterDataAction(WbTable aClient) {
30: super ();
31: this .setClient(aClient);
32: this .initMenuDefinition("MnuTxtFilter");
33: this .setIcon(ResourceMgr.getImage("filter"));
34: this .setMenuItemName(ResourceMgr.MNU_TXT_DATA);
35: this .setCreateToolbarSeparator(false);
36: this .setEnabled(false);
37: }
38:
39: public void executeAction(ActionEvent e) {
40: DefineFilterExpressionPanel.showDialog(this .client);
41: }
42:
43: public void tableChanged(TableModelEvent tableModelEvent) {
44: this .setEnabled(this .client.getLastFilter() != null
45: || this .client.getRowCount() > 0);
46: }
47:
48: public void setClient(WbTable c) {
49: if (this.client != null) {
50: this.client.removeTableModelListener(this);
51: }
52: this.client = c;
53: if (this.client != null) {
54: this.client.addTableModelListener(this);
55: }
56: }
57:
58: }
|