Revision 854
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