Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion appinventor/appengine/build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -591,7 +591,6 @@
<pathelement location="${lib.dir}/guava/j2objc-annotations-1.1.jar" />
<pathelement location="${lib.dir}/findbugs/jsr305.jar" />
<pathelement location="${lib.dir}/gwt_dragdrop/gwt-dnd-3.2.3.jar" />
<pathelement location="${lib.dir}/gwt_incubator/gwt-incubator-20101117-r1766.jar" />
<pathelement location="${lib.dir}/gwt_query/gwtquery-1.5-beta1.jar" />
<pathelement location="${lib.dir}/gwt_svg/lib-gwt-svg-0.5.15.jar" />
<!-- gwt libs -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,8 @@
<inherits name="com.google.gwt.i18n.I18N"/>
<!--inherits name="com.google.gwt.i18n.CldrLocales"/-->
<inherits name="com.google.gwt.json.JSON" />
<inherits name="com.google.gwt.libideas.ImmutableResources" />
<inherits name="com.google.gwt.logging.Logging"/>
<inherits name="com.google.gwt.resources.Resources" />
<inherits name="com.google.gwt.widgetideas.WidgetIdeas" />
<inherits name="com.google.gwt.widgetideas.GWTCanvas" />
<inherits name="com.allen_sauer.gwt.dnd.gwt-dnd" />
<inherits name="com.google.common.base.Base" />
<inherits name="com.google.common.collect.Collect" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,13 @@
package com.google.appinventor.client.editor.simple.components;

import com.google.appinventor.client.editor.simple.SimpleEditor;
import com.google.appinventor.client.utils.Color;
import com.google.gwt.canvas.dom.client.Context2d;
import com.google.gwt.dom.client.CanvasElement;
import com.google.gwt.dom.client.Document;
import com.google.gwt.dom.client.Style;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.widgetideas.graphics.client.Color;
import com.google.gwt.widgetideas.graphics.client.GWTCanvas;
import com.google.gwt.user.client.ui.Widget;

/**
* Mock Ball component.
Expand All @@ -31,7 +35,7 @@ public final class MockBall extends MockVisibleComponent implements MockSprite {

// Widget for showing the mock ball
private final SimplePanel ballWidget;
private final GWTCanvas canvas;
private final CanvasElement canvas;

private int radius = DEFAULT_RADIUS;
private int diameter = 2 * radius;
Expand All @@ -54,23 +58,43 @@ public MockBall(SimpleEditor editor) {
ballWidget.setStylePrimaryName("ode-SimpleMockComponent");

// Create an appropriately sized ball
canvas = new GWTCanvas(diameter, diameter);
canvas.setPixelSize(diameter, diameter);
canvas.setBackgroundColor(GWTCanvas.TRANSPARENT);
fillCircle();
ballWidget.setWidget(canvas);
canvas = Document.get().createCanvasElement();
canvas.setWidth(diameter);
canvas.setHeight(diameter);
canvas.getStyle().setWidth(diameter, Style.Unit.PX);
canvas.getStyle().setHeight(diameter, Style.Unit.PX);
fillCircle(canvas);
ballWidget.getElement().appendChild(canvas);

initComponent(ballWidget);
}

/**
* Draws the ball onto the drag widget. This is necessary because cloning a CanvasElement
* does not copy the drawn contents. Otherwise, the drag widget would be a canvas.
*
* @param dragWidget cloned widget used for dragging
*/
@Override
protected void onDragWidgetCreated(Widget dragWidget) {
super.onDragWidgetCreated(dragWidget);
CanvasElement el = (CanvasElement) dragWidget.getElement().getFirstChildElement();
el.setWidth(diameter);
el.setHeight(diameter);
el.getStyle().setWidth(diameter, Style.Unit.PX);
el.getStyle().setHeight(diameter, Style.Unit.PX);
fillCircle(el);
}

// Drawing

private void fillCircle() {
canvas.clear();
canvas.setFillStyle(color);
canvas.beginPath();
canvas.arc(radius, radius, radius, 0, Math.PI * 2, true);
canvas.fill();
private void fillCircle(CanvasElement el) {
final Context2d context = el.getContext2d();
context.clearRect(0, 0, diameter, diameter);
context.setFillStyle(color.toString());
context.beginPath();
context.arc(radius, radius, radius, 0, Math.PI * 2, true);
context.fill();
}

// Handling property changes
Expand All @@ -79,9 +103,11 @@ private void setRadiusProperty(String text) {
try {
radius = Integer.parseInt(text);
diameter = 2 * radius;
canvas.setCoordSize(diameter, diameter);
canvas.setPixelSize(diameter, diameter);
fillCircle();
canvas.setWidth(diameter);
canvas.setHeight(diameter);
canvas.getStyle().setWidth(diameter, Style.Unit.PX);
canvas.getStyle().setHeight(diameter, Style.Unit.PX);
fillCircle(canvas);
if (originAtCenter) {
// Force the position of the ballWidget to be adjusted relative
// to the parent canvas.
Expand All @@ -97,7 +123,7 @@ private void setColorProperty(String text) {
text = "&HFF000000"; // black
}
color = MockComponentsUtil.getColor(text);
fillCircle();
fillCircle(canvas);
}

private void refreshCanvas() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1063,9 +1063,15 @@ public final Widget createDragWidget(int x, int y) {
// the drag widget itself isn't hidden.
setVisible(false);

onDragWidgetCreated(w);

return w;
}

protected void onDragWidgetCreated(Widget dragWidget) {
// Do nothing by default. Subclasses may override.
}

@Override
public Widget getDragWidget() {
return dragSourceSupport.getDragWidget();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import com.google.appinventor.client.Ode;
import com.google.appinventor.client.editor.simple.SimpleEditor;
import com.google.appinventor.client.explorer.project.Project;
import com.google.appinventor.client.utils.Color;
import com.google.appinventor.shared.rpc.project.HasAssetsFolder;
import com.google.appinventor.shared.rpc.project.ProjectNode;
import com.google.appinventor.shared.rpc.project.youngandroid.YoungAndroidAssetsFolder;
Expand All @@ -24,7 +25,6 @@
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.widgetideas.graphics.client.Color;

/**
* Helper methods for working with mock components.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@

import com.google.appinventor.client.editor.simple.components.i18n.ComponentTranslationTable;
import com.google.appinventor.client.editor.simple.SimpleEditor;
import com.google.appinventor.client.utils.Color;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.widgetideas.graphics.client.Color;

import java.util.Collection;
import java.util.HashSet;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@
package com.google.appinventor.client.editor.simple.components;

import com.google.appinventor.client.editor.simple.SimpleEditor;
import com.google.appinventor.client.utils.Color;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.widgetideas.graphics.client.Color;

public abstract class MockMapFeatureBaseWithFill extends MockMapFeatureBase {
public static final String PROPERTY_NAME_FILLCOLOR = "FillColor";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,10 @@
// http://www.apache.org/licenses/LICENSE-2.0
package com.google.appinventor.client.explorer.commands;

import com.google.gwt.dom.client.Style;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.widgetideas.client.ResizableWidget;
import com.google.gwt.widgetideas.client.ResizableWidgetCollection;

/**
* A widget that displays progress on an arbitrary scale.
Expand All @@ -26,7 +25,7 @@
* text when progress is greater than 50 percent } </li>
* </ul>
*/
public class MiniProgressBar extends Widget implements ResizableWidget {
public class MiniProgressBar extends Widget {
private static final String DEFAULT_TEXT_CLASS_NAME =
"gwt-ProgressBar-text";

Expand Down Expand Up @@ -378,16 +377,10 @@ protected Element getTextElement() {
@Override
protected void onLoad() {
// Reset the position attribute of the parent element
DOM.setStyleAttribute(getElement(), "position", "relative");
ResizableWidgetCollection.get().add(this);
getElement().getStyle().setPosition(Style.Position.RELATIVE);
redraw();
}

@Override
protected void onUnload() {
ResizableWidgetCollection.get().remove(this);
}

/**
* Reset the progress text based on the current min and max progress range.
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.google.appinventor.client.utils;

public class Color {
public static final Color BLACK = new Color(0, 0, 0);

private final String color;

public Color(int r, int g, int b) {
this.color = "rgb(" + r + "," + g + "," + b + ")";
}

public Color(int r, int g, int b, float a) {
this.color = "rgba(" + r + "," + g + "," + b + "," + a + ")";
}

@Override
public String toString() {
return color;
}
}
Loading