Statistics
| Revision:

gvsig-projects-pool / org.gvsig.topology / trunk / org.gvsig.topology / org.gvsig.topology.swing / org.gvsig.topology.swing.impl / src / main / java / org / gvsig / topology / swing / impl / SelectDataSetDialog.java @ 728

History | View | Annotate | Download (4.49 KB)

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

    
3
import java.awt.Dimension;
4
import java.awt.event.MouseAdapter;
5
import java.awt.event.MouseEvent;
6
import java.util.ArrayList;
7
import java.util.List;
8
import java.util.Objects;
9
import javax.swing.ImageIcon;
10
import javax.swing.JLabel;
11
import javax.swing.JTree;
12
import javax.swing.event.TreeSelectionEvent;
13
import javax.swing.event.TreeSelectionListener;
14
import javax.swing.tree.DefaultTreeCellRenderer;
15
import javax.swing.tree.TreePath;
16
import org.apache.commons.lang3.StringUtils;
17
import org.gvsig.tools.swing.api.ToolsSwingLocator;
18
import org.gvsig.tools.swing.api.ToolsSwingManager;
19
import org.gvsig.tools.swing.api.windowmanager.Dialog;
20
import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2;
21
import org.gvsig.topology.lib.api.TopologyDataSet;
22
import org.gvsig.topology.swing.api.TopologySwingLocator;
23
import org.gvsig.topology.swing.api.TopologySwingServices;
24

    
25
/**
26
 *
27
 * @author jjdelcerro
28
 */
29
public class SelectDataSetDialog extends SelectDataSetDialogView {
30

    
31
    private final TopologySwingServices services;
32
    private Dialog dialog = null;
33

    
34
    SelectDataSetDialog() {
35
        this.services = TopologySwingLocator.getTopologySwingManager().getDefaultServices();
36
        this.initComponents();
37
    }
38

    
39
    private void initComponents() {
40
        this.treeDataSets.setModel(this.services.getDataSetTreeModel());
41
        this.expandAll(this.treeDataSets);
42
        this.treeDataSets.addTreeSelectionListener(new TreeSelectionListener() {
43
            @Override
44
            public void valueChanged(TreeSelectionEvent e) {
45
                performDataSetSelected();
46
            }
47
        });
48
        this.treeDataSets.setCellRenderer(new DefaultTreeCellRenderer() {
49
            @Override
50
            public java.awt.Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
51
                JLabel label = (JLabel) super.getTreeCellRendererComponent(tree,value, selected, expanded, leaf, row, hasFocus);
52
                ImageIcon icon = services.getTreeIcon(tree.getModel(),value);
53
                label.setIcon(icon);
54
                label.setText(Objects.toString(value, ""));
55
                return label;
56
            }
57
        });
58
//        this.treeDataSets.addMouseListener(new MouseAdapter() {
59
//            @Override
60
//            public void mouseClicked(MouseEvent e) {
61
//                if( e.getButton()==MouseEvent.BUTTON1 && e.getClickCount()==2 ) {
62
//                    setVisible(false);
63
//                }
64
//            }
65
//        });
66
        this.setPreferredSize(new Dimension(350, 400));
67
        this.translate();
68
    }
69

    
70
    private void expandAll(JTree tree) {
71
        int r = 0;
72
        while (r < tree.getRowCount()) {
73
            tree.expandRow(r);
74
            r++;
75
        }
76
    }
77

    
78
    private void translate() {
79
        ToolsSwingManager tsm = ToolsSwingLocator.getToolsSwingManager();
80
        tsm.translate(this.lblName);
81
    }
82

    
83
    public void setDialog(Dialog dialog) {
84
        this.dialog = dialog;
85
    }
86

    
87
    private void setOkButtonEnabled(boolean enabled) {
88
        if (this.dialog == null) {
89
            return;
90
        }
91
        this.dialog.setButtonEnabled(WindowManager_v2.BUTTONS_OK, enabled);
92
    }
93

    
94
    private List<TopologyDataSet> getSelectedDataSets() {
95
        TreePath[] paths = treeDataSets.getSelectionPaths();
96
        List<TopologyDataSet> datasets = new ArrayList<>();
97
        for (TreePath path : paths) {
98
            Object element = path.getLastPathComponent();
99
            if (element instanceof TopologyDataSet) {
100
                TopologyDataSet dataSet = (TopologyDataSet) element;
101
                datasets.add(dataSet);
102
            }
103
        }
104
        return datasets;
105
    }
106

    
107
    public List<TopologyDataSet> getDataSets() {
108
        List<TopologyDataSet> dataSets = this.getSelectedDataSets();
109
        if (dataSets == null || dataSets.isEmpty()) {
110
            return null;
111
        }
112
        if( dataSets.size()==1 ) {
113
            String name = this.txtName.getText();
114
            if (!StringUtils.isEmpty(name)) {
115
                dataSets.get(0).setName(name);
116
            }
117
        }
118
        return dataSets;
119
    }
120

    
121
    public void performDataSetSelected() {
122
        List<TopologyDataSet> dataSets = this.getSelectedDataSets();
123
        if (dataSets == null || dataSets.isEmpty()) {
124
            this.txtName.setText("");
125
            this.setOkButtonEnabled(false);
126
        } else {
127
            this.txtName.setText(dataSets.get(0).getName());
128
            this.setOkButtonEnabled(true);
129
        }
130
    }
131

    
132
}