Example usage for org.eclipse.jface.resource ImageDescriptor ImageDescriptor

List of usage examples for org.eclipse.jface.resource ImageDescriptor ImageDescriptor

Introduction

In this page you can find the example usage for org.eclipse.jface.resource ImageDescriptor ImageDescriptor.

Prototype

protected ImageDescriptor() 

Source Link

Document

Constructs an image descriptor.

Usage

From source file:net.refractions.udig.legend.ui.ColorMapLegendCreator.java

License:Open Source License

private static List<LegendEntry> createRampEntries(ColorMap colorMap, final Dimension imageSize) {
    List<LegendEntry> lentries = new ArrayList<LegendEntry>();
    final ColorMapEntry[] entries = colorMap.getColorMapEntries();
    boolean first = true;
    for (int i = 1; i < entries.length; i += 1) {
        final ColorMapEntry entry = entries[i];
        final ColorMapEntry prevEntry = entries[i - 1];

        if (isNoData(prevEntry)) {
            //skip no data entries in legend
            continue;
        }/*from  ww w .  jav  a  2s  .c o m*/

        ImageDescriptor dd = null;
        int idx = -1;
        if (first) {
            idx = 0;
        } else if (i > entries.length - 2) {
            idx = 2;
        }
        final int index = idx;

        first = false;
        dd = new ImageDescriptor() {
            @Override
            public ImageData getImageData() {

                Display display = PlatformUI.getWorkbench().getDisplay();

                Image swtImage = new Image(display, imageSize.width, imageSize.height);
                GC gc = new GC(swtImage);
                gc.setAntialias(SWT.ON);

                org.eclipse.swt.graphics.Color c1 = getColor(display, entry.getColor());
                org.eclipse.swt.graphics.Color c2 = getColor(display, prevEntry.getColor());

                gc.setAlpha(getAlpha(entry.getOpacity()));
                gc.setBackground(c1);
                gc.setForeground(c2);
                gc.fillGradientRectangle(1, 0, imageSize.width - 2, imageSize.height, true);

                gc.setAlpha(150);
                gc.setForeground(display.getSystemColor(SWT.COLOR_BLACK));
                gc.drawLine(0, 0, 0, imageSize.height);
                gc.drawLine(imageSize.width - 1, 0, imageSize.width - 1, imageSize.height);
                if (index == 0) {
                    gc.drawLine(0, 0, imageSize.width - 1, 0);
                } else if (index == 2) {
                    gc.drawLine(0, imageSize.height - 1, imageSize.width - 1, imageSize.height - 1);
                }

                c1.dispose();
                c2.dispose();

                ImageData clone = (ImageData) swtImage.getImageData().clone();
                swtImage.dispose();

                return clone;
            }
        };

        String[] text = null;
        String q1 = entry.getQuantity().evaluate(null, String.class);
        String q2 = prevEntry.getQuantity().evaluate(null, String.class);

        String l1 = entry.getLabel();
        String l2 = prevEntry.getLabel();
        if (i <= entries.length - 3) {
            if (l2 == null) {
                text = new String[] { q2 };
            } else {
                text = new String[] { l2 + " (" + q2 + ")" }; //$NON-NLS-1$ //$NON-NLS-2$
            }
        } else {
            text = new String[2];
            if (l2 == null) {
                text[0] = q2;
            } else {
                text[0] = l2 + " (" + q2 + ")"; //$NON-NLS-1$//$NON-NLS-2$
            }
            if (l1 == null) {
                text[1] = q1;
            } else {
                text[1] = l1 + " (" + q1 + ")"; //$NON-NLS-1$//$NON-NLS-2$
            }
        }

        LegendEntry le = new LegendEntry(text, dd);
        le.setSpacingAfter(0);
        le.setTextPosition(SWT.TOP);
        lentries.add(le);

    }
    lentries.get(lentries.size() - 1).setSpacingAfter(null); //default spacing
    return lentries;
}

From source file:net.refractions.udig.legend.ui.ColorMapLegendCreator.java

License:Open Source License

private static List<LegendEntry> createIntervalEntries(ColorMap colorMap, final Dimension imageSize) {
    List<LegendEntry> lentries = new ArrayList<LegendEntry>();
    final ColorMapEntry[] entries = colorMap.getColorMapEntries();
    for (int i = 0; i < entries.length; i++) {
        ColorMapEntry prevEntry = null;/* w  w w  .  java  2  s  .  c  o  m*/
        if (i > 0) {
            prevEntry = entries[i - 1];
        }
        final ColorMapEntry entry = entries[i];

        if (isNoData(entry)) {
            //skip no data entries in legend
            continue;
        }

        ImageDescriptor dd = null;
        dd = new ImageDescriptor() {
            @Override
            public ImageData getImageData() {

                Display display = PlatformUI.getWorkbench().getDisplay();

                Image swtImage = new Image(display, imageSize.width, imageSize.height);
                GC gc = new GC(swtImage);
                gc.setAntialias(SWT.ON);

                org.eclipse.swt.graphics.Color c = getColor(display, entry.getColor());

                gc.setAlpha(getAlpha(entry.getOpacity()));
                gc.setBackground(c);
                gc.fillRectangle(1, 1, imageSize.width - 2, imageSize.height - 2);
                c.dispose();

                gc.setAlpha(150);
                gc.setForeground(display.getSystemColor(SWT.COLOR_BLACK));
                gc.drawRectangle(1, 1, imageSize.width - 2, imageSize.height - 2);

                ImageData clone = (ImageData) swtImage.getImageData().clone();
                swtImage.dispose();

                return clone;
            }
        };
        String text = null;

        String q1 = entry.getQuantity().evaluate(null, String.class);
        String l1 = entry.getLabel();

        if (prevEntry == null) {
            text = "< " + q1; //$NON-NLS-1$
            if (l1 != null) {
                text = l1 + " (" + text + ")"; //$NON-NLS-1$ //$NON-NLS-2$
            }
        } else {
            String q2 = prevEntry.getQuantity().evaluate(null, String.class);

            text = q2 + " - " + q1; //$NON-NLS-1$ 
            if (l1 != null) {
                text = l1 + " (" + text + ")"; //$NON-NLS-1$ //$NON-NLS-2$
            }
        }
        LegendEntry le = new LegendEntry(text, dd);
        lentries.add(le);

    }
    return lentries;
}

From source file:net.refractions.udig.legend.ui.ColorMapLegendCreator.java

License:Open Source License

private static List<LegendEntry> createValuesEntries(ColorMap colorMap, final Dimension imageSize) {
    List<LegendEntry> lentries = new ArrayList<LegendEntry>();

    final ColorMapEntry[] entries = colorMap.getColorMapEntries();
    for (int i = 0; i < entries.length; i++) {
        final ColorMapEntry entry = entries[i];

        if (isNoData(entry)) {
            //skip no data entries in legend
            continue;
        }// w  w w . jav  a 2  s.  c  om

        ImageDescriptor dd = null;
        dd = new ImageDescriptor() {
            @Override
            public ImageData getImageData() {
                Display display = PlatformUI.getWorkbench().getDisplay();

                Image swtImage = new Image(display, imageSize.width, imageSize.height);
                GC gc = new GC(swtImage);
                gc.setAntialias(SWT.ON);
                org.eclipse.swt.graphics.Color c = getColor(display, entry.getColor());

                gc.setAlpha(getAlpha(entry.getOpacity()));
                gc.setBackground(c);
                gc.fillRectangle(1, 1, imageSize.width - 2, imageSize.height - 2);

                gc.setAlpha(150);
                gc.setForeground(display.getSystemColor(SWT.COLOR_BLACK));
                gc.drawRectangle(1, 1, imageSize.width - 2, imageSize.height - 2);

                c.dispose();

                ImageData clone = (ImageData) swtImage.getImageData().clone();
                swtImage.dispose();

                return clone;
            }
        };

        String text = null;
        String q1 = entry.getQuantity().evaluate(null, String.class);
        String l1 = entry.getLabel();
        text = q1;
        if (l1 != null) {
            text = l1 + " (" + q1 + ")"; //$NON-NLS-1$ //$NON-NLS-2$
        }
        LegendEntry le = new LegendEntry(text, dd);
        lentries.add(le);

    }
    return lentries;
}

From source file:net.refractions.udig.project.internal.provider.GlyphBuilder.java

License:Open Source License

public static ImageDescriptor createImageDescriptor(final RenderedImage image) {
    return new ImageDescriptor() {
        public ImageData getImageData() {
            return createImageData(image);
        }//  w w w.  j a v a2s .  co  m
    };
}

From source file:net.refractions.udig.ui.graphics.AWTSWTImageUtils.java

License:Open Source License

public static ImageDescriptor createImageDescriptor(final RenderedImage image, final boolean transparent) {
    AWTSWTImageUtils.checkAccess();/*  w  ww  . ja  v  a 2 s.  com*/
    return new ImageDescriptor() {
        public ImageData getImageData() {
            return createImageData(image, transparent);
        }
    };
}

From source file:net.refractions.udig.ui.graphics.AWTSWTImageUtils.java

License:Open Source License

/**
 * Creates an image descriptor that from the source image.
 *
 * @param image source image/* www  .jav  a 2  s.c  om*/
 * @return  an image descriptor that from the source image.
 */
public static ImageDescriptor createImageDescriptor(final BufferedImage image) {
    AWTSWTImageUtils.checkAccess();
    return new ImageDescriptor() {
        public ImageData getImageData() {
            return AWTSWTImageUtils.createImageData(image);
        }
    };
}

From source file:net.refractions.udig.ui.graphics.AWTSWTImageUtils.java

License:Open Source License

/**
 * Converts a Swing {@link Icon} to an {@link ImageDescriptor}
 *
 * @param icon icon to convert//from  w  w w. j a v  a  2s.co m
 * @return an ImageDescriptor
 */
public static ImageDescriptor awtIcon2ImageDescriptor(final Icon icon) {
    ImageDescriptor descriptor = new ImageDescriptor() {

        @Override
        public ImageData getImageData() {
            BufferedImage image = createBufferedImage(icon.getIconWidth(), icon.getIconHeight());
            Graphics2D g = image.createGraphics();
            try {
                icon.paintIcon(null, g, 0, 0);
            } finally {
                g.dispose();
            }
            ImageData data = createImageData(image);
            return data;
        }

    };
    return descriptor;
}

From source file:net.refractions.udig.ui.graphics.Glyph.java

License:Open Source License

public static ImageDescriptor push(final ImageDescriptor icon) {
    return new ImageDescriptor() {
        @Override/*from  www  .jav  a2  s  . c o  m*/
        public ImageData getImageData() {
            ImageData push = icon.getImageData();
            if (!push.palette.isDirect) {
                RGB[] rgb = new RGB[push.palette.colors.length];
                System.arraycopy(push.palette.colors, 0, rgb, 0, push.palette.colors.length);
                rgb[push.transparentPixel] = Display.getDefault().getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW)
                        .getRGB();
                push.palette = new PaletteData(rgb);
                push.transparentPixel = -1;

                createBorder(push);

                return push;
            }
            int pushColour = push.palette
                    .getPixel(Display.getDefault().getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW).getRGB());

            for (int x = 0; x < push.width; x++)
                for (int y = 0; y < push.height; y++) {
                    if (push.getAlpha(x, y) == 0) {
                        push.setAlpha(x, y, 255);
                        push.setPixel(x, y, pushColour);
                    }
                    if (push.getPixel(x, y) == push.transparentPixel) {
                        push.setPixel(x, y, pushColour);
                    }
                }
            return push;
        }

        private void createBorder(ImageData push) {
            for (int y = 0; y < push.height; y++) {
                for (int x = 0; x < push.width; x++) {
                    if (y == 0 || x == 0)
                        push.setPixel(x, y, 0);
                }
            }
        }

    };
}

From source file:net.refractions.udig.ui.graphics.Glyph.java

License:Open Source License

/**
 * Render a icon based on the current style.
 * <p>/*from   w w w  .  j  a  va2  s.c om*/
 * Simple render of point in the center of the screen.
 * </p>
 * @param style
 * @return Icon representing style applyed to an image
 */
public static ImageDescriptor point(final Rule rule) {
    return new ImageDescriptor() {
        public ImageData getImageData() {
            Image image = null;
            try {
                Display display = PlatformUI.getWorkbench().getDisplay();

                image = new Image(display, DEFAULT_WIDTH, DEFAULT_HEIGHT);
                d.drawDirect(image, display, d.feature(d.point(7, 7)), rule);
                return extractImageDataAndDispose(image);
            } catch (RuntimeException ex) {
                if (image != null && !image.isDisposed()) {
                    image.dispose();
                }
                throw ex;
            }
        }
    };
}

From source file:net.refractions.udig.ui.graphics.Glyph.java

License:Open Source License

/**
 * Icon for point data in the provided color
 * <p>/*w ww .ja  v  a2  s  .  c o  m*/
 * XXX: Suggest point( SLD style ) at a later time.
 * </p>
 * @param color
 * @param fill
 * @return ImageDescriptor
 */
public static ImageDescriptor point(final Color color, final Color fill) {
    return new ImageDescriptor() {
        public ImageData getImageData() {
            Image swtImage = null;
            try {
                Display display = PlatformUI.getWorkbench().getDisplay();

                swtImage = new Image(display, DEFAULT_WIDTH, DEFAULT_HEIGHT);
                GC gc = new GC(swtImage);
                gc.setAntialias(SWT.ON);
                gc.setLineCap(SWT.CAP_SQUARE);
                gc.setLineStyle(SWT.LINE_SOLID);
                gc.setLineWidth(1);

                Color c = color;
                Color f = fill;

                if (c == null && f == null) { // only need default if both are empty                    
                    c = Color.BLACK;
                    f = Color.LIGHT_GRAY;
                }
                if (f != null) {
                    gc.setBackground(color(f));
                    gc.setAlpha(f.getAlpha());
                    gc.fillRectangle(8, 7, 5, 5);
                }
                if (c != null) {
                    gc.setForeground(color(c));
                    gc.setAlpha(c.getAlpha());
                    gc.drawRectangle(8, 7, 5, 5);
                }
                ImageData clone = (ImageData) swtImage.getImageData().clone();
                swtImage.dispose();
                gc.dispose();
                return clone;
            } catch (RuntimeException ex) {
                if (swtImage != null && !swtImage.isDisposed()) {
                    swtImage.dispose();
                }
                throw ex;
            }
        }
    };
}