summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJens Jansson <peppe@vaadin.com>2012-01-26 16:09:52 +0200
committerJens Jansson <peppe@vaadin.com>2012-01-26 16:09:52 +0200
commitcf138e29f13358a70c9b58c2f11728387f6747e1 (patch)
tree026d597cda6197f1d020e3608f1357bc6a06b301
parent1efde21bc399ce4fb0e48e8a2e2b4aed401a18ff (diff)
downloadvaadin-framework-cf138e29f13358a70c9b58c2f11728387f6747e1.tar.gz
vaadin-framework-cf138e29f13358a70c9b58c2f11728387f6747e1.zip
Splitted up VButton and VNativeButton into paintable and widget
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/VButtonPaintable.java87
-rw-r--r--src/com/vaadin/terminal/gwt/client/ui/VNativeButtonPaintable.java83
2 files changed, 170 insertions, 0 deletions
diff --git a/src/com/vaadin/terminal/gwt/client/ui/VButtonPaintable.java b/src/com/vaadin/terminal/gwt/client/ui/VButtonPaintable.java
new file mode 100644
index 0000000000..1367d412a8
--- /dev/null
+++ b/src/com/vaadin/terminal/gwt/client/ui/VButtonPaintable.java
@@ -0,0 +1,87 @@
+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.EventHelper;
+import com.vaadin.terminal.gwt.client.UIDL;
+
+public class VButtonPaintable 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;
+ }
+
+ getWidgetForPaintable().focusHandlerRegistration = EventHelper
+ .updateFocusHandler(this, client,
+ getWidgetForPaintable().focusHandlerRegistration);
+ getWidgetForPaintable().blurHandlerRegistration = EventHelper
+ .updateBlurHandler(this, client,
+ getWidgetForPaintable().blurHandlerRegistration);
+
+ // Save details
+ getWidgetForPaintable().client = client;
+ getWidgetForPaintable().paintableId = uidl.getId();
+
+ // Set text
+ getWidgetForPaintable().setText(uidl.getStringAttribute("caption"));
+
+ getWidgetForPaintable().disableOnClick = uidl
+ .hasAttribute(VButton.ATTR_DISABLE_ON_CLICK);
+
+ // handle error
+ if (uidl.hasAttribute("error")) {
+ if (getWidgetForPaintable().errorIndicatorElement == null) {
+ getWidgetForPaintable().errorIndicatorElement = DOM
+ .createSpan();
+ getWidgetForPaintable().errorIndicatorElement
+ .setClassName("v-errorindicator");
+ }
+ getWidgetForPaintable().wrapper.insertBefore(
+ getWidgetForPaintable().errorIndicatorElement,
+ getWidgetForPaintable().captionElement);
+
+ } else if (getWidgetForPaintable().errorIndicatorElement != null) {
+ getWidgetForPaintable().wrapper
+ .removeChild(getWidgetForPaintable().errorIndicatorElement);
+ getWidgetForPaintable().errorIndicatorElement = null;
+ }
+
+ if (uidl.hasAttribute("icon")) {
+ if (getWidgetForPaintable().icon == null) {
+ getWidgetForPaintable().icon = new Icon(client);
+ getWidgetForPaintable().wrapper.insertBefore(
+ getWidgetForPaintable().icon.getElement(),
+ getWidgetForPaintable().captionElement);
+ }
+ getWidgetForPaintable().icon
+ .setUri(uidl.getStringAttribute("icon"));
+ } else {
+ if (getWidgetForPaintable().icon != null) {
+ getWidgetForPaintable().wrapper
+ .removeChild(getWidgetForPaintable().icon.getElement());
+ getWidgetForPaintable().icon = null;
+ }
+ }
+
+ if (uidl.hasAttribute("keycode")) {
+ getWidgetForPaintable().clickShortcut = uidl
+ .getIntAttribute("keycode");
+ }
+ }
+
+ @Override
+ protected Widget createWidget() {
+ return GWT.create(VButton.class);
+ }
+
+ @Override
+ public VButton getWidgetForPaintable() {
+ return (VButton) super.getWidgetForPaintable();
+ }
+}
diff --git a/src/com/vaadin/terminal/gwt/client/ui/VNativeButtonPaintable.java b/src/com/vaadin/terminal/gwt/client/ui/VNativeButtonPaintable.java
new file mode 100644
index 0000000000..5e0dceea75
--- /dev/null
+++ b/src/com/vaadin/terminal/gwt/client/ui/VNativeButtonPaintable.java
@@ -0,0 +1,83 @@
+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.EventHelper;
+import com.vaadin.terminal.gwt.client.UIDL;
+
+public class VNativeButtonPaintable 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;
+ }
+
+ getWidgetForPaintable().disableOnClick = uidl
+ .hasAttribute(VButton.ATTR_DISABLE_ON_CLICK);
+
+ getWidgetForPaintable().focusHandlerRegistration = EventHelper
+ .updateFocusHandler(this, client,
+ getWidgetForPaintable().focusHandlerRegistration);
+ getWidgetForPaintable().blurHandlerRegistration = EventHelper
+ .updateBlurHandler(this, client,
+ getWidgetForPaintable().blurHandlerRegistration);
+
+ // Save details
+ getWidgetForPaintable().client = client;
+ getWidgetForPaintable().paintableId = uidl.getId();
+
+ // Set text
+ getWidgetForPaintable().setText(uidl.getStringAttribute("caption"));
+
+ // handle error
+ if (uidl.hasAttribute("error")) {
+ if (getWidgetForPaintable().errorIndicatorElement == null) {
+ getWidgetForPaintable().errorIndicatorElement = DOM
+ .createSpan();
+ getWidgetForPaintable().errorIndicatorElement
+ .setClassName("v-errorindicator");
+ }
+ getWidgetForPaintable().getElement().insertBefore(
+ getWidgetForPaintable().errorIndicatorElement,
+ getWidgetForPaintable().captionElement);
+
+ } else if (getWidgetForPaintable().errorIndicatorElement != null) {
+ getWidgetForPaintable().getElement().removeChild(
+ getWidgetForPaintable().errorIndicatorElement);
+ getWidgetForPaintable().errorIndicatorElement = null;
+ }
+
+ if (uidl.hasAttribute("icon")) {
+ if (getWidgetForPaintable().icon == null) {
+ getWidgetForPaintable().icon = new Icon(client);
+ getWidgetForPaintable().getElement().insertBefore(
+ getWidgetForPaintable().icon.getElement(),
+ getWidgetForPaintable().captionElement);
+ }
+ getWidgetForPaintable().icon
+ .setUri(uidl.getStringAttribute("icon"));
+ } else {
+ if (getWidgetForPaintable().icon != null) {
+ getWidgetForPaintable().getElement().removeChild(
+ getWidgetForPaintable().icon.getElement());
+ getWidgetForPaintable().icon = null;
+ }
+ }
+
+ }
+
+ @Override
+ protected Widget createWidget() {
+ return GWT.create(VNativeButton.class);
+ }
+
+ @Override
+ public VNativeButton getWidgetForPaintable() {
+ return (VNativeButton) super.getWidgetForPaintable();
+ }
+} \ No newline at end of file