aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJens Jansson <peppe@vaadin.com>2012-01-31 11:05:53 +0200
committerArtur Signell <artur@vaadin.com>2012-01-31 15:08:17 +0200
commite728110ad0824ff01f5ceebdccbb9309b19fb355 (patch)
treec876d5f560a6a66b03056e3a55e9c212072f6d5a
parentd9d9c450849de9d7b1de1b9cd66d917b54cb4502 (diff)
downloadvaadin-framework-e728110ad0824ff01f5ceebdccbb9309b19fb355.tar.gz
vaadin-framework-e728110ad0824ff01f5ceebdccbb9309b19fb355.zip
#8324 Splitted VProgressIndicator into Widget and Paintable.
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/VProgressIndicator.java51
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/VProgressIndicatorPaintable.java65
-rw-r--r--src/com/vaadin/ui/ProgressIndicator.java4
3 files changed, 73 insertions, 47 deletions
diff --git a/src/com/vaadin/terminal/gwt/client/ui/VProgressIndicator.java b/src/com/vaadin/terminal/gwt/client/ui/VProgressIndicator.java
index f7cc4240b7..cff6bf89bd 100644
--- a/src/com/vaadin/terminal/gwt/client/ui/VProgressIndicator.java
+++ b/src/com/vaadin/terminal/gwt/client/ui/VProgressIndicator.java
@@ -9,20 +9,18 @@ import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.Widget;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
-import com.vaadin.terminal.gwt.client.VPaintableWidget;
-import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.Util;
-public class VProgressIndicator extends Widget implements VPaintableWidget {
+public class VProgressIndicator extends Widget {
- private static final String CLASSNAME = "v-progressindicator";
+ public static final String CLASSNAME = "v-progressindicator";
Element wrapper = DOM.createDiv();
Element indicator = DOM.createDiv();
- private ApplicationConnection client;
- private final Poller poller;
- private boolean indeterminate = false;
+ protected ApplicationConnection client;
+ protected final Poller poller;
+ protected boolean indeterminate = false;
private boolean pollerSuspendedDueDetach;
- private int interval;
+ protected int interval;
public VProgressIndicator() {
setElement(DOM.createDiv());
@@ -34,38 +32,6 @@ public class VProgressIndicator extends Widget implements VPaintableWidget {
poller = new Poller();
}
- public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
- this.client = client;
- if (!uidl.getBooleanAttribute("cached")) {
- poller.cancel();
- }
- if (client.updateComponent(this, uidl, true)) {
- return;
- }
-
- indeterminate = uidl.getBooleanAttribute("indeterminate");
-
- if (indeterminate) {
- String basename = CLASSNAME + "-indeterminate";
- VProgressIndicator.setStyleName(getElement(), basename, true);
- VProgressIndicator.setStyleName(getElement(), basename
- + "-disabled", uidl.getBooleanAttribute("disabled"));
- } else {
- try {
- final float f = Float.parseFloat(uidl
- .getStringAttribute("state"));
- final int size = Math.round(100 * f);
- DOM.setStyleAttribute(indicator, "width", size + "%");
- } catch (final Exception e) {
- }
- }
-
- if (!uidl.getBooleanAttribute("disabled")) {
- interval = uidl.getIntAttribute("pollinginterval");
- poller.scheduleRepeating(interval);
- }
- }
-
@Override
protected void onAttach() {
super.onAttach();
@@ -102,9 +68,4 @@ public class VProgressIndicator extends Widget implements VPaintableWidget {
}
}
-
- public Widget getWidgetForPaintable() {
- return this;
- }
-
}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/VProgressIndicatorPaintable.java b/src/com/vaadin/terminal/gwt/client/ui/VProgressIndicatorPaintable.java
new file mode 100644
index 0000000000..39ffe1ad96
--- /dev/null
+++ b/src/com/vaadin/terminal/gwt/client/ui/VProgressIndicatorPaintable.java
@@ -0,0 +1,65 @@
+/*
+@VaadinApache2LicenseForJavaFiles@
+ */
+
+package com.vaadin.terminal.gwt.client.ui;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.ui.Widget;
+import com.vaadin.terminal.gwt.client.ApplicationConnection;
+import com.vaadin.terminal.gwt.client.UIDL;
+
+public class VProgressIndicatorPaintable extends VAbstractPaintableWidget {
+
+ public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
+
+ // Ensure correct implementation,
+ // but don't let container manage caption etc.
+ if (client.updateComponent(this, uidl, false)) {
+ return;
+ }
+
+ // Save details
+ getWidgetForPaintable().client = client;
+
+ getWidgetForPaintable().indeterminate = uidl
+ .getBooleanAttribute("indeterminate");
+
+ if (getWidgetForPaintable().indeterminate) {
+ String basename = VProgressIndicator.CLASSNAME + "-indeterminate";
+ getWidgetForPaintable().addStyleName(basename);
+ if (uidl.getBooleanAttribute("disabled")) {
+ getWidgetForPaintable().addStyleName(basename + "-disabled");
+ } else {
+ getWidgetForPaintable().removeStyleName(basename + "-disabled");
+ }
+ } else {
+ try {
+ final float f = Float.parseFloat(uidl
+ .getStringAttribute("state"));
+ final int size = Math.round(100 * f);
+ DOM.setStyleAttribute(getWidgetForPaintable().indicator,
+ "width", size + "%");
+ } catch (final Exception e) {
+ }
+ }
+
+ if (!uidl.getBooleanAttribute("disabled")) {
+ getWidgetForPaintable().interval = uidl
+ .getIntAttribute("pollinginterval");
+ getWidgetForPaintable().poller
+ .scheduleRepeating(getWidgetForPaintable().interval);
+ }
+ }
+
+ @Override
+ protected Widget createWidget() {
+ return GWT.create(VProgressIndicator.class);
+ }
+
+ @Override
+ public VProgressIndicator getWidgetForPaintable() {
+ return (VProgressIndicator) super.getWidgetForPaintable();
+ }
+}
diff --git a/src/com/vaadin/ui/ProgressIndicator.java b/src/com/vaadin/ui/ProgressIndicator.java
index cc17333cc4..9152a3adab 100644
--- a/src/com/vaadin/ui/ProgressIndicator.java
+++ b/src/com/vaadin/ui/ProgressIndicator.java
@@ -8,7 +8,7 @@ import com.vaadin.data.Property;
import com.vaadin.data.util.ObjectProperty;
import com.vaadin.terminal.PaintException;
import com.vaadin.terminal.PaintTarget;
-import com.vaadin.terminal.gwt.client.ui.VProgressIndicator;
+import com.vaadin.terminal.gwt.client.ui.VProgressIndicatorPaintable;
/**
* <code>ProgressIndicator</code> is component that shows user state of a
@@ -25,7 +25,7 @@ import com.vaadin.terminal.gwt.client.ui.VProgressIndicator;
* @since 4
*/
@SuppressWarnings("serial")
-@ClientWidget(VProgressIndicator.class)
+@ClientWidget(VProgressIndicatorPaintable.class)
public class ProgressIndicator extends AbstractField<Number> implements
Property.Viewer, Property.ValueChangeListener {