public SystemMenu(AppCache appCache) { MenuItem versionItem = new MenuItem(); versionItem.setText(I18N.CONSTANTS.appVersion() + " " + appCache.getCurrentVersion()); versionItem.setHideOnClick(false); appCacheStatusItem = new MenuItem(); appCacheStatusItem.addSelectionHandler(this::loadUpdatedAppCache); MenuItem logoutItem = new MenuItem(); logoutItem.setText(I18N.CONSTANTS.logout()); logoutItem.addSelectionHandler(this::logout); Menu menu = new Menu(); menu.add(versionItem); menu.add(appCacheStatusItem); menu.add(new SeparatorMenuItem()); menu.add(logoutItem); icon = new InlineHTML(ChromeBundle.BUNDLE.settingsIcon().getText()); icon.addStyleName(ChromeBundle.BUNDLE.style().appBarButton()); icon.addClickHandler(event -> menu.show(icon.getElement(), new Style.AnchorAlignment(Style.Anchor.TOP, Style.Anchor.BOTTOM))); icon.addClickHandler(event -> appCache.checkForUpdates()); appCache.getStatus().subscribe(this::updateAppCacheView); }
public OfflineMenu(HttpBus bus, OfflineStore offlineStore) { this.offlineStore = offlineStore; pendingChangesItem = new MenuItem(); pendingChangesItem.setHideOnClick(false); syncNowItem = new MenuItem(I18N.CONSTANTS.syncNow()); syncNowItem.addSelectionHandler(event -> offlineStore.syncChanges()); clearMenuItem = new MenuItem(I18N.CONSTANTS.clearOfflineMode()); clearMenuItem.addSelectionHandler(this::confirmOfflineDelete); Menu menu = new Menu(); menu.add(pendingChangesItem); menu.add(new SeparatorMenuItem()); menu.add(syncNowItem); menu.add(new SeparatorMenuItem()); menu.add(clearMenuItem); icon = new InlineHTML(ChromeBundle.BUNDLE.offlineIcon().getText()); icon.addStyleName(ChromeBundle.BUNDLE.style().appBarButton()); icon.setVisible(false); icon.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { menu.show(icon.getElement(), new Style.AnchorAlignment(Style.Anchor.TOP, Style.Anchor.BOTTOM)); } }); offlineStore.getOfflineForms().subscribe(this::onOfflineFormSetChanged); offlineStore.getStatus().subscribe(this::onStatusChanged); }