/* Copyright (c) 2010 Zhihua (Dennis) Jiang
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.gwtmobile.phonegap.kitchensink.client;
import com.google.gwt.core.client.GWT;
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.Timer;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Widget;
import com.gwtmobile.phonegap.client.Notification;
import com.gwtmobile.phonegap.client.Notification.Callback;
import com.gwtmobile.phonegap.client.Notification.ConfirmCallback;
import com.gwtmobile.ui.client.event.SelectionChangedEvent;
import com.gwtmobile.ui.client.page.Page;
public class NotificationUi extends Page {
@UiField HTML text;
private static NotificationUiBinder uiBinder = GWT
.create(NotificationUiBinder.class);
interface NotificationUiBinder extends UiBinder<Widget, NotificationUi> {
}
public NotificationUi() {
initWidget(uiBinder.createAndBindUi(this));
}
@UiHandler("list")
void onListSelectionChanged(SelectionChangedEvent e) {
switch (e.getSelection()) {
case 0:
alert();
break;
case 1:
confirm();
break;
case 2:
beep();
break;
case 3:
vibrate();
break;
case 4:
blink();
break;
case 5:
activity();
break;
case 6:
progress();
break;
}
}
public void alert() {
Notification.alert("This is an alert message", new Callback() {
@Override
public void onComplete() {
text.setHTML("Received callback from alert.");
}
}, "Alert", "Okey-Dokey");
}
public void confirm() {
Notification.confirm("This is a confirmation message", new ConfirmCallback() {
@Override
public void onComplete(int result) {
text.setHTML("You selected " + (result == 1 ? "Yes" : "No"));
}
}, "Confirm", "Yes,No");
}
public void beep() {
Notification.beep(1);
text.setHTML("heard the beep?");
}
public void vibrate() {
Notification.vibrate(100);
text.setHTML("felt the vibration?");
}
public void blink() {
Notification.blink(3, "red");
text.setHTML("saw the light blinking?");
}
public void activity() {
Notification.activityStart();
new Timer(){
@Override
public void run() {
Notification.activityStop();
}
}.schedule(3000);
}
public void progress() {
Notification.progressStart("Downloading", "Please be patient...");
new Timer(){
int value = 0;
@Override
public void run() {
Notification.progressValue(value++);
if (value > 100) {
Notification.progressStop();
this.cancel();
}
}
}.scheduleRepeating(20);
}
}