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 / CoordinateReferenceSystemSwingManager.java @ 866

History | View | Annotate | Download (6.18 KB)

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

    
26
import java.util.Set;
27

    
28
import org.gvsig.proj.CoordinateReferenceSystemManager;
29
import org.gvsig.proj.catalog.CRSCatalogManager;
30
import org.gvsig.proj.catalog.CRSDefinition;
31
import org.gvsig.proj.catalog.TransformationDefinition;
32
import org.gvsig.tools.dynobject.DynObject;
33

    
34
/**
35
 * This class is responsible of the management of the library's swing user
36
 * interface. It is the swing library's main entry point, and provides all the
37
 * services to manage library swing components.
38
 * 
39
 * @see JProjServicePanel
40
 * @author gvSIG team
41
 * @version $Id$
42
 */
43
public interface CoordinateReferenceSystemSwingManager {
44

    
45
    /**
46
     * Returns the component to select a CoordinateReferenceSystem.
47
     * 
48
     * @return a {@link CoordinateReferenceSystemSelectorComponent} to select a
49
     *         CoordinateReferenceSystem
50
     */
51
    CoordinateReferenceSystemSelectorComponent createCoordinateReferenceSystemSelectionComponent();
52

    
53
    /**
54
     * Returns the component to select a CoordinateTransformation.
55
     * 
56
     * @return a {@link CoordinateTransformationSelectorComponent} to select a
57
     *         CoordinateTransformation 
58
     */
59
    CoordinateTransformationSelectorComponent createCoordinateTransformSelectionComponent();
60
    
61
    /**
62
     * Gets the list of recently used CoordinateReferenceSystems.
63
     * 
64
     * @return A <code>RecentHistory</code> object, which can be used to add new
65
     * elements to the history or to iterate on history elements.
66
     */
67
    RecentHistory<CRSDefinition> getCoordinateReferenceSystemHistory();
68

    
69
    /**
70
     * Gets the list of recently used CoordinateTransformations.
71
     * 
72
     * @return A <code>RecentHistory</code> object, which can be used to add new
73
     * elements to the history or to iterate on history elements.
74
     */
75
    RecentHistory<TransformationDefinition> getTransformationHistory();
76
    
77
    /**
78
     * Gets the list of recently used strings in the CRS search UI.
79
     * 
80
     * @return A <code>RecentHistory</code> object, which can be used to add new
81
     * elements to the history or to iterate on history elements.
82
     */
83
    RecentHistory<String> getCoordinateReferenceSystemTextFilterHistory();
84
    
85
    /**
86
     * Gets the list of recently used strings in the CoordinateTransformation search UI.
87
     * 
88
     * @return A <code>RecentHistory</code> object, which can be used to add new
89
     * elements to the history or to iterate on history elements.
90
     */
91
    RecentHistory<String> getTransformationTextFilterHistory();
92
    
93
    /**
94
     * Gets the list of favorite CoordinateReferenceSystems.
95
     * 
96
     * @return A <code>List</code> object, which can be used to add new favorites
97
     * or to iterate on existing favorites.
98
     */
99
    Set<CRSDefinition> getCoordinateReferenceSystemFavorites();
100
 
101
    /**
102
     * Gets the list of favorite CoordinateTransformations.
103
     * 
104
     * @return A <code>List</code> object, which can be used to add new favorites
105
     * or to iterate on existing favorites.
106
     */
107
    Set<TransformationDefinition> getTransformationFavorites();
108

    
109
    /**
110
     * Returns the {@link CoordinateReferenceSystemManager}.
111
     * 
112
     * @return {@link CoordinateReferenceSystemManager}
113
     * @see {@link CoordinateReferenceSystemManager}
114
     */
115
    CoordinateReferenceSystemManager getCRSManager();
116
    
117
    CRSCatalogManager getCatalogManager();
118
    
119
    /**
120
     * <p>Gets the preferences of the manager, as a DynObject. Don't store an instance of
121
     * this object, use this method to retrieve it when needed, since it is only updated
122
     * when retrieved.</p>
123
     * 
124
     * <p>The object contains the following fields:
125
     * <ul>
126
     * <li><code>crsHistory</code> of type List (containing {@code CRSDefinition}s)</li>
127
     * <li><code>crsHistorySize</code> of type Integer, which defines the maximum number of elements to store on
128
     * the CRS history</li>
129
     * <li><code>transformationHistory</code> of type List (containing {@code TransformationDefinition}s)</li>
130
     * <li><code>transformationHistorySize</code> of type Integer, which defines the maximum number of elements to store on
131
     * the transformation history</li>
132
     * <li><code>crsTextFilterHistory</code> of type List (containing {@code String}s)</li>
133
     * <li><code>crsTextFilterHistorySize</code> of type Integer, which defines the maximum number of elements to store on
134
     * the CRS text filter history</li>
135
     * <li><code>transformationTextFilterHistory</code> of type List (containing {@code String}s)</li>
136
     * <li><code>transformationTextFilterHistorySize</code> of type Integer, which defines the maximum number of elements to store on
137
     * the transformation text filter history</li>
138
     * <li><code>crsFavorites</code> of type List (containing {@code CRSDefinition}s)</li>
139
     * <li><code>transformationFavorites</code> of type List (containing {@code TransformationDefinition}s)</li>
140
     * </ul>
141
     * </p>
142
     * 
143
     * @return
144
     */
145
    public DynObject getPreferences();
146

    
147
    /**
148
     * Sets the preferences of the plugin, as a DynObject. The favorite and history lists
149
     * will be updated according to the provided DynObject values.
150
     * 
151
     * Check {@link #getPreferences()}
152
     * documentation to see the expected structure of the DynObject.
153
     */
154
    public void setPreferences(DynObject preferences);
155
}