Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.exportto / org.gvsig.exportto.swing / org.gvsig.exportto.swing.impl / src / main / java / org / gvsig / export / swing / impl / DefaultJExportConfigPanel.java @ 43925

History | View | Annotate | Download (5.09 KB)

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

    
3
import java.util.ArrayList;
4
import java.util.Collections;
5
import java.util.List;
6
import javax.swing.DefaultListModel;
7
import javax.swing.JComponent;
8
import javax.swing.ListSelectionModel;
9
import javax.swing.event.ChangeEvent;
10
import javax.swing.event.ChangeListener;
11
import javax.swing.event.ListSelectionEvent;
12
import javax.swing.event.ListSelectionListener;
13
import org.gvsig.export.ExportLocator;
14
import org.gvsig.export.spi.ExportServiceFactory;
15
import org.gvsig.export.spi.ExportServiceManager;
16
import org.gvsig.export.swing.JExportConfigPanel;
17
import org.gvsig.tools.swing.api.ChangeListenerHelper;
18
import org.gvsig.tools.swing.api.JListWithCheckbox;
19
import org.gvsig.tools.swing.api.ListElement;
20
import org.gvsig.tools.swing.api.ToolsSwingLocator;
21
import org.gvsig.tools.swing.api.ToolsSwingManager;
22

    
23
/**
24
 *
25
 * @author jjdelcerro
26
 */
27
public class DefaultJExportConfigPanel 
28
        extends DefaultJExportConfigPanelView
29
        implements JExportConfigPanel
30
    {
31

    
32
    private JListWithCheckbox lstFactories;
33
    private ChangeListenerHelper changeListenerHelper;
34

    
35
    public DefaultJExportConfigPanel() {
36
        this.initComponents();
37
    }
38
    
39
    private void initComponents() {
40
        ToolsSwingManager manager = ToolsSwingLocator.getToolsSwingManager();
41
        
42
        this.changeListenerHelper = manager.createChangeListenerHelper();
43
        
44
        this.lstFactories = manager.createJListWithCheckbox(lstServiceFactories);
45
        ListSelectionModel checkModel = this.lstFactories.getCheckedModel();
46
        checkModel.addListSelectionListener(new ListSelectionListener() {
47
            @Override
48
            public void valueChanged(ListSelectionEvent e) {
49
                if( e.getValueIsAdjusting() ) {
50
                    return;
51
                }
52
                changeListenerHelper.fireEvent(new ChangeEvent(DefaultJExportConfigPanel.this));
53
            }
54
        });
55
        manager.translate(this.lblHeader);
56
        manager.translate(this.lblServiceFactories);
57
        this.reset();
58
    }
59
    
60
    @Override
61
    public void reset() {
62
        ExportServiceManager manager = ExportLocator.getServiceManager();
63
        List<ExportServiceFactory> factories = manager.getAllServiceFactories();
64

    
65
        int index = 0;
66
        ListSelectionModel checkModel = this.lstFactories.getCheckedModel();
67
        checkModel.clearSelection();
68

    
69
        DefaultListModel model = new DefaultListModel();
70
        for (ExportServiceFactory factory : factories) {
71
            model.addElement(new ListElement(factory.getLabel(), factory));
72
            if( factory.isEnabled() ) {
73
                checkModel.addSelectionInterval(index, index);
74
            }
75
            index++;
76
        }
77
        this.lstFactories.setModel(model);
78
    }
79
    
80
    @Override
81
    public void apply() {
82
        ExportServiceManager manager = ExportLocator.getServiceManager();
83
        List<ExportServiceFactory> factories = manager.getAllServiceFactories();
84

    
85
        ListSelectionModel checkModel = this.lstFactories.getCheckedModel();
86
        int index = 0;
87
        for (ExportServiceFactory factory : factories) {
88
            factory.setEnabled(checkModel.isSelectedIndex(index));
89
            index++;
90
        }
91
    }
92

    
93
    @Override
94
    public List<ExportServiceFactory> getAllFactories() {
95
        ExportServiceManager manager = ExportLocator.getServiceManager();
96
        List<ExportServiceFactory> factories = manager.getAllServiceFactories();
97
        return Collections.unmodifiableList(factories);
98
    }
99
    
100
    
101
    @Override
102
    public List<ExportServiceFactory> getSelectedFactories() {
103
        List<ExportServiceFactory> result = new ArrayList<>();
104
        
105
        ExportServiceManager manager = ExportLocator.getServiceManager();
106
        List<ExportServiceFactory> factories = manager.getAllServiceFactories();
107

    
108
        ListSelectionModel checkModel = this.lstFactories.getCheckedModel();
109
        int index = 0;
110
        for (ExportServiceFactory factory : factories) {
111
            if( checkModel.isSelectedIndex(index) ) {
112
                result.add(factory);
113
            }
114
            index++;
115
        }        
116
        return result;
117
    } 
118
    
119
    public List<String> getSelectedNames() {
120
        List<String> result = new ArrayList<>();
121
        
122
        for (ExportServiceFactory selectedFactory : this.getSelectedFactories()) {
123
            result.add(selectedFactory.getName());
124
        }
125
        return result;
126
    } 
127

    
128
    @Override
129
    public JComponent asJComponent() {
130
        return this;
131
    }
132

    
133
    @Override
134
    public void addChangeListener(ChangeListener cl) {
135
        this.changeListenerHelper.addChangeListener(cl);
136
    }
137

    
138
    @Override
139
    public ChangeListener[] getChangeListeners() {
140
        return this.changeListenerHelper.getChangeListeners();
141
    }
142

    
143
    @Override
144
    public void removeChangeListener(ChangeListener cl) {
145
        this.changeListenerHelper.removeChangeListener(cl);
146
    }
147

    
148
    @Override
149
    public void removeAllChangeListener() {
150
        this.changeListenerHelper.removeAllChangeListener();
151
    }
152

    
153
    @Override
154
    public boolean hasChangeListeners() {
155
        return this.changeListenerHelper.hasChangeListeners();
156
    }
157
    
158
}