Revision 22463 trunk/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/view/legend/gui/JLegendFileChooser.java

View differences:

JLegendFileChooser.java
1
package com.iver.cit.gvsig.project.documents.view.legend.gui;
2

  
3
import java.io.File;
4

  
5
import javax.swing.JFileChooser;
6
import javax.swing.filechooser.FileFilter;
7

  
8
import com.iver.andami.PluginServices;
9
import com.iver.cit.gvsig.fmap.drivers.legend.IFMapLegendDriver;
10

  
11
public class JLegendFileChooser extends JFileChooser  {
12

  
13
	private static String lastPath;
14
	private IFMapLegendDriver[] drivers;
15
	private boolean write_mode = false;
16
	
17
	
18
	
19
	
20
	public JLegendFileChooser() {
21
		super();
22
	}
23

  
24
	public JLegendFileChooser(IFMapLegendDriver[] legendDrivers) {
25
		this(legendDrivers, false);
26
	}
27
	
28
	public JLegendFileChooser(final IFMapLegendDriver[] legendDrivers, boolean write_mode) {
29
		super(lastPath);
30
		this.write_mode = write_mode;
31
		this.drivers = legendDrivers;
32
		
33
		setMultiSelectionEnabled(false);
34
		
35
		if (!this.write_mode){//load method->"all the drivers in one"
36
			
37
			this.setFileFilter(new FileFilter() {
38
				@Override
39
				public boolean accept(File f) {
40
					for (int i = 0; i < legendDrivers.length; i++) {
41
						if (legendDrivers[i].accept(f))
42
							return true;
43
					}
44
					return false;
45
				}
46

  
47
				@Override
48
				public String getDescription() {
49
					String strLegendFormats = "";
50
					for (int i = 0; i < legendDrivers.length; i++) {
51
						strLegendFormats += "*."+legendDrivers[i].getFileExtension();
52
						if (i<legendDrivers.length-1) strLegendFormats += ", ";
53
					}
54

  
55
					return PluginServices.getText(this, "all_supported_legend_formats") + 
56
					" ("+strLegendFormats+")";
57
				}
58
			});
59
		}
60
		else {//write method->all drivers are separated
61
			for (int i = 0; i < legendDrivers.length; i++) {
62
				final IFMapLegendDriver driver = legendDrivers[i];
63
				FileFilter aFilter = new FileFilter() {
64

  
65
					@Override
66
					public boolean accept(File f) {
67
						return driver.accept(f);
68
					}
69

  
70
					@Override
71
					public String getDescription() {
72
						return PluginServices.getText(this, driver.getDescription()+" (*."+driver.getFileExtension()+")");
73
					}
74
					
75
				};
76
				this.addChoosableFileFilter(aFilter);
77

  
78
			}
79
		}
80
	}
81
	
82
	
83

  
84
	public IFMapLegendDriver getSuitableDriver() {
85
		File f = getSelectedFile();
86
					
87
		for (int i = 0; drivers != null && i < drivers.length; i++) {
88
			if (drivers[i].accept(f))
89
				return drivers[i];
90
		}
91
		return null;
92
	}
93

  
94
	
95

  
96
	public IFMapLegendDriver getDriverFromDescription(File file) {
97
		if (getFileFilter() != null){
98
			String descripFile = getFileFilter().getDescription();
99
			IFMapLegendDriver myDriver = null;
100

  
101
			for (int i = 0; i < drivers.length; i++) {
102

  
103
				myDriver = drivers[i];
104

  
105
				String driverDesc = myDriver.getDescription()+" (*."+myDriver.getFileExtension()+")";
106

  
107
				if (driverDesc.equals(descripFile)){
108
					return myDriver;
109
				}
110
			}
111
		}
112
		return null;
113
	}
114

  
115
	public File getSelectedFile() {
116
		File f = super.getSelectedFile();
117
		
118
		IFMapLegendDriver myDriver = getDriverFromDescription(f);
119
		if (f!=null){
120
			if(myDriver != null && !(f.getPath().toLowerCase().endsWith("."+myDriver.getFileExtension()))){
121
				f = new File(f.getPath()+ "."+myDriver.getFileExtension());
122
			}
123
			lastPath = f.getAbsolutePath().substring(0, f.getAbsolutePath().lastIndexOf(File.separator));
124
		}
125
		return f;
126
	}
127

  
128

  
129
}
1
package com.iver.cit.gvsig.project.documents.view.legend.gui;
2

  
3
import java.io.File;
4

  
5
import javax.swing.JFileChooser;
6
import javax.swing.filechooser.FileFilter;
7

  
8
import com.iver.andami.PluginServices;
9
import com.iver.cit.gvsig.fmap.drivers.legend.IFMapLegendDriver;
10

  
11
/**
12
 * 
13
 * JLegendFileChooser.java
14
 *
15
 * 
16
 * @author jaume dominguez faus - jaume.dominguez@iver.es Jul 22, 2008
17
 *
18
 */
19
public class JLegendFileChooser extends JFileChooser  {
20
	private static final long serialVersionUID = 8855060580358068594L;
21
	private static String lastPath;
22
	private IFMapLegendDriver[] drivers;
23
	private boolean write_mode = false;
24
	public static String driverVersion;
25

  
26
	public JLegendFileChooser() {
27
		super();
28
	}
29

  
30
	public JLegendFileChooser(IFMapLegendDriver[] legendDrivers) {
31
		this(legendDrivers, false);
32
	}
33

  
34
	public JLegendFileChooser(final IFMapLegendDriver[] legendDrivers, boolean write_mode) {
35
		super(lastPath);
36
		this.write_mode = write_mode;
37
		this.drivers = legendDrivers;
38

  
39
		setMultiSelectionEnabled(false);
40

  
41
		if (!this.write_mode){//load method->"all the drivers in one"
42

  
43
			this.setFileFilter(new FileFilter() {
44
				@Override
45
				public boolean accept(File f) {
46
					for (int i = 0; i < legendDrivers.length; i++) {
47
						if (legendDrivers[i].accept(f))
48
							return true;
49
					}
50
					return false;
51
				}
52

  
53
				@Override
54
				public String getDescription() {
55
					String strLegendFormats = "";
56
					for (int i = 0; i < legendDrivers.length; i++) {
57

  
58
						strLegendFormats += "*."+legendDrivers[i].getFileExtension();
59
						if (i<legendDrivers.length-1) strLegendFormats += ", ";
60
					}
61

  
62
					return PluginServices.getText(this, "all_supported_legend_formats") + 
63
					" ("+strLegendFormats+")";
64
				}
65
			});
66
		}
67
		else {//write method->all drivers are separated
68
			for (int i = 0; i < legendDrivers.length; i++) {
69
				final IFMapLegendDriver driver = legendDrivers[i];
70

  
71
				if (driver.getSupportedVersions() != null) {
72

  
73
					for (int j = 0; j < driver.getSupportedVersions().size(); j++) {
74

  
75
						final String version = driver.getSupportedVersions().get(j);
76

  
77
						FileFilter aFilter = new FileFilter() {
78

  
79
							@Override
80
							public boolean accept(File f) {
81
								return driver.accept(f);
82
							}
83

  
84
							@Override
85
							public String getDescription() {
86
								return PluginServices.getText(this, driver.getDescription()+" "+version+" (*."+driver.getFileExtension()+")");
87
							}
88

  
89
						};
90
						this.addChoosableFileFilter(aFilter);
91
					}
92
				}
93
				else {	
94

  
95
					FileFilter aFilter = new FileFilter() {
96

  
97
						@Override
98
						public boolean accept(File f) {
99
							return driver.accept(f);
100
						}
101

  
102
						@Override
103
						public String getDescription() {
104
							return PluginServices.getText(this, driver.getDescription()+" (*."+driver.getFileExtension()+")");
105
						}
106

  
107
					};
108
					this.addChoosableFileFilter(aFilter);
109
				}
110

  
111
			}
112
		}
113
	}
114

  
115

  
116

  
117
	public IFMapLegendDriver getSuitableDriver() {
118
		File f = getSelectedFile();
119

  
120
		for (int i = 0; drivers != null && i < drivers.length; i++) {
121
			if (drivers[i].accept(f))
122
				return drivers[i];
123
		}
124
		return null;
125
	}
126

  
127

  
128

  
129
	public IFMapLegendDriver getDriverFromDescription(File file) {
130
		if (getFileFilter() != null){
131
			String descripFile = getFileFilter().getDescription();
132
			IFMapLegendDriver myDriver = null;
133

  
134
			for (int i = 0; i < drivers.length; i++) {
135

  
136
				myDriver = drivers[i];
137
				String driverDesc;
138

  
139
				if(myDriver.getSupportedVersions() != null) {
140
					for (int j = 0; j < myDriver.getSupportedVersions().size(); j++) {
141
						driverDesc = myDriver.getDescription()+" "+myDriver.getSupportedVersions().get(j)+" (*."+myDriver.getFileExtension()+")";
142
						if (driverDesc.equals(descripFile)){
143
							driverVersion = myDriver.getSupportedVersions().get(j);
144
							return myDriver;
145
						}
146
					}
147
				}
148
				else { 
149
					driverDesc = myDriver.getDescription()+" (*."+myDriver.getFileExtension()+")";
150
					if (driverDesc.equals(descripFile)){
151
						driverVersion ="";
152
						return myDriver;
153
					}
154
				}
155
			}
156
		}
157
		return null;
158
	}
159

  
160
	public File getSelectedFile() {
161
		File f = super.getSelectedFile();
162

  
163
		IFMapLegendDriver myDriver = getDriverFromDescription(f);
164
		if (f!=null){
165
			if(myDriver != null && !(f.getPath().toLowerCase().endsWith("."+myDriver.getFileExtension()))){
166
				f = new File(f.getPath()+ "."+myDriver.getFileExtension());
167
			}
168
			lastPath = f.getAbsolutePath().substring(0, f.getAbsolutePath().lastIndexOf(File.separator));
169
		}
170
		return f;
171
	}
172

  
173
	public static String getDriverVersion() {
174
		return driverVersion;
175
	}
176

  
177

  
178
}

Also available in: Unified diff