Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.app / org.gvsig.app.mainplugin / src / main / java / org / gvsig / app / project / documents / view / DefaultViewDocument.java @ 40713

History | View | Annotate | Download (5.19 KB)

1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 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 3
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

    
25
package org.gvsig.app.project.documents.view;
26

    
27
import org.gvsig.andami.PluginsLocator;
28
import org.gvsig.andami.PluginsManager;
29
import org.gvsig.app.ApplicationLocator;
30
import org.gvsig.app.extension.AddLayer;
31
import org.gvsig.app.gui.preferencespage.LayerOrderPage;
32
import org.gvsig.app.project.ProjectPreferences;
33
import org.gvsig.app.project.documents.DocumentManager;
34
import org.gvsig.fmap.mapcontext.MapContext;
35
import org.gvsig.fmap.mapcontext.MapContextLocator;
36
import org.gvsig.fmap.mapcontext.ViewPort;
37
import org.gvsig.fmap.mapcontext.layers.order.LayerOrderManager;
38
import org.gvsig.tools.ToolsLocator;
39
import org.gvsig.tools.dynobject.DynObject;
40
import org.gvsig.tools.dynobject.DynStruct;
41
import org.gvsig.tools.persistence.PersistenceManager;
42
import org.gvsig.tools.persistence.PersistentState;
43
import org.gvsig.tools.persistence.exception.PersistenceException;
44
import org.slf4j.Logger;
45
import org.slf4j.LoggerFactory;
46

    
47

    
48

    
49
/**
50
 * Clase que representa una vista del proyecto
51
 *
52
 * @author 2004-2005 Fernando Gonz?lez Cort?s
53
 * @author 2006-2009 Jose Manuel Vivo
54
 * @author 2005-         Vicente Caballero
55
 * @author 2009-         Joaquin del Cerro
56
 * 
57
 */
58

    
59
public class DefaultViewDocument extends BaseViewDocument {
60

    
61
        private static Logger logger = LoggerFactory.getLogger(DefaultViewDocument.class);
62
        /**
63
         * 
64
         */
65
        private static final long serialVersionUID = 676711512482334764L;
66

    
67
        public static final String PERSISTENCE_DEFINITION_NAME = "DefaultViewDocument";
68
        
69

    
70
        public DefaultViewDocument() {
71
                this(null);
72
        }
73
        
74
        public DefaultViewDocument(DocumentManager factory) {
75
                super(factory); 
76

    
77
                ViewPort vp;
78
        
79
                ProjectPreferences preferences = (ProjectPreferences) ApplicationLocator.getManager().getPreferences("project");
80
            
81
            MapContext viewMapContext = new MapContext(
82
                                new ViewPort( preferences.getDefaultProjection() )
83
                );
84
                vp = viewMapContext.getViewPort();
85
                vp.setBackColor(preferences.getDefaultViewBackColor());
86
                vp.setDistanceUnits(preferences.getDefaultDistanceUnits());
87
                vp.setDistanceArea(preferences.getDefaultDistanceArea());
88
                
89
                /*
90
                 * Another user preference: the order manager
91
                 */
92
                LayerOrderManager lom = getCurrentOrderManager();
93
                viewMapContext.setOrderManager(lom);
94
                
95
                
96
                /*
97
                 * Not very elegant but we are forcing meters if projected
98
                 */
99
                if (viewMapContext.getProjection().isProjected()) {
100
                    vp.setMapUnits(1);
101
                } else {
102
            vp.setMapUnits(8);
103
                }
104
                
105
                
106
                this.setMapContext(viewMapContext);
107
                
108
                MapContext overviewMapContext = new MapContext(
109
                                new ViewPort( viewMapContext.getProjection() )
110
                );
111
                vp = viewMapContext.getViewPort();
112
                vp.setBackColor(preferences.getDefaultViewBackColor());
113
                this.setMapOverViewContext(overviewMapContext);
114
        }
115
        
116
        /**
117
         * Get current order manager from persistence
118
         * 
119
         * @return
120
         */
121
        private LayerOrderManager getCurrentOrderManager() {
122
                
123
                DynObject props = this.getPluginProperties();
124
                // current_layer_order_manager
125
                Object val_obj = null;
126
                if (props.hasDynValue(LayerOrderPage.PREFERENCES_ID)) {
127
                        val_obj = props.getDynValue(LayerOrderPage.PREFERENCES_ID);
128
                }
129
                if (val_obj != null && val_obj instanceof LayerOrderManager) {
130
                        LayerOrderManager lom = (LayerOrderManager) val_obj;
131
                        return lom;
132
                } else {
133
                        logger.info("No order manager found in persistence.");
134
                        return MapContextLocator.getDefaultOrderManager();
135
                }
136
                
137
        }
138
        
139
        private DynObject getPluginProperties() {
140
        PluginsManager pluginsManager = PluginsLocator.getManager();
141
        return pluginsManager.getPlugin(AddLayer.class).getPluginProperties();
142
        }
143
        
144
        
145
        public void saveToState(PersistentState state) throws PersistenceException {
146
                super.saveToState(state);
147
        }
148
        
149
        public void loadFromState(PersistentState state) throws PersistenceException {
150
                super.loadFromState(state);
151
        }
152

    
153
        public String exportDocumentAsText() {
154
                // FIXME: jjdc PersistentManager getStateAsText o similar
155
//                 PersistenceManager manager = ToolsLocator.getPersistenceManager();
156
//                 PersistentState state = manager.getState(this);
157
//                 return manager.getStateAsText(state);
158
                return null;
159
        }
160

    
161
        public void setStateFromText(String text) {
162
                // FIXME: jjdc PersistentManager getStateFromText o similar
163
//                 PersistenceManager manager = ToolsLocator.getPersistenceManager();
164
//                 PersistentState state = manager.getStateFromText(text);
165
//                 this.loadFromState(state);
166
        }
167

    
168
        
169
}