GWT Java

/*
 * 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 java.util.HashMap;
import java.util.Map;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.RootPanel;
import com.smartgwt.client.core.Rectangle;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.Dialog;
import com.smartgwt.client.widgets.IButton;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.fields.FormItemIcon;
import com.smartgwt.client.widgets.form.fields.TextItem;
import com.smartgwt.client.widgets.form.fields.events.IconClickEvent;
import com.smartgwt.client.widgets.form.fields.events.IconClickHandler;
public class Showcase implements EntryPoint {
  public void onModuleLoad() {
    RootPanel.get().add(getViewPanel());
  }
  public Canvas getViewPanel() {
    final DynamicForm form = new DynamicForm();
    form.setAutoFocus(true);
    form.setWidth(200);
    YesNoMaybeItem decision = new YesNoMaybeItem();
    decision.setTitle("Decision");
    form.setFields(decision);
    return form;
  }
  public static class YesNoMaybeItem extends TextItem {
    private static Dialog dialog;
    private static YesNoMaybeItem currentEditor;
    private static void makeDialog() {
      dialog = new Dialog();
      dialog.setAutoCenter(true);
      dialog.setIsModal(true);
      dialog.setShowHeader(false);
      dialog.setShowEdges(false);
      dialog.setEdgeSize(10);
      dialog.setWidth(500);
      dialog.setHeight(400);
      dialog.setShowToolbar(false);
      dialog.setWidth(130);
      dialog.setHeight(110);
      Map bodyDefaults = new HashMap();
      bodyDefaults.put("layoutLeftMargin", 5);
      bodyDefaults.put("membersMargin", 10);
      dialog.setBodyDefaults(bodyDefaults);
      final IButton yes = new IButton("YES");
      yes.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() {
        public void onClick(com.smartgwt.client.widgets.events.ClickEvent event) {
          YesNoMaybeItem.seCurrentValue(yes.getTitle());
        }
      });
      final IButton no = new IButton("NO");
      no.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() {
        public void onClick(com.smartgwt.client.widgets.events.ClickEvent event) {
          YesNoMaybeItem.seCurrentValue(no.getTitle());
        }
      });
      final IButton maybe = new IButton("MAYBE");
      maybe.addClickHandler(new com.smartgwt.client.widgets.events.ClickHandler() {
        public void onClick(com.smartgwt.client.widgets.events.ClickEvent event) {
          YesNoMaybeItem.seCurrentValue(maybe.getTitle());
        }
      });
      dialog.addItem(yes);
      dialog.addItem(no);
      dialog.addItem(maybe);
    }
    // set the specified value and dismiss the picker dialog
    private static void seCurrentValue(String value) {
      currentEditor.setValue(value);
      dialog.hide();
    }
    // show the picker dialog at the specified position
    private static void showDialog(int left, int top) {
      dialog.show();
      dialog.moveTo(left, top);
    }
    public YesNoMaybeItem() {
      // use default trigger icon here. User can customize.
      // [SKIN]/DynamicForm/default_formItem_icon.gif
      FormItemIcon formItemIcon = new FormItemIcon();
      setIcons(formItemIcon);
      addIconClickHandler(new IconClickHandler() {
        public void onIconClick(IconClickEvent event) {
          // get global coordinates of the clicked picker icon
          Rectangle iconRect = getIconPageRect(event.getIcon());
          // lazily create the YesNoMaybe picker dialog the first time a
          // yesNoMaybe editor is clicked
          if (YesNoMaybeItem.dialog == null) {
            YesNoMaybeItem.makeDialog();
          }
          // remember what editor is active, so we can set its value from the
          // picker dialog
          YesNoMaybeItem.currentEditor = YesNoMaybeItem.this;
          // show the picker dialog
          YesNoMaybeItem.showDialog(iconRect.getLeft(), iconRect.getTop());
        }
      });
    }
  }
}
   
    
    
  
SmartGWT.zip( 9,880 k)