|
|
@@ -1,8 +1,12 @@ |
|
|
|
package com.itmill.toolkit.terminal.gwt.client.ui; |
|
|
|
|
|
|
|
import com.google.gwt.user.client.DOM; |
|
|
|
import com.google.gwt.user.client.Element; |
|
|
|
import com.google.gwt.user.client.Event; |
|
|
|
import com.google.gwt.user.client.ui.ClickListener; |
|
|
|
import com.google.gwt.user.client.ui.Widget; |
|
|
|
import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection; |
|
|
|
import com.itmill.toolkit.terminal.gwt.client.ErrorMessage; |
|
|
|
import com.itmill.toolkit.terminal.gwt.client.Paintable; |
|
|
|
import com.itmill.toolkit.terminal.gwt.client.UIDL; |
|
|
|
|
|
|
@@ -17,6 +21,10 @@ public class ICheckBox extends com.google.gwt.user.client.ui.CheckBox implements |
|
|
|
|
|
|
|
ApplicationConnection client; |
|
|
|
|
|
|
|
private Element errorIndicatorElement; |
|
|
|
|
|
|
|
private ErrorMessage errorMessage; |
|
|
|
|
|
|
|
public ICheckBox() { |
|
|
|
setStyleName(CLASSNAME); |
|
|
|
addClickListener(new ClickListener() { |
|
|
@@ -28,22 +36,66 @@ public class ICheckBox extends com.google.gwt.user.client.ui.CheckBox implements |
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) { |
|
|
|
// Save details |
|
|
|
this.client = client; |
|
|
|
id = uidl.getId(); |
|
|
|
|
|
|
|
// Ensure correct implementation |
|
|
|
if (client.updateComponent(this, uidl, false)) |
|
|
|
return; |
|
|
|
|
|
|
|
if (uidl.hasAttribute("error")) { |
|
|
|
UIDL errorUidl = uidl.getErrors(); |
|
|
|
|
|
|
|
if (errorIndicatorElement == null) { |
|
|
|
errorIndicatorElement = DOM.createDiv(); |
|
|
|
DOM.sinkEvents(errorIndicatorElement, Event.MOUSEEVENTS); |
|
|
|
DOM.setElementProperty(errorIndicatorElement, "className", |
|
|
|
"i-errorindicator"); |
|
|
|
DOM.appendChild(getElement(), errorIndicatorElement); |
|
|
|
} |
|
|
|
if (errorMessage == null) |
|
|
|
errorMessage = new ErrorMessage(); |
|
|
|
errorMessage.updateFromUIDL(errorUidl); |
|
|
|
|
|
|
|
} else if (errorIndicatorElement != null) { |
|
|
|
DOM.setStyleAttribute(errorIndicatorElement, "display", "none"); |
|
|
|
} |
|
|
|
|
|
|
|
if(uidl.hasAttribute("description")) { |
|
|
|
setTitle(uidl.getStringAttribute("description")); |
|
|
|
} |
|
|
|
|
|
|
|
// Save details |
|
|
|
this.client = client; |
|
|
|
id = uidl.getId(); |
|
|
|
|
|
|
|
// Set text |
|
|
|
setText(uidl.getStringAttribute("caption")); |
|
|
|
setChecked(uidl.getBooleanVariable("state")); |
|
|
|
immediate = uidl.getBooleanAttribute("immediate"); |
|
|
|
} |
|
|
|
|
|
|
|
public void onBrowserEvent(Event event) { |
|
|
|
super.onBrowserEvent(event); |
|
|
|
Element target = DOM.eventGetTarget(event); |
|
|
|
if (errorIndicatorElement != null |
|
|
|
&& DOM.compare(target, errorIndicatorElement)) { |
|
|
|
switch (DOM.eventGetType(event)) { |
|
|
|
case Event.ONMOUSEOVER: |
|
|
|
errorMessage.showAt(errorIndicatorElement); |
|
|
|
break; |
|
|
|
case Event.ONMOUSEOUT: |
|
|
|
errorMessage.hide(); |
|
|
|
break; |
|
|
|
case Event.ONCLICK: |
|
|
|
ApplicationConnection.getConsole().log( |
|
|
|
DOM.getInnerHTML(errorMessage.getElement())); |
|
|
|
default: |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |