Revision 1855

View differences:

org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/raster/gui/wizard/PrepareLayerAskWritableDirectory.java
21 21
*/
22 22
package org.gvsig.raster.tools.app.basic.raster.gui.wizard;
23 23

  
24
import java.awt.event.ActionEvent;
25
import java.awt.event.ActionListener;
26
import java.io.File;
24 27
import java.util.Map;
25 28

  
29
import javax.swing.JOptionPane;
30

  
26 31
import org.gvsig.app.prepareAction.PrepareContext;
27 32
import org.gvsig.app.prepareAction.PrepareDataStoreParameters;
28 33
import org.gvsig.fmap.dal.DataStoreParameters;
29 34
import org.gvsig.fmap.dal.coverage.store.parameter.RasterDataParameters;
35
import org.gvsig.gui.beans.buttonspanel.ButtonsPanel;
36
import org.gvsig.i18n.Messages;
30 37
import org.gvsig.raster.tools.app.basic.raster.gui.wizard.proj.WritableFolderPanel;
31 38
import org.gvsig.tools.exception.BaseException;
32 39

  
......
36 43
 * 
37 44
 * @author Nacho Brodin (nachobrodin@gmail.com)
38 45
 */
39
public class PrepareLayerAskWritableDirectory implements PrepareDataStoreParameters {
46
public class PrepareLayerAskWritableDirectory implements PrepareDataStoreParameters, ActionListener {
47
	private DataStoreParameters         newParameters = null;
48
	private DataStoreParameters         oldParameters = null;
49
	private String                      selectedPath  = null;
40 50
	
41 51
	public DataStoreParameters prepare(DataStoreParameters storeParameters,
42 52
			PrepareContext context) throws BaseException {
43 53
		if(!(storeParameters instanceof RasterDataParameters))
44 54
			return storeParameters;
45
		WritableFolderPanel panel = new WritableFolderPanel();
46 55
		
47
		return storeParameters;
56
		oldParameters = storeParameters;
57
		String uri = ((RasterDataParameters)storeParameters).getURI();
58
		
59
		
60
		if(uri.contains(File.separator)) {
61
			uri = uri.substring(0, uri.lastIndexOf(File.separator));
62
		} else {
63
			uri = System.getProperty("user.home");
64
		}
65
		
66
		if(!isValidFolder(uri)) {
67
			new WritableFolderPanel(uri, this);
68
		} else {
69
			return oldParameters;
70
		}
71
		
72
		return newParameters;
48 73
	}
49 74
	
75
	public void actionPerformed(ActionEvent e) {
76
		if(e.getID() == 0) { //Cambio de directorio
77
			selectedPath = e.getActionCommand();
78
		}
79
		if(e.getID() == ButtonsPanel.BUTTON_ACCEPT) {
80
			if(isValidFolder(selectedPath)) {
81
				newParameters = oldParameters;
82
				newParameters.setDynValue(RasterDataParameters.FIELD_RMF_FOLDER, new File(selectedPath));
83
			} else {
84
				JOptionPane.showMessageDialog(null, Messages.getText("folder_not_writable"), "", JOptionPane.WARNING_MESSAGE);
85
				newParameters = null;
86
			}
87
		}
88
		
89
		if(e.getID() == ButtonsPanel.BUTTON_CANCEL) {
90
			newParameters = null;
91
		}
92
	}
93
	
94
	private boolean isValidFolder(String folder) {
95
		File path = new File(folder);
96
		return (path.exists() && path.isDirectory() && path.canWrite());
97
	}
98
	
50 99
	public void post(DataStoreParameters storeParameters, PrepareContext context) {
51 100
	}
52 101
	
......
80 129

  
81 130
	public void interrupted() {
82 131
	}
83
	
84 132
}
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/raster/gui/wizard/proj/WritableFolderPanel.java
2 2

  
3 3
import java.awt.GridBagConstraints;
4 4
import java.awt.GridBagLayout;
5
import java.awt.Label;
6 5
import java.awt.Point;
7 6
import java.awt.event.ActionEvent;
8 7
import java.awt.event.ActionListener;
9 8
import java.io.File;
10 9

  
11 10
import javax.swing.JButton;
11
import javax.swing.JLabel;
12 12

  
13 13
import org.cresques.Messages;
14 14
import org.gvsig.andami.PluginServices;
......
28 28
	private static final long           serialVersionUID       = 1L;
29 29
	private SelectDirectoryPanel        selectDirectoryPanel   = null;
30 30
	private Point                       posWindow              = null;
31
	private int                         widthWindow            = 290;
32
	private int                         heightWindow           = 80;
31
	private int                         widthWindow            = 300;
32
	private int                         heightWindow           = 90;
33
	private String                      defaultFolder          = null;
34
	private ActionListener              listener               = null;
33 35
	
34
	public WritableFolderPanel() {
36
	public WritableFolderPanel(String defaultFolder, ActionListener listener) {
37
		this.defaultFolder = defaultFolder;
38
		setListener(listener);
35 39
		posWindow = RasterToolsUtil.iwindowPosition(widthWindow, heightWindow);
36 40
		initGUI();
37 41
		PluginServices.getMDIManager().addWindow(this);
38 42
	}
39 43
	
40 44
	private void initGUI() {
41
		getButtonsPanel().addAccept();
42
		getButtonsPanel().addCancel();
43
		
44 45
		JButton accept = getButtonsPanel().getButton(ButtonsPanel.BUTTON_ACCEPT);
45 46
		JButton cancel = getButtonsPanel().getButton(ButtonsPanel.BUTTON_CANCEL);
46 47
		getButtonsPanel().getButton(ButtonsPanel.BUTTON_APPLY).setVisible(false);
......
52 53
		GridBagConstraints gbc = new GridBagConstraints();
53 54
		gbc.fill = GridBagConstraints.HORIZONTAL;
54 55
		gbc.weightx = 1;
55
		this.add(new Label(Messages.getText("folder_not_writable")), gbc);
56
		JLabel label = new JLabel();
57
		label.setText("<html><p>" + Messages.getText("folder_not_writable") + "</p></html>");
58
		this.add(label, gbc);
56 59
		
57 60
		gbc.gridy = 1;
58 61
		this.add(getSelectDirectoryPanel(), gbc);
......
63 66
	public SelectDirectoryPanel getSelectDirectoryPanel() {
64 67
		if(selectDirectoryPanel == null) {
65 68
			selectDirectoryPanel = new SelectDirectoryPanel();
66
			//selectDirectoryPanel.get
69
			selectDirectoryPanel.getJLabelDirectory().setVisible(false);
70
			selectDirectoryPanel.getJBChooseDirectory().setEnabled(true);
71
			selectDirectoryPanel.getDirectoryTextField().setText(defaultFolder);
67 72
		}
68 73
		return selectDirectoryPanel;
69 74
	}
75
	
76
	public void setListener(ActionListener listener) {
77
		this.listener = listener;
78
	}
70 79

  
71 80
	public void actionPerformed(ActionEvent e) {
72 81
		if(e.getSource() == getButtonsPanel().getButton(ButtonsPanel.BUTTON_ACCEPT)) {
82
			if(listener != null)
83
				listener.actionPerformed(new ActionEvent(getButtonsPanel().getButton(ButtonsPanel.BUTTON_ACCEPT), ButtonsPanel.BUTTON_ACCEPT, ""));
73 84
			PluginServices.getMDIManager().closeWindow(this);
74 85
		}
75 86
		
76 87
		if(e.getSource() == getButtonsPanel().getButton(ButtonsPanel.BUTTON_CANCEL)) {
88
			if(listener != null)
89
				listener.actionPerformed(new ActionEvent(getButtonsPanel().getButton(ButtonsPanel.BUTTON_CANCEL), ButtonsPanel.BUTTON_CANCEL, ""));
77 90
			PluginServices.getMDIManager().closeWindow(this);
78 91
		}
79 92
		
......
81 94
			File f = new File(getSelectDirectoryPanel().getPath());
82 95
			if(f.exists() && f.isDirectory() && f.canWrite()) {
83 96
				getButtonsPanel().getButton(ButtonsPanel.BUTTON_ACCEPT).setEnabled(true);
97
				if(listener != null)
98
					listener.actionPerformed(new ActionEvent(getChangeFolderButton(), 0, getSelectDirectoryPanel().getPath()));
99
			} else {
100
				getButtonsPanel().getButton(ButtonsPanel.BUTTON_ACCEPT).setEnabled(false);
84 101
			}
85 102
		}
86 103
	}
87 104
	
105
	public JButton getChangeFolderButton() {
106
		return getSelectDirectoryPanel().getJBChooseDirectory();
107
	}
108
	
88 109
	public WindowInfo getWindowInfo() {
89 110
		WindowInfo m_viewinfo = new WindowInfo(WindowInfo.MODALDIALOG);
90 111
		m_viewinfo.setTitle(Messages.getText("warning"));
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/raster/bean/createlayer/SelectDirectoryPanel.java
93 93
	 * Obtiene el bot?n de asignaci?n de directorio
94 94
	 * @return JButton
95 95
	 */
96
	private JButton getJBChooseDirectory() {
96
	public JButton getJBChooseDirectory() {
97 97
		if (jBChooseDirectory == null) {
98 98
			jBChooseDirectory = new JButton(PluginServices.getText(this, "cambiar_ruta"));
99 99
			jBChooseDirectory.setEnabled(false);
......
105 105
	 * Obtiene la etiqueta con la ruta
106 106
	 * @return JLabel
107 107
	 */
108
	private JLabel getJLabelDirectory() {
108
	public JLabel getJLabelDirectory() {
109 109
		if (jLabelDirectory == null) {
110 110
			jLabelDirectory = new JLabel(PluginServices.getText(this, "ruta") + ":");
111 111
			jLabelDirectory.setEnabled(false);
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app/org.gvsig.raster.tools.app.basic/src/main/resources/text.properties
588 588
error_saving_rois_rmf=Error salvando las ROI en el fichero de metadatos
589 589
problems_loading_rois=Problemas cargando el fichero de ROI.\n La ejecuci?n de la aplicaci?n seguir? normalmente.
590 590
remove_roi_file_link=?Quieres eliminar el enlace al fichero de ROIs? El fichero no se borrar?
591
folder_not_writable=La capa seleccionada est? en un directorio sin permiso de escritura. \n Por favor, seleccione un directorio donde pueda escribir para salvar metadatos.
592
folder=Directorio
591
folder_not_writable=La capa seleccionada est? en un directorio sin permiso de escritura. Por favor, seleccione un directorio donde pueda escribir para salvar metadatos.
592
folder=Directorio
593
folder_not_writable1=Directorio sin permiso de escritura
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app/org.gvsig.raster.tools.app.basic/src/main/resources/text_en.properties
575 575
error_saving_rois_rmf=Error saving the ROI in the metadata file
576 576
problems_loading_rois=Problems loading regions of interest from the file.\n The execution of gvSIG will continue normally.
577 577
remove_roi_file_link=Would you like to remove the link with the ROI file? This file will not be removed from disk.
578
folder_not_writable=The selected layer is in a not writable folder. \n Please, select a writable folder to save metadata
579
folder=Folder
578
folder_not_writable=The selected layer is in a not writable folder. Please, select a writable folder to save metadata
579
folder=Folder
580
folder_not_writable1=This folder is not writable
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.api/src/main/java/org/gvsig/fmap/dal/coverage/store/parameter/RasterDataParameters.java
39 39
 */
40 40
public interface RasterDataParameters extends DataStoreParameters {
41 41
	//Load options
42
	public static int         REPROJECT_DATA               = 1;
43
	public static int         REPROJECT_VIEW               = 2;
44
	public static int         DONT_CHANGE_PROJECTION       = 0;
45
	public static int         NEW_PROJETION_TO_THE_LAYER   = 6;
46
	public static int         NOT_LOAD                     = 4;
47
	public static int         ON_THE_FLY                   = 5;
42
	public static int             REPROJECT_DATA               = 1;
43
	public static int             REPROJECT_VIEW               = 2;
44
	public static int             DONT_CHANGE_PROJECTION       = 0;
45
	public static int             NEW_PROJETION_TO_THE_LAYER   = 6;
46
	public static int             NOT_LOAD                     = 4;
47
	public static int             ON_THE_FLY                   = 5;
48 48
	
49
	//General parameters
50
	public static final String    FIELD_URI                    = "uri";
51
	public static final String    FIELD_CRS                    = "CRS";
52
	public static final String    FIELD_RMF_FOLDER             = "rmf_folder";
53
	
49 54

  
50 55
	/**
51 56
	 * Flag to know if this provider is visible or it isn't
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/store/AbstractRasterDataParameters.java
50 50
	public static final String     PERSISTENT_NAME        = "AbstractRasterDataParameters_Persistent";
51 51
    public static final String     PERSISTENT_DESCRIPTION = "AbstractRasterDataParameters Persistent";
52 52
    
53
	protected static final String  FIELD_URI              = "uri";
54
	private static final String    FIELD_CRS              = "CRS";
53
	//protected static final String  FIELD_URI              = RasterDataParameters.FIELD_URI;
54
	//private static final String    FIELD_CRS              = RasterDataParameters.FIELD_CRS;
55
	//private static final String    FIELD_RMF_FOLDER       = RasterDataParameters.FIELD_RMF_FOLDER;
55 56
	private static final String    FIELD_FRAME            = "frame";
56 57
	private static final String    FIELD_ALPHABAND        = "alphaband";
57 58
	private static final String    FIELD_VISIBLE          = "visible";
58 59
	private static final String    FIELD_REPROJ_OPTION    = "selected_option";
59
	private static final String    FIELD_RMF_FOLDER       = "rmf_folder";
60 60
	
61 61

  
62 62
	public static DynClass registerDynClass(String dynClassName) {

Also available in: Unified diff