Revision 2191

View differences:

org.gvsig.raster.mosaic/trunk/org.gvsig.raster.mosaic/org.gvsig.raster.mosaic.app/src/main/java/org/gvsig/raster/mosaic/app/MainDialogActions.java
1
package org.gvsig.raster.mosaic.app;
2

  
3
import java.io.File;
4

  
5
import org.gvsig.andami.PluginServices;
6
import org.gvsig.andami.ui.mdiManager.IWindow;
7
import org.gvsig.app.project.documents.view.gui.AbstractViewPanel;
8
import org.gvsig.fmap.dal.coverage.RasterLocator;
9
import org.gvsig.fmap.dal.coverage.exception.NotSupportedExtensionException;
10
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException;
11
import org.gvsig.fmap.dal.coverage.store.RasterDataStore;
12
import org.gvsig.fmap.dal.exception.InitializeException;
13
import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException;
14
import org.gvsig.fmap.mapcontext.MapContextLocator;
15
import org.gvsig.fmap.mapcontext.MapContextManager;
16
import org.gvsig.fmap.mapcontext.exceptions.LoadLayerException;
17
import org.gvsig.raster.fmap.layers.FLyrRaster;
18
import org.gvsig.raster.mosaic.swing.main.AddFilesEvent;
19
import org.gvsig.raster.mosaic.swing.main.AddFilesListener;
20
import org.gvsig.raster.mosaic.swing.main.AddFilesPanel;
21
import org.gvsig.tools.locator.LocatorException;
22
import org.slf4j.Logger;
23
import org.slf4j.LoggerFactory;
24

  
25
public class MainDialogActions implements AddFilesListener {
26
	private Logger                          log                  = LoggerFactory.getLogger(MainDialogActions.class);
27
	private String                          file                 = null;
28
	private String                          folder               = null;
29
	private AddFilesPanel                   addFilesPanel        = null;
30
	private AbstractViewPanel               selectedView         = null;
31
	
32
	public MainDialogActions(AddFilesPanel panel, String file, String folder) {
33
		this.file = file;
34
		this.folder = folder;
35
		this.addFilesPanel = panel;
36
	}
37
	
38
	private void loadLayerInView(RasterDataStore mainRasterStore) throws LoadLayerException {
39
		MapContextManager mcm = MapContextLocator.getMapContextManager();
40
		FLyrRaster lyr = (FLyrRaster) mcm.createLayer(file, mainRasterStore);
41
		lyr.reload();
42

  
43
		getView().getMapControl().getMapContext().beginAtomicEvent();
44
		getView().getMapControl().getMapContext().getLayers().addLayer(lyr);
45
		getView().getMapControl().getMapContext().invalidate();
46
		getView().getMapControl().getMapContext().endAtomicEvent();
47
	}
48
	
49
	private AbstractViewPanel getView() {
50
		if(selectedView == null) {
51
			IWindow[] wList = PluginServices.getMDIManager().getAllWindows();
52
			for (int i = 0; i < wList.length; i++) {
53
				if(wList[i] instanceof AbstractViewPanel)
54
					selectedView = (AbstractViewPanel)wList[i];
55
			}
56
		}
57
		return selectedView;
58
	}
59

  
60
	public void actionAddFiles(AddFilesEvent e) {
61
		File[] fList = e.getFileList();
62
		for (int i = 0; i < fList.length; i++) {
63
			try {
64
				RasterDataStore store = RasterLocator.getManager().getProviderServices().open(fList[i].getAbsolutePath());
65
				if(store != null)
66
					addFilesPanel.addDstFile(
67
							store, 
68
							getLayerNameFromFileName(store.getFullName()), 
69
							store.getBandCount(), 
70
							store.getDataType()[0]);
71
			} catch (RasterDriverException e1) {
72
				log.debug("Error loading a RasterDataStore from the list", e1);
73
			} catch (InitializeException e1) {
74
				log.debug("Error loading a RasterDataStore from the list", e1);
75
			} catch (ProviderNotRegisteredException e1) {
76
				log.debug("Error loading a RasterDataStore from the list", e1);
77
			} catch (LocatorException e1) {
78
				log.debug("Error loading a RasterDataStore from the list", e1);
79
			} catch (NotSupportedExtensionException e1) {
80
				log.debug("Error loading a RasterDataStore from the list", e1);
81
			}
82
		}
83
	}
84

  
85
	public void actionAddFolder(AddFilesEvent e) {
86
		File[] folderList = e.getFileList();
87
		for (int i = 0; i < folderList.length; i++) {
88
			try {
89
				RasterDataStore store = RasterLocator.getManager().getProviderServices().open(folderList[i].getAbsolutePath());
90
				if(store != null)
91
					addFilesPanel.addDstFile(
92
							store, 
93
							getLayerNameFromFileName(store.getFullName()), 
94
							store.getBandCount(), 
95
							store.getDataType()[0]);
96
			} catch (RasterDriverException e1) {
97
				log.debug("Error loading a RasterDataStore from the list", e1);
98
			} catch (InitializeException e1) {
99
				log.debug("Error loading a RasterDataStore from the list", e1);
100
			} catch (ProviderNotRegisteredException e1) {
101
				log.debug("Error loading a RasterDataStore from the list", e1);
102
			} catch (LocatorException e1) {
103
				log.debug("Error loading a RasterDataStore from the list", e1);
104
			} catch (NotSupportedExtensionException e1) {
105
				log.debug("Error loading a RasterDataStore from the list", e1);
106
			}
107
		}
108
	}
109
	
110
	private String getLayerNameFromFileName(String fullName) {
111
		if(fullName.contains(File.separator)) {
112
			int index = fullName.lastIndexOf(File.separator);
113
			fullName = fullName.substring(index + 1);
114
		}
115
		
116
		/*if(fullName.contains(".")) {
117
			int index = fullName.lastIndexOf(".");
118
			fullName = fullName.substring(0, index);
119
		}*/
120
		return fullName;
121
	}
122
}
0 123

  
org.gvsig.raster.mosaic/trunk/org.gvsig.raster.mosaic/org.gvsig.raster.mosaic.app/src/main/java/org/gvsig/raster/mosaic/app/MosaicSupportExtension.java
23 23

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

  
29 28
import javax.swing.JComponent;
......
34 33
import org.gvsig.andami.ui.mdiManager.IWindow;
35 34
import org.gvsig.app.project.documents.view.gui.AbstractViewPanel;
36 35
import org.gvsig.fmap.dal.coverage.RasterLocator;
37
import org.gvsig.fmap.dal.coverage.exception.NotSupportedExtensionException;
38
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException;
39
import org.gvsig.fmap.dal.coverage.store.RasterDataStore;
40
import org.gvsig.fmap.dal.exception.InitializeException;
41
import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException;
42 36
import org.gvsig.fmap.mapcontext.layers.FLayer;
43 37
import org.gvsig.fmap.mapcontext.layers.FLayers;
44 38
import org.gvsig.i18n.Messages;
45 39
import org.gvsig.raster.fmap.layers.FLyrRaster;
46 40
import org.gvsig.raster.mosaic.app.gui.MainWindow;
47 41
import org.gvsig.raster.mosaic.swing.MosaicSwingLocator;
48
import org.gvsig.raster.mosaic.swing.main.AddFilesEvent;
49
import org.gvsig.raster.mosaic.swing.main.AddFilesListener;
50 42
import org.gvsig.raster.mosaic.swing.main.AddFilesPanel;
51 43
import org.gvsig.raster.swing.RasterSwingLocator;
52 44
import org.gvsig.raster.swing.basepanel.IButtonsPanel;
......
54 46
import org.gvsig.tools.ToolsLocator;
55 47
import org.gvsig.tools.extensionpoint.ExtensionPoint;
56 48
import org.gvsig.tools.extensionpoint.ExtensionPointManager;
57
import org.gvsig.tools.locator.LocatorException;
58
import org.slf4j.Logger;
59
import org.slf4j.LoggerFactory;
60 49

  
61 50
/**
62 51
 * Extension to add mosaic support. This extension adds a panel to the properties raster dialog
63 52
 *
64 53
 * @author Nacho Brodin (nachobrodin@gmail.com)
65 54
 */
66
public class MosaicSupportExtension extends Extension implements ActionListener, AddFilesListener {
67
	private Logger                          log                  = LoggerFactory.getLogger(MosaicSupportExtension.class);
55
public class MosaicSupportExtension extends Extension implements ActionListener {
56
	//private Logger                          log                  = LoggerFactory.getLogger(MosaicSupportExtension.class);
68 57
	private CreateNewLayerPanel             newLayerPanel        = null;
69 58
	private MainWindow                      layerNamewindow      = null;
70 59
	private MainWindow                      addFilesWindow       = null;
71 60
	private AddFilesPanel                   addFilesPanel        = null;
61
	private MainDialogActions               actions              = null;
72 62
	
73 63
	public void execute(String actionCommand) {
74 64
		if (actionCommand.compareTo("MosaicCreator") == 0) {
......
117 107

  
118 108
	public void actionPerformed(ActionEvent e) {
119 109
		if(e.getSource() == layerNamewindow.getButtonsPanel().getButton(IButtonsPanel.BUTTON_ACCEPT)) {
120
			String file = getNewLayerPanel().getFileSelected();
121
			String folder = getNewLayerPanel().getDirectorySelected();
122 110
			String[] suffixList = RasterLocator.getManager().getProviderServices().getReadOnlyFormatList();
123
			addFilesPanel = MosaicSwingLocator.getSwingManager().createAddFilesPanel(this, suffixList);
111
			
112
			addFilesPanel = MosaicSwingLocator.getSwingManager().createAddFilesPanel(suffixList);
124 113
			loadFilesInAddFilesPanel(addFilesPanel);
114
			
115
			String file = getNewLayerPanel().getFileSelected();
116
			String folder = getNewLayerPanel().getDirectorySelected();
117
			actions = new MainDialogActions(addFilesPanel, file, folder);
118
			addFilesPanel.addListener(actions);
119
			
125 120
			addFilesWindow = new MainWindow(addFilesPanel.getJComponent(), Messages.getText("add_files"), 480, 420, this, true);
126 121
			PluginServices.getMDIManager().addCentredWindow(addFilesWindow);
127 122
		}
128 123
		
129
		//Button of load layer in the main dialog
130
		/*if(e.getSource() == bandSelectorwindow.getButtonsPanel().getButton(IButtonsPanel.BUTTON_USR1)) {
131
			actions.loadLayer();
124
		if(e.getSource() == addFilesWindow.getButtonsPanel().getButton(IButtonsPanel.BUTTON_USR1)) {
132 125
		}
133 126
		
134
		//Button of create one file with al files
135
		if(e.getSource() == bandSelectorwindow.getButtonsPanel().getButton(IButtonsPanel.BUTTON_USR2)) {
136
			actions.buildOneLayer();
137
		}*/
127
		if(e.getSource() == addFilesWindow.getButtonsPanel().getButton(IButtonsPanel.BUTTON_USR2)) {
128
		}
138 129
	}
139 130
	
140 131
	private void loadFilesInAddFilesPanel(AddFilesPanel panel) {
......
150 141
						lyrRaster.getDataStore().getDataType()[0]);
151 142
			}
152 143
		}
153
		
154 144
	}
155 145
	
156 146
	public AbstractViewPanel getActiveView() {
......
166 156
		return null;
167 157
	}
168 158

  
169
	public void actionAddFiles(AddFilesEvent e) {
170
		File[] fList = e.getFileList();
171
		for (int i = 0; i < fList.length; i++) {
172
			try {
173
				RasterDataStore store = RasterLocator.getManager().getProviderServices().open(fList[i].getAbsolutePath());
174
				if(store != null)
175
					addFilesPanel.addDstFile(
176
							store, 
177
							getLayerNameFromFileName(store.getFullName()), 
178
							store.getBandCount(), 
179
							store.getDataType()[0]);
180
			} catch (RasterDriverException e1) {
181
				log.debug("Error loading a RasterDataStore from the list", e1);
182
			} catch (InitializeException e1) {
183
				log.debug("Error loading a RasterDataStore from the list", e1);
184
			} catch (ProviderNotRegisteredException e1) {
185
				log.debug("Error loading a RasterDataStore from the list", e1);
186
			} catch (LocatorException e1) {
187
				log.debug("Error loading a RasterDataStore from the list", e1);
188
			} catch (NotSupportedExtensionException e1) {
189
				log.debug("Error loading a RasterDataStore from the list", e1);
190
			}
191
		}
192
	}
193

  
194
	public void actionAddFolder(AddFilesEvent e) {
195
		File[] folderList = e.getFileList();
196
		for (int i = 0; i < folderList.length; i++) {
197
			try {
198
				RasterDataStore store = RasterLocator.getManager().getProviderServices().open(folderList[i].getAbsolutePath());
199
				if(store != null)
200
					addFilesPanel.addDstFile(
201
							store, 
202
							getLayerNameFromFileName(store.getFullName()), 
203
							store.getBandCount(), 
204
							store.getDataType()[0]);
205
			} catch (RasterDriverException e1) {
206
				log.debug("Error loading a RasterDataStore from the list", e1);
207
			} catch (InitializeException e1) {
208
				log.debug("Error loading a RasterDataStore from the list", e1);
209
			} catch (ProviderNotRegisteredException e1) {
210
				log.debug("Error loading a RasterDataStore from the list", e1);
211
			} catch (LocatorException e1) {
212
				log.debug("Error loading a RasterDataStore from the list", e1);
213
			} catch (NotSupportedExtensionException e1) {
214
				log.debug("Error loading a RasterDataStore from the list", e1);
215
			}
216
		}
217
	}
218
	
219
	private String getLayerNameFromFileName(String fullName) {
220
		if(fullName.contains(File.separator)) {
221
			int index = fullName.lastIndexOf(File.separator);
222
			fullName = fullName.substring(index + 1);
223
		}
224
		
225
		/*if(fullName.contains(".")) {
226
			int index = fullName.lastIndexOf(".");
227
			fullName = fullName.substring(0, index);
228
		}*/
229
		return fullName;
230
	}
231 159
}
org.gvsig.raster.mosaic/trunk/org.gvsig.raster.mosaic/org.gvsig.raster.mosaic.swing/org.gvsig.raster.mosaic.swing.impl/src/main/java/org/gvsig/raster/mosaic/swing/impl/DefaultMosaicSwingManager.java
2 2

  
3 3
import org.gvsig.raster.mosaic.swing.MosaicSwingManager;
4 4
import org.gvsig.raster.mosaic.swing.impl.main.AddFilesPanelImpl;
5
import org.gvsig.raster.mosaic.swing.main.AddFilesListener;
6 5
import org.gvsig.raster.mosaic.swing.main.AddFilesPanel;
7 6

  
8 7
/**
......
23 22
		return internalInstance;
24 23
	}
25 24

  
26
	public AddFilesPanel createAddFilesPanel(AddFilesListener filesListener, String[] suffixList) {
27
		return new AddFilesPanelImpl(filesListener, suffixList);
25
	public AddFilesPanel createAddFilesPanel(String[] suffixList) {
26
		return new AddFilesPanelImpl(suffixList);
28 27
	}
29 28

  
30 29
}
org.gvsig.raster.mosaic/trunk/org.gvsig.raster.mosaic/org.gvsig.raster.mosaic.swing/org.gvsig.raster.mosaic.swing.impl/src/main/java/org/gvsig/raster/mosaic/swing/impl/main/AddFilesPanelImpl.java
81 81
	private AddFilesListener             listener               = null;
82 82
	private List<String>                 suffixList             = null;
83 83
	
84
	public AddFilesPanelImpl(AddFilesListener filesListener, List<String> suffixList) {
84
	public AddFilesPanelImpl(List<String> suffixList) {
85 85
		columnNames = new String[]{ Messages.getText("bands"), Messages.getText("file")};
86 86
		entriesSrc = new ArrayList<TableEntry>();
87 87
		entriesDst = new ArrayList<TableEntry>();
88
		this.listener = filesListener;
89 88
		this.suffixList = suffixList;
90 89
		initialize();
91 90
	}
92 91
	
93
	public AddFilesPanelImpl(AddFilesListener filesListener, String[] suffixList) {
92
	public AddFilesPanelImpl(String[] suffixList) {
94 93
		columnNames = new String[]{ Messages.getText("bands"), Messages.getText("file")};
95 94
		entriesSrc = new ArrayList<TableEntry>();
96 95
		entriesDst = new ArrayList<TableEntry>();
97
		this.listener = filesListener;
98 96
		this.suffixList = Arrays.asList(suffixList);
99 97
		initialize();
100 98
	}
......
117 115
		}
118 116
	}
119 117
	
118
	//*******************************************************
119
	//***************API Implementation**********************
120
	
120 121
	public void addSrcFile(Object data, String text, int nBands, int datatype) {
121 122
		TableEntry entry = new TableEntry(text, data, nBands, datatype);
122 123
		entriesSrc.add(entry);
......
129 130
		updateUIDstTable();
130 131
	}
131 132
	
133
	public void addListener(AddFilesListener filesListener) {
134
		this.listener = filesListener;
135
	}
136
	
137
	public JComponent getJComponent() {
138
		return this;
139
	}
140
	
141
	//*****************************************************
142
	
132 143
	private void updateUISrcTable() {
133 144
		modelSrc = new DefaultTableModel(columnNames, entriesSrc.size());
134 145
		getFileListSrc().setModel(modelSrc);
135
		getFileListSrc().getColumnModel().getColumn(0).setMaxWidth(45);
146
		getFileListSrc().getColumnModel().getColumn(0).setMaxWidth(55);
136 147
		for (int i = 0; i < entriesSrc.size(); i++) {
137 148
			getFileListSrc().getModel().setValueAt(entriesSrc.get(i).bandCount, i, 0);
138 149
			getFileListSrc().getModel().setValueAt(entriesSrc.get(i), i, 1);
......
142 153
	private void updateUIDstTable() {
143 154
		modelDst = new DefaultTableModel(columnNames, entriesDst.size());
144 155
		getFileListDst().setModel(modelDst);
145
		getFileListDst().getColumnModel().getColumn(0).setMaxWidth(45);
156
		getFileListDst().getColumnModel().getColumn(0).setMaxWidth(55);
146 157
		for (int i = 0; i < entriesDst.size(); i++) {
147 158
			getFileListDst().getModel().setValueAt(entriesDst.get(i).bandCount, i, 0);
148 159
			getFileListDst().getModel().setValueAt(entriesDst.get(i), i, 1);
......
450 461
		if(tableDst == null) {
451 462
			tableDst = new JTable(getModelDst());
452 463
			TableColumnModel columnModel = tableDst.getColumnModel();
453
			columnModel.getColumn(0).setMaxWidth(45);
464
			columnModel.getColumn(0).setMaxWidth(55);
454 465
		}
455 466
		return tableDst;
456 467
	}
......
477 488
		if(tableSrc == null) {
478 489
			tableSrc = new JTable(getModelSrc());
479 490
			TableColumnModel columnModel = tableSrc.getColumnModel();
480
			columnModel.getColumn(0).setMaxWidth(45);
491
			columnModel.getColumn(0).setMaxWidth(55);
481 492
		}
482 493
		return tableSrc;
483 494
	}
......
670 681
		}
671 682
		return fileChooser;
672 683
	}
673
	
674
	public JComponent getJComponent() {
675
		return this;
676
	}
677 684
}
org.gvsig.raster.mosaic/trunk/org.gvsig.raster.mosaic/org.gvsig.raster.mosaic.swing/org.gvsig.raster.mosaic.swing.impl/src/test/java/org/gvsig/raster/mosaic/TestAddFilesPanel.java
12 12
import org.gvsig.raster.mosaic.swing.main.AddFilesListener;
13 13

  
14 14
public class TestAddFilesPanel implements AddFilesListener {
15
	private int                          w        = 550;
15
	private int                          w        = 480;
16 16
	private int                          h        = 420;
17 17
	private JFrame                       frame    = new JFrame();
18
	private AddFilesPanelImpl                desc     = null;
18
	private AddFilesPanelImpl            desc     = null;
19 19

  
20 20
	public TestAddFilesPanel() {
21 21
		List<String> list = new ArrayList<String>();
22 22
		list.add("tif");
23 23
		list.add("jpg");
24 24
		list.add("ecw");
25
		desc = new AddFilesPanelImpl(this, list);
25
		desc = new AddFilesPanelImpl(list);
26
		desc.addListener(this);
26 27
		desc.addSrcFile(null, "capa 1", 3, Buffer.TYPE_BYTE);
27 28
		desc.addSrcFile(null, "capa 2", 4, Buffer.TYPE_BYTE);
28 29
		desc.addSrcFile(null, "capa 3", 5, Buffer.TYPE_BYTE);
org.gvsig.raster.mosaic/trunk/org.gvsig.raster.mosaic/org.gvsig.raster.mosaic.swing/org.gvsig.raster.mosaic.swing.api/src/main/java/org/gvsig/raster/mosaic/swing/MosaicSwingManager.java
1 1
package org.gvsig.raster.mosaic.swing;
2 2

  
3
import org.gvsig.raster.mosaic.swing.main.AddFilesListener;
4 3
import org.gvsig.raster.mosaic.swing.main.AddFilesPanel;
5 4

  
6 5

  
7 6
public interface MosaicSwingManager {
8
	public AddFilesPanel createAddFilesPanel(AddFilesListener filesListener, String[] suffixList);
7
	public AddFilesPanel createAddFilesPanel(String[] suffixList);
9 8
}
org.gvsig.raster.mosaic/trunk/org.gvsig.raster.mosaic/org.gvsig.raster.mosaic.swing/org.gvsig.raster.mosaic.swing.api/src/main/java/org/gvsig/raster/mosaic/swing/main/AddFilesPanel.java
6 6
	
7 7
	public JComponent getJComponent();
8 8
	
9
	public void addListener(AddFilesListener addFilesListener);
10
	
9 11
	public void addSrcFile(Object data, String text, int nBands, int datatype);
10 12
	
11 13
	public void addDstFile(Object data, String text, int nBands, int datatype);

Also available in: Unified diff