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 @ 852

History | View | Annotate | Download (3.2 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.tools.swing.api.Component;
30

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

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

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