Statistics
| Revision:

root / org.gvsig.toolbox / trunk / org.gvsig.toolbox / org.gvsig.toolbox.gui / src / main / java / es / unex / sextante / gui / settings / SextanteModelerSettingsPanel.java @ 119

History | View | Annotate | Download (5.39 KB)

1
package es.unex.sextante.gui.settings;
2

    
3
import info.clearthought.layout.TableLayout;
4
import info.clearthought.layout.TableLayoutConstants;
5

    
6
import java.awt.event.ActionEvent;
7
import java.awt.event.ActionListener;
8
import java.util.HashMap;
9

    
10
import javax.swing.JButton;
11
import javax.swing.JLabel;
12
import javax.swing.JOptionPane;
13
import javax.swing.JSeparator;
14
import javax.swing.SwingConstants;
15

    
16
import es.unex.sextante.core.Sextante;
17
import es.unex.sextante.gui.algorithm.FileSelectionPanel;
18
import es.unex.sextante.gui.cmd.ScriptAlgorithmProvider;
19
import es.unex.sextante.gui.core.SextanteGUI;
20

    
21
public class SextanteModelerSettingsPanel
22
extends
23
SettingPanel {
24

    
25

    
26
/**
27
         *
28
         */
29
        private static final long serialVersionUID = -8733800198911499985L;
30
//        private JCheckBox          jPortableCheckBox;
31
        private JLabel             jLabelModels;
32
        private FileSelectionPanel jModelsFolder;
33
        private JButton            jButtonUpdate;
34
        private JLabel             jLabelUpdate;
35

    
36

    
37
        @Override
38
        protected void initGUI() {
39
                final TableLayout thisLayout = new TableLayout(new double[][] {
40
                                {         SextanteConfigurationDialog.SPACER_SMALL,
41
                                        TableLayoutConstants.FILL,
42
                                        TableLayoutConstants.FILL,
43
                                        SextanteConfigurationDialog.SPACER_SMALL },
44
                                        {         SextanteConfigurationDialog.SPACER_SMALL,
45
                                                TableLayoutConstants.MINIMUM, //row 1
46
                                                TableLayoutConstants.MINIMUM, //row 2
47
                                                TableLayoutConstants.MINIMUM, //row 3
48
                                                TableLayoutConstants.MINIMUM, //row 4
49
                                                TableLayoutConstants.FILL } });
50
                thisLayout.setHGap(5);
51
                thisLayout.setVGap(5);
52
                this.setLayout(thisLayout);
53

    
54
//                jPortableCheckBox = new JCheckBox(Sextante.getText("Portable"));
55
//                final String sActivatePortable = SextanteGUI.getSettingParameterValue(SextanteModelerSettings.MODELS_PORTABLE);
56
                final boolean bActivatePortable = true;
57
//                jPortableCheckBox.setSelected(bActivatePortable);
58
//                this.add(jPortableCheckBox, "1, 1");
59

    
60
                jLabelModels = new JLabel();
61
                jLabelModels.setEnabled(true);
62
                if (bActivatePortable == true) {
63
                        jLabelModels.setEnabled(false);
64
                }
65
                jLabelModels.setText(Sextante.getText("Models_folder"));
66
                this.add(jLabelModels, "1, 2");
67
                jModelsFolder = new FileSelectionPanel(true, true, (String[]) null, Sextante.getText("selector_choose_folder"));
68
                jModelsFolder.getTextField().setEnabled(true);
69
                jModelsFolder.getButton().setEnabled(true);
70
                if (bActivatePortable == true) {
71
                        jModelsFolder.getTextField().setEnabled(false);
72
                        jModelsFolder.getButton().setEnabled(false);
73
                }
74
                final String sFolder = SextanteGUI.getSettingParameterValue(SextanteModelerSettings.MODELS_FOLDER);
75
                jModelsFolder.setFilepath(sFolder);
76
                this.add(jModelsFolder, "2, 2");
77

    
78
                this.add(new JSeparator(SwingConstants.HORIZONTAL), "1, 3, 2, 3");
79
                /* ----------------------------------------------------------- */
80

    
81
                jLabelUpdate = new JLabel();
82
                jLabelUpdate.setText( Sextante.getText("update_library") );
83
                jLabelUpdate.setEnabled(true);
84
                this.add(jLabelUpdate, "1, 4");
85
                jButtonUpdate = new JButton(Sextante.getText("load_models"));
86
                this.add(jButtonUpdate, "2, 4");
87

    
88
                /**********************************/
89
                /** Action listeners for widgets **/
90
                /**********************************/
91

    
92
//                jPortableCheckBox.addActionListener(new ActionListener() {
93
//                        public void actionPerformed(final ActionEvent arg0) {
94
//                                setCursor(new Cursor(Cursor.WAIT_CURSOR));
95
//                                SextanteGUI.setSettingParameterValue(SextanteModelerSettings.MODELS_PORTABLE,
96
//                                                new Boolean(jPortableCheckBox.isSelected()).toString());
97
//                                //Set portable user models folder
98
//                                SextanteGUI.checkDir ( Sextante.PORTABLE_MODELS_FOLDER, true, "Toolbox user models" );
99
//                                String sPath = new String (SextanteGUI.getSextanteHomePath() + File.separator +
100
//                                                Sextante.PORTABLE_MODELS_FOLDER);
101
//                                SextanteGUI.setSettingParameterValue(SextanteModelerSettings.MODELS_FOLDER, sPath);
102
//                                jModelsFolder.setFilepath(sPath);
103
//                                //Activate/deactivate the remaining widgets on this page
104
////                                final boolean active = jPortableCheckBox.isSelected();
105
////                                if ( active == true ) {
106
//                                        jLabelModels.setEnabled(false);
107
//                                        jModelsFolder.getTextField().setEnabled(false);
108
//                                        jModelsFolder.getButton().setEnabled(false);
109
//
110
////                                } else {
111
////                                        jLabelModels.setEnabled(true);
112
////                                        jModelsFolder.getTextField().setEnabled(true);
113
////                                        jModelsFolder.getButton().setEnabled(true);
114
////
115
////                                }
116
//                                setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
117
//                        }
118
//                });
119

    
120
                jButtonUpdate.addActionListener(new ActionListener() {
121
                        public void actionPerformed(final ActionEvent arg0) {
122
                                SextanteGUI.setSettingParameterValue(SextanteModelerSettings.MODELS_FOLDER, jModelsFolder.getFilepath());
123
                                SextanteGUI.updateAlgorithmProvider(ScriptAlgorithmProvider.class);
124
                                final int iNumAlgs = Sextante.getAlgorithms().get(new ScriptAlgorithmProvider().getName()).size();
125
                                JOptionPane.showMessageDialog(null, Sextante.getText("ModelsLoaded") + " " + iNumAlgs + ". ",
126
                                                Sextante.getText("Models"), JOptionPane.INFORMATION_MESSAGE);
127
                        }
128
                });
129
        }
130

    
131

    
132
        @Override
133
        public HashMap<String, String> getValues() {
134

    
135
                final HashMap<String, String> map = new HashMap<String, String>();
136
                final String path = jModelsFolder.getFilepath();
137
                map.put(SextanteModelerSettings.MODELS_PORTABLE, Boolean.TRUE.toString());
138
                if (path != null) {
139
                        map.put(SextanteModelerSettings.MODELS_FOLDER, path);
140
                }
141
                return map;
142

    
143
        }
144

    
145
}