Revision 854

View differences:

org.gvsig.proj/branches/refactor2018/org.gvsig.proj/pom.xml
457 457
        <project.build.sourceEncoding>ISO-8859-1</project.build.sourceEncoding>
458 458
        <localRepository>${user.home}/.m2/repository</localRepository>
459 459
        <site-repository>dav:https://devel.gvsig.org/sites/${project.artifactId}/${project.version}</site-repository>
460
        <gvsig.tools.version>3.0.145</gvsig.tools.version>
460
        <gvsig.tools.version>3.0.152</gvsig.tools.version>
461 461
        <gvsig.metadata.version>1.0.0</gvsig.metadata.version>
462 462
        <gvsig.projection.version>2.0.21</gvsig.projection.version>
463 463
    </properties>
org.gvsig.proj/branches/refactor2018/org.gvsig.proj/org.gvsig.proj.swing/org.gvsig.proj.swing.impl/src/main/java/org/gvsig/proj/swing/impl/CoordinateReferenceSystemSwingDefaultImplLibrary.java
23 23
 */
24 24
package org.gvsig.proj.swing.impl;
25 25

  
26
import java.net.URL;
27

  
26 28
import org.gvsig.proj.swing.CoordinateReferenceSystemSwingLibrary;
27 29
import org.gvsig.proj.swing.CoordinateReferenceSystemSwingLocator;
28 30
import org.gvsig.tools.ToolsLocator;
29 31
import org.gvsig.tools.i18n.I18nManager;
30 32
import org.gvsig.tools.library.AbstractLibrary;
31 33
import org.gvsig.tools.library.LibraryException;
34
import org.gvsig.tools.swing.api.ToolsSwingLocator;
35
import org.gvsig.tools.swing.icontheme.IconTheme;
36
import org.slf4j.LoggerFactory;
32 37

  
33 38
/**
34 39
 * Library for default swing implementation initialization and configuration.
......
58 63
                .getClassLoader(),
59 64
            CoordinateReferenceSystemSwingDefaultImplLibrary.class.getClass()
60 65
                .getName());
66
        
67
        registerIcons();
61 68
    }
62 69

  
70
	
71
	protected void registerIcons() {
72
		IconTheme iconTheme = ToolsSwingLocator.getIconThemeManager().getCurrent();
73
		String group = "swingproj";
74
		registerIcon(group, "bullet_add", null, iconTheme);
75
		registerIcon(group, "bullet_remove", null, iconTheme);
76
		registerIcon(group, "bullet_share", null, iconTheme);
77
		registerIcon(group, "crs_add", null, iconTheme);
78
		registerIcon(group, "crs", null, iconTheme);
79
		registerIcon(group, "ct_add", null, iconTheme);
80
		registerIcon(group, "ct", null, iconTheme);
81
		registerIcon(group, "dropdown", null, iconTheme);
82
		registerIcon(group, "favourite_add", null, iconTheme);
83
		registerIcon(group, "favourite", null, iconTheme);
84
		registerIcon(group, "favourite_remove", null, iconTheme);
85
		registerIcon(group, "filter_alpha", null, iconTheme);
86
		registerIcon(group, "filter_spatial", null, iconTheme);
87
		registerIcon(group, "folder_closed", null, iconTheme);
88
		registerIcon(group, "folder_open", null, iconTheme);
89
		registerIcon(group, "recent", null, iconTheme);
90
		registerIcon(group, "recent_remove", null, iconTheme);
91
		registerIcon(group, "search", null, iconTheme);
92
		registerIcon(group, "search_remove", null, iconTheme);
93
		registerIcon(group, "unlock", null, iconTheme);
94
		registerIcon(group, "spinner", ".gif", iconTheme);
95
	}
96
	
97
	protected void registerIcon(String group, String name, String extension, IconTheme iconTheme) {
98
		if (extension==null) {
99
			extension = ".png";
100
		}
101
		String resourceName = "images/" + group + "/" + name + extension;
102
		String provider = this.getClass().getName();
103
		ClassLoader loader = this.getClass().getClassLoader();
104
		URL resource = null;
105
		try {
106
			resource = loader.getResource(resourceName);
107
			iconTheme.registerDefault(provider, group, name, null, resource);
108
		} catch( Throwable e) {
109
			LoggerFactory.getLogger(CoordinateReferenceSystemSwingDefaultImplLibrary.class)
110
				.info("Can't register icon '" + name + "'.",e);
111
		}
112
	}
63 113
}
org.gvsig.proj/branches/refactor2018/org.gvsig.proj/org.gvsig.proj.swing/org.gvsig.proj.swing.impl/src/main/java/org/gvsig/proj/swing/impl/CrsPanel.java
47 47
   JPanel WktTab = new JPanel();
48 48
   JTextArea txtCrsWkt = new JTextArea();
49 49

  
50
   final protected DefaultCoordinateReferenceSystemSwingManager manager;
51 50
   /**
52 51
    * Default constructor 
53 52
    */
54
   public CrsPanel(DefaultCoordinateReferenceSystemSwingManager manager)
53
   public CrsPanel()
55 54
   {
56
	   this.manager = manager;
57 55
      initializePanel();
58 56
   }
59 57

  
org.gvsig.proj/branches/refactor2018/org.gvsig.proj/org.gvsig.proj.swing/org.gvsig.proj.swing.impl/src/main/java/org/gvsig/proj/swing/impl/CrsSelectorComponent.java
19 19
import javax.swing.tree.TreePath;
20 20
import javax.swing.tree.TreeSelectionModel;
21 21

  
22
import org.apache.commons.io.FilenameUtils;
22 23
import org.gvsig.proj.CoordinateReferenceSystem;
23 24
import org.gvsig.proj.catalog.CRSDefinition;
24 25
import org.gvsig.proj.catalog.CRSType;
25 26
import org.gvsig.proj.catalog.exception.UnsupportedCoordinateReferenceSystemException;
27
import org.gvsig.proj.catalog.extent.GeographicBoundingBox;
26 28
import org.gvsig.proj.swing.CoordinateReferenceSystemSelectorComponent;
27 29
import org.gvsig.proj.swing.impl.tree.AsyncLoadedGroup;
28 30
import org.gvsig.proj.swing.impl.tree.BranchNode;
......
33 35
import org.gvsig.proj.swing.impl.tree.LeafNode;
34 36
import org.gvsig.proj.swing.impl.tree.LoadingNode;
35 37
import org.gvsig.proj.swing.impl.tree.TreeContainer;
38
import org.gvsig.tools.ToolsLocator;
39
import org.gvsig.tools.i18n.I18nManager;
36 40
import org.gvsig.tools.swing.api.ActionListenerSupport;
37 41
import org.gvsig.tools.swing.api.Component;
38 42
import org.gvsig.tools.swing.api.ToolsSwingLocator;
43
import org.gvsig.tools.swing.api.ToolsSwingManager;
44
import org.gvsig.tools.swing.icontheme.IconTheme;
39 45
import org.slf4j.Logger;
40 46
import org.slf4j.LoggerFactory;
41 47

  
......
56 62
	protected DefaultTreeModel model;
57 63
	protected BranchNode root;
58 64
	protected RecentCRSs recent;
65
	protected IconTheme iconTheme = null;
66
	protected I18nManager i18nManager = null;
67
	final protected DefaultCoordinateReferenceSystemSwingManager manager;
68

  
59 69
	
60 70
	public CrsSelectorComponent(DefaultCoordinateReferenceSystemSwingManager manager) {
61
		super(manager);
71
		super();
72
		this.manager = manager;
62 73
		initIcons();
63 74
		initComponents();
64 75
		initTree();
......
68 79
	
69 80
	@Override
70 81
	public ImageIcon loadImage( String imageName ) {
71
		if (imageName.toLowerCase().endsWith(".png") || imageName.toLowerCase().endsWith(".gif")) {
72
			return this.manager.getIconTheme().get(imageName.substring(0, (imageName.length()-4)));
82
		return getIconTheme().get(FilenameUtils.getBaseName(imageName));
83
	}
84
	
85
	private IconTheme getIconTheme() {
86
		if (iconTheme == null) {
87
			iconTheme = ToolsSwingLocator.getIconThemeManager().getCurrent();
73 88
		}
74
		return this.manager.getIconTheme().get(imageName);
89
		return iconTheme;
75 90
	}
76 91
	
92
	private I18nManager getI18nManager() {
93
		if (i18nManager == null) {
94
			i18nManager = ToolsLocator.getI18nManager();
95
		}
96
		return i18nManager;
97
	}
98
	
99
	
77 100
	protected void initComponents() {
101
		ToolsSwingManager swingManager = ToolsSwingLocator.getToolsSwingManager();
78 102
		// hide spatial filter since it is currently not supported
79 103
		this.btnFilterDropdown.setVisible(false);
80 104
		this.pnl_filterType.setVisible(false);
81 105
		this.cboFilterSpatial.setVisible(false);
106

  
107
		swingManager.translate(this.btnSearch);
108
		swingManager.translate(this.btnSearchRemove);
109
		swingManager.translate(this.btnFavoritesAdd);
110
		swingManager.translate(this.btnFavoritesAdd1);
111
		swingManager.translate(this.btnCrsAdd);
112
		swingManager.translate(this.btnFavoritesAdd2);
113
		swingManager.translate(this.lbl_currentCrs);
114
		swingManager.translate(this.btnFavoritesAdd2);
115
		
116
	    this.jtxt_description.setEditable(false);
117
		this.jtxt_description.setText("");
118
		this.jtxt_description.setLineWrap(true);
119
		this.jtxt_description.setWrapStyleWord(true);
120
		this.txtCrsWkt.setEditable(false);
121
		this.txtCrsWkt.setText("");		
122
		/**
123
		 * TODO Update strings in CrsPanel and change the name of some components
124
		 *
82 125
		this.btnSearch.setToolTipText(manager.getTranslation("Search"));
83 126
	    this.btnSearchRemove.setToolTipText(manager.getTranslation("Clear search"));
84 127
	    this.btnFavoritesAdd.setToolTipText(manager.getTranslation("Add selected CRS to favorites"));
......
92 135
		this.jtxt_description.setWrapStyleWord(true);
93 136
		this.txtCrsWkt.setEditable(false);
94 137
		this.txtCrsWkt.setText("");
138
		*/
95 139
	}
96 140
	
97 141
	protected void search() {
98 142
		String filter = getAlphanumericFilter();
99
		//this.cboFilterAlpha.removei
100
		//this.cboFilterAlpha.insertItemAt(filter, 0);
101 143
		if (filter != null && !filter.equals("")) {
102
			//this.cboFilterAlpha.addItem(filter);
103 144
			manager.getCoordinateReferenceSystemTextFilterHistory().add(filter);
104 145
		}
105 146
		for (int i=0; i<root.getChildCount(); i++) {
......
210 251
	}
211 252
	
212 253
	protected void initIcons() {
213
		RECENT_ICON = manager.getIconTheme().get("recent");
214
		FAVOURITE_ICON = manager.getIconTheme().get("favourite");
215
		FOLDER_OPEN_ICON = manager.getIconTheme().get("folder_open");
216
		FOLDER_CLOSED_ICON = manager.getIconTheme().get("folder_closed");
217
		CRS_ICON = manager.getIconTheme().get("crs");
218
		LOADING_ICON = manager.getIconTheme().get("spinner");
254
		RECENT_ICON = getIconTheme().get("recent");
255
		FAVOURITE_ICON = getIconTheme().get("favourite");
256
		FOLDER_OPEN_ICON = getIconTheme().get("folder_open");
257
		FOLDER_CLOSED_ICON = getIconTheme().get("folder_closed");
258
		CRS_ICON = getIconTheme().get("crs");
259
		LOADING_ICON = getIconTheme().get("spinner");
219 260
	}
220 261
	
221 262
	protected void initTree() {
......
223 264
		model = new DefaultTreeModel(root, false);
224 265
		
225 266
		JTree tree = this.treeResults;
226
		
227
		
228 267
		tree.getSelectionModel().setSelectionMode
229 268
        	(TreeSelectionModel.SINGLE_TREE_SELECTION);
230 269
		listenerSupport = ToolsSwingLocator.getToolsSwingManager().createActionListenerSupport();
231 270
		tree.addTreeSelectionListener(this);
232 271
		tree.setCellRenderer(new CellRenderer());
233 272
		
234
		recent = new RecentCRSs(root, manager.getTranslation("Recent"));
273
		recent = new RecentCRSs(root, getI18nManager().getTranslation("Recent"));
235 274
		recent.loadChildren();
236 275
		
237 276
		root.add(recent);
238
		BranchNode epsg = new BranchNode(root, this, manager.getTranslation("EPSG"));
277
		BranchNode epsg = new BranchNode(root, this, getI18nManager().getTranslation("EPSG"));
239 278
		root.add(epsg);
240 279
		CRSSearchFilter projectedCRSs = new CRSSearchFilter();
241 280
		projectedCRSs.setAuthority("EPSG");
242 281
		projectedCRSs.setIncludedTypes(new CRSType[]{CRSType.ProjectedCRSType});
243
		epsg.add(new AuthorityLoadedGroup(epsg, projectedCRSs, manager.getTranslation("Projected")));
282
		epsg.add(new AuthorityLoadedGroup(epsg, projectedCRSs, getI18nManager().getTranslation("Projected")));
244 283
		
245 284
		CRSSearchFilter geographicCRSs = new CRSSearchFilter();
246 285
		geographicCRSs.setAuthority("EPSG");
247 286
		geographicCRSs.setIncludedTypes(new CRSType[]{CRSType.GeographicCRSType});
248
		epsg.add(new AuthorityLoadedGroup(epsg, geographicCRSs, manager.getTranslation("Geographic")));
287
		epsg.add(new AuthorityLoadedGroup(epsg, geographicCRSs, getI18nManager().getTranslation("Geographic")));
249 288

  
250 289
		CRSSearchFilter otherCRSs = new CRSSearchFilter();
251 290
		otherCRSs.setAuthority("EPSG");
252 291
		otherCRSs.setExcludedTypes(new CRSType[]{CRSType.ProjectedCRSType, CRSType.GeographicCRSType});
253
		epsg.add(new AuthorityLoadedGroup(epsg, otherCRSs, manager.getTranslation("Other")));
292
		epsg.add(new AuthorityLoadedGroup(epsg, otherCRSs, getI18nManager().getTranslation("Other")));
254 293
		tree.setModel(model);
255 294
		
256 295
		tree.expandPath(new TreePath(model.getPathToRoot(epsg)));
......
309 348
	}
310 349

  
311 350
	@Override
312
	public void addCRSSpatialFilter(String label, double minLon, double maxLon, double minLat, double maxLat) {
351
	public void addCRSSpatialFilter(String label, GeographicBoundingBox boundingBox) {
313 352
		// TODO Auto-generated method stub
314 353
	}
315 354

  
......
423 462
	public LoadingNode createLoadingNode(BranchNode parent) {
424 463
		return new LoadingNode(parent,
425 464
				this,
426
				this.manager.getTranslation("Loading..."));
465
				getI18nManager().getTranslation("Loading..."));
427 466
	}
428 467

  
429 468

  
org.gvsig.proj/branches/refactor2018/org.gvsig.proj/org.gvsig.proj.swing/org.gvsig.proj.swing.impl/src/main/java/org/gvsig/proj/swing/impl/tree/AsyncLoadedGroup.java
5 5

  
6 6
import javax.swing.tree.TreeNode;
7 7

  
8
import org.gvsig.tools.ToolsLocator;
9
import org.gvsig.tools.i18n.I18nManager;
10

  
8 11
public abstract class AsyncLoadedGroup extends BranchNode {
9 12
	private boolean loaded = false;
10 13
	private boolean loading = false;
11 14
	private GroupLoader loader = null;
12
	final protected TreeContainer container;
15
	final protected I18nManager i18nManager = ToolsLocator.getI18nManager(); 
13 16
	
14 17
	public AsyncLoadedGroup(TreeNode parent, TreeContainer container, String message) {
15 18
		super(parent, container, message);
16
		this.container = container;
17 19
	}
18 20
	
19 21
	/**
......
33 35
			loading = true;
34 36
			doLoad();
35 37
			children.clear();
36
			children.add(new LoadingNode(this, container, container.getManager().getTranslation("Loading...")));
38
			children.add(new LoadingNode(this, container, i18nManager.getTranslation("Loading...")));
37 39
		}
38 40
		else {
39 41
			doLoad();
org.gvsig.proj/branches/refactor2018/org.gvsig.proj/org.gvsig.proj.swing/org.gvsig.proj.swing.impl/src/main/java/org/gvsig/proj/swing/impl/tree/BranchNode.java
8 8
import javax.swing.ImageIcon;
9 9
import javax.swing.tree.TreeNode;
10 10

  
11
import org.gvsig.tools.swing.api.ToolsSwingLocator;
12
import org.gvsig.tools.swing.icontheme.IconTheme;
13

  
11 14
public class BranchNode implements TreeNode {
12 15
	final protected TreeNode parent;
13 16
	protected ArrayList<TreeNode> children = new ArrayList<TreeNode>();
......
16 19
	protected ImageIcon FOLDER_OPEN_ICON;
17 20
	protected ImageIcon FOLDER_CLOSED_ICON;
18 21
	final protected TreeContainer container;
22
	final protected IconTheme iconTheme = ToolsSwingLocator.getIconThemeManager().getCurrent();
19 23
	
20 24
	public BranchNode(TreeNode parent,
21 25
			TreeContainer container,
......
24 28
		this.container = container;
25 29
		this.parent = parent;
26 30
		this.message = message;
27
		FOLDER_OPEN_ICON = container.getManager().getIconTheme().get("folder_open");
28
		FOLDER_CLOSED_ICON = container.getManager().getIconTheme().get("folder_closed");
31
		FOLDER_OPEN_ICON = iconTheme.get("folder_open");
32
		FOLDER_CLOSED_ICON = iconTheme.get("folder_closed");
29 33
	}
30 34
	
31 35
	public void add(TreeNode child) {
org.gvsig.proj/branches/refactor2018/org.gvsig.proj/org.gvsig.proj.swing/org.gvsig.proj.swing.impl/src/main/java/org/gvsig/proj/swing/impl/tree/LoadingNode.java
10 10
import javax.swing.tree.TreeNode;
11 11
import javax.swing.tree.TreePath;
12 12

  
13
import org.gvsig.tools.swing.api.ToolsSwingLocator;
14

  
13 15
public class LoadingNode extends LeafNode {
14 16
	private String message;
15 17
	private ImageIcon icon;
......
18 20
	
19 21
	public LoadingNode(BranchNode parent, TreeContainer container, String message) {
20 22
		super(parent);
23
		
21 24
		// we don't want to reuse the icon for other nodes, since we'll add an observer to the icon 
22
		this.icon = new ImageIcon(container.getManager().getIconTheme().get("spinner").getImage());
25
		this.icon = new ImageIcon(ToolsSwingLocator.getIconThemeManager().getCurrent().get("spinner").getImage());
23 26
		this.message = message;
24 27
		this.tree = container.getTree();
25 28
		
org.gvsig.proj/branches/refactor2018/org.gvsig.proj/org.gvsig.proj.swing/org.gvsig.proj.swing.impl/src/main/java/org/gvsig/proj/swing/impl/DefaultCoordinateReferenceSystemSwingManager.java
63 63
    private volatile boolean registeredIcons = false;
64 64

  
65 65
    public DefaultCoordinateReferenceSystemSwingManager() {
66
    	this.iconTheme = ToolsSwingLocator.getIconThemeManager().getCurrent();
66
    	//this.iconTheme = ToolsSwingLocator.getIconThemeManager().getCurrent();
67 67
        //this.manager = CoordinateReferenceSystemLocator.getManager();
68
        this.i18nmanager = ToolsLocator.getI18nManager();
68
        //this.i18nmanager = ToolsLocator.getI18nManager();
69 69
        crsHistory = new History<CoordinateReferenceSystem>();
70 70
        transformationHistory = new History<CoordinateTransformation>();
71 71
        crsTextFilterHistory = new History<String>();
......
78 78
        //return this.manager;
79 79
    }
80 80

  
81
    public String getTranslation(String key) {
82
        return this.i18nmanager.getTranslation(key);
83
    }
84

  
85
    public WindowManager getWindowManager() {
86
        return ToolsSwingLocator.getWindowManager();
87
    }
88

  
89 81
    public CoordinateReferenceSystemSelectorComponent createCoordinateReferenceSystemSelectionComponent() {
90 82
    	/**
91 83
    	 * Ensures the icons have been registered. We can't do it at manager initialization because the
92 84
    	 * IconThemeManager may not be initialized at that point
93 85
    	 */
94
    	registerIcons();
95 86
        return new CrsSelectorComponent(this);
96 87
    }
97 88

  
......
101 92
    	 * Ensures the icons have been registered. We can't do it at manager initialization because the
102 93
    	 * IconThemeManager may not be initialized at that point
103 94
    	 */
104
    	registerIcons();
105 95
		return null;
106 96
	}
107
	
108
	/**
109
	 * Ensures the icons have been registered.
110
	 */
111
	protected void registerIcons() {
112
		if (registeredIcons == false) {
113
			final IconTheme theme = getIconTheme();
114
			synchronized (this) {
115
				if (registeredIcons == false) {
116
					doRegisterIcons(theme);
117
					registeredIcons = true;
118
				}
119
				
120
			}
121
		}
122
	}
123
	
124
	protected void doRegisterIcons(IconTheme iconTheme) {
125
		String group = "swingproj";
126
		registerIcon(group, "bullet_add", null, iconTheme);
127
		registerIcon(group, "bullet_remove", null, iconTheme);
128
		registerIcon(group, "bullet_share", null, iconTheme);
129
		registerIcon(group, "crs_add", null, iconTheme);
130
		registerIcon(group, "crs", null, iconTheme);
131
		registerIcon(group, "ct_add", null, iconTheme);
132
		registerIcon(group, "ct", null, iconTheme);
133
		registerIcon(group, "dropdown", null, iconTheme);
134
		registerIcon(group, "favourite_add", null, iconTheme);
135
		registerIcon(group, "favourite", null, iconTheme);
136
		registerIcon(group, "favourite_remove", null, iconTheme);
137
		registerIcon(group, "filter_alpha", null, iconTheme);
138
		registerIcon(group, "filter_spatial", null, iconTheme);
139
		registerIcon(group, "folder_closed", null, iconTheme);
140
		registerIcon(group, "folder_open", null, iconTheme);
141
		registerIcon(group, "recent", null, iconTheme);
142
		registerIcon(group, "recent_remove", null, iconTheme);
143
		registerIcon(group, "search", null, iconTheme);
144
		registerIcon(group, "search_remove", null, iconTheme);
145
		registerIcon(group, "unlock", null, iconTheme);
146
		registerIcon(group, "spinner", ".gif", iconTheme);
147
	}
148
	
149
	protected void registerIcon(String group, String name, String extension, IconTheme iconTheme) {
150
		if (extension==null) {
151
			extension = ".png";
152
		}
153
		String resourceName = "images/" + group + "/" + name + extension;
154
		String provider = this.getClass().getName();
155
		ClassLoader loader = this.getClass().getClassLoader();
156
		URL resource = null;
157
		try {
158
			resource = loader.getResource(resourceName);
159
			iconTheme.registerDefault(provider, group, name, null, resource);
160
		} catch( Throwable e) {
161
			logger.info("Can't register icon '" + name + "'.",e);
162
		}
163
	}
164 97

  
165 98
	@Override
166 99
	public CRSCatalogManager getCatalogManager() {
......
168 101
	}
169 102

  
170 103
	@Override
171
	public IconTheme getIconTheme() {
172
		return iconTheme;
173
	}
174

  
175
	@Override
176 104
	public RecentHistory<CoordinateReferenceSystem> getCoordinateReferenceSystemHistory() {
177 105
		return crsHistory;
178 106
	}
org.gvsig.proj/branches/refactor2018/org.gvsig.proj/org.gvsig.proj.swing/org.gvsig.proj.swing.api/src/main/java/org/gvsig/proj/swing/CoordinateReferenceSystemSwingManager.java
76 76
     */
77 77
    CoordinateReferenceSystemManager getCRSManager();
78 78
    
79
    IconTheme getIconTheme();
80
    
81 79
    CRSCatalogManager getCatalogManager();
82

  
83
    /**
84
     * Returns the translation of a string.
85
     * 
86
     * @param key
87
     *            String to translate
88
     * @return a String with the translation of the string passed by parameter
89
     */
90
    String getTranslation(String key);
91

  
92
    /**
93
     * Returns the {@link WindowManager}.
94
     * 
95
     * @return {@link WindowManager}
96
     */
97
    WindowManager getWindowManager();
98 80
}
org.gvsig.proj/branches/refactor2018/org.gvsig.proj/org.gvsig.proj.swing/org.gvsig.proj.swing.api/src/main/java/org/gvsig/proj/swing/CoordinateReferenceSystemSelectorComponent.java
26 26

  
27 27
import org.gvsig.proj.CoordinateReferenceSystem;
28 28
import org.gvsig.proj.catalog.CRSDefinition;
29
import org.gvsig.proj.catalog.extent.GeographicBoundingBox;
29 30
import org.gvsig.tools.swing.api.Component;
30 31

  
31 32
/**
......
74 75
     * @param minLat
75 76
     * @param maxLat
76 77
     */
77
    void addCRSSpatialFilter(String label, double minLon, double maxLon, double minLat, double maxLat);
78
    void addCRSSpatialFilter(String label, GeographicBoundingBox boundingBox);
78 79
    
79 80
    /**
80 81
     * Adds a listener to be notified when a CRS is selected
......
84 85
    void addCRSSelectionListener(ActionListener listener);
85 86
    
86 87
    /**
87
     * Enables the spatial filter identified by {@code label}
88
     * Enables the spatial filter identified by {@code label}. The CRSs will be
89
     * included in the search if their validity area contains the provided bounding box.
88 90
     * 
89 91
     * @param label The label of the spatial filter to enable, as defined by
90
     * in the {@link #addCRSSpatialFilter(String, double, double, double, double)} method.
92
     * in the {@link #addCRSSpatialFilter(String, GeographicBoundingBox)} method.
91 93
     * Non-existing spatial filters are ignored
92 94
     */
93 95
    void enableSpatialFilter(String label);

Also available in: Unified diff