Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.fmap.mapcontext / org.gvsig.fmap.mapcontext.api / src / main / java / org / gvsig / symbology / fmap / mapcontext / rendering / symbol / impl / AbstractCartographicSupport.java @ 47476

History | View | Annotate | Download (4.55 KB)

1
/*
2
 * To change this license header, choose License Headers in Project Properties.
3
 * To change this template file, choose Tools | Templates
4
 * and open the template in the editor.
5
 */
6
package org.gvsig.symbology.fmap.mapcontext.rendering.symbol.impl;
7

    
8
import org.gvsig.compat.print.PrintAttributes;
9
import org.gvsig.fmap.geom.Geometry;
10
import org.gvsig.fmap.mapcontext.MapContextLocator;
11
import org.gvsig.fmap.mapcontext.ViewPort;
12
import org.gvsig.fmap.mapcontext.rendering.symbols.CartographicSupport;
13
import org.gvsig.fmap.mapcontext.rendering.symbols.SymbolPreferences;
14

    
15
/**
16
 *
17
 * @author fdiaz
18
 */
19
public abstract class AbstractCartographicSupport implements CartographicSupport {
20

    
21
    private int unit;
22
    private int referenceSystem;
23
    private CartographicSupport.CartographicContext cartographicContext;
24

    
25
    public AbstractCartographicSupport() {
26
        super();
27
        SymbolPreferences preferences = MapContextLocator.getSymbolManager().getSymbolPreferences();
28
        unit = preferences.getDefaultCartographicSupportMeasureUnit();
29
        referenceSystem = preferences.getDefaultCartographicSupportReferenceSystem();
30
    }
31

    
32
    @Override
33
    public void setCartographicContext(ViewPort viewPort, double dpi, Geometry geom) {
34
        if(viewPort == null){
35
            this.setCartographicContext((CartographicContext)null);
36
        } else {
37
            this.setCartographicContext(CartographicSupportToolkit.createCartographicContext(viewPort, dpi, geom));
38
        }
39
    }
40
    
41
    @Override
42
    public void setCartographicContext(ViewPort viewPort, PrintAttributes properties, Geometry geometry) {
43
        int dpi = (int)CartographicSupportToolkit.getScreenDpi();
44
        if(viewPort != null){
45
            dpi = (int) viewPort.getDPI();
46
        }
47
        if(properties != null){
48
            int pq = properties.getPrintQuality();
49
            switch (pq) {
50
                case PrintAttributes.PRINT_QUALITY_NORMAL:
51
                    dpi = 300;
52
                    break;
53
                case PrintAttributes.PRINT_QUALITY_HIGH:
54
                    dpi = 600;
55
                    break;
56
                case PrintAttributes.PRINT_QUALITY_DRAFT:
57
                    dpi = 72;
58
                    break;
59
                default:
60
                    break;
61
            }
62
        }
63
        this.setCartographicContext(CartographicSupportToolkit.createCartographicContext(viewPort, dpi, geometry));
64
    }
65

    
66
    
67
    @Override
68
    public void setCartographicContext(double dpi) {
69
        this.setCartographicContext(CartographicSupportToolkit.createCartographicContext(null, dpi, null));
70
    }
71
    
72
    @Override
73
    public void setCartographicContext(PrintAttributes properties) {
74
        int dpi = (int)CartographicSupportToolkit.getScreenDpi();
75
        if(properties != null){
76
            int pq = properties.getPrintQuality();
77
            switch (pq) {
78
                case PrintAttributes.PRINT_QUALITY_NORMAL:
79
                    dpi = 300;
80
                    break;
81
                case PrintAttributes.PRINT_QUALITY_HIGH:
82
                    dpi = 600;
83
                    break;
84
                case PrintAttributes.PRINT_QUALITY_DRAFT:
85
                    dpi = 72;
86
                    break;
87
                default:
88
                    break;
89
            }
90
        }
91

    
92
        this.setCartographicContext(CartographicSupportToolkit.createCartographicContext(null, dpi, null));
93
    }
94
    
95
    @Override
96
    public CartographicSupport.CartographicContext getCartographicContext() {
97
        return this.cartographicContext;
98
    }
99
    
100
    @Override
101
    public double toCartographicUnits(double value){
102
        if(isInPixels()){
103
            return value;
104
        }
105
        return CartographicSupportToolkit.getCartographicLength(
106
                this,
107
                value,
108
                this.getCartographicContext());
109
    }
110

    
111
    @Override
112
    public void setCartographicContext(CartographicSupport.CartographicContext ctx) {
113
        this.cartographicContext = ctx;
114
    }
115

    
116
    @Override
117
    public void copyCartographicContext(CartographicSupport element) {
118
        this.cartographicContext = element.getCartographicContext();
119
    }
120
    
121
    @Override
122
    public void setUnit(int unitIndex) {
123
        this.unit = unitIndex;
124
    }
125

    
126
    @Override
127
    public int getUnit() {
128
        return this.unit;
129
    }
130

    
131
    @Override
132
    public int getReferenceSystem() {
133
        return this.referenceSystem;
134
    }
135

    
136
    @Override
137
    public void setReferenceSystem(int system) {
138
        this.referenceSystem = system;
139

    
140
    }
141
    
142
    public boolean isInPixels() {
143
        return (this.getCartographicContext() == null || this.getUnit() == -1 );
144
    }
145

    
146

    
147
}