Revision 42651

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/vectorial/FLyrVect.java
527 527
         */
528 528
        String ret = super.toString();
529 529

  
530
        return "layer" + ret.substring(ret.indexOf('@') + 1);
530
        return ret ; //"layer" + ret.substring(ret.indexOf('@') + 1);
531 531
    }
532 532

  
533 533
    public boolean isEditing() {
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/FLyrDefault.java
1038 1038
        }
1039 1039

  
1040 1040
	public String toString() {
1041
		return super.toString() + ": " + getName();
1041
		return this.getName();
1042 1042
	}
1043 1043
	
1044 1044
	public boolean hidesThisArea(Envelope area) {
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.mapcontext/org.gvsig.fmap.mapcontext.api/src/main/java/org/gvsig/fmap/mapcontext/layers/FLayers.java
213 213

  
214 214
            if (layer instanceof FLayers) {
215 215
                FLayers layers = (FLayers) layer;
216
                fmap.addAsCollectionListener(layers);
216
                if( fmap != null ) {
217
                    fmap.addAsCollectionListener(layers);
218
                }
217 219
            }
218 220
            callLayerAdding(LayerCollectionEvent.createLayerAddingEvent(layer));
219 221

  
......
605 607

  
606 608
            } catch (Exception e) {
607 609
                String mesg = Messages.getString("error_printing_layer") + " " + lyr.getName() + ": " + e.getMessage();
608
                fmap.addLayerError(mesg);
610
                if( fmap!=null ) {
611
                    fmap.addLayerError(mesg);
612
                }
609 613
                logger.error(mesg, e);
610 614
            }
611 615

  
......
1018 1022

  
1019 1023
    @Override
1020 1024
    public void beginDraw(Graphics2D g, ViewPort viewPort) {
1025
        if( fmap == null ) {
1026
            return;
1027
        }
1021 1028
        LayerDrawEvent beforeEvent = new LayerDrawEvent(this, g, viewPort, LayerDrawEvent.LAYER_BEFORE_DRAW);
1022 1029
        fmap.fireLayerDrawingEvent(beforeEvent);
1023 1030
    }
1024 1031

  
1025 1032
    @Override
1026 1033
    public void endDraw(Graphics2D g, ViewPort viewPort) {
1034
        if( fmap == null ) {
1035
            return;
1036
        }
1027 1037
        LayerDrawEvent afterEvent = new LayerDrawEvent(this, g, viewPort, LayerDrawEvent.LAYER_AFTER_DRAW);
1028 1038
        fmap.fireLayerDrawingEvent(afterEvent);
1029 1039
    }
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/imp/DefaultApplicationManager.java
26 26

  
27 27
import java.awt.Component;
28 28
import java.io.File;
29
import java.lang.reflect.InvocationTargetException;
30 29
import java.util.ArrayList;
31 30
import java.util.Iterator;
32 31
import java.util.List;
33
import java.util.logging.Level;
34 32
import javax.swing.JComponent;
35 33

  
36 34
import javax.swing.JFileChooser;
37 35
import javax.swing.SwingUtilities;
38 36
import javax.swing.event.HyperlinkListener;
39 37
import javax.swing.filechooser.FileFilter;
38
import javax.swing.tree.TreeModel;
40 39

  
41 40
import org.cresques.cts.IProjection;
42 41
import org.gvsig.about.AboutLocator;
......
63 62
import org.gvsig.app.project.documents.Document;
64 63
import org.gvsig.app.project.documents.gui.IDocumentWindow;
65 64
import org.gvsig.app.project.documents.view.ViewDocument;
65
import org.gvsig.app.project.documents.view.ViewManager;
66 66
import org.gvsig.fmap.crs.CRSFactory;
67 67
import org.gvsig.fmap.dal.DALLocator;
68 68
import org.gvsig.fmap.dal.DataManager;
......
73 73
import org.gvsig.fmap.mapcontext.MapContextLocator;
74 74
import org.gvsig.fmap.mapcontext.MapContextManager;
75 75
import org.gvsig.fmap.mapcontext.layers.FLayer;
76
import org.gvsig.fmap.mapcontrol.CompoundLayersTreeModel;
77
import org.gvsig.fmap.mapcontrol.MapControlLocator;
76 78
import org.gvsig.gui.ColorTablesFactory;
77 79
import org.gvsig.symbology.swing.SymbologySwingLocator;
78 80
import org.gvsig.tools.ToolsLocator;
......
558 560
            InfoPanel.showPanel(title, mode, htmlText,hyperlinkListener);
559 561
        }
560 562

  
563
        @Override
564
        public TreeModel createProjectLayersTreeModel() {
565
            CompoundLayersTreeModel model = (CompoundLayersTreeModel) MapControlLocator.getMapControlManager().createCompoundLayersTreeModel();
566
            Project project = this.getCurrentProject();
567
            List<Document> views = project.getDocuments(ViewManager.TYPENAME);
568
            for (Document view : views) {
569
                model.addLayers( ((ViewDocument)view).getMapContext().getLayers() );
570
            }
571
            return model;
572
        }
561 573
}
562

  
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/documents/view/BaseViewDocument.java
90 90
        return mapContext;
91 91
    }
92 92

  
93
    @Override
94
    public void setName(String name) {
95
        super.setName(name);
96
        this.mapContext.getLayers().setName(name);
97
    }
98

  
99
    
93 100
    /**
94 101
     * Gets the MapContext from the locator, which is the small map in the
95 102
     * left-bottom corner of the View.
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/ApplicationManager.java
27 27
import java.util.List;
28 28
import javax.swing.JComponent;
29 29
import javax.swing.event.HyperlinkListener;
30
import javax.swing.tree.TreeModel;
30 31

  
31 32
import org.cresques.cts.IProjection;
32 33
import org.gvsig.about.AboutManager;
......
330 331
    public void showTextDialog(final WindowManager.MODE mode, final String title, final String htmlText);
331 332
    public void showTextDialog(final WindowManager.MODE mode, final String title, final String htmlText, HyperlinkListener hyperlinkListener);
332 333

  
334
    public TreeModel createProjectLayersTreeModel(); 
333 335
}
trunk/org.gvsig.desktop/pom.xml
2580 2580

  
2581 2581
        <jython.artifactId>jython-standalone</jython.artifactId>
2582 2582
        <!-- External project versions -->
2583
        <gvsig.tools.version>3.0.78</gvsig.tools.version>
2583
        <gvsig.tools.version>3.0.79</gvsig.tools.version>
2584 2584
        <gvsig.proj.version>1.0.2</gvsig.proj.version>
2585 2585
        <gvsig.projection.api.version>2.0.21</gvsig.projection.api.version>
2586 2586

  
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.fmap.control/src/main/java/org/gvsig/fmap/mapcontrol/LayersTreeModel.java
1
package org.gvsig.fmap.mapcontrol;
2

  
3
import java.util.ArrayList;
4
import java.util.Iterator;
5
import java.util.List;
6
import javax.swing.event.TreeModelEvent;
7
import javax.swing.event.TreeModelListener;
8
import javax.swing.tree.TreeModel;
9
import javax.swing.tree.TreePath;
10
import org.gvsig.fmap.mapcontext.layers.FLayer;
11
import org.gvsig.fmap.mapcontext.layers.FLayers;
12

  
13

  
14
public class LayersTreeModel implements TreeModel {
15

  
16
        protected final FLayers layers;
17

  
18
        protected final List<TreeModelListener> listeners = new ArrayList();
19

  
20
        public LayersTreeModel(FLayers layers) {
21
            this.layers = layers;
22
        }
23

  
24
        @Override
25
        public Object getRoot() {
26
            return layers;
27
        }
28

  
29
        @Override
30
        public Object getChild(Object parent, int index) {
31
            if (!(parent instanceof FLayers)) {
32
                return null;
33
            }
34
            return ((FLayers) parent).getLayer(index);
35
        }
36

  
37
        @Override
38
        public int getChildCount(Object parent) {
39
            if (!(parent instanceof FLayers)) {
40
                return 0;
41
            }
42
            return ((FLayers) parent).getLayersCount();
43
        }
44

  
45
        @Override
46
        public boolean isLeaf(Object node) {
47
            return !(node instanceof FLayers);
48
        }
49

  
50
        @Override
51
        public int getIndexOfChild(Object parent, Object child) {
52
            for( int i=0; i<((FLayers)parent).getLayersCount() ; i++ ) {
53
                FLayer layer = ((FLayers)parent).getLayer(i);
54
                if( child == layer ) {
55
                    return i;
56
                }
57
            }
58
            return -1;
59
        }
60

  
61
        @Override
62
        public void valueForPathChanged(TreePath path, Object value) {
63
        }
64

  
65
        @Override
66
        public void addTreeModelListener(TreeModelListener listener) {
67
            listeners.add(listener);
68
        }
69

  
70
        @Override
71
        public void removeTreeModelListener(TreeModelListener listener) {
72
            listeners.remove(listener);
73
        }
74

  
75
        public void reload() {
76
            TreeModelEvent event = new TreeModelEvent(this, new TreePath(this.layers));
77
            Iterator<TreeModelListener> iterator = listeners.iterator();
78
            TreeModelListener listener;
79
            while (iterator.hasNext()) {
80
                listener = iterator.next();
81
                listener.treeStructureChanged(event);
82
            }
83
        }
84
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.fmap.control/src/main/java/org/gvsig/fmap/mapcontrol/impl/DefaultMapControlManager.java
30 30

  
31 31
import java.awt.Color;
32 32
import java.util.ArrayList;
33
import java.util.HashSet;
34 33
import java.util.Iterator;
35 34
import java.util.LinkedHashSet;
36 35
import java.util.List;
37 36
import java.util.Map;
38 37
import java.util.Set;
39 38
import java.util.prefs.Preferences;
39
import javax.swing.tree.TreeModel;
40
import org.gvsig.fmap.mapcontrol.LayersTreeModel;
40 41

  
41 42
import org.slf4j.Logger;
42 43
import org.slf4j.LoggerFactory;
......
45 46
import org.gvsig.fmap.mapcontext.MapContext;
46 47
import org.gvsig.fmap.mapcontext.MapContextLocator;
47 48
import org.gvsig.fmap.mapcontext.MapContextManager;
49
import org.gvsig.fmap.mapcontext.layers.FLayers;
48 50
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
51
import org.gvsig.fmap.mapcontrol.CompoundLayersTreeModel;
49 52
import org.gvsig.fmap.mapcontrol.MapControl;
50 53
import org.gvsig.fmap.mapcontrol.MapControlCreationException;
51 54
import org.gvsig.fmap.mapcontrol.MapControlCreationListener;
......
358 361
        return new DefaultLayersDynObjectSetComponent(layerName2InfoByPoint,
359 362
            writable);
360 363
    }
364
    
365
    public TreeModel createLayersTreeModel(MapContext mapContext) {
366
        return new LayersTreeModel(mapContext.getLayers());
367
    }
368
    
369
    public TreeModel createLayersTreeModel(FLayers layers) {
370
        return new LayersTreeModel(layers);
371
    }
372
    
373
    public TreeModel createCompoundLayersTreeModel() {
374
        return new CompoundLayersTreeModel();
375
    }
376
    
377
    
361 378
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.fmap.control/src/main/java/org/gvsig/fmap/mapcontrol/CompoundLayersTreeModel.java
1
package org.gvsig.fmap.mapcontrol;
2

  
3
import java.util.ArrayList;
4
import java.util.Iterator;
5
import java.util.List;
6
import javax.swing.event.TreeModelEvent;
7
import javax.swing.event.TreeModelListener;
8
import javax.swing.tree.TreeModel;
9
import javax.swing.tree.TreePath;
10
import org.gvsig.fmap.mapcontext.layers.FLayer;
11
import org.gvsig.fmap.mapcontext.layers.FLayers;
12

  
13

  
14
public class CompoundLayersTreeModel implements TreeModel {
15

  
16
        protected final FLayers layers;
17

  
18
        protected final List<TreeModelListener> listeners = new ArrayList();
19

  
20
        public CompoundLayersTreeModel() {
21
            this.layers = new FLayers();
22
        }
23
        
24
        public void addLayers(FLayers layers) {
25
            this.layers.add(layers);
26
        }
27

  
28
        @Override
29
        public Object getRoot() {
30
            return layers;
31
        }
32

  
33
        @Override
34
        public Object getChild(Object parent, int index) {
35
            if (!(parent instanceof FLayers)) {
36
                return null;
37
            }
38
            return ((FLayers) parent).getLayer(index);
39
        }
40

  
41
        @Override
42
        public int getChildCount(Object parent) {
43
            if (!(parent instanceof FLayers)) {
44
                return 0;
45
            }
46
            return ((FLayers) parent).getLayersCount();
47
        }
48

  
49
        @Override
50
        public boolean isLeaf(Object node) {
51
            return !(node instanceof FLayers);
52
        }
53

  
54
        @Override
55
        public int getIndexOfChild(Object parent, Object child) {
56
            for( int i=0; i<((FLayers)parent).getLayersCount() ; i++ ) {
57
                FLayer layer = ((FLayers)parent).getLayer(i);
58
                if( child == layer ) {
59
                    return i;
60
                }
61
            }
62
            return -1;
63
        }
64

  
65
        @Override
66
        public void valueForPathChanged(TreePath path, Object value) {
67
        }
68

  
69
        @Override
70
        public void addTreeModelListener(TreeModelListener listener) {
71
            listeners.add(listener);
72
        }
73

  
74
        @Override
75
        public void removeTreeModelListener(TreeModelListener listener) {
76
            listeners.remove(listener);
77
        }
78

  
79
        public void reload() {
80
            TreeModelEvent event = new TreeModelEvent(this, new TreePath(this.layers));
81
            Iterator<TreeModelListener> iterator = listeners.iterator();
82
            TreeModelListener listener;
83
            while (iterator.hasNext()) {
84
                listener = iterator.next();
85
                listener.treeStructureChanged(event);
86
            }
87
        }
88
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.fmap.control/src/main/java/org/gvsig/fmap/mapcontrol/MapControlManager.java
52 52

  
53 53
import java.util.Map;
54 54
import java.util.prefs.Preferences;
55
import javax.swing.tree.TreeModel;
55 56

  
56 57
import org.gvsig.fmap.mapcontext.MapContext;
58
import org.gvsig.fmap.mapcontext.layers.FLayers;
57 59
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
58 60
import org.gvsig.fmap.mapcontrol.swing.dynobject.LayersDynObjectSetComponent;
59 61
import org.gvsig.fmap.mapcontrol.tools.snapping.snappers.ISnapper;
......
240 242
     */
241 243
    public LayersDynObjectSetComponent createLayersDynObjectSetComponent(
242 244
        Map<String, DynObjectSet> layerName2InfoByPoint, boolean writable);
245
    
246
    /**
247
     * Create a TreeModel based in the MapControl's layers.
248
     * 
249
     * @param mapContext
250
     * @return the TreeModel 
251
     */
252
    public TreeModel createLayersTreeModel(MapContext mapContext);
253
    
254
    /**
255
     * Create a TreeModel based in the layers collection.
256
     * @param layers the layers collection to use for create the TreeModel
257
     * @return the TreeModel
258
     */
259
    public TreeModel createLayersTreeModel(FLayers layers);
260
    
261
    /**
262
     * Create a TreeModel based in the layers collection of all project's views.
263
     * @return the TreeModel
264
     */
265
    public TreeModel createCompoundLayersTreeModel();
266
    
243 267
}
244 268

  

Also available in: Unified diff