Revision 123

View differences:

org.gvsig.toolbox/trunk/org.gvsig.toolbox/org.gvsig.toolbox.gui/src/main/java/es/unex/sextante/gui/settings/SextanteModelerSettingsPanel.java
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
}
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
import es.unex.sextante.gui.modeler.ModelerAlgorithmProvider;
21

  
22
public class SextanteModelerSettingsPanel
23
extends
24
SettingPanel {
25

  
26

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

  
37

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

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

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

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

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

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

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

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

  
132

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

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

  
144
	}
145

  
146
}

Also available in: Unified diff