-/* \r
+/*\r
@ITMillApache2LicenseForJavaFiles@\r
*/\r
\r
import java.util.Iterator;\r
import java.util.List;\r
\r
+import com.google.gwt.event.dom.client.ClickEvent;\r
+import com.google.gwt.event.dom.client.ClickHandler;\r
import com.google.gwt.user.client.DOM;\r
import com.google.gwt.user.client.Event;\r
import com.google.gwt.user.client.Timer;\r
import com.google.gwt.user.client.ui.MouseListener;\r
import com.google.gwt.user.client.ui.MouseListenerCollection;\r
import com.google.gwt.user.client.ui.SourcesMouseEvents;\r
-import com.google.gwt.user.client.ui.SourcesTableEvents;\r
-import com.google.gwt.user.client.ui.TableListener;\r
import com.google.gwt.user.client.ui.Widget;\r
import com.vaadin.terminal.gwt.client.DateTimeService;\r
import com.vaadin.terminal.gwt.client.LocaleService;\r
datefield = parent;\r
setStyleName(VDateField.CLASSNAME + "-calendarpanel");\r
// buildCalendar(true);\r
- days.addTableListener(new DateClickListener(this));\r
+ days.addClickHandler(new DateClickHandler(this));\r
}\r
\r
public VCalendarPanel(VDateField parent, Date min, Date max) {\r
datefield = parent;\r
setStyleName(VDateField.CLASSNAME + "-calendarpanel");\r
- days.addTableListener(new DateClickListener(this));\r
+ days.addClickHandler(new DateClickHandler(this));\r
\r
}\r
\r
}\r
\r
/**\r
- * \r
+ *\r
* @param forceRedraw\r
* Build all from scratch, in case of e.g. locale changes\r
*/\r
switch (DOM.eventGetType(event)) {\r
case Event.ONMOUSEDOWN:\r
case Event.ONMOUSEUP:\r
- case Event.ONMOUSEMOVE:\r
- case Event.ONMOUSEOVER:\r
case Event.ONMOUSEOUT:\r
if (mouseListeners != null) {\r
mouseListeners.fireMouseEvent(this, event);\r
}\r
}\r
\r
- private class DateClickListener implements TableListener {\r
+ private class DateClickHandler implements ClickHandler {\r
\r
private final VCalendarPanel cal;\r
\r
- public DateClickListener(VCalendarPanel panel) {\r
+ public DateClickHandler(VCalendarPanel panel) {\r
cal = panel;\r
}\r
\r
- public void onCellClicked(SourcesTableEvents sender, int row, int col) {\r
- if (sender != cal.days || row < 1 || row > 6\r
+ public void onClick(ClickEvent event) {\r
+ Object sender = event.getSource();\r
+ Cell cell = cal.days.getCellForEvent(event);\r
+ if (sender != cal.days || cell == null || cell.getRowIndex() < 1\r
+ || cell.getRowIndex() > 6\r
|| !cal.datefield.isEnabled() || cal.datefield.isReadonly()) {\r
return;\r
}\r
\r
- final String text = cal.days.getText(row, col);\r
+ final String text = cal.days.getText(cell.getRowIndex(), cell\r
+ .getCellIndex());\r
if (text.equals(" ")) {\r
return;\r
}\r
\r
/**\r
* Sets focus to Calendar panel.\r
- * \r
+ *\r
* @param focus\r
*/\r
public void setFocus(boolean focus) {\r
import com.google.gwt.event.dom.client.KeyUpHandler;
import com.google.gwt.event.dom.client.LoadEvent;
import com.google.gwt.event.dom.client.LoadHandler;
+import com.google.gwt.event.logical.shared.CloseEvent;
+import com.google.gwt.event.logical.shared.CloseHandler;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Image;
-import com.google.gwt.user.client.ui.PopupListener;
import com.google.gwt.user.client.ui.PopupPanel;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.PopupPanel.PositionCallback;
}
public class SuggestionPopup extends VOverlay implements PositionCallback,
- PopupListener {
+ CloseHandler<PopupPanel> {
private static final String Z_INDEX = "30000";
DOM.appendChild(root, status);
DOM.setElementProperty(status, "className", CLASSNAME + "-status");
- addPopupListener(this);
+ addCloseHandler(this);
}
public void showSuggestions(
return (lastAutoClosed > 0 && (now - lastAutoClosed) < 200);
}
- public void onPopupClosed(PopupPanel sender, boolean autoClosed) {
- if (autoClosed) {
+ public void onClose(CloseEvent<PopupPanel> event) {
+ if (event.isAutoClosed()) {
lastAutoClosed = (new Date()).getTime();
}
}
import java.util.ArrayList;
import java.util.Iterator;
+import com.google.gwt.event.dom.client.ChangeEvent;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.ui.ListBox;
-import com.google.gwt.user.client.ui.Widget;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.Paintable;
import com.vaadin.terminal.gwt.client.UIDL;
super(new TooltipListBox(true), CLASSNAME);
select = (TooltipListBox) optionsContainer;
select.setSelect(this);
- select.addChangeListener(this);
+ select.addChangeHandler(this);
select.addClickHandler(this);
select.setStyleName(CLASSNAME + "-select");
select.setVisibleItemCount(VISIBLE_COUNT);
}
@Override
- public void onChange(Widget sender) {
+ public void onChange(ChangeEvent event) {
final int si = select.getSelectedIndex();
if (si == -1 && !isNullSelectionAllowed()) {
select.setSelectedIndex(lastSelectedIndex);
import java.util.List;
import java.util.Stack;
+import com.google.gwt.event.logical.shared.CloseEvent;
+import com.google.gwt.event.logical.shared.CloseHandler;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.DeferredCommand;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.ui.HasHTML;
-import com.google.gwt.user.client.ui.PopupListener;
import com.google.gwt.user.client.ui.PopupPanel;
import com.google.gwt.user.client.ui.UIObject;
import com.google.gwt.user.client.ui.Widget;
import com.vaadin.terminal.gwt.client.Paintable;
import com.vaadin.terminal.gwt.client.UIDL;
-public class VMenuBar extends Widget implements Paintable, PopupListener {
+public class VMenuBar extends Widget implements Paintable,
+ CloseHandler<PopupPanel> {
/** Set the CSS class name to allow styling. */
public static final String CLASSNAME = "v-menubar";
/**
* This method must be implemented to update the client-side component from
* UIDL data received from server.
- *
+ *
* This method is called when the page is loaded for the first time, and
* every time UI changes in the component are received from the server.
*/
/**
* This is called by the items in the menu and it communicates the
* information to the server
- *
+ *
* @param clickedItemId
* id of the item that was clicked
*/
/**
* Returns the containing element of the menu
- *
+ *
* @return
*/
public Element getContainingElement() {
/**
* Returns a new child element to add an item to
- *
+ *
* @return
*/
public Element getNewChildElement() {
/**
* Add a new item to this menu
- *
+ *
* @param html
* items text
* @param cmd
/**
* Add a new item to this menu
- *
+ *
* @param item
*/
public void addItem(CustomMenuItem item) {
/**
* Remove the given item from this menu
- *
+ *
* @param item
*/
public void removeItem(CustomMenuItem item) {
/**
* When an item is clicked
- *
+ *
* @param item
*/
public void itemClick(CustomMenuItem item) {
/**
* When the user hovers the mouse over the item
- *
+ *
* @param item
*/
public void itemOver(CustomMenuItem item) {
/**
* When the mouse is moved away from an item
- *
+ *
* @param item
*/
public void itemOut(CustomMenuItem item) {
/**
* Shows the child menu of an item. The caller must ensure that the item has
* a submenu.
- *
+ *
* @param item
*/
public void showChildMenu(CustomMenuItem item) {
popup = new VOverlay(true, false, true);
popup.setWidget(item.getSubMenu());
- popup.addPopupListener(this);
+ popup.addCloseHandler(this);
if (subMenu) {
popup.setPopupPosition(item.getParentMenu().getAbsoluteLeft()
/**
* Hides the submenu of an item
- *
+ *
* @param item
*/
public void hideChildMenu(CustomMenuItem item) {
/**
* Returns the parent menu of this menu, or null if this is the top-level
* menu
- *
+ *
* @return
*/
public VMenuBar getParentMenu() {
/**
* Set the parent menu of this menu
- *
+ *
* @param parent
*/
public void setParentMenu(VMenuBar parent) {
/**
* Returns the currently selected item of this menu, or null if nothing is
* selected
- *
+ *
* @return
*/
public CustomMenuItem getSelected() {
/**
* Set the currently selected item of this menu
- *
+ *
* @param item
*/
public void setSelected(CustomMenuItem item) {
/**
* Listener method, fired when this menu is closed
*/
- public void onPopupClosed(PopupPanel sender, boolean autoClosed) {
+ public void onClose(CloseEvent<PopupPanel> event) {
hideChildren();
- if (autoClosed) {
+ if (event.isAutoClosed()) {
hideParents();
}
// setSelected(null);
}
/**
- *
+ *
* A class to hold information on menu items
- *
+ *
*/
private class CustomMenuItem extends UIObject implements HasHTML {
-/*
+/*
@ITMillApache2LicenseForJavaFiles@
*/
import java.util.ArrayList;
import java.util.Iterator;
-import com.google.gwt.user.client.ui.Widget;
+import com.google.gwt.event.dom.client.ChangeEvent;
import com.vaadin.terminal.gwt.client.BrowserInfo;
import com.vaadin.terminal.gwt.client.UIDL;
import com.vaadin.terminal.gwt.client.Util;
select = (TooltipListBox) optionsContainer;
select.setSelect(this);
select.setVisibleItemCount(1);
- select.addChangeListener(this);
+ select.addChangeHandler(this);
select.setStyleName(CLASSNAME + "-select");
}
}
@Override
- public void onChange(Widget sender) {
+ public void onChange(ChangeEvent event) {
if (select.isMultipleSelect()) {
client.updateVariable(id, "selected", getSelectedItems(),
op.setStyleName("v-radiobutton");\r
}\r
op.addStyleName(CLASSNAME_OPTION);\r
- op.setChecked(opUidl.getBooleanAttribute("selected"));\r
+ op.setValue(opUidl.getBooleanAttribute("selected"));\r
op.setEnabled(!opUidl.getBooleanAttribute("disabled")\r
&& !isReadonly() && !isDisabled());\r
op.addClickHandler(this);\r
\r
import java.util.Set;\r
\r
+import com.google.gwt.event.dom.client.ChangeEvent;\r
+import com.google.gwt.event.dom.client.ChangeHandler;\r
import com.google.gwt.event.dom.client.ClickEvent;\r
import com.google.gwt.event.dom.client.ClickHandler;\r
import com.google.gwt.event.dom.client.KeyCodes;\r
import com.google.gwt.event.dom.client.KeyPressEvent;\r
import com.google.gwt.event.dom.client.KeyPressHandler;\r
-import com.google.gwt.user.client.ui.ChangeListener;\r
import com.google.gwt.user.client.ui.Composite;\r
import com.google.gwt.user.client.ui.FlowPanel;\r
import com.google.gwt.user.client.ui.Panel;\r
import com.vaadin.terminal.gwt.client.UIDL;\r
\r
abstract class VOptionGroupBase extends Composite implements Paintable, Field,\r
- ClickHandler, ChangeListener, KeyPressHandler, Focusable {\r
+ ClickHandler, ChangeHandler, KeyPressHandler, Focusable {\r
\r
public static final String CLASSNAME_OPTION = "v-select-option";\r
\r
}\r
}\r
\r
- public void onChange(Widget sender) {\r
+ public void onChange(ChangeEvent event) {\r
if (multiselect) {\r
client\r
.updateVariable(id, "selected", getSelectedItems(),\r
-/*
+/*
@ITMillApache2LicenseForJavaFiles@
*/
import com.google.gwt.animation.client.Animation;
import com.google.gwt.dom.client.Document;
+import com.google.gwt.event.logical.shared.CloseEvent;
+import com.google.gwt.event.logical.shared.CloseHandler;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Element;
-import com.google.gwt.user.client.ui.PopupListener;
import com.google.gwt.user.client.ui.PopupPanel;
import com.google.gwt.user.client.ui.RootPanel;
import com.vaadin.terminal.gwt.client.BrowserInfo;
/**
* The HTML snippet that is used to render the actual shadow. In consists of
* nine different DIV-elements with the following class names:
- *
+ *
* <pre>
* .v-shadow[-stylename]
* ----------------------------------------------
* | .bottom-left | .bottom | .bottom-right |
* ----------------------------------------------
* </pre>
- *
+ *
* See default theme 'shadow.css' for implementation example.
*/
private static final String SHADOW_HTML = "<div class=\"top-left\"></div><div class=\"top\"></div><div class=\"top-right\"></div><div class=\"left\"></div><div class=\"center\"></div><div class=\"right\"></div><div class=\"bottom-left\"></div><div class=\"bottom\"></div><div class=\"bottom-right\"></div>";
shadow.setInnerHTML(SHADOW_HTML);
DOM.setStyleAttribute(shadow, "position", "absolute");
- addPopupListener(new PopupListener() {
- public void onPopupClosed(PopupPanel sender, boolean autoClosed) {
+ addCloseHandler(new CloseHandler<PopupPanel>() {
+ public void onClose(CloseEvent<PopupPanel> event) {
if (shadow.getParentElement() != null) {
shadow.getParentElement().removeChild(shadow);
}
/**
* Set the z-index (visual stack position) for this overlay.
- *
+ *
* @param zIndex
* The new z-index
*/
/**
* Get the z-index (visual stack position) of this overlay.
- *
+ *
* @return The z-index for this overlay.
*/
private int getZIndex() {
private native void adjustIE6Frame(Element popup, int zindex)
/*-{
// relies on PopupImplIE6
- if(popup.__frame)
+ if(popup.__frame)
popup.__frame.style.zIndex = zindex;
}-*/;
* Sets the shadow style for this overlay. Will override any previous style
* for the shadow. The default style name is defined by CLASSNAME_SHADOW.
* The given style will be prefixed with CLASSNAME_SHADOW.
- *
+ *
* @param style
* The new style name for the shadow element. Will be prefixed by
* CLASSNAME_SHADOW, e.g. style=='foobar' -> actual style
* be used to animate the shadow, using the 'progress' parameter (used to
* animate the shadow in sync with GWT PopupPanel's default animation
* 'PopupPanel.AnimationType.CENTER').
- *
+ *
* @param progress
* A value between 0.0 and 1.0, indicating the progress of the
* animation (0=start, 1=end).
\r
import com.google.gwt.event.dom.client.ClickEvent;\r
import com.google.gwt.event.dom.client.ClickHandler;\r
+import com.google.gwt.event.logical.shared.CloseEvent;\r
+import com.google.gwt.event.logical.shared.CloseHandler;\r
import com.google.gwt.user.client.DOM;\r
import com.google.gwt.user.client.Timer;\r
import com.google.gwt.user.client.Window;\r
import com.google.gwt.user.client.ui.Button;\r
-import com.google.gwt.user.client.ui.PopupListener;\r
import com.google.gwt.user.client.ui.PopupPanel;\r
import com.google.gwt.user.client.ui.PopupPanel.PositionCallback;\r
import com.vaadin.terminal.gwt.client.ApplicationConnection;\r
import com.vaadin.terminal.gwt.client.UIDL;\r
\r
public class VPopupCalendar extends VTextualDate implements Paintable, Field,\r
- ClickHandler, PopupListener {\r
+ ClickHandler, CloseHandler<PopupPanel> {\r
\r
private final Button calendarToggle;\r
\r
popup = new VOverlay(true, true, true);\r
popup.setStyleName(VDateField.CLASSNAME + "-popup");\r
popup.setWidget(calendar);\r
- popup.addPopupListener(this);\r
+ popup.addCloseHandler(this);\r
\r
DOM.setElementProperty(calendar.getElement(), "id",\r
"PID_VAADIN_POPUPCAL");\r
}\r
}\r
\r
- public void onPopupClosed(PopupPanel sender, boolean autoClosed) {\r
- if (sender == popup) {\r
+ public void onClose(CloseEvent<PopupPanel> event) {\r
+ if (event.getSource() == popup) {\r
buildDate();\r
// Sigh.\r
Timer t = new Timer() {\r
-/*
+/*
@ITMillApache2LicenseForJavaFiles@
*/
import java.util.Set;
import com.google.gwt.dom.client.Style;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.DeferredCommand;
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.ComplexPanel;
import com.google.gwt.user.client.ui.Widget;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
}
- class TabBar extends ComplexPanel implements ClickListener {
+ class TabBar extends ComplexPanel implements ClickHandler {
private final Element tr = DOM.createTR();
setStyleName(div, CLASSNAME + "-tabitem");
DOM.appendChild(td, div);
DOM.insertBefore(tr, td, spacerTd);
- c.addClickListener(this);
+ c.addClickHandler(this);
add(c, div);
}
- public void onClick(Widget sender) {
- int index = getWidgetIndex(sender);
+ public void onClick(ClickEvent event) {
+ int index = getWidgetIndex((Widget) event.getSource());
onTabSelected(index);
}
}
}
- @Override
- public boolean remove(Widget w) {
- ((VCaption) w).removeClickListener(this);
- return super.remove(w);
- }
-
public TabSheetCaption getTab(int index) {
if (index >= getWidgetCount()) {
return null;
import com.google.gwt.event.dom.client.BlurEvent;
import com.google.gwt.event.dom.client.BlurHandler;
+import com.google.gwt.event.dom.client.ChangeEvent;
+import com.google.gwt.event.dom.client.ChangeHandler;
import com.google.gwt.event.dom.client.FocusEvent;
import com.google.gwt.event.dom.client.FocusHandler;
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.ChangeListener;
import com.google.gwt.user.client.ui.TextBoxBase;
-import com.google.gwt.user.client.ui.Widget;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.BrowserInfo;
import com.vaadin.terminal.gwt.client.Paintable;
*
*/
public class VTextField extends TextBoxBase implements Paintable, Field,
- ChangeListener, FocusHandler, BlurHandler {
+ ChangeHandler, FocusHandler, BlurHandler {
/**
* The input node CSS classname.
DOM.setStyleAttribute(node, "marginBottom", "-1px");
}
setStyleName(CLASSNAME);
- addChangeListener(this);
+ addChangeHandler(this);
addFocusHandler(this);
addBlurHandler(this);
sinkEvents(VTooltip.TOOLTIP_EVENTS);
return maxLength;
}
- public void onChange(Widget sender) {
+ public void onChange(ChangeEvent event) {
if (client != null && id != null) {
String newText = getText();
if (!prompting && newText != null
setText(inputPrompt);
addStyleDependentName(CLASSNAME_PROMPT);
}
- onChange((Widget) event.getSource());
+ onChange(null);
}
private void setPrompting(boolean prompting) {
-/* \r
+/*\r
@ITMillApache2LicenseForJavaFiles@\r
*/\r
\r
\r
import java.util.Date;\r
\r
-import com.google.gwt.user.client.ui.ChangeListener;\r
+import com.google.gwt.event.dom.client.ChangeEvent;\r
+import com.google.gwt.event.dom.client.ChangeHandler;\r
import com.google.gwt.user.client.ui.FlowPanel;\r
import com.google.gwt.user.client.ui.ListBox;\r
-import com.google.gwt.user.client.ui.Widget;\r
\r
-public class VTime extends FlowPanel implements ChangeListener {\r
+public class VTime extends FlowPanel implements ChangeHandler {\r
\r
private final VDateField datefield;\r
\r
for (int i = 0; i < numHours; i++) {\r
hours.addItem((i < 10) ? "0" + i : "" + i);\r
}\r
- hours.addChangeListener(this);\r
+ hours.addChangeHandler(this);\r
if (thc) {\r
ampm = new ListBox();\r
ampm.setStyleName(VNativeSelect.CLASSNAME);\r
.getAmPmStrings();\r
ampm.addItem(ampmText[0]);\r
ampm.addItem(ampmText[1]);\r
- ampm.addChangeListener(this);\r
+ ampm.addChangeHandler(this);\r
}\r
\r
if (datefield.getCurrentResolution() >= VDateField.RESOLUTION_MIN) {\r
for (int i = 0; i < 60; i++) {\r
mins.addItem((i < 10) ? "0" + i : "" + i);\r
}\r
- mins.addChangeListener(this);\r
+ mins.addChangeHandler(this);\r
}\r
if (datefield.getCurrentResolution() >= VDateField.RESOLUTION_SEC) {\r
sec = new ListBox();\r
for (int i = 0; i < 60; i++) {\r
sec.addItem((i < 10) ? "0" + i : "" + i);\r
}\r
- sec.addChangeListener(this);\r
+ sec.addChangeHandler(this);\r
}\r
if (datefield.getCurrentResolution() == VDateField.RESOLUTION_MSEC) {\r
msec = new ListBox();\r
msec.addItem("" + i);\r
}\r
}\r
- msec.addChangeListener(this);\r
+ msec.addChangeHandler(this);\r
}\r
\r
final String delimiter = datefield.getDateTimeService()\r
readonly = datefield.isReadonly();\r
}\r
\r
- public void onChange(Widget sender) {\r
+ public void onChange(ChangeEvent event) {\r
if (datefield.getCurrentDate() == null) {\r
// was null on server, need to set\r
Date now = datefield.getShowingDate();\r
datefield.getClient().updateVariable(datefield.getId(), "msec",\r
datefield.getMilliseconds(), false);\r
}\r
- if (sender == hours) {\r
+ if (event.getSource() == hours) {\r
int h = hours.getSelectedIndex();\r
if (datefield.getDateTimeService().isTwelveHourClock()) {\r
h = h + ampm.getSelectedIndex() * 12;\r
datefield.getClient().updateVariable(datefield.getId(), "hour", h,\r
datefield.isImmediate());\r
updateTime(false);\r
- } else if (sender == mins) {\r
+ } else if (event.getSource() == mins) {\r
final int m = mins.getSelectedIndex();\r
datefield.getCurrentDate().setMinutes(m);\r
datefield.getShowingDate().setMinutes(m);\r
datefield.getClient().updateVariable(datefield.getId(), "min", m,\r
datefield.isImmediate());\r
updateTime(false);\r
- } else if (sender == sec) {\r
+ } else if (event.getSource() == sec) {\r
final int s = sec.getSelectedIndex();\r
datefield.getCurrentDate().setSeconds(s);\r
datefield.getShowingDate().setSeconds(s);\r
datefield.getClient().updateVariable(datefield.getId(), "sec", s,\r
datefield.isImmediate());\r
updateTime(false);\r
- } else if (sender == msec) {\r
+ } else if (event.getSource() == msec) {\r
final int ms = msec.getSelectedIndex();\r
datefield.setMilliseconds(ms);\r
datefield.setShowingMilliseconds(ms);\r
datefield.getClient().updateVariable(datefield.getId(), "msec", ms,\r
datefield.isImmediate());\r
updateTime(false);\r
- } else if (sender == ampm) {\r
+ } else if (event.getSource() == ampm) {\r
final int h = hours.getSelectedIndex() + ampm.getSelectedIndex()\r
* 12;\r
datefield.getCurrentDate().setHours(h);\r
import com.google.gwt.dom.client.DivElement;
import com.google.gwt.dom.client.Document;
+import com.google.gwt.event.logical.shared.ResizeEvent;
+import com.google.gwt.event.logical.shared.ResizeHandler;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.DeferredCommand;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.Window;
-import com.google.gwt.user.client.WindowCloseListener;
-import com.google.gwt.user.client.WindowResizeListener;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.Widget;
*
*/
public class VView extends SimplePanel implements Container,
- WindowResizeListener, WindowCloseListener {
+ ResizeHandler, Window.ClosingHandler {
private static final String CLASSNAME = "v-view";
final String url = open.getStringAttribute("src");
final String target = open.getStringAttribute("name");
if (target == null) {
- // This window is closing. Send close event before
- // going to the new url
+ // This window is closing. Nothing was done in the close event,
+ // so don't need to call it before going to the new url
isClosed = true;
- onWindowClosed();
goTo(url);
} else {
String options;
// Add window listeners on first paint, to prevent premature
// variablechanges
if (firstPaint) {
- Window.addWindowCloseListener(this);
- Window.addWindowResizeListener(this);
+ Window.addWindowClosingHandler(this);
+ Window.addResizeHandler(this);
}
- onWindowResized(Window.getClientWidth(), Window.getClientHeight());
+ onResize(Window.getClientWidth(), Window.getClientHeight());
if (BrowserInfo.get().isSafari()) {
Util.runWebkitOverflowAutoFix(getElement());
}
}
- public void onWindowResized(int width, int height) {
+ public void onResize(ResizeEvent event) {
+ onResize(event.getWidth(), event.getHeight());
+ }
+
+ public void onResize(int wwidth, int wheight) {
if (BrowserInfo.get().isIE()) {
/*
* IE will give us some false resized events due bugs with
@Override
public void run() {
boolean changed = false;
- if (VView.this.width != getOffsetWidth()) {
- VView.this.width = getOffsetWidth();
+ if (width != getOffsetWidth()) {
+ width = getOffsetWidth();
changed = true;
ApplicationConnection.getConsole().log(
- "window w" + VView.this.width);
+ "window w" + width);
}
- if (VView.this.height != getOffsetHeight()) {
- VView.this.height = getOffsetHeight();
+ if (height != getOffsetHeight()) {
+ height = getOffsetHeight();
changed = true;
ApplicationConnection.getConsole().log(
- "window h" + VView.this.height);
+ "window h" + height);
}
if (changed) {
ApplicationConnection
}
resizeTimer.schedule(200);
} else {
- if (width == VView.this.width && height == VView.this.height) {
+ if (wwidth == width && wheight == height) {
// No point in doing resize operations if window size has not
// changed
return;
}
- VView.this.width = Window.getClientWidth();
- VView.this.height = Window.getClientHeight();
+ width = Window.getClientWidth();
+ height = Window.getClientHeight();
ApplicationConnection.getConsole().log(
"Running layout functions due window resize");
$wnd.location = url;
}-*/;
- public void onWindowClosed() {
-
- }
-
- public String onWindowClosing() {
+ public void onWindowClosing(Window.ClosingEvent event) {
// Change focus on this window in order to ensure that all state is
// collected from textfields
VTextField.flushChangesFromFocusedTextField();
// Send the closing state to server
connection.updateVariable(id, "close", true, false);
connection.sendPendingVariableChangesSync();
-
- return null;
}
private final RenderSpace myRenderSpace = new RenderSpace() {
import com.google.gwt.event.dom.client.BlurEvent;
import com.google.gwt.event.dom.client.BlurHandler;
+import com.google.gwt.event.dom.client.ChangeEvent;
+import com.google.gwt.event.dom.client.ChangeHandler;
+import com.google.gwt.event.dom.client.KeyPressEvent;
+import com.google.gwt.event.dom.client.KeyPressHandler;
+import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.DeferredCommand;
import com.google.gwt.user.client.Element;
-import com.google.gwt.user.client.ui.ChangeListener;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HTML;
-import com.google.gwt.user.client.ui.KeyboardListener;
import com.google.gwt.user.client.ui.RichTextArea;
-import com.google.gwt.user.client.ui.Widget;
import com.vaadin.terminal.gwt.client.ApplicationConnection;
import com.vaadin.terminal.gwt.client.BrowserInfo;
import com.vaadin.terminal.gwt.client.Paintable;
*
*/
public class VRichTextArea extends Composite implements Paintable, Field,
- ChangeListener, BlurHandler, KeyboardListener {
+ ChangeHandler, BlurHandler, KeyPressHandler {
/**
* The input node CSS classname.
private int toolbarNaturalWidth = 500;
+ private HandlerRegistration keyPressHandler;
+
public VRichTextArea() {
fp.add(formatter);
.getIntAttribute("maxLength") : -1;
if (newMaxLength >= 0) {
if (maxLength == -1) {
- rta.addKeyboardListener(this);
+ keyPressHandler = rta.addKeyPressHandler(this);
}
maxLength = newMaxLength;
} else if (maxLength != -1) {
getElement().setAttribute("maxlength", "");
maxLength = -1;
- rta.removeKeyboardListener(this);
+ keyPressHandler.removeHandler();
}
}
- public void onChange(Widget sender) {
+ // TODO is this really used, or does everything go via onBlur() only?
+ public void onChange(ChangeEvent event) {
if (client != null && id != null) {
client.updateVariable(id, "text", rta.getText(), immediate);
}
}
}
- public void onKeyDown(Widget sender, char keyCode, int modifiers) {
- // NOP
- }
-
- public void onKeyPress(Widget sender, char keyCode, int modifiers) {
+ public void onKeyPress(KeyPressEvent event) {
if (maxLength >= 0) {
DeferredCommand.addCommand(new Command() {
public void execute() {
}
}
- public void onKeyUp(Widget sender, char keyCode, int modifiers) {
- // NOP
- }
-
}
package com.vaadin.terminal.gwt.client.ui.richtextarea;
import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.dom.client.ChangeEvent;
+import com.google.gwt.event.dom.client.ChangeHandler;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.KeyUpEvent;
import com.google.gwt.i18n.client.Constants;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.AbstractImagePrototype;
-import com.google.gwt.user.client.ui.ChangeListener;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.ImageBundle;
import com.google.gwt.user.client.ui.PushButton;
import com.google.gwt.user.client.ui.RichTextArea;
import com.google.gwt.user.client.ui.ToggleButton;
-import com.google.gwt.user.client.ui.Widget;
/**
* A modified version of sample toolbar for use with {@link RichTextArea}. It
}
/**
- * We use an inner EventListener class to avoid exposing event methods on
- * the RichTextToolbar itself.
+ * We use an inner EventHandler class to avoid exposing event methods on the
+ * RichTextToolbar itself.
*/
- private class EventListener implements ClickHandler, ChangeListener,
+ private class EventHandler implements ClickHandler, ChangeHandler,
KeyUpHandler {
- public void onChange(Widget sender) {
+ public void onChange(ChangeEvent event) {
+ Object sender = event.getSource();
if (sender == backColors) {
basic.setBackColor(backColors.getValue(backColors
.getSelectedIndex()));
private final Images images = (Images) GWT.create(Images.class);
private final Strings strings = (Strings) GWT.create(Strings.class);
- private final EventListener listener = new EventListener();
+ private final EventHandler listener = new EventHandler();
private final RichTextArea richText;
private final RichTextArea.BasicFormatter basic;
private ListBox createColorList(String caption) {
final ListBox lb = new ListBox();
- lb.addChangeListener(listener);
+ lb.addChangeHandler(listener);
lb.setVisibleItemCount(1);
lb.addItem(caption);
private ListBox createFontList() {
final ListBox lb = new ListBox();
- lb.addChangeListener(listener);
+ lb.addChangeHandler(listener);
lb.setVisibleItemCount(1);
lb.addItem(strings.font(), "");
private ListBox createFontSizes() {
final ListBox lb = new ListBox();
- lb.addChangeListener(listener);
+ lb.addChangeHandler(listener);
lb.setVisibleItemCount(1);
lb.addItem(strings.size());