/**
* Sencha GXT 3.0.0b - Sencha for GWT
* Copyright(c) 2007-2012, Sencha, Inc.
* licensing@sencha.com
*
* http://www.sencha.com/products/gxt/license/
*/
package com.sencha.gxt.explorer.client.draw;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;
import com.sencha.gxt.chart.client.draw.Color;
import com.sencha.gxt.chart.client.draw.DrawComponent;
import com.sencha.gxt.chart.client.draw.Gradient;
import com.sencha.gxt.chart.client.draw.RGB;
import com.sencha.gxt.chart.client.draw.Rotation;
import com.sencha.gxt.chart.client.draw.Scaling;
import com.sencha.gxt.chart.client.draw.path.CurveTo;
import com.sencha.gxt.chart.client.draw.path.MoveTo;
import com.sencha.gxt.chart.client.draw.path.PathSprite;
import com.sencha.gxt.chart.client.draw.sprite.CircleSprite;
import com.sencha.gxt.chart.client.draw.sprite.EllipseSprite;
import com.sencha.gxt.chart.client.draw.sprite.ImageSprite;
import com.sencha.gxt.chart.client.draw.sprite.RectangleSprite;
import com.sencha.gxt.chart.client.draw.sprite.TextSprite;
import com.sencha.gxt.examples.resources.client.images.ExampleImages;
import com.sencha.gxt.explorer.client.model.Example.Detail;
import com.sencha.gxt.widget.core.client.ContentPanel;
import com.sencha.gxt.widget.core.client.FramedPanel;
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer;
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData;
@Detail(name = "Basic Draw", icon = "basicdraw", category = "Draw")
public class BasicDrawExample implements IsWidget, EntryPoint {
@Override
public Widget asWidget() {
DrawComponent component = new DrawComponent();
TextSprite text = new TextSprite();
text.setText("Hello\nWorld!");
text.setX(10);
text.setY(25);
text.setFont("Helvetica");
text.setFontSize(18);
text.setFill(RGB.BLACK);
component.addSprite(text);
CircleSprite circle = new CircleSprite();
circle.setCenterX(120);
circle.setCenterY(100);
circle.setRadius(25);
Scaling scale = new Scaling();
scale.setX(2);
scale.setY(2);
circle.setScaling(scale);
circle.setStroke(new Color("#999"));
Gradient gradient = new Gradient("gradient", 21);
gradient.addStop(0, new Color("#79A933"));
gradient.addStop(13, new Color("#70A333"));
gradient.addStop(34, new Color("#559332"));
gradient.addStop(58, new Color("#277B2F"));
gradient.addStop(86, new Color("#005F27"));
gradient.addStop(100, new Color("#005020"));
circle.setFill(gradient);
component.addGradient(gradient);
circle.setStrokeWidth(3);
component.addSprite(circle);
RectangleSprite rect = new RectangleSprite();
rect.setX(125);
rect.setY(75);
Rotation rotate = new Rotation();
rotate.setDegrees(45);
rotate.setX(125 + 50 / 2);
rotate.setY(75 + 50 / 2);
rect.setRotation(rotate);
rect.setWidth(50);
rect.setHeight(50);
rect.setRadius(10);
rect.setFill(new Color("#bf292f"));
component.addSprite(rect);
PathSprite path = new PathSprite();
path.addCommand(new MoveTo(75, 75));
path.addCommand(new CurveTo(0, -25, 50, 25, 50, 0, true));
path.addCommand(new CurveTo(0, -25, -50, 25, -50, 0, true));
path.setStroke(new Color("#000"));
path.setStrokeWidth(2);
path.setFill(new Color("#fc0"));
path.setFillOpacity(0.25);
component.addSprite(path);
EllipseSprite ellipse = new EllipseSprite();
ellipse.setCenterX(175);
ellipse.setCenterY(100);
ellipse.setRadiusX(25);
ellipse.setRadiusY(40);
ellipse.setFillOpacity(0.56);
rotate = new Rotation();
rotate.setDegrees(315);
rotate.setX(ellipse.getCenterX() + ellipse.getRadiusX());
rotate.setY(ellipse.getCenterY() + ellipse.getRadiusY());
ellipse.setRotation(rotate);
ellipse.setStroke(new Color("#000"));
ellipse.setFill(new Color("#2fb92f"));
ellipse.setStrokeWidth(5);
component.addSprite(ellipse);
ImageSprite imageSprite = new ImageSprite(ExampleImages.INSTANCE.music());
imageSprite.setX(50);
imageSprite.setY(10);
component.addSprite(imageSprite);
ContentPanel panel = new FramedPanel();
panel.getElement().getStyle().setMargin(10, Unit.PX);
panel.setCollapsible(true);
panel.setHeadingText("Basic Draw");
panel.setPixelSize(320, 300);
panel.setBodyBorder(true);
VerticalLayoutContainer layout = new VerticalLayoutContainer();
panel.add(layout);
component.setLayoutData(new VerticalLayoutData(1, 1));
layout.add(component);
return panel;
}
public void onModuleLoad() {
RootPanel.get().add(asWidget());
}
}