public VeggieMenuBar() {
    // make the menu bar update to change events from the bus
    VeggieDinner.getInstance().addCacheUpdatedEventHandler(this);
    config = VeggieDinner.getConfig();
    service = VeggieDinner.getService();
    mainMenu = new MenuBar();
    mainMenu.setAutoOpen(true);
    upcomingEvents = new MenuBar(true);
    upcomingEventsItem = new MenuItem("Upcoming Events", upcomingEvents);
    mainMenu.addItem(upcomingEventsItem);
    upcomingEventsItem.setVisible(false);
    allEvents = new MenuBar(true);
    allEventsItem = new MenuItem("All Events", allEvents);
    mainMenu.addItem(allEventsItem);
    allEventsItem.setVisible(false);
    myStuff = new MenuBar(true);
    myStuffItem = new MenuItem("My Stuff", myStuff);
    mainMenu.addItem(myStuffItem);
    myStuffItem.setVisible(false);
    help = new MenuBar(true);

    MenuItemSeparator sep = new MenuItemSeparator();
    mainMenu.addSeparator(sep);
    // sep.setWidth("30%");

    mainMenu.addItem("Help", help);
    MenuItem deityContact = new MenuItem("Contact a deity", true, (Command) null);
    deityContact.setHTML("<a href=\"mailto:[email protected]\">Contact a deity</a>");
    help.addItem(deityContact);
    MenuItem listContact = new MenuItem("Contact the panlist", true, (Command) null);
    listContact.setHTML("<a href=\"[email protected]\">Contact the panlist</a>");
    help.addItem(listContact);
    help.addItem(
        "FAQ and Etiquette",
        new Command() {
          @Override
          public void execute() {
            VeggieDinner.showFaqEtiquette();
          }
        });
    login =
        new MenuItem(
            "login",
            new Command() {
              @Override
              public void execute() {
                VeggieDinner.showLoginForm();
              }
            });
    mainMenu.addItem(login);
    logout =
        new MenuItem(
            "logout",
            new Command() {

              @Override
              public void execute() {
                VeggieDinner.logout();
              }
            });
    mainMenu.addItem(logout);

    signup =
        new MenuItem(
            "sign-up",
            new Command() {
              @Override
              public void execute() {
                VeggieDinner.showUserForm(null);
              }
            });
    mainMenu.addItem(signup);

    searchEvents =
        new MenuItem(
            "Search Events",
            new Command() {
              @Override
              public void execute() {
                // TODO Auto-generated method stub

              }
            });
    searchEventsByDateRange =
        new MenuItem(
            "Select Date Range",
            new Command() {
              @Override
              public void execute() {
                // TODO Auto-generated method stub

              }
            });
    initWidget(mainMenu);
  }