1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/javaquery/canvas/src/main/java/net/java/html/canvas/GraphicsEnvironment.java Fri May 17 14:05:55 2013 +0200
1.3 @@ -0,0 +1,102 @@
1.4 +/*
1.5 + * To change this template, choose Tools | Templates
1.6 + * and open the template in the editor.
1.7 + */
1.8 +package net.java.html.canvas;
1.9 +
1.10 +import java.util.ServiceLoader;
1.11 +
1.12 +/**
1.13 + *
1.14 + * @author antonepple
1.15 + */
1.16 +public abstract class GraphicsEnvironment {
1.17 +
1.18 + private static GraphicsEnvironment DEFAULT;
1.19 +
1.20 + public GraphicsEnvironment getDefault() {
1.21 + if (DEFAULT == null) {
1.22 + ServiceLoader<GraphicsEnvironment> loader = ServiceLoader.load(GraphicsEnvironment.class);
1.23 + DEFAULT = loader.iterator().next();
1.24 + }
1.25 + return DEFAULT == null ? getDummyInstance() : DEFAULT;
1.26 + }
1.27 +
1.28 + public abstract Image getImageForPath(String path);
1.29 +
1.30 + public abstract LinearGradient createLinearGradient();
1.31 +
1.32 + public abstract Pattern createPattern();
1.33 +
1.34 + public abstract RadialGradient createRadialGradient();
1.35 +
1.36 + public abstract TextMetrics createTextMetrics();
1.37 +
1.38 + private GraphicsEnvironment getDummyInstance() {
1.39 +
1.40 + return new GraphicsEnvironment() {
1.41 +
1.42 + @Override
1.43 + public Image getImageForPath(String path) {
1.44 + return new Image() {
1.45 +
1.46 + @Override
1.47 + public int getHeight() {
1.48 + return 0;
1.49 + }
1.50 +
1.51 + @Override
1.52 + public int getWidth() {
1.53 + return 0;
1.54 + }
1.55 + };
1.56 + }
1.57 +
1.58 + @Override
1.59 + public LinearGradient createLinearGradient() {
1.60 + return new LinearGradient() {
1.61 +
1.62 + @Override
1.63 + public void addColorStop(double position, String color) {
1.64 +
1.65 + }
1.66 + };
1.67 + }
1.68 +
1.69 + @Override
1.70 + public Pattern createPattern() {
1.71 + return new Pattern() {
1.72 +};
1.73 + }
1.74 +
1.75 + @Override
1.76 + public RadialGradient createRadialGradient() {
1.77 + return new RadialGradient() {
1.78 +
1.79 + @Override
1.80 + public void addColorStop(double position, String color) {
1.81 +
1.82 + }
1.83 + };
1.84 + }
1.85 +
1.86 + @Override
1.87 + public TextMetrics createTextMetrics() {
1.88 + return new TextMetrics() {
1.89 +
1.90 + @Override
1.91 + public double getHeight() {
1.92 + return 0;
1.93 + }
1.94 +
1.95 + @Override
1.96 + public double getWidth() {
1.97 + return 0;
1.98 + }
1.99 + };
1.100 + }
1.101 + };
1.102 + }
1.103 +
1.104 +
1.105 +}