/*
* SmartGWT (GWT for SmartClient)
* Copyright 2008 and beyond, Isomorphic Software, Inc.
*
* SmartGWT is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License version 3
* as published by the Free Software Foundation. SmartGWT is also
* available under typical commercial license terms - see
* http://smartclient.com/license
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*/
package com.smartgwt.sample.showcase.client;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.RootPanel;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.types.DragAppearance;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.Img;
import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.events.DrawEvent;
import com.smartgwt.client.widgets.events.DrawHandler;
import com.smartgwt.client.widgets.events.FocusChangedEvent;
import com.smartgwt.client.widgets.events.FocusChangedHandler;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.fields.ComboBoxItem;
import com.smartgwt.client.widgets.form.fields.DateItem;
import com.smartgwt.client.widgets.layout.HStack;
import com.smartgwt.client.widgets.layout.VLayout;
public class Showcase implements EntryPoint{
public void onModuleLoad() {
RootPanel.get().add(getViewPanel());
}
public Canvas getViewPanel() {
HStack hStack = new HStack();
hStack.setWidth(300);
hStack.setHeight(100);
hStack.setShowEdges(true);
hStack.setCanAcceptDrop(true);
hStack.setAnimateMembers(true);
hStack.setDropLineThickness(4);
final Label focusLabel = new Label();
focusLabel.setID("focusLabel");
focusLabel.setAlign(Alignment.CENTER);
focusLabel.setTop(150);
focusLabel.setWidth(300);
focusLabel.setHeight(50);
final Img bluePawn = new Img();
bluePawn.setID("bluePawn");
bluePawn.setLayoutAlign(Alignment.CENTER);
bluePawn.setWidth(48);
bluePawn.setHeight(48);
bluePawn.setCanFocus(true);
bluePawn.setSrc("pieces/48/pawn_blue.png");
bluePawn.setCanDragReposition(true);
bluePawn.setCanDrop(true);
bluePawn.setDragAppearance(DragAppearance.TARGET);
bluePawn.addDrawHandler(new DrawHandler() {
public void onDraw(DrawEvent event) {
bluePawn.focus();
}
});
bluePawn.addFocusChangedHandler(new FocusChangedHandler() {
public void onFocusChanged(FocusChangedEvent event) {
changeLabel(focusLabel, bluePawn.getID(), event.getHasFocus());
}
});
ComboBoxItem field1 = new ComboBoxItem();
field1.setName("field1");
field1.setValueMap("Option 1", "Option 2");
DateItem field2 = new DateItem();
field2.setName("field2");
final DynamicForm simpleForm = new DynamicForm();
simpleForm.setID("simpleForm");
simpleForm.setLayoutAlign(Alignment.CENTER);
simpleForm.setHeight(48);
simpleForm.setFields(field1, field2);
simpleForm.addFocusChangedHandler(new FocusChangedHandler() {
public void onFocusChanged(FocusChangedEvent event) {
changeLabel(focusLabel, simpleForm.getID(), event.getHasFocus());
}
});
final Img greenPawn = new Img();
greenPawn.setID("greenPawn");
greenPawn.setLayoutAlign(Alignment.CENTER);
greenPawn.setWidth(48);
greenPawn.setHeight(48);
greenPawn.setCanFocus(true);
greenPawn.setSrc("pieces/48/pawn_green.png");
greenPawn.setCanDragReposition(true);
greenPawn.setCanDrop(true);
greenPawn.setDragAppearance(DragAppearance.TARGET);
greenPawn.addFocusChangedHandler(new FocusChangedHandler() {
public void onFocusChanged(FocusChangedEvent event) {
changeLabel(focusLabel, greenPawn.getID(), event.getHasFocus());
}
});
hStack.addMember(bluePawn);
hStack.addMember(simpleForm);
hStack.addMember(greenPawn);
VLayout vLayout = new VLayout();
vLayout.setMembersMargin(10);
vLayout.addMember(hStack);
vLayout.addMember(focusLabel);
return vLayout;
}
private void changeLabel(Label label, String id, boolean hasFocus) {
if (hasFocus)
label.setContents(id + " has focus");
else
label.setContents("");
}
}
SmartGWT.zip( 9,880 k)