Revision 44404

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/extension/InitializeApplicationExtension.java
29 29
import java.io.InputStream;
30 30
import java.io.InputStreamReader;
31 31
import java.io.StringWriter;
32
import java.util.ArrayList;
32 33
import java.util.HashMap;
34
import java.util.List;
33 35
import java.util.Map;
34 36
import java.util.Properties;
35 37
import java.util.prefs.Preferences;
......
53 55
import org.gvsig.app.project.documents.view.gui.IView;
54 56
import org.gvsig.app.project.documents.view.toolListeners.InfoListener;
55 57
import org.gvsig.app.util.BaseOpenErrorHandler;
58
import org.gvsig.expressionevaluator.Expression;
59
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
60
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
56 61
import org.gvsig.fmap.dal.DALLocator;
57 62
import org.gvsig.fmap.dal.DataManager;
58 63
import org.gvsig.fmap.dal.OpenErrorHandler;
......
65 70
import org.gvsig.installer.lib.api.InstallerManager;
66 71
import org.gvsig.installer.lib.api.PackageInfo;
67 72
import org.gvsig.tools.ToolsLocator;
73
import org.gvsig.tools.bookmarksandhistory.Bookmark;
74
import org.gvsig.tools.bookmarksandhistory.Bookmarks;
75
import org.gvsig.tools.bookmarksandhistory.History;
68 76
import org.gvsig.tools.dynobject.DynObject;
69 77
import org.gvsig.tools.dynobject.Tags;
70 78
import org.gvsig.tools.folders.FoldersManager;
......
86 94
    public static final String TEMPLATES_FOLDER_PROPERTY_NAME = "TemplatesFolder";
87 95
    public static final String SYMBOL_LIBRARY_FOLDER_PROPERTY_NAME = "SymbolLibraryFolder";
88 96

  
89
        private OpenErrorHandler openErrorHandler = null;
97
    private OpenErrorHandler openErrorHandler = null;
90 98

  
91 99
    private static class SimpleImageDataProfile extends AbstractDataProfile {
92 100

  
93 101
        public SimpleImageDataProfile() {
94 102
            super("Image", SimpleImage.class);
95 103
        }
96
        
104

  
97 105
        @Override
98 106
        public Object createData(Object data, Tags tags) {
99 107
            final ToolsSwingManager toolsSwingManager = ToolsSwingLocator.getToolsSwingManager();
......
101 109
            return image;
102 110
        }
103 111
    }
104
    
112

  
105 113
    @Override
106 114
    public void initialize() {
107 115
        DALLocator.registerFeatureTypeDefinitionsManager(DefaultFeatureTypeDefinitionsManager.class);
108
        
116

  
109 117
        DataManager dataManager = DALLocator.getDataManager();
110 118
        dataManager.registerDataProfile(new SimpleImageDataProfile());
111
        
119

  
112 120
        InfoListener.initializeExtensionPoint();
113
        
121

  
114 122
        initLastPath();
115 123
        registerIcons();
124
        loadExpressionBookmarks();
125
        loadExpressionHistory();
126
    }
116 127

  
128
    public void loadExpressionHistory() {
129
        PluginsManager pluginManager = PluginsLocator.getManager();
130
        final PluginServices plugin = pluginManager.getPlugin(this);
131
        DynObject pluginProperties = plugin.getPluginProperties();
132
        List<Expression> dynBookmarks = (List<Expression>) pluginProperties.getDynValue("expressionHistory");
133
        if (dynBookmarks == null) {
134
            return;
135
        }
136
        final ExpressionEvaluatorManager expressionManager = ExpressionEvaluatorLocator.getExpressionEvaluatorManager();
137
        History<Expression> history = expressionManager.getHistory();
138
        for (Expression expression : dynBookmarks) {
139
            history.add(expression);
140
        }
141
        pluginManager.addShutdownTask("saveExpressionHistory", new Runnable() {
142
            @Override
143
            public void run() {
144
                DynObject properties = plugin.getPluginProperties();
145
                ArrayList<Expression> var = new ArrayList<>();
146
                for (Expression expression : history) {
147
                    var.add(expression);
148
                }
149
                properties.setDynValue("expressionHistory", var);
150
            }
151
        }, false, 100);
152

  
153

  
117 154
    }
118
    
155

  
156
    public void loadExpressionBookmarks() {
157
        PluginsManager pluginManager = PluginsLocator.getManager();
158
        final PluginServices plugin = pluginManager.getPlugin(this);
159
        DynObject pluginProperties = plugin.getPluginProperties();
160
        Map<String, Expression> dynBookmarks = (Map<String, Expression>) pluginProperties.getDynValue("expressionBookmarks");
161
        if (dynBookmarks == null) {
162
            return;
163
        }
164
        final ExpressionEvaluatorManager expressionManager = ExpressionEvaluatorLocator.getExpressionEvaluatorManager();
165
        Bookmarks<Expression> bookmarks = expressionManager.getBookmarks();
166
        for (String key : dynBookmarks.keySet()) {
167
            Expression bookmark = dynBookmarks.get(key);
168
            bookmarks.add(bookmark);
169
        }
170
        pluginManager.addShutdownTask("saveExpressionBookmarks", new Runnable() {
171
            @Override
172
            public void run() {
173
                DynObject properties = plugin.getPluginProperties();
174
                Map<String, Expression> var = new HashMap<>();
175
                for (Bookmark<Expression> bookmark : bookmarks) {
176
                    var.put(bookmark.getName(), bookmark.getValue());
177
                }
178
                properties.setDynValue("expressionBookmarks", var);
179
            }
180
        }, false, 100);
181

  
182
    }
183

  
119 184
    private void initLastPath() {
120
        Preferences prefs = Preferences.userRoot().node( "gvsig.foldering" );
185
        Preferences prefs = Preferences.userRoot().node("gvsig.foldering");
121 186
        FoldersManager folderManager = ToolsLocator.getFoldersManager();
122 187
        String v;
123
        
188

  
124 189
        v = prefs.get(DATA_FOLDER_PROPERTY_NAME, folderManager.getHome().getAbsolutePath());
125 190
        folderManager.setLastPath(OPEN_LAYER_FILE_CHOOSER_ID, new File(v));
126 191

  
......
153 218
            );
154 219
        }
155 220
        pluginManager.addStartupTask("OpenLayerOnStart", new OpenLayerOnStart(), true, 740);
156
        
221

  
157 222
        pluginManager.addStartupTask("ApplicationStartedMessage", new Runnable() {
158 223
            @Override
159 224
            public void run() {
160 225
                I18nManager i18n = ToolsLocator.getI18nManager();
161 226
                ApplicationManager application = ApplicationLocator.getManager();
162 227
                application.message(
163
                        i18n.getTranslation("StatusBar.Aplicacion_iniciada"), 
228
                        i18n.getTranslation("StatusBar.Aplicacion_iniciada"),
164 229
                        JOptionPane.INFORMATION_MESSAGE
165 230
                );
166 231
            }
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/resources-plugin/plugin-persistence.def
45 45
        <field name="showAddOnmanagerOnStart" type="Map" classOfItems="java.lang.Boolean" mandatory="false">
46 46
          <description></description>
47 47
        </field>
48
        
48
        <field name="expressionBookmarks" type="Map" classOfItems="org.gvsig.expressionevaluator.Expression" mandatory="false">
49
          <description></description>
50
        </field>
51
        <field name="expressionHistory" type="List" classOfItems="org.gvsig.expressionevaluator.Expression" mandatory="false">
52
          <description></description>
53
        </field>
49 54
        <!-- Preferencias de la vista -->
50 55
        <field name="KeepScaleOnResizing" type="Boolean" mandatory="false">
51 56
          <description></description>

Also available in: Unified diff