Statistics
| Revision:

root / library / trunk / org.gvsig.chart / org.gvsig.chart.lib / org.gvsig.chart.lib.base / src / main / java / org / gvsig / chart / base / pie / PieChartProperties.java @ 24

History | View | Annotate | Download (5.89 KB)

1
package org.gvsig.chart.base.pie;
2

    
3
import org.gvsig.chart.ChartLocator;
4
import org.gvsig.chart.ChartManager;
5
import org.gvsig.chart.base.pie.renderers.PieChartRendererBasic;
6
import org.gvsig.chart.impl.AbstractChartProperties;
7
import org.gvsig.chart.impl.model.variables.DefaultRequiredField;
8
import org.gvsig.chart.model.variables.RequiredField;
9
import org.gvsig.chart.renderer.ChartRenderer;
10
import org.gvsig.tools.ToolsLocator;
11
import org.gvsig.tools.dynobject.DynClass;
12
import org.gvsig.tools.dynobject.DynObjectManager;
13
import org.gvsig.tools.dynobject.DynStruct;
14
import org.gvsig.tools.persistence.PersistenceManager;
15
import org.gvsig.tools.persistence.PersistentState;
16
import org.gvsig.tools.persistence.exception.PersistenceException;
17
import org.gvsig.tools.util.Callable;
18

    
19
public class PieChartProperties extends AbstractChartProperties{
20
        
21
        public PieChartProperties(){
22
                super("PieChart");
23
                ChartManager manager = ChartLocator.getServiceManager().getChartManager();
24
                
25
                setChartType("PieChart");
26
                setChartName(manager.getTranslation("PieChart"));
27
                
28
                ChartRenderer renderer = new PieChartRendererBasic();
29
                setChartRenderer(renderer.getChartRendererName());
30
                
31
                RequiredField field1 = new DefaultRequiredField();
32
                field1.setName("series");
33
                field1.setDescription(manager.getTranslation("labels"));
34
                field1.setType((ToolsLocator.getDataTypesManager().getDataType(String.class)).getName());
35
                
36
                RequiredField field2 = new DefaultRequiredField();
37
                field2.setName("categories");
38
                field2.setDescription(manager.getTranslation("values"));
39
                field2.setType((ToolsLocator.getDataTypesManager().getDataType(Double.class)).getName());
40

    
41
                RequiredField field3 = new DefaultRequiredField();
42
                field3.setName("groupby");
43
                field3.setDescription(manager.getTranslation("groupedBy"));
44
                field3.setType((ToolsLocator.getDataTypesManager().getDataType(String.class)).getName());
45
                field3.setIsOptional(true);
46

    
47
                addRequiredField(field1);
48
                addRequiredField(field2);
49
                addRequiredField(field3);
50
                
51
        }
52
        
53
        public static void registerDefinition(){
54
                DynObjectManager manager = ToolsLocator.getDynObjectManager();
55
                DynClass definition = manager.get("Chart","PieChartProperties");
56
                if(definition == null){
57
                        definition = manager.createDynClass("Chart", "PieChartProperties", "aqu? va la descripci?n");
58
                        definition.addDynFieldFloat("radius").setMandatory(false).setDefaultFieldValue(0.0f);
59
                        
60
                        definition.addDynFieldBoolean("isBasic").setMandatory(false).setDefaultFieldValue(true);
61
                        definition.addDynFieldBoolean("hasExplotedSections").setMandatory(false).setDefaultFieldValue(false);
62
                        definition.addDynFieldBoolean("is3D").setMandatory(false).setDefaultFieldValue(false);
63
                        
64
                        definition.extend("Chart", "ChartProperties");
65
                        manager.add(definition);
66
                }
67
        }
68
        
69
//        public static void registerPersistentDefinition(){
70
//                PersistenceManager manager = ToolsLocator.getPersistenceManager();
71
//                DynStruct definition = manager.getDefinition("PieChartProperties");
72
//                if(definition == null){
73
//                        definition = manager.addDefinition(PieChartProperties.class, "PieChartProperties", "aqu? va la descripci?n", null, null);
74
//                        definition.addDynFieldFloat("radius").setMandatory(false);
75
//                        
76
//                        
77
//                        definition.addDynFieldBoolean("isBasic").setMandatory(true).setDefaultFieldValue(true);
78
//                        definition.addDynFieldBoolean("hasExplotedSections").setMandatory(true).setDefaultFieldValue(false);
79
//                        definition.addDynFieldBoolean("is3D").setMandatory(true).setDefaultFieldValue(false);
80
//                        
81
//                        definition.extend(PersistenceManager.PERSISTENCE_NAMESPACE,"ChartProperties");
82
//                }
83
//        }
84
        
85
        public void setPieChartRadius(Float radius) {
86
                data.setDynValue("radius", radius);
87
        }
88

    
89
        public Float getPieChartRadius() {
90
                return (Float) data.getDynValue("radius");
91
        }
92

    
93
        public void setIs3D(boolean is3d) {
94
                data.setDynValue("is3d", is3d);
95
        }
96

    
97
        public boolean getIs3D() {
98
                return (Boolean) data.getDynValue("is3D");
99
        }
100

    
101
        public void setIsBasicChart(boolean isBasic) {
102
                data.setDynValue("isBasic", isBasic);
103
        }
104
        
105
        public boolean getIsBasicChart() {
106
                return (Boolean) data.getDynValue("isBasic");
107
        }
108

    
109
        public void setHasExploitedSections(boolean hasExplotedSections) {
110
                data.setDynValue("hasExplotedSections", hasExplotedSections);
111
        }
112
        
113
        public boolean getHasExploitedSections() {
114
                return (Boolean) data.getDynValue("hasExplotedSections");
115
        }
116
        
117
        public void saveToState(PersistentState state) throws PersistenceException {
118
                // Save parent properties
119
                super.saveToState(state);
120
                // Save own properties
121
                state.set("is3D", this.getIs3D());
122
                state.set("isBasic", this.getIsBasicChart());
123
                state.set("radius", this.getPieChartRadius());
124
                state.set("hasExplotedSections", this.getHasExploitedSections());
125
        }
126

    
127

    
128
        public void loadFromState(PersistentState state)
129
                        throws PersistenceException {
130
                // Set parent properties
131
                super.loadFromState(state);
132
                // Set own properties
133
                this.setIs3D(state.getBoolean("is3D"));
134
                this.setIsBasicChart(state.getBoolean("isBasic"));
135
                this.setPieChartRadius(state.getFloat("radius"));
136
                this.setHasExploitedSections(state.getBoolean("hasExplotedSections"));
137
        }
138
        
139
        public static class RegisterPersistence implements Callable {
140

    
141
                public Object call() throws Exception {
142
                        PersistenceManager manager = ToolsLocator.getPersistenceManager();
143
                        if(manager.getDefinition("PieChartProperties")==null ) {
144
                                DynStruct definition = manager.addDefinition(
145
                                                PieChartProperties.class,
146
                                                "PieChartProperties",
147
                                                "PieChartProperties"+" Persistence definition (FIXME check keys type)",
148
                                                null, 
149
                                                null
150
                                );
151
//                                // Extend the Classified Vector Legend base definition
152
                                definition.extend(manager.getDefinition("ChartProperties"));
153
                                
154
                                // Values
155
                                definition.addDynFieldFloat("radius");
156
                                
157
                                definition.addDynFieldBoolean("isBasic").setDefaultFieldValue(true);
158
                                definition.addDynFieldBoolean("hasExplotedSections").setDefaultFieldValue(false);
159
                                definition.addDynFieldBoolean("is3D").setDefaultFieldValue(false);
160
                                
161
                        }
162
                        return Boolean.TRUE;
163
                }
164
                
165
        }
166
}