Statistics
| Revision:

root / org.gvsig.chart / trunk / org.gvsig.chart / org.gvsig.chart.app / org.gvsig.chart.app.legendplugin / src / main / java / org / gvsig / project / documents / view / legend / PieChartLegend.java @ 571

History | View | Annotate | Download (4.94 KB)

1 12 jbadia
package org.gvsig.project.documents.view.legend;
2
3
import java.awt.Color;
4
import org.gvsig.chart.legend.IChartLegend;
5
import org.gvsig.chart.legend.IPieChartLegend;
6
import org.gvsig.chart.legend.symbols.IChartSymbol;
7
import org.gvsig.fmap.dal.feature.FeatureSelection;
8
import org.gvsig.fmap.mapcontext.MapContextLocator;
9
import org.gvsig.fmap.mapcontext.MapContextManager;
10
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
11 571 fdiaz
import static org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.VectorialUniqueValueLegend.VECTORIAL_UNIQUE_VALUE_LEGEND_PERSISTENCE_DEFINITION_NAME;
12 12 jbadia
import org.gvsig.tools.ToolsLocator;
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
/**
20
 * @author Fjp
21
 *
22
 * TODO: CAMBIAR EL NOMBRE DE ESTA LEYENDA A CHARTLEGEND, PORQUE EN REALIDAD
23
 * ESTA SE USA PARA TODO TIPO DE CHARTS. (BarsChartLegend no se usa, borrarla)
24
 */
25 571 fdiaz
public final class PieChartLegend extends BasePieChartLegend implements IPieChartLegend {
26 369 fdiaz
27 571 fdiaz
    public static class RegisterLegend implements Callable {
28 12 jbadia
29 571 fdiaz
        @Override
30
        public Object call() throws Exception {
31
            MapContextManager manager = MapContextLocator.getMapContextManager();
32 369 fdiaz
33 12 jbadia
            manager.registerLegend(IChartLegend.PIECHART_LEGEND_NAME,
34
                    PieChartLegend.class);
35
36 571 fdiaz
            return Boolean.TRUE;
37
        }
38 369 fdiaz
39 571 fdiaz
    }
40 12 jbadia
41 571 fdiaz
    public static final String PIE_CHART_LEGEND_PERSISTENCE_DEFINITION_NAME = "PieChartLegend";
42 12 jbadia
43 571 fdiaz
    private static final String FIELD_NAMES = "FieldLegendNames";
44
    private static final String FIELD_LABEL_NAMES = "FieldLabelNames";
45
    private static final String FIELD_LABEL_COLOR = "FieldLabelColor";
46 12 jbadia
47 571 fdiaz
    public PieChartLegend() {
48
        super();
49
    }
50
51
    public PieChartLegend(int shapeType) {
52
        super(shapeType);
53
    }
54
55
    @Override
56
    public void loadFromState(PersistentState state) throws PersistenceException {
57
        // Set parent properties
58
        super.loadFromState(state);
59
60
    }
61
62
    @Override
63
    public void saveToState(PersistentState state) throws PersistenceException {
64
        // Save parent properties
65
        super.saveToState(state);
66
    }
67
68
    public static class RegisterPersistence implements Callable {
69
70
        @Override
71
        public Object call() throws Exception {
72
            PersistenceManager manager = ToolsLocator.getPersistenceManager();
73
            if (manager.getDefinition(PIE_CHART_LEGEND_PERSISTENCE_DEFINITION_NAME) == null) {
74
                DynStruct definition = manager.addDefinition(
75
                        PieChartLegend.class,
76
                        PIE_CHART_LEGEND_PERSISTENCE_DEFINITION_NAME,
77
                        PIE_CHART_LEGEND_PERSISTENCE_DEFINITION_NAME + " Persistence definition",
78
                        null,
79
                        null
80
                );
81
                // Extend the Classified Vector Legend base definition
82
                definition.extend(manager.getDefinition(VECTORIAL_UNIQUE_VALUE_LEGEND_PERSISTENCE_DEFINITION_NAME));
83
84
                // Field names
85
                definition.addDynFieldArray(FIELD_NAMES)
86
                        .setClassOfItems(String.class);
87
                definition.addDynFieldArray(FIELD_LABEL_NAMES)
88
                        .setClassOfItems(String.class);
89
                definition.addDynFieldArray(FIELD_LABEL_COLOR)
90
                        .setClassOfItems(Color.class);
91
92
                definition.addDynField("backgroundSymbol").setClassOfValue(ISymbol.class);
93
                definition.addDynFieldInt("size");
94
                definition.addDynFieldBoolean("is3D");
95
96
                definition.addDynFieldBoolean("isOutlineShow");
97
                definition.addDynFieldBoolean("onlySelection");
98
                definition.addDynFieldBoolean("isActiveLimits");
99
100
                definition.addDynFieldInt("outlineWidth");
101
                definition.addDynFieldInt("referenceSystem");
102
                definition.addDynFieldInt("sizeFrom");
103
                definition.addDynFieldInt("sizeTo");
104
                definition.addDynFieldInt("unit");
105
                definition.addDynFieldInt("sizeOption");
106
107
                definition.addDynFieldObject("outlineColor").setClassOfValue(Color.class);
108
                definition.addDynFieldObject("symbol").setClassOfValue(IChartSymbol.class);
109
                definition.addDynFieldObject("featSelection").setClassOfValue(FeatureSelection.class);
110
111
                definition.addDynFieldString("fieldSize");
112
                definition.addDynFieldString("fieldNormalize");
113
114
                definition.addDynFieldDouble("minFeature");
115
                definition.addDynFieldDouble("maxFeature");
116
                definition.addDynFieldDouble("maxField");
117
            }
118
            return Boolean.TRUE;
119
        }
120
121
    }
122
123 12 jbadia
}