Package org.dynamic.web.page.client

Source Code of org.dynamic.web.page.client.MyHandler

package org.dynamic.web.page.client;

import java.awt.Color;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.dynamic.web.page.shared.FieldVerifier;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.NodeList;
import com.google.gwt.dom.client.OptionElement;
import com.google.gwt.dom.client.SelectElement;
import com.google.gwt.dom.client.Style.BorderStyle;
import com.google.gwt.dom.client.Style.Display;
import com.google.gwt.dom.client.Style.OutlineStyle;
import com.google.gwt.dom.client.Style.Overflow;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.dom.client.Style.Float;
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.KeyCodes;
import com.google.gwt.event.dom.client.KeyUpEvent;
import com.google.gwt.event.dom.client.KeyUpHandler;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.EventListener;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.DockLayoutPanel;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.PopupPanel;
import com.google.gwt.user.client.ui.RootLayoutPanel;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;

import org.dynamic.web.page.shared.AppUser;

/**
* Entry point classes define <code>onModuleLoad()</code>.
*/
public class DynamicWebPage implements EntryPoint {
  /**
   * The message displayed to the user when the server cannot be reached or
   * returns an error.
   */
  private static final String SERVER_ERROR = "An error occurred while "
      + "attempting to contact the server. Please check your network "
      + "connection and try again.";

  /**
   * Create a remote service proxy to talk to the server-side Greeting service.
   */
  private final GreetingServiceAsync greetingService = GWT
      .create(GreetingService.class);
 
  /**
   * Create a remote service proxy to talk to the server-side Greeting service.
   */
  private final EntityServiceAsync entityService = GWT
      .create(EntityService.class);

  private final AuthenticationServiceAsync authService = GWT
      .create(AuthenticationService.class);
 
  //private final PageServiceAsync pageService = GWT
  //    .create(PageService.class);

  private AppUser user;
 
  private Widget selectedWidget;
 
  private ListBox createImagesWidget() {
    ListBox listBox = new ListBox();
    listBox.addItem("", "");
    listBox.addItem("Chrysanthemum", "Chrysanthemum.png");
    listBox.addItem("Desert", "Desert.png");
    listBox.addItem("face", "face.png");
    listBox.addItem("Hydrangeas", "Hydrangeas.png");
    listBox.addItem("Jellyfish", "Jellyfish.png");
    listBox.addItem("Koala", "Koala.png");
    listBox.addItem("Lighthouse", "Lighthouse.png");
    listBox.addItem("Penguins", "Penguins.png");
    listBox.addItem("Tulips", "Tulips.png");
    listBox.addItem("whale", "whale.png");
    return listBox;
  }
 
  private List<Widget> createBackgroundImageWidgets() {
   
    List<Widget> widgets = new ArrayList<Widget>();
   
    final TextBox textBox = new TextBox();
   
    final ListBox listBox = createImagesWidget();
      listBox.addChangeHandler(new ChangeHandler() {
      @Override
      public void onChange(ChangeEvent event) {
        int selectedIndex = listBox.getSelectedIndex();
     
        if (selectedWidget != null) {
          String selectedImage = listBox.getValue(selectedIndex);
         
          if (selectedImage != null && selectedImage.trim().length() > 0) {
            selectedWidget.getElement().getStyle().setBackgroundImage(selectedImage);
          }
         
          else {
            selectedWidget.getElement().getStyle().clearBackgroundImage();
          }
        }
      }
      });

     
    textBox.addChangeHandler(new ChangeHandler() {
      @Override
      public void onChange(ChangeEvent event) {
       
        if (selectedWidget != null) {
          if (textBox.getValue() != null && textBox.getValue().trim().length() > 0) {
            selectedWidget.getElement().getStyle().setBackgroundImage(textBox.getValue().trim());
          }
         
          else {
            selectedWidget.getElement().getStyle().clearBackgroundImage();
          }
        }
      }
      });
   
   
    widgets.add(textBox);
    widgets.add(listBox);
   
    return widgets;
  }
 
  private ListBox createBackgroundColorDropDown() {
    final ListBox listBox =createColorListBoxWidget();
    listBox.getElement().getStyle().setBackgroundColor("AliceBlue");
   
      SelectElement selectElement = SelectElement.as(listBox.getElement());
      NodeList<OptionElement> options = selectElement.getOptions();

      for (int i = 0; i < options.getLength(); i++) {
        String colorHex = listBox.getValue(i);
        String colorName = listBox.getName();

           options.getItem(i).getStyle().setColor("white");
           options.getItem(i).getStyle().setBackgroundColor(colorHex);
      }
     
      listBox.addChangeHandler(new ChangeHandler() {
      @Override
      public void onChange(ChangeEvent event) {
        int selectedIndex = listBox.getSelectedIndex();
        listBox.getElement().getStyle().setBackgroundColor(listBox.getValue(selectedIndex));
       
        if (selectedWidget != null) {
          selectedWidget.getElement().getStyle().setBackgroundColor(listBox.getValue(selectedIndex));
        }
      }
      });
   
   
    return listBox;
  }
 
  private ListBox createColorListBoxWidget() {
    ListBox listBox = new ListBox();
    listBox.getElement().getStyle().setBackgroundColor("AliceBlue");
   
    listBox.addItem("AliceBlue", "#F0F8FF");
    listBox.addItem("AntiqueWhite", "#FAEBD7");
    listBox.addItem("Aqua", "#00FFFF");
    listBox.addItem("Aquamarine", "#7FFFD4");
    listBox.addItem("Azure", "#F0FFFF");
    listBox.addItem("Beige", "#F5F5DC");
    listBox.addItem("Bisque", "#FFE4C4");
    listBox.addItem("Black", "#000000");
    listBox.addItem("BlanchedAlmond", "#FFEBCD");
    listBox.addItem("Blue", "#0000FF");
    listBox.addItem("BlueViolet", "#8A2BE2");
    listBox.addItem("Brown", "#A52A2A");
    listBox.addItem("BurlyWood", "#DEB887");
    listBox.addItem("CadetBlue", "#5F9EA0");
    listBox.addItem("Chartreuse", "#7FFF00");
    listBox.addItem("Chocolate", "#D2691E");
    listBox.addItem("Coral", "#FF7F50");
    listBox.addItem("CornflowerBlue", "#6495ED");
    listBox.addItem("Cornsilk", "#FFF8DC");
    listBox.addItem("Crimson", "#DC143C");
    listBox.addItem("Cyan", "#00FFFF");
    listBox.addItem("DarkBlue", "#00008B");
    listBox.addItem("DarkCyan", "#008B8B");
    listBox.addItem("DarkGoldenRod", "#B8860B");
    listBox.addItem("DarkGray", "#A9A9A9");
    listBox.addItem("DarkGreen", "#006400");
    listBox.addItem("DarkKhaki", "#BDB76B");
    listBox.addItem("DarkMagenta", "#8B008B");
    listBox.addItem("DarkOliveGreen", "#556B2F");
    listBox.addItem("DarkOrange", "#FF8C00");
    listBox.addItem("DarkOrchid", "#9932CC");
    listBox.addItem("DarkRed", "#8B0000");
    listBox.addItem("DarkSalmon", "#E9967A");
    listBox.addItem("DarkSeaGreen", "#8FBC8F");
    listBox.addItem("DarkSlateBlue", "#483D8B");
    listBox.addItem("DarkSlateGray", "#2F4F4F");
    listBox.addItem("DarkTurquoise", "#00CED1");
    listBox.addItem("DarkViolet", "#9400D3");
    listBox.addItem("DeepPink", "#FF1493");
    listBox.addItem("DeepSkyBlue", "#00BFFF");
    listBox.addItem("DimGray", "#696969");
    listBox.addItem("DodgerBlue", "#1E90FF");
    listBox.addItem("FireBrick", "#B22222");
    listBox.addItem("FloralWhite", "#FFFAF0");
    listBox.addItem("ForestGreen", "#228B22");
    listBox.addItem("Fuchsia", "#FF00FF");
    listBox.addItem("Gainsboro", "#DCDCDC");
    listBox.addItem("GhostWhite", "#F8F8FF");
    listBox.addItem("Gold", "#FFD700");
    listBox.addItem("GoldenRod", "#DAA520");
    listBox.addItem("Gray", "#808080");
    listBox.addItem("Green", "#008000");
    listBox.addItem("GreenYellow", "#ADFF2F");
    listBox.addItem("HoneyDew", "#F0FFF0");
    listBox.addItem("HotPink", "#FF69B4");
    listBox.addItem("IndianRed", "#CD5C5C");
    listBox.addItem("Indigo", "#4B0082");
    listBox.addItem("Ivory", "#FFFFF0");
    listBox.addItem("Khaki", "#F0E68C");
    listBox.addItem("Lavender", "#E6E6FA");
    listBox.addItem("LavenderBlush", "#FFF0F5");
    listBox.addItem("LawnGreen", "#7CFC00");
    listBox.addItem("LemonChiffon", "#FFFACD");
    listBox.addItem("LightBlue", "#ADD8E6");
    listBox.addItem("LightCoral", "#F08080");
    listBox.addItem("LightCyan", "#E0FFFF");
    listBox.addItem("LightGoldenRodYellow", "#FAFAD2");
    listBox.addItem("LightGray", "#D3D3D3");
    listBox.addItem("LightGreen", "#90EE90");
    listBox.addItem("LightPink", "#FFB6C1");
    listBox.addItem("LightSalmon", "#FFA07A");
    listBox.addItem("LightSeaGreen", "#20B2AA");
    listBox.addItem("LightSkyBlue", "#87CEFA");
    listBox.addItem("LightSlateGray", "#778899");
    listBox.addItem("LightSteelBlue", "#B0C4DE");
    listBox.addItem("LightYellow", "#FFFFE0");
    listBox.addItem("Lime", "#00FF00");
    listBox.addItem("LimeGreen", "#32CD32");
    listBox.addItem("Linen", "#FAF0E6");
    listBox.addItem("Magenta", "#FF00FF");
    listBox.addItem("Maroon", "#800000");
    listBox.addItem("MediumAquaMarine", "#66CDAA");
    listBox.addItem("MediumBlue", "#0000CD");
    listBox.addItem("MediumOrchid", "#BA55D3");
    listBox.addItem("MediumPurple", "#9370DB");
    listBox.addItem("MediumSeaGreen", "#3CB371");
    listBox.addItem("MediumSlateBlue", "#7B68EE");
    listBox.addItem("MediumSpringGreen", "#00FA9A");
    listBox.addItem("MediumTurquoise", "#48D1CC");
    listBox.addItem("MediumVioletRed", "#C71585");
    listBox.addItem("MidnightBlue", "#191970");
    listBox.addItem("MintCream", "#F5FFFA");
    listBox.addItem("MistyRose", "#FFE4E1");
    listBox.addItem("Moccasin", "#FFE4B5");
    listBox.addItem("NavajoWhite", "#FFDEAD");
    listBox.addItem("Navy", "#000080");
    listBox.addItem("OldLace", "#FDF5E6");
    listBox.addItem("Olive", "#808000");
    listBox.addItem("OliveDrab", "#6B8E23");
    listBox.addItem("Orange", "#FFA500");
    listBox.addItem("OrangeRed", "#FF4500");
    listBox.addItem("Orchid", "#DA70D6");
    listBox.addItem("PaleGoldenRod", "#98FB98");
    listBox.addItem("PaleGreen", "#F0F8FF");
    listBox.addItem("PaleTurquoise", "#AFEEEE");
    listBox.addItem("PaleVioletRed", "#DB7093");
    listBox.addItem("PapayaWhip", "#FFEFD5");
    listBox.addItem("PeachPuff", "#FFDAB9");
    listBox.addItem("Peru", "#CD853F");
    listBox.addItem("Pink", "#FFC0CB");
    listBox.addItem("Plum", "#DDA0DD");
    listBox.addItem("PowderBlue", "#B0E0E6");
    listBox.addItem("Purple", "#800080");
    listBox.addItem("Red", "#FF0000");
    listBox.addItem("RosyBrown", "#BC8F8F");
    listBox.addItem("RoyalBlue", "#4169E1");
    listBox.addItem("SaddleBrown", "#8B4513");
    listBox.addItem("Salmon", "#FA8072");
    listBox.addItem("SandyBrown", "#F4A460");
    listBox.addItem("SeaGreen", "#2E8B57");
    listBox.addItem("SeaShell", "#FFF5EE");
    listBox.addItem("Sienna", "#A0522D");
    listBox.addItem("Silver", "#C0C0C0");
    listBox.addItem("SkyBlue", "#87CEEB");
    listBox.addItem("SlateBlue", "#6A5ACD");
    listBox.addItem("SlateGray", "#708090");
    listBox.addItem("Snow", "#FFFAFA");
    listBox.addItem("SpringGreen", "#00FF7F");
    listBox.addItem("SteelBlue", "#4682B4");
    listBox.addItem("Tan", "#D2B48C");
    listBox.addItem("Teal", "#008080");
    listBox.addItem("Thistle", "#D8BFD8");
    listBox.addItem("Tomato", "#FF6347");
    listBox.addItem("Turquoise", "#40E0D0");
    listBox.addItem("Violet", "#EE82EE");
    listBox.addItem("Wheat", "#F5DEB3");
    listBox.addItem("White", "#FFFFFF");
    listBox.addItem("WhiteSmoke", "#F5F5F5");
    listBox.addItem("Yellow", "#FFFF00");
    listBox.addItem("YellowGreen", "#9ACD32");
    return listBox;
  }
 
  private ListBox createBorderColorDropDown() {
    final ListBox listBox = createColorListBoxWidget();
    listBox.getElement().getStyle().setBackgroundColor("AliceBlue");
   
      SelectElement selectElement = SelectElement.as(listBox.getElement());
      NodeList<OptionElement> options = selectElement.getOptions();

      for (int i = 0; i < options.getLength(); i++) {
        String colorHex = listBox.getValue(i);
        String colorName = listBox.getName();

           options.getItem(i).getStyle().setColor("white");
           options.getItem(i).getStyle().setBackgroundColor(colorHex);
      }
     
      listBox.addChangeHandler(new ChangeHandler() {
      @Override
      public void onChange(ChangeEvent event) {
        int selectedIndex = listBox.getSelectedIndex();
        listBox.getElement().getStyle().setBackgroundColor(listBox.getValue(selectedIndex));
       
        if (selectedWidget != null) {
          selectedWidget.getElement().getStyle().setBorderColor(listBox.getValue(selectedIndex));
        }
       
        else {
          selectedWidget.getElement().getStyle().clearBorderColor();
        }
      }
      });
   
   
    return listBox;
  }
 
  private ListBox createBorderStyleDropDown() {
    final ListBox listBox = new ListBox();
    listBox.addItem("DASHED");
    listBox.addItem("DOTTED");
    listBox.addItem("HIDDEN");
    listBox.addItem("NONE");
    listBox.addItem("SOLID");   
     
      listBox.addChangeHandler(new ChangeHandler() {
      @Override
      public void onChange(ChangeEvent event) {
        int selectedIndex = listBox.getSelectedIndex();
        listBox.getElement().getStyle().setBackgroundColor(listBox.getValue(selectedIndex));
       
        if (selectedWidget != null) {
          BorderStyle borderStyle = null;
          String selectedStyle = listBox.getItemText(selectedIndex);
          if (selectedStyle.equals("DASHED")) {
            borderStyle = BorderStyle.DASHED;
          }
         
          else if (selectedStyle.equals("DOTTED")) {
            borderStyle = BorderStyle.DOTTED;
          }

          else if (selectedStyle.equals("HIDDEN")) {
            borderStyle = BorderStyle.HIDDEN;
          }

          else if (selectedStyle.equals("NONE")) {
            borderStyle = BorderStyle.NONE;
          }

          else if (selectedStyle.equals("SOLID")) {
            borderStyle = BorderStyle.SOLID;
          }
         
          if (borderStyle != null) {
            selectedWidget.getElement().getStyle().setBorderStyle(borderStyle);
          }
         
          else {
            selectedWidget.getElement().getStyle().clearBorderStyle();
          }
        }
      }
      });
   
   
    return listBox;
  }
 
  private List<Widget> createBorderWidthWidgets() {
   
    List<Widget> widgets = new ArrayList<Widget>();
   
    final TextBox textBox = new TextBox();
   
    final ListBox listBox = createUnitWidget();
      listBox.addChangeHandler(new ChangeHandler() {
      @Override
      public void onChange(ChangeEvent event) {
        int selectedIndex = listBox.getSelectedIndex();
     
        if (selectedWidget != null) {
          Unit borderUnit = null;
          String selectedStyle = listBox.getItemText(selectedIndex);
          if (selectedStyle.equals("CM")) {
            borderUnit = Unit.CM;
          }
         
          else if (selectedStyle.equals("EM")) {
            borderUnit = Unit.EM;
          }

          else if (selectedStyle.equals("EX")) {
            borderUnit = Unit.EX;
          }

          else if (selectedStyle.equals("IN")) {
            borderUnit = Unit.IN;
          }

          else if (selectedStyle.equals("MM")) {
            borderUnit = Unit.MM;
          }

          else if (selectedStyle.equals("PC")) {
            borderUnit = Unit.PC;
          }

          else if (selectedStyle.equals("PCT")) {
            borderUnit = Unit.PCT;
          }

          else if (selectedStyle.equals("PT")) {
            borderUnit = Unit.PT;
          }

          else if (selectedStyle.equals("PX")) {
            borderUnit = Unit.PX;
          }
         
          if (borderUnit != null) {
            int borderWidth = 0;
            if (textBox.getValue() != null && textBox.getValue().trim().length() > 0) {
              borderWidth = Integer.parseInt(textBox.getValue().trim());
              selectedWidget.getElement().getStyle().setBorderWidth(borderWidth, borderUnit);
            }
           
            else {
              selectedWidget.getElement().getStyle().clearBorderWidth();
            }
          }
         
          else {
            selectedWidget.getElement().getStyle().clearBorderWidth();
          }
        }
      }
      });

     
    textBox.addChangeHandler(new ChangeHandler() {
      @Override
      public void onChange(ChangeEvent event) {
       
        if (selectedWidget != null) {
         
            Unit borderUnit = null;
            String selectedUnit = listBox.getValue(listBox.getSelectedIndex());
            if (selectedUnit.equals("CM")) {
              borderUnit = Unit.CM;
            }
           
            else if (selectedUnit.equals("EM")) {
              borderUnit = Unit.EM;
            }

            else if (selectedUnit.equals("EX")) {
              borderUnit = Unit.EX;
            }

            else if (selectedUnit.equals("IN")) {
              borderUnit = Unit.IN;
            }

            else if (selectedUnit.equals("MM")) {
              borderUnit = Unit.MM;
            }

            else if (selectedUnit.equals("PC")) {
              borderUnit = Unit.PC;
            }

            else if (selectedUnit.equals("PCT")) {
              borderUnit = Unit.PCT;
            }

            else if (selectedUnit.equals("PT")) {
              borderUnit = Unit.PT;
            }

            else if (selectedUnit.equals("PX")) {
              borderUnit = Unit.PX;
            }
           
            if (borderUnit != null) {
              int borderWidth = 0;
              if (textBox.getValue() != null && textBox.getValue().trim().length() > 0) {
                borderWidth = Integer.parseInt(textBox.getValue().trim());
                selectedWidget.getElement().getStyle().setBorderWidth(borderWidth, borderUnit);
              }
             
              else {
                selectedWidget.getElement().getStyle().clearBorderWidth();
              }
            }
           
            else {
              selectedWidget.getElement().getStyle().clearBorderWidth();
            }
        }
      }
      });
   
   
    widgets.add(textBox);
    widgets.add(listBox);
   
    return widgets;
  }
 
  private ListBox createUnitWidget() {
    final ListBox listBox = new ListBox();
    listBox.addItem("CM");
    listBox.addItem("EM");
    listBox.addItem("EX");
    listBox.addItem("IN");
    listBox.addItem("MM");
    listBox.addItem("PC");
    listBox.addItem("PCT");
    listBox.addItem("PT");
    listBox.addItem("PX")
    return listBox;
  }
 
  private List<Widget> createWidthWidgets() {
     
    List<Widget> widgets = new ArrayList<Widget>();
   
    final TextBox textBox = new TextBox();
   
    final ListBox listBox = createUnitWidget();
      listBox.addChangeHandler(new ChangeHandler() {
      @Override
      public void onChange(ChangeEvent event) {
        int selectedIndex = listBox.getSelectedIndex();
     
        if (selectedWidget != null) {
          Unit unit = null;
          String selectedStyle = listBox.getItemText(selectedIndex);
          if (selectedStyle.equals("CM")) {
            unit = Unit.CM;
          }
         
          else if (selectedStyle.equals("EM")) {
            unit = Unit.EM;
          }

          else if (selectedStyle.equals("EX")) {
            unit = Unit.EX;
          }

          else if (selectedStyle.equals("IN")) {
            unit = Unit.IN;
          }

          else if (selectedStyle.equals("MM")) {
            unit = Unit.MM;
          }

          else if (selectedStyle.equals("PC")) {
            unit = Unit.PC;
          }

          else if (selectedStyle.equals("PCT")) {
            unit = Unit.PCT;
          }

          else if (selectedStyle.equals("PT")) {
            unit = Unit.PT;
          }

          else if (selectedStyle.equals("PX")) {
            unit = Unit.PX;
          }
         
          if (unit != null) {
            int width = 0;
            if (textBox.getValue() != null && textBox.getValue().trim().length() > 0) {
              width = Integer.parseInt(textBox.getValue().trim());
              selectedWidget.getElement().getStyle().setWidth(width, unit);
            }
           
            else {
              selectedWidget.getElement().getStyle().clearWidth();
            }
          }
        }
      }
      });

     
    textBox.addChangeHandler(new ChangeHandler() {
      @Override
      public void onChange(ChangeEvent event) {
       
        if (selectedWidget != null) {
         
            Unit unit = null;
            String selectedUnit = listBox.getValue(listBox.getSelectedIndex());
            if (selectedUnit.equals("CM")) {
              unit = Unit.CM;
            }
           
            else if (selectedUnit.equals("EM")) {
              unit = Unit.EM;
            }

            else if (selectedUnit.equals("EX")) {
              unit = Unit.EX;
            }

            else if (selectedUnit.equals("IN")) {
              unit = Unit.IN;
            }

            else if (selectedUnit.equals("MM")) {
              unit = Unit.MM;
            }

            else if (selectedUnit.equals("PC")) {
              unit = Unit.PC;
            }

            else if (selectedUnit.equals("PCT")) {
              unit = Unit.PCT;
            }

            else if (selectedUnit.equals("PT")) {
              unit = Unit.PT;
            }

            else if (selectedUnit.equals("PX")) {
              unit = Unit.PX;
            }
           
            if (unit != null) {
              int width = 0;
              if (textBox.getValue() != null && textBox.getValue().trim().length() > 0) {
                width = Integer.parseInt(textBox.getValue().trim());
                selectedWidget.getElement().getStyle().setWidth(width, unit);
              }
             
              else {
                selectedWidget.getElement().getStyle().clearWidth();
              }
            }
        }
      }
      });
   
   
    widgets.add(textBox);
    widgets.add(listBox);
   
    return widgets;
  }
 
  private List<Widget> createHeightWidgets() {
   
    List<Widget> widgets = new ArrayList<Widget>();
   
    final TextBox textBox = new TextBox();
   
    final ListBox listBox = createUnitWidget();
      listBox.addChangeHandler(new ChangeHandler() {
      @Override
      public void onChange(ChangeEvent event) {
        int selectedIndex = listBox.getSelectedIndex();
     
        if (selectedWidget != null) {
          Unit unit = null;
          String selectedStyle = listBox.getItemText(selectedIndex);
          if (selectedStyle.equals("CM")) {
            unit = Unit.CM;
          }
         
          else if (selectedStyle.equals("EM")) {
            unit = Unit.EM;
          }

          else if (selectedStyle.equals("EX")) {
            unit = Unit.EX;
          }

          else if (selectedStyle.equals("IN")) {
            unit = Unit.IN;
          }

          else if (selectedStyle.equals("MM")) {
            unit = Unit.MM;
          }

          else if (selectedStyle.equals("PC")) {
            unit = Unit.PC;
          }

          else if (selectedStyle.equals("PCT")) {
            unit = Unit.PCT;
          }

          else if (selectedStyle.equals("PT")) {
            unit = Unit.PT;
          }

          else if (selectedStyle.equals("PX")) {
            unit = Unit.PX;
          }
         
          if (unit != null) {
            int height = 0;
            if (textBox.getValue() != null && textBox.getValue().trim().length() > 0) {
              height = Integer.parseInt(textBox.getValue().trim());
              selectedWidget.getElement().getStyle().setHeight(height, unit);
            }
           
            else {
              selectedWidget.getElement().getStyle().clearWidth();
            }
          }
         
          else {
            selectedWidget.getElement().getStyle().clearWidth();
          }
        }
      }
      });

     
    textBox.addChangeHandler(new ChangeHandler() {
      @Override
      public void onChange(ChangeEvent event) {
       
        if (selectedWidget != null) {
         
            Unit unit = null;
            String selectedUnit = listBox.getValue(listBox.getSelectedIndex());
            if (selectedUnit.equals("CM")) {
              unit = Unit.CM;
            }
           
            else if (selectedUnit.equals("EM")) {
              unit = Unit.EM;
            }

            else if (selectedUnit.equals("EX")) {
              unit = Unit.EX;
            }

            else if (selectedUnit.equals("IN")) {
              unit = Unit.IN;
            }

            else if (selectedUnit.equals("MM")) {
              unit = Unit.MM;
            }

            else if (selectedUnit.equals("PC")) {
              unit = Unit.PC;
            }

            else if (selectedUnit.equals("PCT")) {
              unit = Unit.PCT;
            }

            else if (selectedUnit.equals("PT")) {
              unit = Unit.PT;
            }

            else if (selectedUnit.equals("PX")) {
              unit = Unit.PX;
            }
           
            if (unit != null) {
              int height = 0;
              if (textBox.getValue() != null && textBox.getValue().trim().length() > 0) {
                height = Integer.parseInt(textBox.getValue().trim());
                selectedWidget.getElement().getStyle().setHeight(height, unit);
              }
             
              else {
                selectedWidget.getElement().getStyle().clearHeight();
              }
            }
           
            else {
              selectedWidget.getElement().getStyle().clearHeight();
            }
        }
      }
      });
   
   
    widgets.add(textBox);
    widgets.add(listBox);
   
    return widgets;
  }
 
  private ListBox createOverflowWidget() {
    ListBox listBox = new ListBox();
    listBox.addItem("");
    listBox.addItem("AUTO");
    listBox.addItem("HIDDEN");
    listBox.addItem("SCROLL");
    listBox.addItem("VISIBLE");
    return listBox;
  }
 
  private ListBox createOverflowDropDown() {
    final ListBox listBox = createOverflowWidget();
   
    listBox.addChangeHandler(new ChangeHandler() {
      @Override
      public void onChange(ChangeEvent event) {
        int selectedIndex = listBox.getSelectedIndex();
     
        if (selectedWidget != null) {
          Overflow overflow = null;
          String selectedStyle = listBox.getItemText(selectedIndex);
          if (selectedStyle.equals("AUTO")) {
            overflow = Overflow.AUTO;
          }
         
          else if (selectedStyle.equals("HIDDEN")) {
            overflow = Overflow.HIDDEN;
          }

          else if (selectedStyle.equals("SCROLL")) {
            overflow = Overflow.SCROLL;
          }

          else if (selectedStyle.equals("VISIBLE")) {
            overflow = Overflow.VISIBLE;
          }
         
          if (overflow != null) {
            selectedWidget.getElement().getStyle().setOverflow(overflow);
          }
         
          else {
            selectedWidget.getElement().getStyle().clearOverflow();
          }
        }
      }
      });
   
    return listBox;
  }

  private ListBox createOverflowXDropDown() {
    final ListBox listBox = createOverflowWidget();
   
    listBox.addChangeHandler(new ChangeHandler() {
      @Override
      public void onChange(ChangeEvent event) {
        int selectedIndex = listBox.getSelectedIndex();
     
        if (selectedWidget != null) {
          Overflow overflow = null;
          String selectedStyle = listBox.getItemText(selectedIndex);
          if (selectedStyle.equals("AUTO")) {
            overflow = Overflow.AUTO;
          }
         
          else if (selectedStyle.equals("HIDDEN")) {
            overflow = Overflow.HIDDEN;
          }

          else if (selectedStyle.equals("SCROLL")) {
            overflow = Overflow.SCROLL;
          }

          else if (selectedStyle.equals("VISIBLE")) {
            overflow = Overflow.VISIBLE;
          }
         
          if (overflow != null) {
            selectedWidget.getElement().getStyle().setOverflowX(overflow);
          }
         
          else {
            selectedWidget.getElement().getStyle().clearOverflowX();
          }
        }
      }
      });
   
    return listBox;
  }
 
  private ListBox createOverflowYDropDown() {
    final ListBox listBox = createOverflowWidget();
   
    listBox.addChangeHandler(new ChangeHandler() {
      @Override
      public void onChange(ChangeEvent event) {
        int selectedIndex = listBox.getSelectedIndex();
     
        if (selectedWidget != null) {
          Overflow overflow = null;
          String selectedStyle = listBox.getItemText(selectedIndex);
          if (selectedStyle.equals("AUTO")) {
            overflow = Overflow.AUTO;
          }
         
          else if (selectedStyle.equals("HIDDEN")) {
            overflow = Overflow.HIDDEN;
          }

          else if (selectedStyle.equals("SCROLL")) {
            overflow = Overflow.SCROLL;
          }

          else if (selectedStyle.equals("VISIBLE")) {
            overflow = Overflow.VISIBLE;
          }
         
          if (overflow != null) {
            selectedWidget.getElement().getStyle().setOverflowY(overflow);
          }
         
          else {
            selectedWidget.getElement().getStyle().clearOverflowY();
          }
        }
      }
      });
   
    return listBox;
  }
 
  private ListBox createFloatWidget() {
    ListBox listBox = new ListBox();
    listBox.addItem("");
    listBox.addItem("LEFT");
    listBox.addItem("NONE");
    listBox.addItem("RIGHT");
    return listBox;
  }
 
  private ListBox createFloatDropDown() {
    final ListBox listBox = createFloatWidget();
   
    listBox.addChangeHandler(new ChangeHandler() {
      @Override
      public void onChange(ChangeEvent event) {
        int selectedIndex = listBox.getSelectedIndex();
     
        if (selectedWidget != null) {
          Float floatStyle = null;
          String selectedStyle = listBox.getItemText(selectedIndex);
          if (selectedStyle.equals("LEFT")) {
            floatStyle = Float.LEFT;
          }
         
          else if (selectedStyle.equals("NONE")) {
            floatStyle = Float.NONE;
          }

          else if (selectedStyle.equals("RIGHT")) {
            floatStyle = Float.RIGHT;
          }
         
          if (floatStyle != null) {
            selectedWidget.getElement().getStyle().setFloat(floatStyle);
          }
         
          else {
            selectedWidget.getElement().getStyle().clearFloat();
          }
        }
      }
      });
   
    return listBox;
  }
 
  private ListBox createDisplayWidget() {
    ListBox listBox = new ListBox();
    listBox.addItem("");
    listBox.addItem("BLOCK");
    listBox.addItem("INLINE");
    listBox.addItem("INLINE_BLOCK");
    listBox.addItem("NONE");
    return listBox;
  }
 
  private ListBox createDisplayDropDown() {
    final ListBox listBox = createDisplayWidget();
   
    listBox.addChangeHandler(new ChangeHandler() {
      @Override
      public void onChange(ChangeEvent event) {
        int selectedIndex = listBox.getSelectedIndex();
     
        if (selectedWidget != null) {
          Display display = null;
          String selectedStyle = listBox.getItemText(selectedIndex);
          if (selectedStyle.equals("BLOCK")) {
            display = Display.BLOCK;
          }
         
          else if (selectedStyle.equals("INLINE")) {
            display = Display.INLINE;
          }

          else if (selectedStyle.equals("INLINE_BLOCK")) {
            display = Display.INLINE_BLOCK;
          }
         
          else if (selectedStyle.equals("NONE")) {
            display = Display.NONE;
          }
         
          if (display != null) {
            selectedWidget.getElement().getStyle().setDisplay(display);
          }
         
          else {
            selectedWidget.getElement().getStyle().clearDisplay();
          }
        }
      }
      });
   
    return listBox;
  }

 
  private void createAdminPopup() {
    final DialogBox popup = new DialogBox(false, false);    // autohide, modal
    //popup.setGlassEnabled(true);
      popup.setStyleName("demo-PopUpPanel");
      popup.setTitle("popup title");
      //popup.setHeight("100px");
      //popup.add(new Label("popup label"));
      popup.setPopupPosition(100, 200);
      //popup.setWidget(new Label("popup label"));
      popup.setVisible(false);
      //popup.setHeight("300px");
      popup.setWidth("400px");
      final Button addPanelButton = new Button("Add Panel");
      final Button removePanelButton = new Button("Remove Panel");
     
      VerticalPanel popupContent = new VerticalPanel();
      popupContent.setSpacing(4);
      popupContent.add(new Label("popup label"));
      popupContent.add(addPanelButton);
      popupContent.add(removePanelButton);
      popupContent.getElement().getStyle().setBorderWidth(5, Unit.PX);
     
      final ListBox panelType = new ListBox();
      panelType.addItem("FlowPanel");
      panelType.addItem("HTMLPanel");
      panelType.addItem("FormPanel");
      panelType.addItem("ScrollPanel");
      panelType.addItem("Grid");
      panelType.addItem("FlexTable");
      panelType.addItem("LayoutPanel");
      panelType.addItem("DockLayoutPanel");
      panelType.addItem("SplitLayoutPanel");
      panelType.addItem("StackLayoutPanel");
      panelType.addItem("TabLayoutPanel");
      panelType.addItem("HorizontalPanel");
      panelType.addItem("VerticalPanel");
      panelType.addItem("SimplePanel");
      // Make enough room for all five items (setting this value to 1 turns it
      // into a drop-down list).
      panelType.setVisibleItemCount(5);
      popupContent.add(panelType);
     
      HorizontalPanel createdContainer = new HorizontalPanel();
      final ListBox backgroundColor = createBackgroundColorDropDown();
      final ListBox borderColor = createBorderColorDropDown();
      final ListBox borderStyle = createBorderStyleDropDown();
      List<Widget> borderWidths = createBorderWidthWidgets();
      List<Widget> widths = createWidthWidgets();
      List<Widget> heights = createHeightWidgets();
      List<Widget> backgroundImages = createBackgroundImageWidgets();
      final ListBox overflow = createOverflowDropDown();
      final ListBox overflowX = createOverflowXDropDown();
      final ListBox overflowY = createOverflowYDropDown();
      final ListBox floatStyle = createFloatDropDown();
      final ListBox display = createDisplayDropDown();
     
      final ListBox createdPanel = new ListBox();
      for (int i = 0; i < RootPanel.get().getWidgetCount(); i++) {
        Widget w = RootPanel.get().getWidget(i);
        createdPanel.addItem(w.toString());
      }
      createdPanel.setVisibleItemCount(5);
     
      createdPanel.addChangeHandler(new ChangeHandler() {
      @Override
      public void onChange(ChangeEvent event) {
        //Window.alert("Something got selected " + backgroundColor.getValue(backgroundColor.getSelectedIndex()));  //#F0F8FF
        //Window.alert("Something got selected " + backgroundColor.getItemText(backgroundColor.getSelectedIndex()));//AliceBlue 
       
        int selectedIndex = createdPanel.getSelectedIndex();
          //Window.alert("Something got selected " + createdPanel.getValue(selectedIndex));
//          Element element = DOM.getElementById(createdPanel.getValue(selectedIndex));
//          element.getStyle().setBorderWidth(10, Unit.PX);
//          element.getStyle().setBorderStyle(BorderStyle.SOLID);
//          element.getStyle().setBorderColor("black");
          EventListener listener = DOM.getEventListener(DOM.getElementById(createdPanel.getValue(selectedIndex)));
          // No listener attached to the element, so no widget exist for this
          // element
          if (listener instanceof Widget) {
              // GWT uses the widget as event listener
              Widget widget = (Widget) listener ;
              widget.getElement().getStyle().setBorderWidth(10, Unit.PX);
              widget.getElement().getStyle().setBorderStyle(BorderStyle.SOLID);
              widget.getElement().getStyle().setBorderColor("black");
             
              selectedWidget = widget;
             
             
              if (widget instanceof FlowPanel) {
                //Label cell4= new Label("FlowPanel D");
            //cell4.getElement().getStyle().setBorderStyle(BorderStyle.SOLID);
            //cell4.getElement().getStyle().setBorderColor("blue");
            //cell4.getElement().getStyle().setBorderWidth(5, Unit.PX);
            //((FlowPanel)widget).add(cell4);
               
                ((FlowPanel)widget).getElement().getStyle().setOutlineStyle(OutlineStyle.DOTTED);
                ((FlowPanel)widget).getElement().getStyle().setOutlineWidth(5, Unit.PX);
                ((FlowPanel)widget).getElement().getStyle().setOutlineColor("gray");
                 //Window.alert("FlowPanel ");
               
                for (int i = 0; i < createdPanel.getItemCount(); i++) {
                  if (i != selectedIndex) {
                    EventListener listener2 = DOM.getEventListener(DOM.getElementById(createdPanel.getValue(i)));
                    if (listener2 instanceof Widget) {
                      Widget widget2 = (Widget) listener2 ;
                      ((FlowPanel)widget2).getElement().getStyle().setOutlineStyle(OutlineStyle.NONE);
                    }
                  }
                }
                }
             
              if (widget instanceof HorizontalPanel) {
                Label cell4= new Label("HorizontalPanel D");
            cell4.getElement().getStyle().setBorderStyle(BorderStyle.SOLID);
            cell4.getElement().getStyle().setBorderColor("blue");
            cell4.getElement().getStyle().setBorderWidth(5, Unit.PX);
            ((HorizontalPanel)widget).add(cell4);
                 Window.alert("HorizontalPanel ");
                }
             
              if (widget instanceof VerticalPanel) {
                Label cell4= new Label("VerticalPanel D");
            cell4.getElement().getStyle().setBorderStyle(BorderStyle.SOLID);
            cell4.getElement().getStyle().setBorderColor("blue");
            cell4.getElement().getStyle().setBorderWidth(5, Unit.PX);
            ((VerticalPanel)widget).add(cell4);
                 Window.alert("VerticalPanel ");
                }
          }
      }
      });
     
      VerticalPanel styleProperties = new VerticalPanel();
      styleProperties.add(new Label("Background color"));
      styleProperties.add(backgroundColor);
      styleProperties.add(new Label("Border color"));
      styleProperties.add(borderColor);
      styleProperties.add(new Label("Border style"));
      styleProperties.add(borderStyle);
      styleProperties.add(new Label("Border Width"));
      styleProperties.add(borderWidths.get(0));
      styleProperties.add(new Label("Border Width Unit"));
      styleProperties.add(borderWidths.get(1));
      styleProperties.add(new Label("Width"));
      styleProperties.add(widths.get(0));
      styleProperties.add(new Label("Width Unit"));
      styleProperties.add(widths.get(1));
      styleProperties.add(new Label("Height"));
      styleProperties.add(heights.get(0));
      styleProperties.add(new Label("Height Unit"));
      styleProperties.add(heights.get(1));
      styleProperties.add(new Label("Background image url"));
      styleProperties.add(backgroundImages.get(0));
      styleProperties.add(new Label("System Background Image"));
      styleProperties.add(backgroundImages.get(1));
      styleProperties.add(new Label("Overflow"));
      styleProperties.add(overflow);
      styleProperties.add(new Label("Overflow X"));
      styleProperties.add(overflowX);
      styleProperties.add(new Label("Overflow Y"));
      styleProperties.add(overflowY);
      styleProperties.add(new Label("Float"));
      styleProperties.add(floatStyle);
      styleProperties.add(new Label("Display"));
      styleProperties.add(display);
     
     
      createdContainer.add(createdPanel);
      createdContainer.add(styleProperties);
      popupContent.add(createdContainer);
     
      popup.setWidget(popupContent);
      popup.setAnimationEnabled(true);
      popup.setText("popup text");
     
      popup.getElement().getStyle().setBorderWidth(5, Unit.PX);
      popup.getElement().getStyle().setBorderStyle(BorderStyle.SOLID);
      popup.getElement().getStyle().setBorderColor("red");
     
      RootPanel.get().add(popup);
     
      final int count = RootPanel.get().getWidgetCount();
     
      addPanelButton.addClickHandler(new ClickHandler() {
      public void onClick(ClickEvent event) {
       
        String selectedPanel = panelType.getValue(panelType.getSelectedIndex());
        if (selectedPanel.equals("VerticalPanel")) {
          VerticalPanel panel = new VerticalPanel();
          panel.setTitle("title : " + selectedPanel);
          Label cell1 = new Label("Panel " + RootPanel.get().getWidgetCount() + " A");
          cell1.getElement().getStyle().setBorderStyle(BorderStyle.SOLID);
          cell1.getElement().getStyle().setBorderColor("blue");
          cell1.getElement().getStyle().setBorderWidth(5, Unit.PX);
          Label cell2 = new Label("Panel " + RootPanel.get().getWidgetCount() + " B");
          cell2.getElement().getStyle().setBorderStyle(BorderStyle.SOLID);
          cell2.getElement().getStyle().setBorderColor("blue");
          cell2.getElement().getStyle().setBorderWidth(5, Unit.PX);
          Label cell3= new Label("Panel " + RootPanel.get().getWidgetCount() + " C");
          cell3.getElement().getStyle().setBorderStyle(BorderStyle.SOLID);
          cell3.getElement().getStyle().setBorderColor("blue");
          cell3.getElement().getStyle().setBorderWidth(5, Unit.PX);
          panel.add(cell1);
          panel.add(cell2);
          panel.add(cell3);
          panel.getElement().setId("" + RootPanel.get().getWidgetCount());
          RootPanel.get().add(panel);
          createdPanel.addItem(panel.getElement().getId());
        }
       
        if (selectedPanel.equals("HorizontalPanel")) {
          HorizontalPanel panel = new HorizontalPanel();
          panel.setTitle("title : " + selectedPanel);
          Label cell1 = new Label("Panel " + RootPanel.get().getWidgetCount() + " A");
          cell1.getElement().getStyle().setBorderStyle(BorderStyle.SOLID);
          cell1.getElement().getStyle().setBorderColor("blue");
          cell1.getElement().getStyle().setBorderWidth(5, Unit.PX);
          Label cell2 = new Label("Panel " + RootPanel.get().getWidgetCount() + " B");
          cell2.getElement().getStyle().setBorderStyle(BorderStyle.SOLID);
          cell2.getElement().getStyle().setBorderColor("blue");
          cell2.getElement().getStyle().setBorderWidth(5, Unit.PX);
          Label cell3= new Label("Panel " + RootPanel.get().getWidgetCount() + " C");
          cell3.getElement().getStyle().setBorderStyle(BorderStyle.SOLID);
          cell3.getElement().getStyle().setBorderColor("blue");
          cell3.getElement().getStyle().setBorderWidth(5, Unit.PX);
          panel.add(cell1);
          panel.add(cell2);
          panel.add(cell3);
         
          //panel.setVisible(true);
          panel.getElement().setId("" + RootPanel.get().getWidgetCount());
          panel.getElement().getStyle().setBorderStyle(BorderStyle.DOTTED);
          panel.getElement().getStyle().setBorderColor("gray");
          panel.getElement().getStyle().setBorderWidth(2, Unit.PX);
          RootPanel.get().add(panel);
          createdPanel.addItem(panel.getElement().getId());
        }
       
        if (selectedPanel.equals("FlowPanel")) {
          FlowPanel panel = new FlowPanel();
          panel.setSize("600", "600");
          panel.setTitle("title : " + selectedPanel);
          Label cell1 = new Label("Panel " + RootPanel.get().getWidgetCount() + " A");
          cell1.getElement().getStyle().setBorderStyle(BorderStyle.SOLID);
          cell1.getElement().getStyle().setBorderColor("blue");
          cell1.getElement().getStyle().setBorderWidth(5, Unit.PX);
          cell1.setSize("50", "20");
          Label cell2 = new Label("Panel " + RootPanel.get().getWidgetCount() + " B");
          cell2.getElement().getStyle().setBorderStyle(BorderStyle.SOLID);
          cell2.getElement().getStyle().setBorderColor("blue");
          cell2.getElement().getStyle().setBorderWidth(5, Unit.PX);
          cell2.setSize("500", "20");
          Label cell3= new Label("Panel " + RootPanel.get().getWidgetCount() + " C");
          cell3.getElement().getStyle().setBorderStyle(BorderStyle.SOLID);
          cell3.getElement().getStyle().setBorderColor("blue");
          cell3.getElement().getStyle().setBorderWidth(5, Unit.PX);
          cell3.setSize("80", "20");
          Label cell4= new Label("Panel " + RootPanel.get().getWidgetCount() + " C");
          cell4.getElement().getStyle().setBorderStyle(BorderStyle.SOLID);
          cell4.getElement().getStyle().setBorderColor("blue");
          cell4.getElement().getStyle().setBorderWidth(5, Unit.PX);
          cell4.setSize("80", "20");
          panel.add(cell1);
          panel.add(cell2);
          panel.add(cell3);
          panel.add(cell4);
         
          //panel.setVisible(true);
          panel.getElement().setId("" + RootPanel.get().getWidgetCount());
          panel.getElement().getStyle().setBorderStyle(BorderStyle.DOTTED);
          panel.getElement().getStyle().setBorderColor("gray");
          panel.getElement().getStyle().setBorderWidth(2, Unit.PX);
          RootPanel.get().add(panel);
          createdPanel.addItem(panel.getElement().getId());
        }

      }
    });
     
      removePanelButton.addClickHandler(new ClickHandler() {
      public void onClick(ClickEvent event) {
        if (count < RootPanel.get().getWidgetCount()) {
          RootPanel.get().remove(RootPanel.get().getWidgetCount() - 1);
          createdPanel.removeItem(createdPanel.getItemCount() - 1);
        }
      }
    });
     
    popup.setTitle("popup:");
    popup.setVisible(true);
    popup.show();
    addPanelButton.setFocus(true);
  }
 
 
  /**
   * This is the entry point method.
   */
  public void onModuleLoad() {
//    UserService userService = UserServiceFactory.getUserService();
//      
//      
//       if (!userService.isUserLoggedIn()) {
//        Please <a href="<%=userService.createLoginURL("/newlogin.jsp")>">log in</a>>
//     } else
//       userService.getCurrentUser().getNickname();
//          (<a href="<%=userService.createLogoutURL("/")>">log out</a>>)
//       }
   
   
//    RootPanel.get().getElement().getStyle().setOutlineStyle(OutlineStyle.DOTTED);
//    RootPanel.get().getElement().getStyle().setOutlineWidth(5, Unit.PX);
//    RootPanel.get().getElement().getStyle().setOutlineColor("gray");
   
     
    authService.authenticate(
        new AsyncCallback<AppUser>() {
          public void onFailure(Throwable caught) {
            String error = caught.getMessage();
          }

          public void onSuccess(AppUser result) {
            user = result;
            //popup.setTitle("popup:" + user.getEmail());
            //popup.setVisible(true);
            //popup.show();
            //popupButton.setFocus(true);
          }
        });
   
//    DockLayoutPanel appPanel = new DockLayoutPanel(Unit.EM);
//    appPanel.add(new Label("this is the DockLayoutPanel"));
//    RootLayoutPanel.get().add(appPanel);
   
   
   
   
    final Button sendButton = new Button("Send");
    final TextBox nameField = new TextBox();
    nameField.setText("GWT User");
    final Label errorLabel = new Label();
    final Label greetingsLabel = new Label();

    // We can add style names to widgets
    sendButton.addStyleName("sendButton");

    // Add the nameField and sendButton to the RootPanel
    // Use RootPanel.get() to get the entire body element
    RootPanel.get("nameFieldContainer").add(nameField);
    RootPanel.get("sendButtonContainer").add(sendButton);
    RootPanel.get("errorLabelContainer").add(errorLabel);
    RootPanel.get("greetings").add(greetingsLabel);
   
   
   
   

    // Focus the cursor on the name field when the app loads
    nameField.setFocus(true);
    nameField.selectAll();

    // Create the popup dialog box
    final DialogBox dialogBox = new DialogBox();
    dialogBox.setText("Remote Procedure Call");
    dialogBox.setAnimationEnabled(true);
    final Button closeButton = new Button("Close");
    // We can set the id of a widget by accessing its Element
    closeButton.getElement().setId("closeButton");
    final Label textToServerLabel = new Label();
    final HTML serverResponseLabel = new HTML();
    VerticalPanel dialogVPanel = new VerticalPanel();
    dialogVPanel.addStyleName("dialogVPanel");
    dialogVPanel.add(new HTML("<b>Sending name to the server:</b>"));
    dialogVPanel.add(textToServerLabel);
    dialogVPanel.add(new HTML("<br><b>Server replies:</b>"));
    dialogVPanel.add(serverResponseLabel);
    dialogVPanel.setHorizontalAlignment(VerticalPanel.ALIGN_RIGHT);
    dialogVPanel.add(closeButton);
    dialogBox.setWidget(dialogVPanel);
   
   
    greetingService.listGreetings(
        new AsyncCallback<List<String>>() {
          public void onFailure(Throwable caught) {
            // Show the RPC error message to the user
            dialogBox
                .setText("Remote Procedure Call - Failure");
            serverResponseLabel
                .addStyleName("serverResponseLabelError");
            serverResponseLabel.setHTML(SERVER_ERROR);
            dialogBox.center();
            closeButton.setFocus(true);
          }

          public void onSuccess(List<String> result) {
            if (result != null && result.size() > 0) {
              for (String s : result) {
                greetingsLabel.setText(greetingsLabel.getText() + "\n" + s);
              }
            }
          }
        });
   

    // Add a handler to close the DialogBox
    closeButton.addClickHandler(new ClickHandler() {
      public void onClick(ClickEvent event) {
        dialogBox.hide();
        sendButton.setEnabled(true);
        sendButton.setFocus(true);
      }
    });

    // Create a handler for the sendButton and nameField
    class MyHandler implements ClickHandler, KeyUpHandler {
      /**
       * Fired when the user clicks on the sendButton.
       */
      public void onClick(ClickEvent event) {
        sendNameToServer();
      }

      /**
       * Fired when the user types in the nameField.
       */
      public void onKeyUp(KeyUpEvent event) {
        if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER) {
          sendNameToServer();
        }
      }

      /**
       * Send the name from the nameField to the server and wait for a response.
       */
      private void sendNameToServer() {
        // First, we validate the input.
        errorLabel.setText("");
        String textToServer = nameField.getText();
        if (!FieldVerifier.isValidName(textToServer)) {
          errorLabel.setText("Please enter at least four characters");
          return;
        }

        // Then, we send the input to the server.
        sendButton.setEnabled(false);
        textToServerLabel.setText(textToServer);
        serverResponseLabel.setText("");
        greetingService.greetServer(textToServer,
            new AsyncCallback<String>() {
              public void onFailure(Throwable caught) {
                // Show the RPC error message to the user
                dialogBox
                    .setText("Remote Procedure Call - Failure");
                serverResponseLabel
                    .addStyleName("serverResponseLabelError");
                serverResponseLabel.setHTML(SERVER_ERROR);
                dialogBox.center();
                closeButton.setFocus(true);
              }

              public void onSuccess(String result) {
                dialogBox.setText("Remote Procedure Call");
                serverResponseLabel
                    .removeStyleName("serverResponseLabelError");
                serverResponseLabel.setHTML(result);
                dialogBox.center();
                closeButton.setFocus(true);
              }
            });
      }
    }

    // Add a handler to send the name to the server
    MyHandler handler = new MyHandler();
    sendButton.addClickHandler(handler);
    nameField.addKeyUpHandler(handler);
   
   
    final Button createEntityButton = new Button("Create Entity");
    final Button getEntitiesButton = new Button("Get Entities");
    final Button getEntityButton = new Button("Get Entity");
    final TextBox dbNameField = new TextBox();
    final TextBox tableNameField = new TextBox();
    final TextBox idField = new TextBox();
    final VerticalPanel entitiesPanel = new VerticalPanel();
    RootPanel.get("dbName").add(dbNameField);
    RootPanel.get("tableName").add(tableNameField);
    RootPanel.get("tableName").add(idField);
    RootPanel.get("createEntity").add(createEntityButton);
    RootPanel.get("createEntity").add(getEntitiesButton);
    RootPanel.get("createEntity").add(getEntityButton);
    RootPanel.get("entities").add(entitiesPanel);
   
    getEntitiesButton.addClickHandler(new ClickHandler() {
      public void onClick(ClickEvent event) {
        entityService.list(
            dbNameField.getValue(),
            tableNameField.getValue(),
            new AsyncCallback<HashMap<String, HashMap<String, Object>>>() {
              public void onFailure(Throwable caught) {
                // Show the RPC error message to the user
                dialogBox
                    .setText("Remote Procedure Call - Failure");
                serverResponseLabel
                    .addStyleName("serverResponseLabelError");
                serverResponseLabel.setHTML(SERVER_ERROR);
                dialogBox.center();
                closeButton.setFocus(true);
              }
   
              public void onSuccess(HashMap<String, HashMap<String, Object>> result) {
                entitiesPanel.clear();
                if (result != null && result.size() > 0) {
                  for (String s : result.keySet()) {
                    HorizontalPanel hp = new HorizontalPanel();
                    String properties = "";
                    for (String property : result.get(s).keySet()) {
                      properties = properties + "\n" + property + "=" + result.get(s).get(property);
                    }
                    hp.add(new Label(properties));
                    entitiesPanel.add(hp);
                  }
                }
              }
            });
      }
    });
   
    getEntityButton.addClickHandler(new ClickHandler() {
      public void onClick(ClickEvent event) {
        entityService.read(
            dbNameField.getValue(),
            tableNameField.getValue(),
            idField.getValue(),
            new AsyncCallback<HashMap<String, HashMap<String, Object>>>() {
              public void onFailure(Throwable caught) {
                // Show the RPC error message to the user
                dialogBox
                    .setText("Remote Procedure Call - Failure");
                serverResponseLabel
                    .addStyleName("serverResponseLabelError");
                serverResponseLabel.setHTML(SERVER_ERROR);
                dialogBox.center();
                closeButton.setFocus(true);
              }
   
              public void onSuccess(HashMap<String, HashMap<String, Object>> result) {
                entitiesPanel.clear();
                if (result != null && result.size() > 0) {
                  for (String s : result.keySet()) {
                    HorizontalPanel hp = new HorizontalPanel();
                    String properties = "";
                    for (String property : result.get(s).keySet()) {
                      properties = properties + "\n" + property + "=" + result.get(s).get(property);
                    }
                    hp.add(new Label(properties));
                    entitiesPanel.add(hp);
                  }
                }
              }
            });
      }
    });
   
    createEntityButton.addClickHandler(new ClickHandler() {
      public void onClick(ClickEvent event) {
        try {
          /*entityService.create(
            dbNameField.getValue(),
            tableNameField.getValue(),
            new HashMap<String, Object>(),
            new AsyncCallback<String>() {
              public void onFailure(Throwable caught) {
                // Show the RPC error message to the user
                dialogBox
                    .setText("Remote Procedure Call - Failure");
                serverResponseLabel
                    .addStyleName("serverResponseLabelError");
                serverResponseLabel.setHTML(SERVER_ERROR);
                dialogBox.center();
                closeButton.setFocus(true);
              }
   
              public void onSuccess(String result) {
                if (result != null && result.length() > 0) {
                  dialogBox.setText("Remote Procedure Call");
                  serverResponseLabel
                      .removeStyleName("serverResponseLabelError");
                  serverResponseLabel.setHTML(result);
                  dialogBox.center();
                  closeButton.setFocus(true);
                }
              }
            });*/
         
          /*pageService.create(
              dbNameField.getValue(),
              tableNameField.getValue(),
              new HashMap<String, Object>(),
              new AsyncCallback<String>() {
                public void onFailure(Throwable caught) {
                  // Show the RPC error message to the user
                  dialogBox
                      .setText("Remote Procedure Call - Failure");
                  serverResponseLabel
                      .addStyleName("serverResponseLabelError");
                  serverResponseLabel.setHTML(SERVER_ERROR);
                  dialogBox.center();
                  closeButton.setFocus(true);
                }
     
                public void onSuccess(String result) {
                  if (result != null && result.length() > 0) {
                    dialogBox.setText("Remote Procedure Call");
                    serverResponseLabel
                        .removeStyleName("serverResponseLabelError");
                    serverResponseLabel.setHTML(result);
                    dialogBox.center();
                    closeButton.setFocus(true);
                  }
                }
              });*/
         
        } catch ( Exception e ) {
          e.printStackTrace();
        }
      }
    });
   
    //MyHandler handler2 = new MyHandler();
    //getEntityButton.addClickHandler(handler2);
    //createEntityButton.addClickHandler(handler2);
   
    createAdminPopup();
  }
}
TOP

Related Classes of org.dynamic.web.page.client.MyHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.