new Observer<InsertedStartTabResponseEvent>()
{
public void update(final InsertedStartTabResponseEvent event)
{
Session.getInstance().getEventBus()
.notifyObservers(new HideNotificationEvent());
newTab.getTextBox().setVisible(false);
newTab.getLabel().setVisible(true);
StartPageTab tab = new StartPageTab(event.getResponse());
tabs.insertTab(tab, event.getResponse().getTabIndex());
// If more than 8 tabs (the new tab counts as 1) disable the new tab.
if (tabs.getSize() >= Person.TAB_LIMIT + 1)
{
tabs.removeTab(newTab.getIdentifier());
}
// If 2 tabs are present (the new tab counts as 1) re-enable the remove.
if (tabs.getSize() == 3)
{
((StartPageTab) tabs.getTab(0)).enableRemove();
}
// The start page tab is ready.
Session.getInstance().getEventBus().notifyObservers(
new StartPageTabReadyEvent(tab));
Session.getInstance().getEventBus().notifyObservers(
new UpdateHistoryEvent(new CreateUrlRequest("tab", tab.getIdentifier(),
true)));
}
});
Session.getInstance().getEventBus().addObserver(DeletedStartPageTabResponseEvent.class,
new Observer<DeletedStartPageTabResponseEvent>()
{
public void update(final DeletedStartPageTabResponseEvent event)
{
tabs.removeTab(String.valueOf(event.getResponse().getId()));
tabs.addTab(newTab);
Session.getInstance().getEventBus().notifyObservers(
new ShowNotificationEvent(new Notification(new UndoDeleteNotification(
event.getResponse().getTabName(), new ClickHandler()
{
public void onClick(final ClickEvent clickEvent)
{
StartTabsModel.getInstance().undoDelete(
event.getResponse().getId());
Session.getInstance().getEventBus().notifyObservers(
new HideNotificationEvent());
}
}), "")));
// Highlight the first tab
Session.getInstance().getEventBus().notifyObservers(