01: /*
02: * This file is part of the GeOxygene project source files.
03: *
04: * GeOxygene aims at providing an open framework which implements OGC/ISO specifications for
05: * the development and deployment of geographic (GIS) applications. It is a open source
06: * contribution of the COGIT laboratory at the Institut Géographique National (the French
07: * National Mapping Agency).
08: *
09: * See: http://oxygene-project.sourceforge.net
10: *
11: * Copyright (C) 2005 Institut Géographique National
12: *
13: * This library is free software; you can redistribute it and/or modify it under the terms
14: * of the GNU Lesser General Public License as published by the Free Software Foundation;
15: * either version 2.1 of the License, or any later version.
16: *
17: * This library is distributed in the hope that it will be useful, but WITHOUT ANY
18: * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
19: * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
20: *
21: * You should have received a copy of the GNU Lesser General Public License along with
22: * this library (see file LICENSE if present); if not, write to the Free Software
23: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24: *
25: */
26:
27: package fr.ign.cogit.geoxygene.util.conversion;
28:
29: import java.awt.Color;
30: import java.awt.Graphics2D;
31: import java.awt.Shape;
32: import java.awt.geom.GeneralPath;
33: import java.awt.geom.Rectangle2D;
34:
35: public class AwtSurface implements AwtShape {
36: private GeneralPath path;
37: private static boolean drawFilled = true;
38:
39: public AwtSurface() {
40: this (new GeneralPath());
41: }
42:
43: public AwtSurface(GeneralPath path) {
44: this .path = path;
45: path.setWindingRule(GeneralPath.WIND_EVEN_ODD);
46: }
47:
48: public AwtSurface(Shape shape) {
49: this (new GeneralPath(shape));
50: }
51:
52: public Rectangle2D getBounds() {
53: return path.getBounds();
54: }
55:
56: public void addInterior(Shape shape) {
57: this .path.append(shape, false);
58: }
59:
60: public void draw(Graphics2D g) {
61: if (drawFilled) {
62: g.fill(path);
63: Color old = g.getColor();
64: g.setColor(Color.BLACK);
65: g.draw(path);
66: g.setColor(old);
67: } else {
68: g.draw(path);
69: }
70: }
71: }
|