Statistics
| Revision:

root / 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 @ 854

History | View | Annotate | Download (3.33 KB)

1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2012 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.proj.swing;
24

    
25
import java.awt.event.ActionListener;
26

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

    
32
/**
33
 * User interface component API to select a {@link CoordinateReferenceSystem}.
34
 * 
35
 * @author gvSIG Team
36
 */
37
public interface CoordinateReferenceSystemSelectorComponent extends Component {
38

    
39
    /**
40
     * Returns the current {@link CoordinateReferenceSystem}.
41
     * 
42
     * @return the current {@link CoordinateReferenceSystem}
43
     */
44
    CoordinateReferenceSystem getCoordinateReferenceSystem();
45

    
46
    /**
47
     * Sets the current {@link CoordinateReferenceSystem}.
48
     * 
49
     * @param crs
50
     *            the current {@link CoordinateReferenceSystem}
51
     */
52
    void setCoordinateReferenceSystem(CoordinateReferenceSystem crs);
53
    
54
    /**
55
     * Sets the label to use in the user interface for the custom group of
56
     * CRSs.
57
     * 
58
     * @param label
59
     */
60
    void setCustomGroupLabel(String label);
61
    
62
    /**
63
     * Adds a CRS to the list of custom definitions
64
     * 
65
     * @param customCRS
66
     */
67
    void addCustomCRS(CRSDefinition customCRS);
68
    
69
    /**
70
     * Adds an spatial filter to the list of available spatial filter.
71
     * 
72
     * @param label Identifies this spatial filter and it is used as the filter name in user interface
73
     * @param minLon
74
     * @param maxLon
75
     * @param minLat
76
     * @param maxLat
77
     */
78
    void addCRSSpatialFilter(String label, GeographicBoundingBox boundingBox);
79
    
80
    /**
81
     * Adds a listener to be notified when a CRS is selected
82
     * 
83
     * @param listener
84
     */
85
    void addCRSSelectionListener(ActionListener listener);
86
    
87
    /**
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.
90
     * 
91
     * @param label The label of the spatial filter to enable, as defined by
92
     * in the {@link #addCRSSpatialFilter(String, GeographicBoundingBox)} method.
93
     * Non-existing spatial filters are ignored
94
     */
95
    void enableSpatialFilter(String label);
96
    
97
    /**
98
     * Enables an alphanumeric filter to refine the list of CRSs to those matching the
99
     * provided search string.
100
     * 
101
     * @param searchString
102
     */
103
    void enableAlphanumericFilter(String searchString);
104
}