# Setze Gradienten auf Elemente(GMF-Editor)



## Tomas (10. Dez 2009)

Hallo,
ich habe eine Frage wie ich gradierungen in gmf am besten implementieren kann.
Mal die erste frage, 

```
@Override
		protected void fillShape(Graphics graphics) {
			graphics.setBackgroundColor(ColorConstants.orange);
			graphics.setForegroundColor(ColorConstants.yellow);
			graphics.fillGradient(getBounds(), false);
			
}
```

das liefert mir ein gewünschtes resultat, nur foregroundcolor setzt mir auch den border.


```
@Override
		protected void fillShape(Graphics graphics) {
			Rectangle r = (Rectangle) getBounds().getCopy();
			Point topLeft = r.getTopLeft();
			Point bottomRight =r.getBottomRight();
			Pattern pattern = new Pattern(Display.getCurrent(), topLeft.x,
					topLeft.y, bottomRight.x, bottomRight.y,
					ColorConstants.white, ColorConstants.darkBlue);
			graphics.setBackgroundPattern(pattern);
			graphics.fillOval((org.eclipse.draw2d.geometry.Rectangle) r);
			graphics.setBackgroundPattern(null);
			pattern.dispose();
		}
```
füllt mir eine ellipse

doch welcher weg ist der bessere, wenn ich in der Property Page die Farbe ändern will, bzw. gibt es irgendwelche gradienten"CellEditorn"?
Danke


----------



## Wildcard (10. Dez 2009)

1. Du solltest das Graphics Objekt so zurück geben wie du es vorgefunden hast. Dazu gibt es zB Graphics#pushState() und Graphics#popState

2. Du brauchst nun mehr Farben als von GMF definiert, also wirst du eine eigene (oder erweiterte) Property Page einbinden müssen. Den Zusätzlichen Wert kannst du dann im Notation Model zB als Annotation ablegen. Dadurch wird er dann automatisch geladen und persistiert.


----------



## Tomas (11. Dez 2009)

jo genau

zu 2.:

Ich will eine PropertyPage erstellen die ähnlich aussieht wie die standartmäßig generierten von gmf. Also mit den neuen widgets etc. finde die recht net und es würde die bedienbarkeit und übersicht erhöhen. ist das irgendwie möglich?
Danke


----------

