Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Vogel2014-03-15 09:34:39 +0000
committerLars Vogel2014-03-16 09:30:58 +0000
commitb76af1831346de6fedff2020c59446096421055d (patch)
tree5b139cbe975aa5d6885fba2c12674985c9ba9ff8
parent757bb1d316e08426744bceebeb7cfca31eac6f6d (diff)
downloadorg.eclipse.e4.tools-b76af1831346de6fedff2020c59446096421055d.tar.gz
org.eclipse.e4.tools-b76af1831346de6fedff2020c59446096421055d.tar.xz
org.eclipse.e4.tools-b76af1831346de6fedff2020c59446096421055d.zip
Bug 430437 - Use standard Composite for application model editor instead I20140317-2200I20140316-2200
Change-Id: I0c92fa0fddd15bbf069436acd1534a1d22e85a96 Signed-off-by: Lars Vogel <Lars.Vogel@gmail.com>
-rw-r--r--bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/ShadowComposite.java663
-rw-r--r--bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ModelEditor.java5
2 files changed, 2 insertions, 666 deletions
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/ShadowComposite.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/ShadowComposite.java
deleted file mode 100644
index 8df6d955..00000000
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/ShadowComposite.java
+++ /dev/null
@@ -1,663 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009, 2010 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- * Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
- ******************************************************************************/
-package org.eclipse.e4.tools.emf.ui.internal;
-
-import javax.inject.Inject;
-import javax.inject.Named;
-import org.eclipse.e4.core.di.annotations.Optional;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CTabFolderRenderer;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.PaletteData;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.graphics.Region;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-
-public class ShadowComposite extends Composite {
-
- // ================================
- // Dummy to not modify code
- // ================================
- public int marginWidth = 0;
- public int marginHeight = 0;
-
- ShadowComposite parent;
-
- private int getTabHeight() {
- return 0;
- }
-
- private boolean getMinimized() {
- return false;
- }
-
- public static final int PART_BODY = -1;
- public static final int PART_HEADER = -2;
- public static final int PART_BORDER = -3;
- public static final int PART_BACKGROUND = -4;
-
- // Constants for circle drawing
- final static int LEFT_TOP = 0;
- final static int LEFT_BOTTOM = 1;
- final static int RIGHT_TOP = 2;
- final static int RIGHT_BOTTOM = 3;
-
- // drop shadow constants
- final static int SIDE_DROP_WIDTH = 3;
- final static int BOTTOM_DROP_WIDTH = 4;
-
- // keylines
- final static int OUTER_KEYLINE = 1;
- final static int INNER_KEYLINE = 0;
- final static int TOP_KEYLINE = 0;
-
- // Item Constants
- static final int ITEM_TOP_MARGIN = 2;
- static final int ITEM_BOTTOM_MARGIN = 6;
- static final int ITEM_LEFT_MARGIN = 4;
- static final int ITEM_RIGHT_MARGIN = 4;
- static final int INTERNAL_SPACING = 4;
-
- static final String E4_SHADOW_IMAGE = "org.eclipse.e4.renderer.shadowcomposite_image"; //$NON-NLS-1$
-
- static int[] shape;
-
- Image shadowImage;
-
- int cornerSize = 20;
-
- boolean shadowEnabled = true;
- Color outerKeyline, innerKeyline;
- Color[] activeToolbar;
- int[] activePercents;
- Color[] inactiveToolbar;
- int[] inactivePercents;
- boolean active;
-
- private boolean drawPolyline = true;
-
- public ShadowComposite(Composite parent, int style) {
- super(parent, style);
- this.parent = this;
- this.outerKeyline = new Color(getDisplay(), new RGB(240, 240, 240));
- addListener(SWT.Paint, new Listener() {
-
- @Override
- public void handleEvent(Event event) {
- onPaint(event);
- }
- });
- addListener(SWT.Dispose, new Listener() {
-
- @Override
- public void handleEvent(Event event) {
- outerKeyline.dispose();
- }
- });
- // addPaintListener(new PaintListener() {
- //
- // public void paintControl(PaintEvent e) {
- // Point size = getSize();
- // Rectangle bodyRect = new Rectangle(0, 0, size.x, size.y);
- // drawTabBody(e.gc, bodyRect, 0);
- // drawTabHeader(e.gc, bodyRect, 0);
- // }
- // });
- }
-
- @Override
- public Rectangle getClientArea() {
- Rectangle trim = computeTrim(CTabFolderRenderer.PART_BODY, SWT.NONE, 0, 0, 0, 0);
- // if (minimized)
- // return new Rectangle(-trim.x, -trim.y, 0, 0);
- Point size = getSize();
- int width = size.x - trim.width;
- int height = size.y - trim.height;
- return new Rectangle(-trim.x, -trim.y, width, height);
- }
-
- private void onPaint(Event event) {
- GC gc = event.gc;
- gc.setAdvanced(true);
-
- Color gcBackground = gc.getBackground();
- Color gcForeground = gc.getForeground();
-
- Point size = getSize();
- Rectangle bodyRect = new Rectangle(0, 0, size.x, size.y);
- draw(CTabFolderRenderer.PART_BODY, SWT.BACKGROUND | SWT.FOREGROUND, bodyRect, gc);
-
- gc.setForeground(gcForeground);
- gc.setBackground(gcBackground);
-
- draw(CTabFolderRenderer.PART_HEADER, SWT.BACKGROUND | SWT.FOREGROUND, bodyRect, gc);
-
- }
-
- @Override
- public Rectangle computeTrim(int x, int y, int width, int height) {
- return computeTrim(PART_BODY, SWT.NONE, x, y, width, height);
- }
-
- protected Rectangle computeTrim(int part, int state, int x, int y, int width, int height) {
- GC gc = new GC(parent);
- gc.dispose();
- int borderTop = TOP_KEYLINE + OUTER_KEYLINE;
- int borderBottom = INNER_KEYLINE + OUTER_KEYLINE;
- int marginWidth = parent.marginWidth;
- int marginHeight = parent.marginHeight;
- int sideDropWidth = shadowEnabled ? SIDE_DROP_WIDTH : 0;
- switch (part) {
- case PART_BODY:
- x = x - marginWidth - OUTER_KEYLINE - INNER_KEYLINE - sideDropWidth - (cornerSize / 2);
- width = width + 2 * OUTER_KEYLINE + 2 * INNER_KEYLINE + 2 * marginWidth + 2 * sideDropWidth + cornerSize;
- int tabHeight = parent.getTabHeight() + 1; // TODO: Figure out what
- // to do about the +1
- // TODO: Fix
- if (parent.getMinimized()) {
- y = /* parent.onBottom ? y - borderTop : */y - tabHeight - borderTop - 5;
- height = borderTop + borderBottom + tabHeight;
- } else {
- // y = tabFolder.onBottom ? y - marginHeight - highlight_margin
- // - borderTop: y - marginHeight - highlight_header - tabHeight
- // - borderTop;
-
- y = y - marginHeight - tabHeight - borderTop - (cornerSize / 4);
- height = height + borderBottom + borderTop + 2 * marginHeight + tabHeight + cornerSize / 2 + cornerSize / 4 + (shadowEnabled ? BOTTOM_DROP_WIDTH : 0);
- }
- break;
- case PART_HEADER:
- x = x - (INNER_KEYLINE + OUTER_KEYLINE) - sideDropWidth;
- width = width + 2 * (INNER_KEYLINE + OUTER_KEYLINE + sideDropWidth);
- break;
- case PART_BORDER:
- x = x - INNER_KEYLINE - OUTER_KEYLINE - sideDropWidth - (cornerSize / 4);
- width = width + 2 * (INNER_KEYLINE + OUTER_KEYLINE + sideDropWidth) + cornerSize / 2;
- y = y - borderTop;
- height = height + borderTop + borderBottom;
- break;
- }
- return new Rectangle(x, y, width, height);
- }
-
- protected void draw(int part, int state, Rectangle bounds, GC gc) {
- switch (part) {
- case PART_BODY:
- this.drawTabBody(gc, bounds, state);
- return;
- case PART_HEADER:
- this.drawTabHeader(gc, bounds, state);
- return;
- }
- }
-
- void drawTabHeader(GC gc, Rectangle bounds, int state) {
- // gc.setClipping(bounds.x, bounds.y, bounds.width,
- // parent.getTabHeight() + 1);
-
- int[] points = new int[1024];
- int index = 0;
- int radius = cornerSize / 2;
- int marginWidth = parent.marginWidth;
- int marginHeight = parent.marginHeight;
- int delta = INNER_KEYLINE + OUTER_KEYLINE + 2 * (shadowEnabled ? SIDE_DROP_WIDTH : 0) + 2 * marginWidth;
- int width = bounds.width - delta;
- int height = bounds.height - INNER_KEYLINE - OUTER_KEYLINE - 2 * marginHeight - (shadowEnabled ? BOTTOM_DROP_WIDTH : 0);
- int circX = bounds.x + delta / 2 + radius;
- int circY = bounds.y + radius;
-
- // Fill in background
- Region clipping = new Region();
- gc.getClipping(clipping);
- Region region = new Region();
- region.add(shape);
- region.intersect(clipping);
- gc.setClipping(region);
-
- int header = 3; // TODO: this needs to be added to computeTrim for
- // HEADER
- Rectangle trim = computeTrim(PART_HEADER, state, 0, 0, 0, 0);
- trim.width = bounds.width - trim.width;
- trim.height = (parent.getTabHeight() + 1 + header) - trim.height;
- trim.x = -trim.x;
- trim.y = -trim.y;
-
- draw(PART_BACKGROUND, SWT.NONE, trim, gc);
-
- gc.setClipping(clipping);
- clipping.dispose();
- region.dispose();
-
- int[] ltt = drawCircle(circX + 1, circY + 1, radius, LEFT_TOP);
- System.arraycopy(ltt, 0, points, index, ltt.length);
- index += ltt.length;
-
- int[] lbb = drawCircle(circX + 1, circY + height - (radius * 2) - 2, radius, LEFT_BOTTOM);
- System.arraycopy(lbb, 0, points, index, lbb.length);
- index += lbb.length;
-
- int[] rb = drawCircle(circX + width - (radius * 2) - 2, circY + height - (radius * 2) - 2, radius, RIGHT_BOTTOM);
- System.arraycopy(rb, 0, points, index, rb.length);
- index += rb.length;
-
- int[] rt = drawCircle(circX + width - (radius * 2) - 2, circY + 1, radius, RIGHT_TOP);
- System.arraycopy(rt, 0, points, index, rt.length);
- index += rt.length;
- points[index++] = points[0];
- points[index++] = points[1];
-
- int[] tempPoints = new int[index];
- System.arraycopy(points, 0, tempPoints, 0, index);
-
- if (outerKeyline == null)
- outerKeyline = gc.getDevice().getSystemColor(SWT.COLOR_BLACK);
-
- gc.setForeground(outerKeyline);
-
- if (drawPolyline) {
- gc.drawPolyline(shape);
- }
- }
-
- void drawTabBody(GC gc, Rectangle bounds, int state) {
- int[] points = new int[1024];
- int index = 0;
- int radius = cornerSize / 2;
- int marginWidth = parent.marginWidth;
- int marginHeight = parent.marginHeight;
- int delta = INNER_KEYLINE + OUTER_KEYLINE + 2 * (shadowEnabled ? SIDE_DROP_WIDTH : 0) + 2 * marginWidth;
- int width = bounds.width - delta;
- int height = Math.max(parent.getTabHeight() + INNER_KEYLINE + OUTER_KEYLINE + (shadowEnabled ? BOTTOM_DROP_WIDTH : 0), bounds.height - INNER_KEYLINE - OUTER_KEYLINE - 2 * marginHeight - (shadowEnabled ? BOTTOM_DROP_WIDTH : 0));
-
- int circX = bounds.x + delta / 2 + radius;
- int circY = bounds.y + radius;
-
- // Body
- index = 0;
- int[] ltt = drawCircle(circX, circY, radius, LEFT_TOP);
- System.arraycopy(ltt, 0, points, index, ltt.length);
- index += ltt.length;
-
- int[] lbb = drawCircle(circX, circY + height - (radius * 2), radius, LEFT_BOTTOM);
- System.arraycopy(lbb, 0, points, index, lbb.length);
- index += lbb.length;
-
- int[] rb = drawCircle(circX + width - (radius * 2), circY + height - (radius * 2), radius, RIGHT_BOTTOM);
- System.arraycopy(rb, 0, points, index, rb.length);
- index += rb.length;
-
- int[] rt = drawCircle(circX + width - (radius * 2), circY, radius, RIGHT_TOP);
- System.arraycopy(rt, 0, points, index, rt.length);
- index += rt.length;
- points[index++] = circX;
- points[index++] = circY - radius;
-
- int[] tempPoints = new int[index];
- System.arraycopy(points, 0, tempPoints, 0, index);
- gc.fillPolygon(tempPoints);
-
- // Fill in parent background for non-rectangular shape
- Region r = new Region();
- r.add(bounds);
- r.subtract(tempPoints);
- gc.setBackground(parent.getParent().getBackground());
- Display display = parent.getDisplay();
- Region clipping = new Region();
- gc.getClipping(clipping);
- r.intersect(clipping);
- gc.setClipping(r);
- Rectangle mappedBounds = display.map(parent, parent.getParent(), bounds);
- parent.getParent().drawBackground(gc, bounds.x, bounds.y, bounds.width, bounds.height, mappedBounds.x, mappedBounds.y);
-
- // Shadow
- if (shadowEnabled)
- drawShadow(display, bounds, gc);
-
- gc.setClipping(clipping);
- clipping.dispose();
- r.dispose();
-
- shape = tempPoints;
- }
-
- static int[] drawCircle(int xC, int yC, int r, int circlePart) {
- int x = 0, y = r, u = 1, v = 2 * r - 1, e = 0;
- int[] points = new int[1024];
- int[] pointsMirror = new int[1024];
- int loop = 0;
- int loopMirror = 0;
- while (x < y) {
- if (circlePart == RIGHT_BOTTOM) {
- points[loop++] = xC + x;
- points[loop++] = yC + y;
- }
- if (circlePart == RIGHT_TOP) {
- points[loop++] = xC + y;
- points[loop++] = yC - x;
- }
- if (circlePart == LEFT_TOP) {
- points[loop++] = xC - x;
- points[loop++] = yC - y;
- }
- if (circlePart == LEFT_BOTTOM) {
- points[loop++] = xC - y;
- points[loop++] = yC + x;
- }
- x++;
- e += u;
- u += 2;
- if (v < 2 * e) {
- y--;
- e -= v;
- v -= 2;
- }
- if (x > y)
- break;
- if (circlePart == RIGHT_BOTTOM) {
- pointsMirror[loopMirror++] = xC + y;
- pointsMirror[loopMirror++] = yC + x;
- }
- if (circlePart == RIGHT_TOP) {
- pointsMirror[loopMirror++] = xC + x;
- pointsMirror[loopMirror++] = yC - y;
- }
- if (circlePart == LEFT_TOP) {
- pointsMirror[loopMirror++] = xC - y;
- pointsMirror[loopMirror++] = yC - x;
- }
- if (circlePart == LEFT_BOTTOM) {
- pointsMirror[loopMirror++] = xC - x;
- pointsMirror[loopMirror++] = yC + y;
- }
- // grow?
- if ((loop + 1) > points.length) {
- int length = points.length * 2;
- int[] newPointTable = new int[length];
- int[] newPointTableMirror = new int[length];
- System.arraycopy(points, 0, newPointTable, 0, points.length);
- points = newPointTable;
- System.arraycopy(pointsMirror, 0, newPointTableMirror, 0, pointsMirror.length);
- pointsMirror = newPointTableMirror;
- }
- }
- int[] finalArray = new int[loop + loopMirror];
- System.arraycopy(points, 0, finalArray, 0, loop);
- for (int i = loopMirror - 1, j = loop; i > 0; i = i - 2, j = j + 2) {
- int tempY = pointsMirror[i];
- int tempX = pointsMirror[i - 1];
- finalArray[j] = tempX;
- finalArray[j + 1] = tempY;
- }
- return finalArray;
- }
-
- void drawShadow(final Display display, Rectangle bounds, GC gc) {
- if (shadowImage == null)
- createShadow(display);
-
- int x = bounds.x;
- int y = bounds.y;
- int SIZE = shadowImage.getBounds().width / 3;
-
- int height = Math.max(bounds.height, SIZE * 2);
- int width = Math.max(bounds.width, SIZE * 2);
- // top left
- gc.drawImage(shadowImage, 0, 0, SIZE, SIZE, 2, 10, SIZE, 20);
- int fillHeight = height - SIZE * 2;
- int fillWidth = width + 5 - SIZE * 2;
-
- int xFill = 0;
- for (int i = SIZE; i < fillHeight; i += SIZE) {
- xFill = i;
- gc.drawImage(shadowImage, 0, SIZE, SIZE, SIZE, 2, i, SIZE, SIZE);
- }
-
- // Pad the rest of the shadow
- gc.drawImage(shadowImage, 0, SIZE, SIZE, fillHeight - xFill, 2, xFill + SIZE, SIZE, fillHeight - xFill);
-
- // bl
- gc.drawImage(shadowImage, 0, 40, 20, 20, 2, y + height - SIZE, 20, 20);
-
- int yFill = 0;
- for (int i = SIZE; i <= fillWidth; i += SIZE) {
- yFill = i;
- gc.drawImage(shadowImage, SIZE, SIZE * 2, SIZE, SIZE, i, y + height - SIZE, SIZE, SIZE);
- }
- // Pad the rest of the shadow
- gc.drawImage(shadowImage, SIZE, SIZE * 2, fillWidth - yFill, SIZE, yFill + SIZE, y + height - SIZE, fillWidth - yFill, SIZE);
-
- // br
- gc.drawImage(shadowImage, SIZE * 2, SIZE * 2, SIZE, SIZE, x + width - SIZE - 1, y + height - SIZE, SIZE, SIZE);
-
- // tr
- gc.drawImage(shadowImage, (SIZE * 2), 0, SIZE, SIZE, x + width - SIZE - 1, 10, SIZE, SIZE);
-
- xFill = 0;
- for (int i = SIZE; i < fillHeight; i += SIZE) {
- xFill = i;
- gc.drawImage(shadowImage, SIZE * 2, SIZE, SIZE, SIZE, x + width - SIZE - 1, i, SIZE, SIZE);
- }
-
- // Pad the rest of the shadow
- gc.drawImage(shadowImage, SIZE * 2, SIZE, SIZE, fillHeight - xFill, x + width - SIZE - 1, xFill + SIZE, SIZE, fillHeight - xFill);
- }
-
- void createShadow(final Display display) {
- Object obj = display.getData(E4_SHADOW_IMAGE);
- if (obj != null) {
- shadowImage = (Image) obj;
- } else {
- ImageData data = new ImageData(60, 60, 32, new PaletteData(0xFF0000, 0xFF00, 0xFF));
- Image tmpImage = shadowImage = new Image(display, data);
- GC gc = new GC(tmpImage);
- Color shadowColor = new Color(display, new RGB(128, 128, 128));
- gc.setBackground(shadowColor);
- drawTabBody(gc, new Rectangle(0, 0, 60, 60), SWT.None);
- ImageData blured = blur(tmpImage, 5, 25);
- shadowImage = new Image(display, blured);
- display.setData(E4_SHADOW_IMAGE, shadowImage);
- tmpImage.dispose();
- shadowColor.dispose();
- display.disposeExec(new Runnable() {
- @Override
- public void run() {
- Object obj = display.getData(E4_SHADOW_IMAGE);
- if (obj != null) {
- Image tmp = (Image) obj;
- tmp.dispose();
- display.setData(E4_SHADOW_IMAGE, null);
- }
- }
- });
- }
- }
-
- public ImageData blur(Image src, int radius, int sigma) {
- float[] kernel = create1DKernel(radius, sigma);
-
- ImageData imgPixels = src.getImageData();
- int width = imgPixels.width;
- int height = imgPixels.height;
-
- int[] inPixels = new int[width * height];
- int[] outPixels = new int[width * height];
- int offset = 0;
- for (int y = 0; y < height; y++) {
- for (int x = 0; x < width; x++) {
- RGB rgb = imgPixels.palette.getRGB(imgPixels.getPixel(x, y));
- if (rgb.red == 255 && rgb.green == 255 && rgb.blue == 255) {
- inPixels[offset] = (rgb.red << 16) | (rgb.green << 8) | rgb.blue;
- } else {
- inPixels[offset] = (imgPixels.getAlpha(x, y) << 24) | (rgb.red << 16) | (rgb.green << 8) | rgb.blue;
- }
- offset++;
- }
- }
-
- convolve(kernel, inPixels, outPixels, width, height, true);
- convolve(kernel, outPixels, inPixels, height, width, true);
-
- ImageData dst = new ImageData(imgPixels.width, imgPixels.height, 24, new PaletteData(0xff0000, 0xff00, 0xff));
-
- dst.setPixels(0, 0, inPixels.length, inPixels, 0);
- offset = 0;
- for (int y = 0; y < height; y++) {
- for (int x = 0; x < width; x++) {
- if (inPixels[offset] == -1) {
- dst.setAlpha(x, y, 0);
- } else {
- int a = (inPixels[offset] >> 24) & 0xff;
- // if (a < 150) a = 0;
- dst.setAlpha(x, y, a);
- }
- offset++;
- }
- }
- return dst;
- }
-
- private void convolve(float[] kernel, int[] inPixels, int[] outPixels, int width, int height, boolean alpha) {
- int kernelWidth = kernel.length;
- int kernelMid = kernelWidth / 2;
- for (int y = 0; y < height; y++) {
- int index = y;
- int currentLine = y * width;
- for (int x = 0; x < width; x++) {
- // do point
- float a = 0, r = 0, g = 0, b = 0;
- for (int k = -kernelMid; k <= kernelMid; k++) {
- float val = kernel[k + kernelMid];
- int xcoord = x + k;
- if (xcoord < 0)
- xcoord = 0;
- if (xcoord >= width)
- xcoord = width - 1;
- int pixel = inPixels[currentLine + xcoord];
- // float alp = ((pixel >> 24) & 0xff);
- a += val * ((pixel >> 24) & 0xff);
- r += val * (((pixel >> 16) & 0xff));
- g += val * (((pixel >> 8) & 0xff));
- b += val * (((pixel) & 0xff));
- }
- int ia = alpha ? clamp((int) (a + 0.5)) : 0xff;
- int ir = clamp((int) (r + 0.5));
- int ig = clamp((int) (g + 0.5));
- int ib = clamp((int) (b + 0.5));
- outPixels[index] = (ia << 24) | (ir << 16) | (ig << 8) | ib;
- index += height;
- }
- }
-
- }
-
- private int clamp(int value) {
- if (value > 255)
- return 255;
- if (value < 0)
- return 0;
- return value;
- }
-
- private float[] create1DKernel(int radius, int sigma) {
- // guideline: 3*sigma should be the radius
- int size = radius * 2 + 1;
- float[] kernel = new float[size];
- int radiusSquare = radius * radius;
- float sigmaSquare = 2 * sigma * sigma;
- float piSigma = 2 * (float) Math.PI * sigma;
- float sqrtSigmaPi2 = (float) Math.sqrt(piSigma);
- int start = size / 2;
- int index = 0;
- float total = 0;
- for (int i = -start; i <= start; i++) {
- float d = i * i;
- if (d > radiusSquare) {
- kernel[index] = 0;
- } else {
- kernel[index] = (float) Math.exp(-(d) / sigmaSquare) / sqrtSigmaPi2;
- }
- total += kernel[index];
- index++;
- }
- for (int i = 0; i < size; i++) {
- kernel[i] /= total;
- }
- return kernel;
- }
-
- @Inject
- @Optional
- public void setCornerRadius(@Named("radius") Integer radius) {
- cornerSize = radius.intValue();
- parent.redraw();
- }
-
- @Inject
- @Optional
- public void setShadowVisible(@Named("shadowVisible") Boolean visible) {
- this.shadowEnabled = visible.booleanValue();
- parent.redraw();
- }
-
- @Inject
- @Optional
- public void setOuterKeyline(@Named("outerKeyline") Color color) {
- this.outerKeyline = color;
- // TODO: HACK! Should be set based on pseudo-state.
- // setActive(!(color.getRed() == 255 && color.getGreen() == 255 &&
- // color.getBlue() == 255));
- parent.redraw();
- }
-
- @Inject
- @Optional
- public void setInnerKeyline(@Named("innerKeyline") Color color) {
- this.innerKeyline = color;
- parent.redraw();
- }
-
- @Inject
- @Optional
- public void setActiveToolbarGradient(@Named("activeToolbarColors") Color[] color, @Named("activeToolbarPercents") int[] percents) {
- activeToolbar = color;
- activePercents = percents;
- }
-
- @Inject
- @Optional
- public void setInactiveToolbarGradient(@Named("inactiveToolbarColors") Color[] color, @Named("inactiveToolbarPercents") int[] percents) {
- inactiveToolbar = color;
- inactivePercents = percents;
- }
-
- // public void setActive(boolean active) {
- // this.active = active;
- // Control topRight = parent.getTopRight();
- // if (topRight != null) {
- // if (active && toolbarActiveImage == null)
- // createActiveToolbarImages(Display.getCurrent());
- // if (!active && toolbarInactiveImage == null)
- // createInactiveToolbarImages(Display.getCurrent());
- // topRight.setBackgroundImage(active ? toolbarActiveImage :
- // toolbarInactiveImage);
- // parent.redraw();
- // }
- // }
-}
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ModelEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ModelEditor.java
index f5d54029..8a33ff8e 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ModelEditor.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ModelEditor.java
@@ -62,7 +62,6 @@ import org.eclipse.e4.tools.emf.ui.common.component.AbstractComponentEditor;
import org.eclipse.e4.tools.emf.ui.internal.Messages;
import org.eclipse.e4.tools.emf.ui.internal.PatternFilter;
import org.eclipse.e4.tools.emf.ui.internal.ResourceProvider;
-import org.eclipse.e4.tools.emf.ui.internal.ShadowComposite;
import org.eclipse.e4.tools.emf.ui.internal.common.component.AddonsEditor;
import org.eclipse.e4.tools.emf.ui.internal.common.component.ApplicationEditor;
import org.eclipse.e4.tools.emf.ui.internal.common.component.AreaEditor;
@@ -499,7 +498,7 @@ public class ModelEditor {
FillLayout l = new FillLayout();
parent.setLayout(l);
- ShadowComposite editingArea = new ShadowComposite(parent, SWT.NONE);
+ Composite editingArea = new Composite(parent, SWT.BORDER);
GridLayout gl = new GridLayout();
editingArea.setLayout(gl);
@@ -988,7 +987,7 @@ public class ModelEditor {
private TreeViewer createTreeViewerArea(Composite parent) {
- final ShadowComposite treeArea = new ShadowComposite(parent, SWT.NONE);
+ final Composite treeArea = new Composite(parent, SWT.BORDER);
treeArea.setLayout(new FillLayout());
treeArea.setData(CSS_CLASS_KEY, "formContainer"); //$NON-NLS-1$

Back to the top