/** * Sencha GXT 3.0.0b - Sencha for GWT * Copyright(c) 2007-2012, Sencha, Inc. * licensing@sencha.com * * http://www.sencha.com/products/gxt/license/ */ package com.sencha.gxt.explorer.client.toolbar; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.KeyPressEvent; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.uibinder.client.UiHandler; import com.google.gwt.user.client.ui.IsWidget; import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.Widget; import com.sencha.gxt.core.client.util.DelayedTask; import com.sencha.gxt.explorer.client.model.Example.Detail; import com.sencha.gxt.theme.blue.client.status.BlueBoxStatusAppearance; import com.sencha.gxt.widget.core.client.Component; import com.sencha.gxt.widget.core.client.Status; import com.sencha.gxt.widget.core.client.Status.StatusAppearance; import com.sencha.gxt.widget.core.client.form.TextArea; @Detail(name = "Status ToolBar (UiBinder)", icon = "statustoolbar", category = "ToolBar & Menu", files = "StatusToolBarUiBinderExample.ui.xml") public class StatusToolBarUiBinderExample implements IsWidget, EntryPoint { interface MyUiBinder extends UiBinder<Component, StatusToolBarUiBinderExample> { } private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class); private DelayedTask task = new DelayedTask() { @Override public void onExecute() { status.clearStatus("Not writing"); } }; @UiField Status status; @UiField(provided = true) Status charCount = new Status(GWT.<StatusAppearance> create(BlueBoxStatusAppearance.class)); @UiField(provided = true) Status wordCount = new Status(GWT.<StatusAppearance> create(BlueBoxStatusAppearance.class)); public Widget asWidget() { return uiBinder.createAndBindUi(this); } public void onModuleLoad() { RootPanel.get().add(asWidget()); } @UiHandler("textArea") public void onKeyPress(KeyPressEvent event) { status.setBusy("writing..."); TextArea t = (TextArea) event.getSource(); String value = t.getCurrentValue(); int length = value != null ? value.length() : 0; charCount.setText(length + (length == 1 ? " Char" : " Chars")); if (value != null) { int wc = getWordCount(value); wordCount.setText(wc + (wc == 1 ? " Word" : " Words")); } task.delay(1000); } public native int getWordCount(String v) /*-{ if (v) { var wc = v.match(/\b/g); return wc ? wc.length / 2 : 0; } return 0; }-*/; }