Revision 319

View differences:

org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.app/org.gvsig.vectorediting.app.mainplugin/src/main/java/org/gvsig/vectorediting/app/mainplugin/EditingExtension.java
23 23
 */
24 24
package org.gvsig.vectorediting.app.mainplugin;
25 25

  
26
import java.io.File;
27

  
28
import org.slf4j.Logger;
29
import org.slf4j.LoggerFactory;
30

  
26 31
import org.gvsig.andami.IconThemeHelper;
27 32
import org.gvsig.andami.PluginServices;
28 33
import org.gvsig.andami.plugins.Extension;
......
32 37
import org.gvsig.app.project.documents.view.gui.DefaultViewPanel;
33 38
import org.gvsig.app.project.documents.view.gui.IView;
34 39
import org.gvsig.app.project.documents.view.toolListeners.StatusBarListener;
40
import org.gvsig.fmap.mapcontext.MapContextLocator;
35 41
import org.gvsig.fmap.mapcontext.layers.FLayer;
36 42
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
43
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
44
import org.gvsig.fmap.mapcontext.rendering.symbols.SymbolException;
45
import org.gvsig.fmap.mapcontext.rendering.symbols.SymbolManager;
37 46
import org.gvsig.fmap.mapcontrol.MapControl;
38 47
import org.gvsig.fmap.mapcontrol.tools.Behavior.Behavior;
39 48
import org.gvsig.fmap.mapcontrol.tools.Behavior.MouseMovementBehavior;
40
import org.gvsig.tools.observer.BaseNotification;
41 49
import org.gvsig.tools.observer.Notification;
42 50
import org.gvsig.tools.observer.Observable;
43 51
import org.gvsig.tools.observer.Observer;
52
import org.gvsig.vectorediting.lib.spi.EditingProviderLocator;
53
import org.gvsig.vectorediting.lib.spi.EditingProviderManager;
44 54
import org.gvsig.vectorediting.swing.api.EditingContext;
45 55
import org.gvsig.vectorediting.swing.api.EditingSwingLocator;
46 56
import org.gvsig.vectorediting.swing.api.EditingSwingManager;
47 57

  
48 58
public class EditingExtension extends Extension implements Observer {
49 59

  
60
    private static Logger logger = LoggerFactory.getLogger(EditingExtension.class);
61

  
50 62
    public void execute(String actionCommand) {
51 63

  
52 64
        IView view = getActiveView();
......
88 100
        DefaultViewPanel.setDisableConsole(true);
89 101
    }
90 102

  
103

  
91 104
    private void registerIcons() {
92 105
        IconThemeHelper.registerIcon("vectorediting", "vector-editing", this);
93 106
    }
94 107

  
108
    @Override
109
    public void postInitialize() {
110
        super.postInitialize();
111
        registerSymbols();
112

  
113
    }
114

  
115
    /**
116
     * Register all symbols in the plugin symbols folder in the providerManager.
117
     * The description of the symbols must be unique because the key used for registration is the proper description of the symbol.
118
     *
119
     */
120
    private void registerSymbols() {
121

  
122
        EditingProviderManager providerManager =
123
            EditingProviderLocator.getProviderManager();
124

  
125
        SymbolManager symbolManager = MapContextLocator.getSymbolManager();
126
        File pluginFolder = getPlugin().getPluginDirectory();
127
        String pathSeparator = System.getProperty("file.separator");
128
        String symbolsPath = pluginFolder.getAbsolutePath()+pathSeparator+"symbols"+pathSeparator+"editing";
129
        File symbolsFolder = new File(symbolsPath);
130
        ISymbol[] symbols = null;
131
        try {
132
            symbols = symbolManager.loadSymbols(symbolsFolder);
133
        } catch (SymbolException e) {
134
            logger.warn("No symbols loaded from "+symbolsPath, e);
135
        }
136

  
137
        if (symbols != null) {
138
            for (int i = 0; i < symbols.length; i++) {
139
                ISymbol symbol = symbols[i];
140
                String description = symbol.getDescription();
141
                providerManager.registerSymbol(description, symbol);
142
            }
143
        }
144
    }
145

  
95 146
    public boolean isEnabled() {
96 147
        return true;
97 148
    }
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.spi/src/main/java/org/gvsig/vectorediting/lib/spi/EditingProviderManager.java
24 24

  
25 25
package org.gvsig.vectorediting.lib.spi;
26 26

  
27
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
27 28
import org.gvsig.tools.service.spi.ProviderManager;
28 29
import org.gvsig.vectorediting.lib.api.EditingServiceInfo;
29 30
import org.gvsig.vectorediting.lib.api.exceptions.ServiceInformationException;
30 31

  
31 32
/**
32
 * 
33
 *
33 34
 * Manager the registration of {@link EditingProviderFactory} objects and the
34 35
 * creation of Providers. Moreover, offers service info about services and
35 36
 * utility methods.
36
 * 
37
 *
37 38
 * @author llmarques
38 39
 * @version $Id$
39 40
 */
......
71 72
    public void registerIcon(String group, String name, ClassLoader loader,
72 73
        String provider);
73 74

  
75
    /**
76
    * Register a symbol in a symbol's map with name as key
77
    *
78
    * @param name
79
    * @param symbol
80
    */
81
   public void registerSymbol(String name, ISymbol symbol);
82

  
83
   /**
84
   *
85
   * @param name
86
   * @param symbol
87
   */
88
  public ISymbol getSymbol(String name);
89

  
90

  
74 91
}
org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.impl/src/main/java/org/gvsig/vectorediting/lib/impl/DefaultEditingProviderManager.java
25 25
package org.gvsig.vectorediting.lib.impl;
26 26

  
27 27
import java.net.URL;
28
import java.util.HashMap;
29
import java.util.Map;
28 30

  
29 31
import org.slf4j.Logger;
30 32
import org.slf4j.LoggerFactory;
31 33

  
34
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
32 35
import org.gvsig.tools.dynobject.DynObject;
33 36
import org.gvsig.tools.service.Service;
34 37
import org.gvsig.tools.service.ServiceException;
......
49 52
    private static final Logger logger = LoggerFactory
50 53
        .getLogger(DefaultEditingProviderManager.class);
51 54

  
55
    Map<String, ISymbol> symbols =
56
        new HashMap<String, ISymbol>();
57

  
52 58
    public ProviderServices createProviderServices(Service service) {
53 59
        // TODO Auto-generated method stub
54 60
        return null;
......
110 116

  
111 117
    }
112 118

  
119

  
120
    public void registerSymbol(String name, ISymbol symbol) {
121
        symbols.put(name, symbol);
122
    }
123

  
124
    public ISymbol getSymbol(String name) {
125
        return symbols.get(name);
126
    }
113 127
}

Also available in: Unified diff