Revision 2463

View differences:

org.gvsig.raster.principalcomponents/trunk/org.gvsig.raster.principalcomponents_deprecated/org.gvsig.raster.principalcomponents.swing/org.gvsig.raster.principalcomponents.swing.impl/src/main/resources-plugin/org/gvsig/raster/principalcomponents/swing/impl/i18n/text_en.properties
1
components_selection=Component selection
2
autovalor=Eigenvalue
3
by_band=By band
4
var_covar=Matrix variance-covariance
5
autovector=Eigenvector
6
generate=Generate
7
stats=Statistics
0 8

  
org.gvsig.raster.principalcomponents/trunk/org.gvsig.raster.principalcomponents_deprecated/org.gvsig.raster.principalcomponents.swing/org.gvsig.raster.principalcomponents.swing.impl/src/main/resources-plugin/org/gvsig/raster/principalcomponents/swing/impl/i18n/text.properties
1
components_selection=Selecci?n de componentes
2
autovalor=Autovalor
3
by_band=Por banda
4
var_covar=Matriz varianza-covarianza
5
autovector=Autovector
6
generate=Generar
7
stats=Estadisticas
0 8

  
org.gvsig.raster.principalcomponents/trunk/org.gvsig.raster.principalcomponents_deprecated/org.gvsig.raster.principalcomponents.swing/org.gvsig.raster.principalcomponents.swing.impl/src/main/resources/org/gvsig/raster/principalcomponents/swing/impl/i18n/text.properties
1
components_selection=Selecci?n de componentes
2
autovalor=Autovalor
3
by_band=Por banda
4
var_covar=Matriz varianza-covarianza
5
autovector=Autovector
6
generate=Generar
7
stats=Estadisticas
8
use_rois=Usar regiones de inter?s de la capa
9
band=Banda
10
max=M?ximo
11
min=M?nimo
12
mean=Media
13
variance=Varianza
14
standard_deviation=Desviaci?n est?ndar
0 15

  
org.gvsig.raster.principalcomponents/trunk/org.gvsig.raster.principalcomponents_deprecated/org.gvsig.raster.principalcomponents.swing/org.gvsig.raster.principalcomponents.swing.impl/src/main/resources/org/gvsig/raster/principalcomponents/swing/impl/i18n/text_en.properties
1
components_selection=Component selection
2
autovalor=Eigenvalue
3
by_band=By band
4
var_covar=Matrix variance-covariance
5
autovector=Eigenvector
6
generate=Generate
7
stats=Statistics
8
use_rois=Use regions of interest of the layer
9
band=Band
10
max=Maximum
11
min=Minimum
12
mean=Mean
13
variance=Variance
14
standard_deviation=Standard deviation
0 15

  
org.gvsig.raster.principalcomponents/trunk/org.gvsig.raster.principalcomponents_deprecated/org.gvsig.raster.principalcomponents.swing/org.gvsig.raster.principalcomponents.swing.impl/src/main/resources/META-INF/services/org.gvsig.tools.library.Library
1
org.gvsig.raster.principalcomponents.swing.impl.PrincipalComponentsDefaultSwingImplLibrary
org.gvsig.raster.principalcomponents/trunk/org.gvsig.raster.principalcomponents_deprecated/org.gvsig.raster.principalcomponents.swing/org.gvsig.raster.principalcomponents.swing.impl/src/main/java/org/gvsig/raster/principalcomponents/swing/impl/DefaultPrincipalComponentsSwingManager.java
1
package org.gvsig.raster.principalcomponents.swing.impl;
2

  
3
import javax.swing.JPanel;
4

  
5
import org.gvsig.raster.algorithm.BasicAPISwingPanel;
6
import org.gvsig.raster.principalcomponents.algorithm.PCStatsDataStructure;
7
import org.gvsig.raster.principalcomponents.swing.PrincipalComponentsSwingManager;
8
import org.gvsig.raster.principalcomponents.swing.impl.main.PCAComponentsListPanelImpl;
9
import org.gvsig.raster.principalcomponents.swing.impl.main.PCAMainPanelImpl;
10
import org.gvsig.raster.principalcomponents.swing.impl.stats.StatsPanelImpl;
11

  
12
/**
13
 * Default {@link PrincipalComponentsManager} implementation.
14
 * 
15
 * @author gvSIG Team
16
 * @version $Id$
17
 */
18
public class DefaultPrincipalComponentsSwingManager implements PrincipalComponentsSwingManager {
19
	private static DefaultPrincipalComponentsSwingManager   internalInstance  = new DefaultPrincipalComponentsSwingManager();
20
	//private static final Logger                       logger            = LoggerFactory.getLogger(DefaultPrincipalComponentsSwingManager.class);
21
	
22
	/**
23
	 * Gets an instance of this object for internal use.
24
	 * @return DefaultPrincipalComponentsManager
25
	 */
26
	public static DefaultPrincipalComponentsSwingManager getInstance() {
27
		return internalInstance;
28
	}
29

  
30
	public BasicAPISwingPanel createPCAMainPanel(
31
			Object inputStore, 
32
			String layerName, 
33
			int bandList, 
34
			String roisEPSG) {
35
		return new PCAMainPanelImpl(inputStore, layerName, bandList, roisEPSG);
36
	}
37

  
38
	public BasicAPISwingPanel createPCAComponentsListPanel(
39
			Object inputStore, 
40
			PCStatsDataStructure stats, 
41
			String fileName, 
42
			boolean[] bands, 
43
			String roisEPSG) {
44
		return new PCAComponentsListPanelImpl(inputStore, stats, fileName, bands, roisEPSG);
45
	}
46
	
47
	public JPanel createStatisticsPanel(
48
			PCStatsDataStructure pcStatistics, 
49
			boolean bandStatistics, 
50
			boolean covar, 
51
			boolean autovect) {
52
		return new StatsPanelImpl(pcStatistics, bandStatistics, covar, autovect);
53
	}
54
}
0 55

  
org.gvsig.raster.principalcomponents/trunk/org.gvsig.raster.principalcomponents_deprecated/org.gvsig.raster.principalcomponents.swing/org.gvsig.raster.principalcomponents.swing.impl/src/main/java/org/gvsig/raster/principalcomponents/swing/impl/main/BandTableModel.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.raster.principalcomponents.swing.impl.main;
25

  
26
import javax.swing.table.DefaultTableModel;
27

  
28
import org.gvsig.raster.swing.pagedtable.TableModel;
29
/**
30
 * Model for the band table
31
 * 
32
 * @author Nacho Brodin (nachobrodin@gmail.com)
33
 */
34
public class BandTableModel extends DefaultTableModel implements TableModel {
35
	final private static long serialVersionUID = -3370601314380922368L;
36
	private int               nColumns         = 0;
37

  
38
	public BandTableModel(String[] columnNames) {
39
		super(new Object[0][columnNames.length], columnNames);
40
		this.nColumns = columnNames.length;
41
	}
42

  
43
	public Class<?> getColumnClass(int c) {
44
		return String.class;
45
	}
46

  
47
	public void setValueAt(Object value, int row, int col) {
48
		super.setValueAt(value, row, col);
49
	}
50

  
51
	public void addNew() {
52
		Object[] line = new Object[nColumns];
53
		line[0] = new Boolean(true);
54
		for (int i = 0; i < nColumns; i++)
55
			line[i] = new String("");
56
		super.addRow(line);
57
	}
58

  
59
	public Object[] getNewLine() {
60
		Object[] o = new Object[nColumns];
61
		o[0] = new Boolean(true);
62
		for (int i = 1; i < nColumns; i++)
63
			o[i] = "";
64
		return o;
65
	}
66

  
67
	public void addNewLine() {
68
		// TODO Auto-generated method stub
69
		
70
	}
71
}
0 72

  
org.gvsig.raster.principalcomponents/trunk/org.gvsig.raster.principalcomponents_deprecated/org.gvsig.raster.principalcomponents.swing/org.gvsig.raster.principalcomponents.swing.impl/src/main/java/org/gvsig/raster/principalcomponents/swing/impl/main/ComponentsTableModel.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.raster.principalcomponents.swing.impl.main;
25

  
26
import javax.swing.table.DefaultTableModel;
27

  
28
import org.gvsig.raster.swing.pagedtable.TableModel;
29
/**
30
 * Model for the list of components
31
 * 
32
 * @author Nacho Brodin (nachobrodin@gmail.com)
33
 */
34
public class ComponentsTableModel extends DefaultTableModel implements TableModel {
35
	final private static long serialVersionUID = -3370601314380922368L;
36
	private int               nColumns         = 0;
37

  
38
	public ComponentsTableModel(String[] columnNames) {
39
		super(new Object[0][columnNames.length], columnNames);
40
		this.nColumns = columnNames.length;
41
	}
42

  
43
	public Class<?> getColumnClass(int c) {
44
		return String.class;
45
	}
46

  
47
	public void setValueAt(Object value, int row, int col) {
48
		super.setValueAt(value, row, col);
49
	}
50

  
51
	public void addNew() {
52
		Object[] line = new Object[nColumns];
53
		line[0] = new Boolean(true);
54
		for (int i = 0; i < nColumns; i++)
55
			line[i] = new String("");
56
		super.addRow(line);
57
	}
58

  
59
	public Object[] getNewLine() {
60
		Object[] o = new Object[nColumns];
61
		o[0] = new Boolean(true);
62
		for (int i = 1; i < nColumns; i++)
63
			o[i] = "";
64
		return o;
65
	}
66

  
67
	public void addNewLine() {
68
		// TODO Auto-generated method stub
69
		
70
	}
71
}
0 72

  
org.gvsig.raster.principalcomponents/trunk/org.gvsig.raster.principalcomponents_deprecated/org.gvsig.raster.principalcomponents.swing/org.gvsig.raster.principalcomponents.swing.impl/src/main/java/org/gvsig/raster/principalcomponents/swing/impl/main/PCAComponentsListPanelImpl.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
*
3
* Copyright (C) 2007-2008 Infrastructures and Transports Department
4
* of the Valencian Government (CIT)
5
* 
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
* 
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
* GNU General Public License for more details.
15
* 
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
* MA  02110-1301, USA.
20
* 
21
*/
22
package org.gvsig.raster.principalcomponents.swing.impl.main;
23

  
24
import java.awt.BorderLayout;
25
import java.awt.GridBagConstraints;
26
import java.awt.GridBagLayout;
27
import java.awt.event.ActionListener;
28
import java.util.EventListener;
29
import java.util.List;
30

  
31
import javax.swing.BorderFactory;
32
import javax.swing.JButton;
33
import javax.swing.JComponent;
34
import javax.swing.JPanel;
35
import javax.swing.JRadioButton;
36

  
37
import org.gvsig.fmap.dal.coverage.store.RasterDataStore;
38
import org.gvsig.i18n.Messages;
39
import org.gvsig.raster.algorithm.BasicAPISwingPanel;
40
import org.gvsig.raster.algorithm.RasterBaseAlgorithmLibrary;
41
import org.gvsig.raster.algorithm.process.DataProcess;
42
import org.gvsig.raster.algorithm.process.ProcessException;
43
import org.gvsig.raster.principalcomponents.algorithm.PCStatsDataStructure;
44
import org.gvsig.raster.principalcomponents.algorithm.PrincipalComponentsAlgorithmLibrary;
45
import org.gvsig.raster.principalcomponents.swing.PrincipalComponentsSwingLibrary;
46
import org.gvsig.raster.swing.RasterSwingLocator;
47
import org.gvsig.raster.swing.RasterSwingManager;
48
import org.gvsig.raster.swing.pagedtable.ModelLoader;
49
import org.gvsig.raster.swing.pagedtable.PagedTable;
50

  
51
/**
52
 * @author Nacho Brodin (nachobrodin@gmail.com)
53
 */
54
public class PCAComponentsListPanelImpl extends JPanel implements BasicAPISwingPanel {
55
	private static final long               serialVersionUID         = 1L;
56
	private Object                          inputStore               = null;
57
	private PagedTable                      table                    = null;
58
	private JRadioButton                    byBandRadioButton        = null;
59
	private JRadioButton                    varCovarRadioButton      = null;
60
	private JRadioButton                    autovectorRadioButton    = null;
61
	private JButton                         generateButton           = null;
62
	private PCStatsDataStructure            stats                    = null;
63
	private String                          fileName                 = null;
64
	private boolean[]                       bands                    = null;
65
	private String                          roisEPSG                 = null;
66
	
67
	public PCAComponentsListPanelImpl(
68
			Object inputStore, 
69
			PCStatsDataStructure stats, 
70
			String fileName, 
71
			boolean[] bands, 
72
			String roisEPSG) {
73
		this.inputStore = inputStore;
74
		this.stats = stats;
75
		this.fileName = fileName;
76
		this.bands = bands;
77
		this.roisEPSG = roisEPSG;
78
		init();
79
	}
80
	
81
	private void init() {
82
		setLayout(new GridBagLayout());
83
		
84
		GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
85
		gridBagConstraints1.fill = java.awt.GridBagConstraints.BOTH;
86
		gridBagConstraints1.weightx = 1;
87
		gridBagConstraints1.weighty = 1;
88
		gridBagConstraints1.insets = new java.awt.Insets(0, 0, 0, 0);
89
		gridBagConstraints1.gridx = 0;
90
		gridBagConstraints1.gridy = 0;
91
		add(getInputsPanel(), gridBagConstraints1);
92
		
93
		gridBagConstraints1.fill = java.awt.GridBagConstraints.HORIZONTAL;
94
		gridBagConstraints1.weighty = 0;
95
		gridBagConstraints1.gridy = 1;
96
		add(getPanelStatistics(), gridBagConstraints1);
97
	}
98
	
99
	public JPanel getPanelStatistics() {
100
		JPanel p = new JPanel();
101
		p.setBorder(BorderFactory.createTitledBorder(Messages.getText("statistics")));
102
		p.setLayout(new GridBagLayout());
103
		GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
104
		gridBagConstraints1.fill = java.awt.GridBagConstraints.HORIZONTAL;
105
		gridBagConstraints1.weightx = 1;
106
		gridBagConstraints1.insets = new java.awt.Insets(0, 0, 2, 0);
107
		gridBagConstraints1.gridwidth = 2;
108
		
109
		gridBagConstraints1.gridx = 0;
110
		gridBagConstraints1.gridy = 0;
111
		p.add(getByBandRadioButton(), gridBagConstraints1);
112
		
113
		gridBagConstraints1.gridwidth = 1;
114
		gridBagConstraints1.gridy = 1;
115
		p.add(getVarCovarRadioButton(), gridBagConstraints1);
116
		
117
		gridBagConstraints1.gridwidth = 2;
118
		gridBagConstraints1.gridy = 2;
119
		p.add(getAutovectorRadioButton(), gridBagConstraints1);
120
		
121
		gridBagConstraints1.gridwidth = 1;
122
		gridBagConstraints1.gridx = 1;
123
		gridBagConstraints1.gridy = 1;
124
		p.add(getGenerateButton(), gridBagConstraints1);
125
		
126
		return p;
127
	}
128
	
129
	public JRadioButton getByBandRadioButton() {
130
		if(byBandRadioButton == null) {
131
			byBandRadioButton = new JRadioButton(Messages.getText("by_band"));
132
			byBandRadioButton.setSelected(true);
133
		}
134
		return byBandRadioButton;
135
	}
136
	
137
	public JRadioButton getVarCovarRadioButton() {
138
		if(varCovarRadioButton == null)
139
			varCovarRadioButton = new JRadioButton(Messages.getText("var_covar"));
140
		return varCovarRadioButton;
141
	}
142
	
143
	public JRadioButton getAutovectorRadioButton() {
144
		if(autovectorRadioButton == null)
145
			autovectorRadioButton = new JRadioButton(Messages.getText("autovector"));
146
		return autovectorRadioButton;
147
	}
148
	
149
	public JButton getGenerateButton() {
150
		if(generateButton == null)
151
			generateButton = new JButton(Messages.getText("generate"));
152
		return generateButton;
153
	}
154
	
155
	private JPanel getInputsPanel() {
156
		JPanel p = new JPanel();
157
		p.setBorder(BorderFactory.createTitledBorder(Messages.getText("components_selection")));
158
		p.setLayout(new BorderLayout());
159
		GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
160
		gridBagConstraints1.fill = java.awt.GridBagConstraints.BOTH;
161
		gridBagConstraints1.weightx = 1;
162
		gridBagConstraints1.weighty = 1;
163
		gridBagConstraints1.insets = new java.awt.Insets(2, 2, 2, 2);
164
		
165
		gridBagConstraints1.gridx = 0;
166
		gridBagConstraints1.gridy = 0;
167
		p.add(getPagedTable().getComponent(), BorderLayout.CENTER);
168
		
169
		return p;
170
	}
171
	
172
	public JComponent getComponent() {
173
		return this;
174
	}
175
	
176
	public PagedTable getPagedTable() {
177
		if(table == null) {
178
			RasterSwingManager manager = RasterSwingLocator.getSwingManager();
179
			String[] columnNames = {
180
					"", 
181
					"C",
182
					Messages.getText("autovalor"),
183
					"%"};
184
			int[] columnSizes = {30, 35, -1, -1};
185

  
186
			BandTableModel model = new BandTableModel(columnNames);
187
			ModelLoader loader = manager.createModelLoader(model);
188
			CheckBoxColumnRenderer render = new CheckBoxColumnRenderer(null);
189
			CheckBoxColumnEditor editor = new CheckBoxColumnEditor();
190
			loader.setRenderForColumn(0, render);
191
			loader.setCellEditorForColumn(0, editor);
192
			loader.setColumnNames(columnNames);
193
			loader.setColumnWidths(columnSizes);
194
			
195
			table = manager.createPagedTable(loader);
196
			table.showControllerTable(false);
197
			table.showMoveRowsControls(false);
198
		}
199
		return table;
200
	}
201

  
202
	public Object getResult() throws ProcessException {
203
		DataProcess task = RasterBaseAlgorithmLibrary.getManager().createRasterTask(PrincipalComponentsAlgorithmLibrary.PC_PROCESS_LABEL);
204
		List<String> params = task.getRasterTaskInputParameters(PrincipalComponentsAlgorithmLibrary.PC_PROCESS_LABEL);
205
		for (int i = 0; i < params.size(); i++) {
206
			String paramName = params.get(i);
207
			Class<?> paramType = task.getParameterTypeByProcess(PrincipalComponentsAlgorithmLibrary.PC_PROCESS_LABEL, paramName);
208
			if(paramType == RasterDataStore.class) {
209
				task.addParam(paramName, (RasterDataStore)inputStore);
210
			}
211
			if(paramName.equals("SELECTEDPCS") && paramType == Boolean[].class) {
212
				boolean[] components = new boolean[getPagedTable().getRowCount()];
213
				for (int j = 0; j < getPagedTable().getRowCount(); j++) {
214
					Object obj = getPagedTable().getValueAt(j, 0);
215
					if(obj instanceof Boolean)
216
						components[j] = ((Boolean)obj).booleanValue();
217
				}
218
				task.addParam(paramName, components);
219
			}
220
			
221
			if(paramName.equals("BANDS") && paramType == Boolean[].class) {
222
				task.addParam(paramName, bands);
223
			}
224
			
225
			if(paramType == PCStatsDataStructure.class) {
226
				task.addParam(paramName, stats);
227
			}
228
			
229
			if(paramType == String.class) {
230
				task.addParam(paramName, fileName);
231
			}
232
			
233
			if(paramName.equals("ROI_EPSG")) {
234
				task.addParam(paramName, roisEPSG);
235
			}
236
		}
237
		return new Object[]{task, getByBandRadioButton().isSelected(), getVarCovarRadioButton().isSelected(), getAutovectorRadioButton().isSelected()};
238
	}
239

  
240

  
241
	public void initialize() {
242
		double acumulado = 0;
243
		for (int i = 0; i < stats.getAutovalues().length; i++)
244
			acumulado += stats.getAutovalues()[i];
245
		int autova[] = new int[stats.getAutovalues().length];
246
		int cont = stats.getAutovalues().length - 1;
247
		for (int i = 0; i < stats.getAutovalues().length; i++) {
248
			autova[i] = cont;
249
			cont--;
250
		}		
251
		
252
		for (int i = stats.getAutovalues().length-1; i >= 0; i--) {
253
			getPagedTable().addRow(new Object[] {true, 
254
				autova[i],
255
				stats.getAutovalues()[i],
256
				stats.getAutovalues()[i] / acumulado});
257
		}
258
	}
259

  
260
	public int getComponentIDByObject(Object obj) {
261
		return obj == getGenerateButton() ? PrincipalComponentsSwingLibrary.GENERATE_STATIST : -1;
262
	}
263

  
264
	public void addListener(EventListener listener) {
265
		if(listener instanceof ActionListener)
266
			getGenerateButton().addActionListener((ActionListener)listener);
267
	}
268

  
269
}
0 270

  
org.gvsig.raster.principalcomponents/trunk/org.gvsig.raster.principalcomponents_deprecated/org.gvsig.raster.principalcomponents.swing/org.gvsig.raster.principalcomponents.swing.impl/src/main/java/org/gvsig/raster/principalcomponents/swing/impl/main/PrincipalComponentsPanelImpl.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
*
3
* Copyright (C) 2007-2008 Infrastructures and Transports Department
4
* of the Valencian Government (CIT)
5
* 
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
* 
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
* GNU General Public License for more details.
15
* 
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
* MA  02110-1301, USA.
20
* 
21
*/
22
package org.gvsig.raster.principalcomponents.swing.impl.main;
23

  
24
import java.awt.BorderLayout;
25
import java.awt.GridBagConstraints;
26
import java.awt.GridBagLayout;
27
import java.io.File;
28
import java.util.EventListener;
29
import java.util.List;
30

  
31
import javax.swing.BorderFactory;
32
import javax.swing.JComponent;
33
import javax.swing.JLabel;
34
import javax.swing.JPanel;
35

  
36
import org.gvsig.fmap.dal.coverage.store.RasterDataStore;
37
import org.gvsig.i18n.Messages;
38
import org.gvsig.raster.algorithm.BasicAPISwingPanel;
39
import org.gvsig.raster.algorithm.RasterBaseAlgorithmLibrary;
40
import org.gvsig.raster.algorithm.process.DataProcess;
41
import org.gvsig.raster.algorithm.process.ProcessException;
42
import org.gvsig.raster.principalcomponents.algorithm.PrincipalComponentsAlgorithmLibrary;
43
import org.gvsig.raster.swing.RasterSwingLocator;
44
import org.gvsig.raster.swing.RasterSwingManager;
45
import org.gvsig.raster.swing.newlayer.CreateNewLayerPanel;
46
import org.gvsig.raster.swing.pagedtable.ModelLoader;
47
import org.gvsig.raster.swing.pagedtable.PagedTable;
48

  
49
/**
50
 * @author Nacho Brodin (nachobrodin@gmail.com)
51
 */
52
public class PrincipalComponentsPanelImpl extends JPanel implements BasicAPISwingPanel {
53
	private static final long               serialVersionUID     = 1L;
54
	private String                          layerName            = null;
55
	private CreateNewLayerPanel             newLayerPanel        = null;
56
	private Object                          inputStore           = null;
57
	private PagedTable                      table                = null;
58
	private int                             bandList             = 0;
59
	
60
	public PrincipalComponentsPanelImpl(Object inputStore, String layerName, int bandList) {
61
		this.inputStore = inputStore;
62
		this.layerName = layerName;
63
		this.bandList = bandList;
64
		init();
65
	}
66
	
67
	private void init() {
68
		setLayout(new GridBagLayout());
69
		
70
		GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
71
		gridBagConstraints1.fill = java.awt.GridBagConstraints.HORIZONTAL;
72
		gridBagConstraints1.weightx = 1;
73
		gridBagConstraints1.insets = new java.awt.Insets(0, 0, 0, 0);
74
		gridBagConstraints1.gridx = 0;
75
		gridBagConstraints1.gridy = 0;
76
		add(getLayerPanel(), gridBagConstraints1);
77
		
78
		gridBagConstraints1.gridy = 2;
79
		add((JComponent)getCreateNewLayerPanel(), gridBagConstraints1);
80
		
81
		gridBagConstraints1.fill = java.awt.GridBagConstraints.BOTH;
82
		gridBagConstraints1.gridy = 1;
83
		gridBagConstraints1.weighty = 1;
84
		add(getInputsPanel(), gridBagConstraints1);
85
	}
86
	
87
	private JPanel getLayerPanel() {
88
		JPanel p = new JPanel();
89
		p.setBorder(BorderFactory.createTitledBorder(Messages.getText("layer")));
90
		p.setLayout(new GridBagLayout());
91
		GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
92
		gridBagConstraints1.fill = java.awt.GridBagConstraints.HORIZONTAL;
93
		gridBagConstraints1.weightx = 1;
94
		gridBagConstraints1.insets = new java.awt.Insets(0, 0, 2, 0);
95
		
96
		gridBagConstraints1.gridx = 0;
97
		gridBagConstraints1.gridy = 0;
98
		p.add(new JLabel(layerName), gridBagConstraints1);
99
		
100
		return p;
101
	}
102
	
103
	private JPanel getInputsPanel() {
104
		JPanel p = new JPanel();
105
		p.setBorder(BorderFactory.createTitledBorder(Messages.getText("bands")));
106
		p.setLayout(new BorderLayout());
107
		GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
108
		gridBagConstraints1.fill = java.awt.GridBagConstraints.BOTH;
109
		gridBagConstraints1.weightx = 1;
110
		gridBagConstraints1.weighty = 1;
111
		gridBagConstraints1.insets = new java.awt.Insets(2, 2, 2, 2);
112
		
113
		gridBagConstraints1.gridx = 0;
114
		gridBagConstraints1.gridy = 0;
115
		p.add(getPagedTable().getComponent(), BorderLayout.CENTER);
116
		
117
		return p;
118
	}
119
	
120
	public JComponent getComponent() {
121
		return this;
122
	}
123
	
124
	public PagedTable getPagedTable() {
125
		if(table == null) {
126
			RasterSwingManager manager = RasterSwingLocator.getSwingManager();
127
			String[] columnNames = {
128
					"", 
129
					Messages.getText("bands")};
130
			int[] columnSizes = {30, -1};
131

  
132
			BandTableModel model = new BandTableModel(columnNames);
133
			ModelLoader loader = manager.createModelLoader(model);
134
			CheckBoxColumnRenderer render = new CheckBoxColumnRenderer(null);
135
			CheckBoxColumnEditor editor = new CheckBoxColumnEditor();
136
			loader.setRenderForColumn(0, render);
137
			loader.setCellEditorForColumn(0, editor);
138
			loader.setColumnNames(columnNames);
139
			loader.setColumnWidths(columnSizes);
140
			
141
			table = manager.createPagedTable(loader);
142
			table.showControllerTable(false);
143
			table.showMoveRowsControls(false);
144
		}
145
		return table;
146
	}
147

  
148
	public DataProcess getResult() throws ProcessException {
149
		DataProcess task = RasterBaseAlgorithmLibrary.getManager().createRasterTask(PrincipalComponentsAlgorithmLibrary.PC_STATS_PROCESS_LABEL);
150
		List<String> params = task.getRasterTaskInputParameters(PrincipalComponentsAlgorithmLibrary.PC_STATS_PROCESS_LABEL);
151
		for (int i = 0; i < params.size(); i++) {
152
			String paramName = params.get(i);
153
			Class<?> paramType = task.getParameterTypeByProcess(PrincipalComponentsAlgorithmLibrary.PC_STATS_PROCESS_LABEL, paramName);
154
			if(paramType == RasterDataStore[].class) {
155
				task.addParam(paramName, new RasterDataStore[]{(RasterDataStore)inputStore});
156
			}
157
			if(paramType == String.class) {
158
				String filename = newLayerPanel.getDirectorySelected() + File.separator + newLayerPanel.getFileSelected();
159
				if(!filename.endsWith(".tif"))
160
					filename += ".tif";
161
				task.addParam(paramName, filename);
162
			}
163
			if(paramType == Boolean[].class) {
164
				boolean[] bands = new boolean[getPagedTable().getRowCount()];
165
				for (int j = 0; j < getPagedTable().getRowCount(); j++) {
166
					Object obj = getPagedTable().getValueAt(j, 0);
167
					if(obj instanceof Boolean)
168
						bands[j] = ((Boolean)obj).booleanValue();
169
				}
170
				task.addParam(paramName, bands);
171
			}
172
		}
173
		return task;
174
	}
175

  
176
	public CreateNewLayerPanel getCreateNewLayerPanel() {
177
		if(newLayerPanel == null) {
178
			newLayerPanel = RasterSwingLocator.getSwingManager().createNewLayerPanel();
179
		}
180
		return newLayerPanel;
181
	}
182

  
183
	public void initialize() {
184
		for (int i = 0; i < bandList; i++) {
185
			getPagedTable().addRow(new Object[]{true, "B" + i});			
186
		}			
187
	}
188

  
189
	public int getComponentIDByObject(Object obj) {
190
		return -1;
191
	}
192

  
193
	public void addListener(EventListener listener) {
194
		// TODO Auto-generated method stub
195
		
196
	}
197

  
198
}
0 199

  
org.gvsig.raster.principalcomponents/trunk/org.gvsig.raster.principalcomponents_deprecated/org.gvsig.raster.principalcomponents.swing/org.gvsig.raster.principalcomponents.swing.impl/src/main/java/org/gvsig/raster/principalcomponents/swing/impl/main/PCAMainPanelImpl.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
*
3
* Copyright (C) 2007-2008 Infrastructures and Transports Department
4
* of the Valencian Government (CIT)
5
* 
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
* 
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
* GNU General Public License for more details.
15
* 
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
19
* MA  02110-1301, USA.
20
* 
21
*/
22
package org.gvsig.raster.principalcomponents.swing.impl.main;
23

  
24
import java.awt.BorderLayout;
25
import java.awt.GridBagConstraints;
26
import java.awt.GridBagLayout;
27
import java.io.File;
28
import java.util.EventListener;
29
import java.util.List;
30

  
31
import javax.swing.BorderFactory;
32
import javax.swing.JCheckBox;
33
import javax.swing.JComponent;
34
import javax.swing.JLabel;
35
import javax.swing.JPanel;
36

  
37
import org.gvsig.fmap.dal.coverage.store.RasterDataStore;
38
import org.gvsig.i18n.Messages;
39
import org.gvsig.raster.algorithm.BasicAPISwingPanel;
40
import org.gvsig.raster.algorithm.RasterBaseAlgorithmLibrary;
41
import org.gvsig.raster.algorithm.process.DataProcess;
42
import org.gvsig.raster.algorithm.process.ProcessException;
43
import org.gvsig.raster.principalcomponents.algorithm.PrincipalComponentsAlgorithmLibrary;
44
import org.gvsig.raster.swing.RasterSwingLocator;
45
import org.gvsig.raster.swing.RasterSwingManager;
46
import org.gvsig.raster.swing.newlayer.CreateNewLayerPanel;
47
import org.gvsig.raster.swing.pagedtable.ModelLoader;
48
import org.gvsig.raster.swing.pagedtable.PagedTable;
49

  
50
/**
51
 * @author Nacho Brodin (nachobrodin@gmail.com)
52
 */
53
public class PCAMainPanelImpl extends JPanel implements BasicAPISwingPanel {
54
	private static final long               serialVersionUID     = 1L;
55
	private String                          layerName            = null;
56
	private CreateNewLayerPanel             newLayerPanel        = null;
57
	private Object                          inputStore           = null;
58
	private PagedTable                      table                = null;
59
	private JCheckBox                       roisCheck            = null;
60
	private int                             bandList             = 0;
61
	private String                          roisEPSG             = null;
62
	
63
	public PCAMainPanelImpl(Object inputStore, String layerName, int bandList, String roisEPSG) {
64
		this.inputStore = inputStore;
65
		this.layerName = layerName;
66
		this.bandList = bandList;
67
		this.roisEPSG = roisEPSG;
68
		init();
69
	}
70
	
71
	private void init() {
72
		setLayout(new GridBagLayout());
73
		
74
		GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
75
		gridBagConstraints1.fill = java.awt.GridBagConstraints.HORIZONTAL;
76
		gridBagConstraints1.weightx = 1;
77
		gridBagConstraints1.insets = new java.awt.Insets(0, 0, 0, 0);
78
		gridBagConstraints1.gridx = 0;
79
		gridBagConstraints1.gridy = 0;
80
		add(getLayerPanel(), gridBagConstraints1);
81
		
82
		gridBagConstraints1.gridy = 2;
83
		add((JComponent)getCreateNewLayerPanel(), gridBagConstraints1);
84
		
85
		if(roisEPSG != null) {
86
			gridBagConstraints1.gridy = 3;
87
			add(getROIsCheck(), gridBagConstraints1);
88
		}
89
		
90
		gridBagConstraints1.fill = java.awt.GridBagConstraints.BOTH;
91
		gridBagConstraints1.gridy = 1;
92
		gridBagConstraints1.weighty = 1;
93
		add(getInputsPanel(), gridBagConstraints1);
94
	}
95
	
96
	private JPanel getLayerPanel() {
97
		JPanel p = new JPanel();
98
		p.setBorder(BorderFactory.createTitledBorder(Messages.getText("layer")));
99
		p.setLayout(new GridBagLayout());
100
		GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
101
		gridBagConstraints1.fill = java.awt.GridBagConstraints.HORIZONTAL;
102
		gridBagConstraints1.weightx = 1;
103
		gridBagConstraints1.insets = new java.awt.Insets(0, 0, 2, 0);
104
		
105
		gridBagConstraints1.gridx = 0;
106
		gridBagConstraints1.gridy = 0;
107
		p.add(new JLabel(layerName), gridBagConstraints1);
108
		
109
		return p;
110
	}
111
	
112
	private JPanel getInputsPanel() {
113
		JPanel p = new JPanel();
114
		p.setBorder(BorderFactory.createTitledBorder(Messages.getText("bands")));
115
		p.setLayout(new BorderLayout());
116
		GridBagConstraints gridBagConstraints1 = new GridBagConstraints();
117
		gridBagConstraints1.fill = java.awt.GridBagConstraints.BOTH;
118
		gridBagConstraints1.weightx = 1;
119
		gridBagConstraints1.weighty = 1;
120
		gridBagConstraints1.insets = new java.awt.Insets(2, 2, 2, 2);
121
		
122
		gridBagConstraints1.gridx = 0;
123
		gridBagConstraints1.gridy = 0;
124
		p.add(getPagedTable().getComponent(), BorderLayout.CENTER);
125
		
126
		return p;
127
	}
128
	
129
	public JComponent getComponent() {
130
		return this;
131
	}
132
	
133
	public PagedTable getPagedTable() {
134
		if(table == null) {
135
			RasterSwingManager manager = RasterSwingLocator.getSwingManager();
136
			String[] columnNames = {
137
					"", 
138
					Messages.getText("bands")};
139
			int[] columnSizes = {30, -1};
140

  
141
			BandTableModel model = new BandTableModel(columnNames);
142
			ModelLoader loader = manager.createModelLoader(model);
143
			CheckBoxColumnRenderer render = new CheckBoxColumnRenderer(null);
144
			CheckBoxColumnEditor editor = new CheckBoxColumnEditor();
145
			loader.setRenderForColumn(0, render);
146
			loader.setCellEditorForColumn(0, editor);
147
			loader.setColumnNames(columnNames);
148
			loader.setColumnWidths(columnSizes);
149
			
150
			table = manager.createPagedTable(loader);
151
			table.showControllerTable(false);
152
			table.showMoveRowsControls(false);
153
		}
154
		return table;
155
	}
156

  
157
	public DataProcess getResult() throws ProcessException {
158
		DataProcess task = RasterBaseAlgorithmLibrary.getManager().createRasterTask(PrincipalComponentsAlgorithmLibrary.PC_STATS_PROCESS_LABEL);
159
		List<String> params = task.getRasterTaskInputParameters(PrincipalComponentsAlgorithmLibrary.PC_STATS_PROCESS_LABEL);
160
		for (int i = 0; i < params.size(); i++) {
161
			String paramName = params.get(i);
162
			Class<?> paramType = task.getParameterTypeByProcess(PrincipalComponentsAlgorithmLibrary.PC_STATS_PROCESS_LABEL, paramName);
163
			if(paramType == RasterDataStore.class) {
164
				task.addParam(paramName, (RasterDataStore)inputStore);
165
			}
166
			if(paramName.equals("PATH")) {
167
				String filename = newLayerPanel.getDirectorySelected() + File.separator + newLayerPanel.getFileSelected();
168
				if(!filename.endsWith(".tif"))
169
					filename += ".tif";
170
				task.addParam(paramName, filename);
171
			}
172
			if(paramType == Boolean[].class) {
173
				boolean[] bands = new boolean[getPagedTable().getRowCount()];
174
				for (int j = 0; j < getPagedTable().getRowCount(); j++) {
175
					Object obj = getPagedTable().getValueAt(j, 0);
176
					if(obj instanceof Boolean)
177
						bands[j] = ((Boolean)obj).booleanValue();
178
				}
179
				task.addParam(paramName, bands);
180
			}
181
			
182
			if(getROIsCheck().isSelected()) {
183
				if(paramName.equals("ROI_EPSG")) {
184
					task.addParam(paramName, roisEPSG);
185
				}
186
			}
187
		}
188
		return task;
189
	}
190
	
191
	public JCheckBox getROIsCheck() {
192
		if(roisCheck == null) {
193
			roisCheck = new JCheckBox(Messages.getText("use_rois"));
194
		}
195
		return roisCheck;
196
	}
197

  
198
	public CreateNewLayerPanel getCreateNewLayerPanel() {
199
		if(newLayerPanel == null) {
200
			newLayerPanel = RasterSwingLocator.getSwingManager().createNewLayerPanel();
201
		}
202
		return newLayerPanel;
203
	}
204

  
205
	public void initialize() {
206
		for (int i = 0; i < bandList; i++) {
207
			getPagedTable().addRow(new Object[]{true, "B" + i});			
208
		}			
209
	}
210

  
211
	public int getComponentIDByObject(Object obj) {
212
		return -1;
213
	}
214

  
215
	public void addListener(EventListener listener) {
216
	}
217
}
0 218

  
org.gvsig.raster.principalcomponents/trunk/org.gvsig.raster.principalcomponents_deprecated/org.gvsig.raster.principalcomponents.swing/org.gvsig.raster.principalcomponents.swing.impl/src/main/java/org/gvsig/raster/principalcomponents/swing/impl/main/CheckBoxColumnEditor.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.raster.principalcomponents.swing.impl.main;
25

  
26
import java.awt.Component;
27
import java.awt.event.ActionEvent;
28
import java.awt.event.ActionListener;
29

  
30
import javax.swing.AbstractCellEditor;
31
import javax.swing.JCheckBox;
32
import javax.swing.JTable;
33
import javax.swing.SwingUtilities;
34
import javax.swing.table.TableCellEditor;
35

  
36
/**
37
 * @author Nacho Brodin (nachobrodin@gmail.com)
38
 */
39
public class CheckBoxColumnEditor extends AbstractCellEditor
40
implements TableCellEditor {
41
    final private static long serialVersionUID = -3370601314380922368L;
42
    public JCheckBox theCheckBox;
43

  
44
    public CheckBoxColumnEditor() {
45
        super();
46
        theCheckBox = new JCheckBox();
47
        theCheckBox.addActionListener(new ActionListener() {
48
                public void actionPerformed(ActionEvent event) {
49
                    fireEditingStopped() ;
50
                    
51
                }
52
            });
53
    }
54

  
55
    public Component getTableCellEditorComponent(JTable table, Object obj,
56
                                                 boolean isSelected,
57
                                                 int row, int col) {
58
    	theCheckBox.setHorizontalAlignment(SwingUtilities.CENTER);
59

  
60
        Boolean lValueAsBoolean = (Boolean) obj;
61
        theCheckBox.setSelected(lValueAsBoolean.booleanValue());
62

  
63
        return theCheckBox;
64
    }
65

  
66
    public Object getCellEditorValue() {
67
        return new Boolean(theCheckBox.isSelected());
68
    }
69
}
0 70

  
org.gvsig.raster.principalcomponents/trunk/org.gvsig.raster.principalcomponents_deprecated/org.gvsig.raster.principalcomponents.swing/org.gvsig.raster.principalcomponents.swing.impl/src/main/java/org/gvsig/raster/principalcomponents/swing/impl/main/CheckBoxColumnRenderer.java
1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
package org.gvsig.raster.principalcomponents.swing.impl.main;
25

  
26
import java.awt.Component;
27
import java.awt.event.ActionEvent;
28
import java.awt.event.ActionListener;
29

  
30
import javax.swing.JCheckBox;
31
import javax.swing.JTable;
32
import javax.swing.SwingConstants;
33
import javax.swing.table.TableCellRenderer;
34

  
35
/**
36
 * @author Nacho Brodin (nachobrodin@gmail.com)
37
 */
38
public class CheckBoxColumnRenderer extends JCheckBox implements TableCellRenderer {
39
    final private static long            serialVersionUID = -3370601314380922368L;
40
    private ActionListener               listener = null;
41

  
42
    public CheckBoxColumnRenderer() {}
43
    
44
    public CheckBoxColumnRenderer(ActionListener listener) {
45
    	this.listener = listener;
46
    }
47
    
48
    public Component getTableCellRendererComponent(JTable table,
49
                                                   Object value,
50
                                                   boolean isSelected,
51
                                                   boolean hasFocus,
52
                                                   int row, int column) {
53
        if (value == null) {
54
            this.setSelected(false);
55
        }
56
        if(isSelected)
57
        	if(listener != null) 
58
        		listener.actionPerformed(new ActionEvent(this, row, "SELECT_ROW"));
59
        	
60
        if(value instanceof Boolean){
61
	        Boolean ValueAsBoolean = (Boolean) value;
62
	        this.setSelected(ValueAsBoolean.booleanValue());
63
	        this.setHorizontalAlignment(SwingConstants.CENTER);
64
        }
65
        	
66
        return this;
67
    }
68
}
0 69

  
org.gvsig.raster.principalcomponents/trunk/org.gvsig.raster.principalcomponents_deprecated/org.gvsig.raster.principalcomponents.swing/org.gvsig.raster.principalcomponents.swing.impl/src/main/java/org/gvsig/raster/principalcomponents/swing/impl/PrincipalComponentsDefaultSwingImplLibrary.java
1
package org.gvsig.raster.principalcomponents.swing.impl;
2

  
3
import java.util.Locale;
4

  
5
import org.gvsig.i18n.Messages;
6
import org.gvsig.raster.principalcomponents.swing.PrincipalComponentsSwingLocator;
7
import org.gvsig.tools.library.AbstractLibrary;
8
import org.gvsig.tools.library.LibraryException;
9

  
10
/**
11
 * Library for default implementation initialization and configuration.
12
 * 
13
 * @author gvSIG team
14
 * @version $Id$
15
 */
16
public class PrincipalComponentsDefaultSwingImplLibrary extends AbstractLibrary {
17
	
18
	public PrincipalComponentsDefaultSwingImplLibrary() {
19
		registerAsImplementationOf(PrincipalComponentsDefaultSwingImplLibrary.class);
20
	}
21

  
22
	protected void doInitialize() throws LibraryException {
23
        //Register the default GeometryManager
24
		PrincipalComponentsSwingLocator.registerSwingManager(DefaultPrincipalComponentsSwingManager.class);
25
		
26
		if (!Messages.hasLocales()) {
27
            Messages.addLocale(Locale.getDefault());
28
        }
29
        
30
        Messages.addResourceFamily("org.gvsig.raster.principalcomponents.swing.impl.i18n.text",
31
        		PrincipalComponentsDefaultSwingImplLibrary.class.getClassLoader(),
32
        		PrincipalComponentsDefaultSwingImplLibrary.class.getClass().getName()); 
33
        
34
        registerIcons();
35
	}
36

  
37
    @Override
38
    protected void doPostInitialize() throws LibraryException {
39
    	
40
    }
41
    
42
    private void registerIcons() {
43
		//IconThemeHelper.registerIcon(null, "...", this);
44
    }
45

  
46
}
0 47

  
org.gvsig.raster.principalcomponents/trunk/org.gvsig.raster.principalcomponents_deprecated/org.gvsig.raster.principalcomponents.swing/org.gvsig.raster.principalcomponents.swing.impl/src/main/java/org/gvsig/raster/principalcomponents/swing/impl/stats/StatsPanelImpl.java
1
package org.gvsig.raster.principalcomponents.swing.impl.stats;
2

  
3
import java.awt.BorderLayout;
4
import java.awt.event.ActionEvent;
5
import java.awt.event.ActionListener;
6
import java.io.File;
7
import java.io.FileWriter;
8
import java.io.IOException;
9
import java.io.PrintWriter;
10

  
11
import javax.swing.BorderFactory;
12
import javax.swing.Box;
13
import javax.swing.BoxLayout;
14
import javax.swing.JButton;
15
import javax.swing.JFileChooser;
16
import javax.swing.JOptionPane;
17
import javax.swing.JPanel;
18
import javax.swing.JScrollPane;
19
import javax.swing.JTextPane;
20

  
21
import org.cresques.Messages;
22
import org.gvsig.raster.principalcomponents.algorithm.PCStatsDataStructure;
23
import org.slf4j.Logger;
24
import org.slf4j.LoggerFactory;
25

  
26
public class StatsPanelImpl extends JPanel {
27
	private static final long serialVersionUID = 1L;
28
	private JButton   save    = null;
29
	//private JButton   accept  = null;
30
	private JTextPane text    = null;
31
	private String    html    = null;
32
	private Logger    log     = LoggerFactory.getLogger(StatsPanelImpl.class);
33

  
34
	public StatsPanelImpl(PCStatsDataStructure pcStatistics, boolean bandStatistics, boolean covar, boolean autovect) {
35
		ReportStatisticsProcessPCA process = new ReportStatisticsProcessPCA(pcStatistics, bandStatistics, covar, autovect);
36
		html = process.getHtml();
37
		this.setLayout(new BorderLayout());
38
		//this.setPreferredSize(new Dimension(650, 400));
39
		this.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));
40

  
41
		text = new JTextPane();
42
		text.setContentType("text/html");
43
		text.setEditable(false);
44
		text.setText(html);
45
		text.setCaretPosition(0);
46

  
47
		JScrollPane scrollPane = new JScrollPane(text);
48
		//scrollPane.setPreferredSize(new Dimension(500, 220));
49

  
50
		/*accept = new JButton("Accept");
51
		accept.addActionListener(new ActionListener() {
52
			public void actionPerformed(ActionEvent arg0) {
53
				setVisible(false); // Provoca el cierre de la ventana
54
			}
55
		});*/
56

  
57
		save = new JButton("Save");
58
		save.addActionListener(new ActionListener() {
59
			public void actionPerformed(ActionEvent evt) {
60
				saveActionPerformed(evt);
61
			}
62
		});
63

  
64
		JPanel buttonsPanel = new JPanel();
65
		buttonsPanel.setLayout(new BoxLayout(buttonsPanel,
66
				BoxLayout.LINE_AXIS));
67
		buttonsPanel.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));
68

  
69
		buttonsPanel.add(Box.createHorizontalGlue());
70
		buttonsPanel.add(save);
71
		//buttonsPanel.add(accept);
72

  
73
		this.add(scrollPane, BorderLayout.CENTER);
74
		this.add(buttonsPanel, BorderLayout.SOUTH);
75
		this.setVisible(true);
76
	}
77

  
78
	private void saveActionPerformed(ActionEvent evt) {
79
		FileWriter reporte = null;
80
		PrintWriter escritura = null;
81
		JFileChooser chooser = new JFileChooser();
82
		chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
83
		int returnVal = chooser.showSaveDialog(getParent());
84
		if(returnVal == JFileChooser.APPROVE_OPTION) {
85
			if(chooser.getSelectedFile() != null){
86
				try {
87
					File file = chooser.getSelectedFile();
88
					if(file.isDirectory()) {
89
						if(file.canWrite())
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff