@Override public void execute() { clearLocalCache(); session = VeggieDinner.getSession(); if (session == null || session.getUser() == null) return; me = VeggieDinner.getUser(session.getUser()); if (me == null) { VeggieDinner.requestNewUser(session.getUser(), populateLocalCache); return; } boolean hasAll = true; myGroupDTOs.addAll(VeggieDinner.getGroups(me.getGroups()).values()); myEventDTOs.addAll(VeggieDinner.getEvents(me.getSchedule()).values()); myEventDTOs.addAll(VeggieDinner.getEvents(getEventsFromGroups(myGroupDTOs)).values()); myCohosts.addAll(VeggieDinner.getUsers(getHostsFromGroups(myGroupDTOs)).values()); if (!myGroupDTOs.containsAll(me.getGroups())) { VeggieDinner.requestNewGroup(me.getGroups(), populateLocalCache); return; } if (!myEventDTOs.containsAll(me.getSchedule()) || !myEventDTOs.containsAll(getEventsFromGroups(myGroupDTOs))) { HashSet<Key<EventDTO>> events = getEventsFromGroups(myGroupDTOs); events.addAll(me.getSchedule()); VeggieDinner.requestNewEvent(events, populateLocalCache); return; } if (!myCohosts.containsAll(getHostsFromGroups(myGroupDTOs))) { VeggieDinner.requestNewUser(getHostsFromGroups(myGroupDTOs), populateLocalCache); return; } DeferredCommand.addCommand(updateMyStuff); }
@Override public void execute() { HashMap<Key<GroupDTO>, GroupDTO> invites = VeggieDinner.getGroups(me.getGroups()); myInvites = new MenuBar(true); myStuff.addItem("My Invites", myInvites); for (GroupDTO g : invites.values()) { final GroupDTO finalGroup = g; String hostsString = "Me"; for (UserDTO u : VeggieDinner.getUsers(g.getHosts()).values()) if (!u.getKey().equals(me.getKey())) hostsString += ", " + u.getUserName(); myInvites.addItem( hostsString, new Command() { @Override public void execute() { VeggieDinner.showGroup(finalGroup.getKey()); } }); } }
@Override public void execute() { if (me.getSchedule().size() == 0) return; MenuBar mySchedule = new MenuBar(true); myStuff.addItem("My Schedule", mySchedule); for (Key<EventDTO> e : me.getSchedule()) { final EventDTO eDTO = VeggieDinner.getEvent(e); mySchedule.addItem( dateFormat.format(eDTO.getScheduled()) + eDTO.getTheme(), new Command() { @Override public void execute() { VeggieDinner.showEvent(eDTO.getKey()); } }); } }
@Override public void execute() { final GroupDTO g = VeggieDinner.getGroup(me.getSelectedGroup()); myStuff.addItem( "My Group", new Command() { @Override public void execute() { VeggieDinner.showGroup(g.getKey()); } }); Collection<Key<EventDTO>> events = g.getEvents(); if (events.size() == 1) { final Key<EventDTO> e = g.getEvent(0); myStuff.addItem( "My Event", new Command() { @Override public void execute() { VeggieDinner.showEvent(e); } }); } else if (events.size() > 1) { MenuBar myEvents = new MenuBar(true); myStuff.addItem("My Events", myEvents); for (int i = 0; i < events.size(); i++) { final Key<EventDTO> e = g.getEvent(i); // TODO add the schedule to the group and populate the date // here as well myEvents.addItem( "Event #" + e.getId(), new Command() { @Override public void execute() { VeggieDinner.showEvent(e); } }); } } }
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); }