Statistics
| Revision:

gvsig-tools / org.gvsig.tools / library / trunk / org.gvsig.tools / org.gvsig.tools.swing / org.gvsig.tools.swing.impl / src / main / java / org / gvsig / tools / swing / impl / DefaultFilteredTreeController.java @ 2116

History | View | Annotate | Download (2.21 KB)

1
package org.gvsig.tools.swing.impl;
2

    
3
import java.awt.event.ActionEvent;
4
import java.awt.event.KeyAdapter;
5
import java.awt.event.KeyEvent;
6
import javax.swing.JButton;
7
import javax.swing.JList;
8
import javax.swing.JTree;
9
import javax.swing.text.JTextComponent;
10
import javax.swing.tree.TreeModel;
11
import org.gvsig.tools.swing.api.FilteredListController;
12
import org.gvsig.tools.swing.api.FilteredListModel;
13
import org.gvsig.tools.swing.api.FilteredTreeController;
14
import org.gvsig.tools.swing.api.FilteredTreeModel;
15
import org.gvsig.tools.swing.api.ToolsSwingLocator;
16
import org.gvsig.tools.swing.api.ToolsSwingManager;
17

    
18
/**
19
 *
20
 * @author jjdelcerro
21
 */
22
public class DefaultFilteredTreeController implements FilteredTreeController {
23

    
24
    private final JTree tree;
25
    private final JTextComponent text;
26
    private final JButton button;
27

    
28
    public DefaultFilteredTreeController(JTree tree, JTextComponent text, JButton button) {
29
        this.tree = tree;
30
        this.text = text;
31
        this.button = button;
32
        this.initComponents();
33
    }
34

    
35
    private void initComponents() {
36
        ToolsSwingManager toolsSwingManager = ToolsSwingLocator.getToolsSwingManager();
37
        FilteredTreeModel model = this.createModel(tree);
38
        this.tree.setModel(model);
39
        toolsSwingManager.addClearButton(this.text, (ActionEvent e) -> {
40
            text.setText("");
41
            this.getModel().setFilter(null);
42
        });
43
        toolsSwingManager.setDefaultPopupMenu(this.text);
44
        this.text.addKeyListener(new KeyAdapter() {
45
            @Override
46
            public void keyTyped(KeyEvent e) {
47
                if (e.getKeyChar() == '\n') {
48
                    getModel().setFilter(text.getText());
49
                }
50
            }
51
        });
52
        this.button.addActionListener((ActionEvent e) -> {
53
            this.getModel().setFilter(text.getText());
54
        });
55
    }
56

    
57
    @Override
58
    public FilteredTreeModel createModel(JTree tree) {
59
        ToolsSwingManager toolsSwingManager = ToolsSwingLocator.getToolsSwingManager();
60
        FilteredTreeModel model = toolsSwingManager.createFilteredTreeModel(tree);
61
        return model;
62
    }
63

    
64
    public FilteredTreeModel getModel() {
65
        return (FilteredTreeModel) this.tree.getModel();
66
    }
67

    
68
}