This patch cleans up the UI a bit for the worker pool demo.
I struggled a but getting the animation to look roughly centered in the
vertical panel - in the end I punted and used an AbsolutePanel.
M
samples/workerpool/src/com/google/gwt/gears/sample/workerpool/client/WorkerPoolDemo.java
M
samples/workerpool/src/com/google/gwt/gears/sample/workerpool/client/AnimationToy.java
--
Eric Z. Ayers - GWT Team - Atlanta, GA USA
http://code.google.com/webtoolkit/
--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---
M samples/workerpool/src/com/google/gwt/gears/sample/workerpool/client/WorkerPoolDemo.java
M samples/workerpool/src/com/google/gwt/gears/sample/workerpool/client/AnimationToy.java
Index: samples/workerpool/src/com/google/gwt/gears/sample/workerpool/client/WorkerPoolDemo.java
===================================================================
--- samples/workerpool/src/com/google/gwt/gears/sample/workerpool/client/WorkerPoolDemo.java (revision 909)
+++ samples/workerpool/src/com/google/gwt/gears/sample/workerpool/client/WorkerPoolDemo.java (working copy)
@@ -21,6 +21,7 @@
import com.google.gwt.gears.client.workerpool.WorkerPoolMessageHandler;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.DeferredCommand;
+import com.google.gwt.user.client.ui.AbsolutePanel;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.DecoratorPanel;
@@ -40,14 +41,15 @@
*/
public class WorkerPoolDemo implements EntryPoint, WorkerPoolMessageHandler,
PiSpigot.Callback {
- private static final String INTERACTION_DESC = "Notice how the browser "
- + "freezes during the synchronous calculation, but you can interact with "
- + "the animation above while the calculation using "
- + "WorkerPool is running.<br>"
- + "<i>Note: In hosted mode, this demo works only on Windows</i>";
-
+ private static final String INTERACTION_DESC = "<p>Notice how the browser "
+ + "freezes during the synchronous calculation and some browsers alert with "
+ + "a slow script warning. During the WorkerPool calculation you can "
+ + "interact with the animation and see the results updated interactively.</p>"
+ + "<p><i>Note: In hosted mode, this demo works only on Windows</i></p>";
+
Button startStopButton = new Button("Start");
- private RadioButton asyncCalc = new RadioButton("calcGroup", "Asynchronous (WorkerPool) code");
+ private RadioButton asyncCalc = new RadioButton("calcGroup",
+ "Asynchronous (WorkerPool) code");
private boolean calculationInProgress = false;
private int currentRow = 0;
private SimplePanel htmlGoesHere = new SimplePanel();
@@ -56,10 +58,11 @@
private int primeWorkerId;
private long startTime;
private Label statusLabel = new Label();
- private RadioButton syncCalc = new RadioButton("calcGroup", "Synchronous code");
+ private RadioButton syncCalc = new RadioButton("calcGroup",
+ "Synchronous code");
private VerticalPanel vp = new VerticalPanel();
private WorkerPool workerPool = null;
-
+
/**
* Callback from PiSpigot class.
*/
@@ -90,11 +93,9 @@
public void onModuleLoad() {
- vp.getElement().getStyle().setPropertyPx("margin", 20);
+ vp.setSpacing(10);
vp.add(buildControlPanel());
vp.add(statusLabel);
- statusLabel.getElement().getStyle().setPropertyPx("margin-top", 10);
- statusLabel.getElement().getStyle().setPropertyPx("margin-bottom", 10);
HorizontalPanel digitPanel = new HorizontalPanel();
digitPanel.add(new HTML("<h1>3.</h1>"));
@@ -108,7 +109,6 @@
private Widget buildControlPanel() {
VerticalPanel outerPanel = new VerticalPanel();
DecoratorPanel tableWrapper = new DecoratorPanel();
- tableWrapper.getElement().getStyle().setPropertyPx("margin-top", 10);
FlexTable resultTable = new FlexTable();
numDigitsListBox.addItem("1,000", "1000");
@@ -159,12 +159,15 @@
buildControlPanelRow(resultTable, "", startStopButton);
tableWrapper.setWidget(resultTable);
+ // Position the Animation so that it looks centered.
Widget toy = new AnimationToy();
- toy.getElement().getStyle().setPropertyPx("padding", 10);
- outerPanel.add(toy);
+ AbsolutePanel toyWrapper = new AbsolutePanel();
+ toyWrapper.setSize("450px", "210px");
+ toyWrapper.add(toy, 70, 0);
+ outerPanel.add(toyWrapper);
+
HTML desc = new HTML(INTERACTION_DESC);
desc.setWidth("450px");
- desc.getElement().getStyle().setPropertyPx("margin-bottom", 10);
outerPanel.add(desc);
outerPanel.add(tableWrapper);
return outerPanel;
Index: samples/workerpool/src/com/google/gwt/gears/sample/workerpool/client/AnimationToy.java
===================================================================
--- samples/workerpool/src/com/google/gwt/gears/sample/workerpool/client/AnimationToy.java (revision 909)
+++ samples/workerpool/src/com/google/gwt/gears/sample/workerpool/client/AnimationToy.java (working copy)
@@ -29,7 +29,6 @@
/**
* A class that creates a little animation window.
- *
*/
public class AnimationToy extends Composite {
@@ -59,7 +58,7 @@
this.radius = radius;
this.centerX = this.centerY = radius + 10;
}
-
+
@Override
protected void onComplete() {
super.onComplete();
@@ -151,7 +150,7 @@
* Initialize this example.
*/
private Widget initialize() {
-
+
// Create a new panel
absolutePanel = new AbsolutePanel();
@@ -170,7 +169,6 @@
absolutePanelWrapper.add(absolutePanel);
// Add the components to a panel and return it
- absolutePanelWrapper.setSpacing(10);
absolutePanelWrapper.add(createOptionsBar());
// Create the custom animation
@@ -179,9 +177,9 @@
// Set the start position of the widgets
animation.onComplete();
- absolutePanel.setSize((animation.centerX * 2 + 20) + "px",
- (animation.centerY * 2 + 20) + "px");
- absolutePanel.getElement().getStyle().setPropertyPx("margin-left", 40);
+ absolutePanel.setSize((animation.centerX * 2 + 10) + "px",
+ (animation.centerY * 2 + 10) + "px");
+
// Return the layout
return absolutePanelWrapper;
}
@@ -199,7 +197,7 @@
optionsBar.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
// Add a title
- optionsBar.add(new HTML("<b>Play with Animation</b>"));
+ optionsBar.add(new HTML("<b>Animate Logos</b>"));
// Add start button
startButton = new Button("Start");