Statistics
| Revision:

root / org.gvsig.complexlegend / trunk / org.gvsig.complexlegend / org.gvsig.complexlegend.lib / org.gvsig.complexlegend.lib.impl / src / main / java / org / gvsig / complexlabel / impl / DefaultComplexLabelClass.java @ 86

History | View | Annotate | Download (2.55 KB)

1
package org.gvsig.complexlabel.impl;
2

    
3

    
4
import org.gvsig.symbology.fmap.mapcontext.rendering.legend.styling.LabelClass;
5
import org.gvsig.tools.ToolsLocator;
6
import org.gvsig.tools.dynobject.DynStruct;
7
import org.gvsig.tools.persistence.PersistenceManager;
8
import org.gvsig.tools.persistence.Persistent;
9
import org.gvsig.tools.persistence.PersistentState;
10
import org.gvsig.tools.persistence.exception.PersistenceException;
11
import org.gvsig.tools.util.Callable;
12

    
13
public class DefaultComplexLabelClass extends LabelClass implements Persistent{
14

    
15
        public static final String COMPLEXLABELCLASS_PERSISTENCE_DEFINITION_NAME = "Complex.label.class";
16
        
17
        private double minScale;
18
        private double maxScale;
19
        
20
        public double getMinScale() {
21
                return minScale;
22
        }
23
        
24
        public void setMinScale(double minScale) {
25
                this.minScale = minScale;
26
        }
27
        
28
        public double getMaxScale() {
29
                return maxScale;
30
        }
31
        
32
        public void setMaxScale(double maxScale) {
33
                this.maxScale = maxScale;
34
        }
35
        
36
        @Override
37
        public boolean isVisible() {
38
                return super.isVisible();
39
        }
40
        
41
        @Override
42
        public boolean isVisible(double scale) {
43
                if(getMaxScale() > scale && getMinScale() < scale){
44
                        return true;
45
                }
46
                return false;
47
        }
48
        
49
        @Override
50
        public void loadFromState(PersistentState state)
51
                        throws PersistenceException {
52
                super.loadFromState(state);
53
                setMinScale(state.getDouble("MinScale"));
54
                setMaxScale(state.getDouble("MaxScale"));
55
        }
56
        
57
        @Override
58
        public void saveToState(PersistentState state) throws PersistenceException {
59
                super.saveToState(state);
60
                state.set("MinScale", getMinScale());
61
                state.set("MaxScale", getMaxScale());
62
        }
63
        
64
        @Override
65
        public Object clone() throws CloneNotSupportedException {
66
                DefaultComplexLabelClass cloned = (DefaultComplexLabelClass) super.clone();
67
                cloned.setMaxScale(this.getMaxScale());
68
                cloned.setMinScale(this.getMinScale());
69
                return cloned;
70
        }
71
        
72
        public static class RegisterPersistence implements Callable {
73

    
74
                public Object call() throws Exception {
75
                        PersistenceManager manager = ToolsLocator.getPersistenceManager();
76
                        if( manager.getDefinition(COMPLEXLABELCLASS_PERSISTENCE_DEFINITION_NAME)==null ) {
77
                                DynStruct definition = manager.addDefinition(
78
                                                DefaultComplexLabelClass.class,
79
                                                COMPLEXLABELCLASS_PERSISTENCE_DEFINITION_NAME,
80
                                                COMPLEXLABELCLASS_PERSISTENCE_DEFINITION_NAME+" Persistence definition",
81
                                                null, 
82
                                                null
83
                                );
84

    
85
                                definition.extend(manager.getDefinition(
86
                                                "LabelClass"));
87
                                
88
                                definition.addDynFieldDouble("MaxScale").setMandatory(true);
89
                                definition.addDynFieldDouble("MinScale").setMandatory(true);
90
                        }
91
                        return Boolean.TRUE;
92
                }
93
                
94
        }
95
}