List of usage examples for com.google.gwt.aria.client Roles getMenuitemRole
public static MenuitemRole getMenuitemRole()
From source file:com.google.gerrit.client.Gerrit.java
License:Apache License
private static Anchor anchor(final String text, final String to) { final Anchor a = new Anchor(text, to); a.setStyleName(RESOURCES.css().menuItem()); Roles.getMenuitemRole().set(a.getElement()); return a;//from w w w . j a va 2s . c o m }
From source file:com.google.gerrit.client.ui.CommandMenuItem.java
License:Apache License
public CommandMenuItem(final String text, final Command cmd) { super(text);/*from w ww. ja v a2 s. com*/ setStyleName(Gerrit.RESOURCES.css().menuItem()); Roles.getMenuitemRole().set(getElement()); addClickHandler(this); command = cmd; }
From source file:com.google.gerrit.client.ui.LinkMenuItem.java
License:Apache License
public LinkMenuItem(final String text, final String targetHistoryToken) { super(text, targetHistoryToken); setStyleName(Gerrit.RESOURCES.css().menuItem()); Roles.getMenuitemRole().set(getElement()); Gerrit.EVENT_BUS.addHandler(ScreenLoadEvent.TYPE, this); }
From source file:org.unitime.timetable.gwt.client.rooms.RoomFeaturesPage.java
License:Apache License
public RoomFeaturesPage() { if (Location.getParameter("mode") != null) iMode = RoomsPageMode.valueOf(Location.getParameter("mode").toUpperCase()); iHistoryToken = new HistoryToken(iMode); iPanel = new SimplePanel(); iFeaturesPanel = new SimpleForm(); iFeaturesPanel.setWidth("100%"); ClickHandler clickSearch = new ClickHandler() { @Override/*w w w . j a v a 2s .co m*/ public void onClick(ClickEvent event) { changeUrl(); search(null); } }; ClickHandler clickMore = new ClickHandler() { @Override public void onClick(ClickEvent event) { final PopupPanel popup = new PopupPanel(true); MenuBar menu = new UniTimeTableHeader.MenuBarWithAccessKeys(); if (iProperties != null && iProperties.isCanSaveFilterDefaults()) { MenuItem item = new MenuItem(MESSAGES.buttonClear(), true, new Command() { @Override public void execute() { popup.hide(); iFilter.setValue(iHistoryToken.getDefaultParameter("q", ""), true); hideResults(); changeUrl(); } }); Roles.getMenuitemRole().setAriaLabelProperty(item.getElement(), UniTimeHeaderPanel.stripAccessKey(MESSAGES.buttonClear())); menu.addItem(item); menu.addSeparator(); } MenuBar sortItems = new MenuBar(true); for (final RoomFeaturesColumn column : RoomFeaturesColumn.values()) { if (RoomFeaturesComparator.isApplicable(column)) { if ((iGlobalFeaturesTable.getRowCount() <= 1 || iGlobalFeaturesTable.getNbrCells(column) == 0) && (iDepartmentalFeaturesTable.getRowCount() <= 1 || iDepartmentalFeaturesTable.getNbrCells(column) == 0)) continue; String name = iGlobalFeaturesTable.getColumnName(column, 0).replace("<br>", " "); MenuItem item = new MenuItem(name, true, new Command() { @Override public void execute() { popup.hide(); int sortBy = RoomCookie.getInstance().getRoomFeaturesSortBy(); if (sortBy == (1 + column.ordinal()) || sortBy == (-1 - column.ordinal())) { sortBy = -sortBy; } else { sortBy = 1 + column.ordinal(); } RoomCookie.getInstance().setSortRoomFeaturesBy(sortBy); iGlobalFeaturesTable.setSortBy(sortBy); iDepartmentalFeaturesTable.setSortBy(sortBy); } }); Roles.getMenuitemRole().setAriaLabelProperty(item.getElement(), UniTimeHeaderPanel.stripAccessKey(MESSAGES.opSortBy(name))); sortItems.addItem(item); } } MenuItem sortMenu = new MenuItem(MESSAGES.opSort(), sortItems); sortMenu.getElement().getStyle().setCursor(Cursor.POINTER); menu.addItem(sortMenu); MenuBar deptItems = new MenuBar(true); for (final DeptMode d : DeptMode.values()) { String name = (RoomCookie.getInstance().getDeptMode() == d.ordinal() ? MESSAGES.opUncheck(d.getName()) : MESSAGES.opCheck(d.getName())); MenuItem item = new MenuItem(name, true, new Command() { @Override public void execute() { popup.hide(); RoomCookie.getInstance().setDeptMode(d.ordinal()); iGlobalFeaturesTable.refreshTable(); iDepartmentalFeaturesTable.refreshTable(); } }); Roles.getMenuitemRole().setAriaLabelProperty(item.getElement(), d.getName()); deptItems.addItem(item); } MenuItem deptMenu = new MenuItem(MESSAGES.opDepartmentFormat(), deptItems); deptMenu.getElement().getStyle().setCursor(Cursor.POINTER); menu.addItem(deptMenu); if (iProperties.isCanExportRoomFeatures()) { menu.addSeparator(); MenuItem exportPdf = new MenuItem(MESSAGES.opExportPDF(), true, new Command() { @Override public void execute() { popup.hide(); export("roomfeatures.pdf"); } }); Roles.getMenuitemRole().setAriaLabelProperty(exportPdf.getElement(), MESSAGES.opExportPDF()); menu.addItem(exportPdf); MenuItem exportCsv = new MenuItem(MESSAGES.opExportCSV(), true, new Command() { @Override public void execute() { popup.hide(); export("roomfeatures.csv"); } }); Roles.getMenuitemRole().setAriaLabelProperty(exportCsv.getElement(), MESSAGES.opExportCSV()); menu.addItem(exportCsv); } popup.add(menu); popup.showRelativeTo((UIObject) event.getSource()); menu.focus(); } }; ClickHandler clickNew = new ClickHandler() { @Override public void onClick(ClickEvent event) { edit(null); } }; iRoomFeatureEdit = new RoomFeatureEdit(iMode) { @Override protected void onShow() { RoomHint.hideHint(); iRootPanel.setWidget(iRoomFeatureEdit); changeUrl(); } @Override protected void onHide(boolean refresh, FeatureInterface feature) { iRootPanel.setWidget(iFeaturesPanel); UniTimePageLabel.getInstance().setPageName(MESSAGES.pageRoomFeatures()); changeUrl(); if (refresh && (iFeaturesPanel.getRowFormatter().isVisible(iGlobalFeaturesRow) || iFeaturesPanel.getRowFormatter().isVisible(iDepartmentalFeaturesRow))) search(feature == null ? null : feature.getId()); } }; if (iMode.hasSessionSelection()) { iHeaderPanel = new UniTimeHeaderPanel(MESSAGES.sectFilter()); iFeaturesPanel.addHeaderRow(iHeaderPanel); iSession = new AcademicSessionSelectionBox(iHistoryToken.getParameter("term"), "RoomFeatures") { @Override protected void onInitializationSuccess(List<AcademicSession> sessions) { UniTimePageHeader.getInstance().getRight().setVisible(false); UniTimePageHeader.getInstance().getRight().setPreventDefault(true); setup(getAcademicSessionId(), CONSTANTS.searchWhenPageIsLoaded() && (iHistoryToken.hasParameter("id") || iHistoryToken.hasParameter("q"))); } @Override protected void onInitializationFailure(Throwable caught) { UniTimeNotifications.error(MESSAGES.failedLoadSessions(caught.getMessage()), caught); } }; iSession.addAcademicSessionChangeHandler(new AcademicSessionChangeHandler() { @Override public void onAcademicSessionChange(AcademicSessionChangeEvent event) { setup(event.getNewAcademicSessionId(), iDepartmentalFeaturesTable.getRowCount() > 1 || iGlobalFeaturesTable.getRowCount() > 1); } }); ; iFeaturesPanel.addRow(MESSAGES.propAcademicSession(), (Widget) iSession); iFilter = new RoomFilterBox(iSession); iFeaturesPanel.addRow(MESSAGES.propRoomFilter(), iFilter); iHeaderPanel.addButton("search", MESSAGES.buttonSearch(), clickSearch); iHeaderPanel.addButton("more", MESSAGES.buttonMoreOperations(), clickMore); iHeaderPanel.addButton("new", MESSAGES.buttonAddNewRoom(), clickNew); iHeaderPanel.setEnabled("more", false); iHeaderPanel.setEnabled("new", false); } else { iFilterPanel = new HorizontalPanel(); iFilterPanel.setSpacing(3); Label filterLabel = new Label(MESSAGES.propFilter()); iFilterPanel.add(filterLabel); iFilterPanel.setCellVerticalAlignment(filterLabel, HasVerticalAlignment.ALIGN_MIDDLE); iSession = new Session(); iFilter = new RoomFilterBox(iSession); iFilterPanel.add(iFilter); iSearch = new AriaButton(MESSAGES.buttonSearch()); iSearch.addStyleName("unitime-NoPrint"); iSearch.addClickHandler(clickSearch); iFilterPanel.add(iSearch); iMore = new AriaButton(MESSAGES.buttonMoreOperations()); iMore.setEnabled(false); iMore.addStyleName("unitime-NoPrint"); iMore.addClickHandler(clickMore); iFilterPanel.add(iMore); iNew = new AriaButton(MESSAGES.buttonAddNewRoomFeature()); iNew.setEnabled(false); iNew.addStyleName("unitime-NoPrint"); iNew.addClickHandler(clickNew); iFilterPanel.add(iNew); int filterRow = iFeaturesPanel.addRow(iFilterPanel); iFeaturesPanel.getCellFormatter().setHorizontalAlignment(filterRow, 0, HasHorizontalAlignment.ALIGN_CENTER); setup(null, CONSTANTS.searchWhenPageIsLoaded() && (iHistoryToken.hasParameter("id") || iHistoryToken.hasParameter("q"))); } iGlobalFeaturesHeader = new UniTimeHeaderPanel(MESSAGES.headerGlobalRoomFeatures()); iGlobalFeaturesRow = iFeaturesPanel.addHeaderRow(iGlobalFeaturesHeader); iGlobalFeaturesTable = new RoomFeaturesTable(true) { protected void doSort(RoomFeaturesColumn column) { super.doSort(column); iDepartmentalFeaturesTable.setSortBy(RoomCookie.getInstance().getRoomFeaturesSortBy()); } }; iFeaturesPanel.addRow(iGlobalFeaturesTable); iFeaturesPanel.getRowFormatter().setVisible(iGlobalFeaturesRow, false); iFeaturesPanel.getRowFormatter().setVisible(iGlobalFeaturesRow + 1, false); iDepartmentalFeaturesHeader = new UniTimeHeaderPanel(MESSAGES.headerDepartmentalRoomFeatures()); iDepartmentalFeaturesRow = iFeaturesPanel.addHeaderRow(iDepartmentalFeaturesHeader); iDepartmentalFeaturesTable = new RoomFeaturesTable(false) { protected void doSort(RoomFeaturesColumn column) { super.doSort(column); iGlobalFeaturesTable.setSortBy(RoomCookie.getInstance().getRoomFeaturesSortBy()); } }; iFeaturesPanel.addRow(iDepartmentalFeaturesTable); iFeaturesPanel.getRowFormatter().setVisible(iDepartmentalFeaturesRow, false); iFeaturesPanel.getRowFormatter().setVisible(iDepartmentalFeaturesRow + 1, false); iRootPanel = new SimplePanel(iFeaturesPanel); iPanel.setWidget(iRootPanel); iGlobalFeaturesTable.addMouseClickListener(new MouseClickListener<FeatureInterface>() { @Override public void onMouseClick(final TableEvent<FeatureInterface> event) { if (event.getData() != null && (event.getData().canEdit() || event.getData().canDelete())) edit(event.getData()); } }); iDepartmentalFeaturesTable.addMouseClickListener(new MouseClickListener<FeatureInterface>() { @Override public void onMouseClick(final TableEvent<FeatureInterface> event) { if (event.getData() != null && (event.getData().canEdit() || event.getData().canDelete())) edit(event.getData()); } }); initWidget(iPanel); History.addValueChangeHandler(new ValueChangeHandler<String>() { @Override public void onValueChange(ValueChangeEvent<String> event) { if (!iInitialized) return; iHistoryToken.reset(event.getValue()); updateFilter(iFeaturesPanel.getRowFormatter().isVisible(iGlobalFeaturesRow) || iFeaturesPanel.getRowFormatter().isVisible(iDepartmentalFeaturesRow)); } }); }
From source file:org.unitime.timetable.gwt.client.rooms.RoomGroupsPage.java
License:Apache License
public RoomGroupsPage() { if (Location.getParameter("mode") != null) iMode = RoomsPageMode.valueOf(Location.getParameter("mode").toUpperCase()); iHistoryToken = new HistoryToken(iMode); iPanel = new SimplePanel(); iGroupsPanel = new SimpleForm(); iGroupsPanel.setWidth("100%"); ClickHandler clickSearch = new ClickHandler() { @Override/*from ww w. j ava2 s. com*/ public void onClick(ClickEvent event) { changeUrl(); search(null); } }; ClickHandler clickMore = new ClickHandler() { @Override public void onClick(ClickEvent event) { final PopupPanel popup = new PopupPanel(true); MenuBar menu = new UniTimeTableHeader.MenuBarWithAccessKeys(); if (iProperties != null && iProperties.isCanSaveFilterDefaults()) { MenuItem item = new MenuItem(MESSAGES.buttonClear(), true, new Command() { @Override public void execute() { popup.hide(); iFilter.setValue(iHistoryToken.getDefaultParameter("q", ""), true); hideResults(); changeUrl(); } }); Roles.getMenuitemRole().setAriaLabelProperty(item.getElement(), UniTimeHeaderPanel.stripAccessKey(MESSAGES.buttonClear())); menu.addItem(item); menu.addSeparator(); } MenuBar sortItems = new MenuBar(true); for (final RoomGroupsColumn column : RoomGroupsColumn.values()) { if (RoomGroupsComparator.isApplicable(column)) { if ((iGlobalGroupsTable.getRowCount() <= 1 || iGlobalGroupsTable.getNbrCells(column) == 0) && (iDepartmentalGroupsTable.getRowCount() <= 1 || iDepartmentalGroupsTable.getNbrCells(column) == 0)) continue; String name = iGlobalGroupsTable.getColumnName(column, 0).replace("<br>", " "); MenuItem item = new MenuItem(name, true, new Command() { @Override public void execute() { popup.hide(); int sortBy = RoomCookie.getInstance().getRoomGroupsSortBy(); if (sortBy == (1 + column.ordinal()) || sortBy == (-1 - column.ordinal())) { sortBy = -sortBy; } else { sortBy = 1 + column.ordinal(); } RoomCookie.getInstance().setSortRoomGroupsBy(sortBy); iGlobalGroupsTable.setSortBy(sortBy); iDepartmentalGroupsTable.setSortBy(sortBy); } }); Roles.getMenuitemRole().setAriaLabelProperty(item.getElement(), UniTimeHeaderPanel.stripAccessKey(MESSAGES.opSortBy(name))); sortItems.addItem(item); } } MenuItem sortMenu = new MenuItem(MESSAGES.opSort(), sortItems); sortMenu.getElement().getStyle().setCursor(Cursor.POINTER); menu.addItem(sortMenu); MenuBar deptItems = new MenuBar(true); for (final DeptMode d : DeptMode.values()) { String name = (RoomCookie.getInstance().getDeptMode() == d.ordinal() ? MESSAGES.opUncheck(d.getName()) : MESSAGES.opCheck(d.getName())); MenuItem item = new MenuItem(name, true, new Command() { @Override public void execute() { popup.hide(); RoomCookie.getInstance().setDeptMode(d.ordinal()); iGlobalGroupsTable.refreshTable(); iDepartmentalGroupsTable.refreshTable(); } }); Roles.getMenuitemRole().setAriaLabelProperty(item.getElement(), d.getName()); deptItems.addItem(item); } MenuItem deptMenu = new MenuItem(MESSAGES.opDepartmentFormat(), deptItems); deptMenu.getElement().getStyle().setCursor(Cursor.POINTER); menu.addItem(deptMenu); if (iProperties.isCanExportRoomGroups()) { menu.addSeparator(); MenuItem exportPdf = new MenuItem(MESSAGES.opExportPDF(), true, new Command() { @Override public void execute() { popup.hide(); export("roomgroups.pdf"); } }); Roles.getMenuitemRole().setAriaLabelProperty(exportPdf.getElement(), MESSAGES.opExportPDF()); menu.addItem(exportPdf); MenuItem exportCsv = new MenuItem(MESSAGES.opExportCSV(), true, new Command() { @Override public void execute() { popup.hide(); export("roomgroups.csv"); } }); Roles.getMenuitemRole().setAriaLabelProperty(exportCsv.getElement(), MESSAGES.opExportCSV()); menu.addItem(exportCsv); } popup.add(menu); popup.showRelativeTo((UIObject) event.getSource()); menu.focus(); } }; ClickHandler clickNew = new ClickHandler() { @Override public void onClick(ClickEvent event) { edit(null); } }; iRoomGroupEdit = new RoomGroupEdit(iMode) { @Override protected void onShow() { RoomHint.hideHint(); iRootPanel.setWidget(iRoomGroupEdit); changeUrl(); } @Override protected void onHide(boolean refresh, GroupInterface group) { iRootPanel.setWidget(iGroupsPanel); UniTimePageLabel.getInstance().setPageName(MESSAGES.pageRoomGroups()); changeUrl(); if (refresh && (iGroupsPanel.getRowFormatter().isVisible(iGlobalGroupsRow) || iGroupsPanel.getRowFormatter().isVisible(iDepartmentalGroupsRow))) search(group == null ? null : group.getId()); } }; if (iMode.hasSessionSelection()) { iHeaderPanel = new UniTimeHeaderPanel(MESSAGES.sectFilter()); iGroupsPanel.addHeaderRow(iHeaderPanel); iSession = new AcademicSessionSelectionBox(iHistoryToken.getParameter("term"), "RoomGroups") { @Override protected void onInitializationSuccess(List<AcademicSession> sessions) { UniTimePageHeader.getInstance().getRight().setVisible(false); UniTimePageHeader.getInstance().getRight().setPreventDefault(true); setup(getAcademicSessionId(), CONSTANTS.searchWhenPageIsLoaded() && (iHistoryToken.hasParameter("id") || iHistoryToken.hasParameter("q"))); } @Override protected void onInitializationFailure(Throwable caught) { UniTimeNotifications.error(MESSAGES.failedLoadSessions(caught.getMessage()), caught); } }; iSession.addAcademicSessionChangeHandler(new AcademicSessionChangeHandler() { @Override public void onAcademicSessionChange(AcademicSessionChangeEvent event) { setup(event.getNewAcademicSessionId(), iDepartmentalGroupsTable.getRowCount() > 1 || iGlobalGroupsTable.getRowCount() > 1); } }); ; iGroupsPanel.addRow(MESSAGES.propAcademicSession(), (Widget) iSession); iFilter = new RoomFilterBox(iSession); iGroupsPanel.addRow(MESSAGES.propRoomFilter(), iFilter); iHeaderPanel.addButton("search", MESSAGES.buttonSearch(), clickSearch); iHeaderPanel.addButton("more", MESSAGES.buttonMoreOperations(), clickMore); iHeaderPanel.addButton("new", MESSAGES.buttonAddNewRoom(), clickNew); iHeaderPanel.setEnabled("more", false); iHeaderPanel.setEnabled("new", false); } else { iFilterPanel = new HorizontalPanel(); iFilterPanel.setSpacing(3); Label filterLabel = new Label(MESSAGES.propFilter()); iFilterPanel.add(filterLabel); iFilterPanel.setCellVerticalAlignment(filterLabel, HasVerticalAlignment.ALIGN_MIDDLE); iSession = new Session(); iFilter = new RoomFilterBox(iSession); iFilterPanel.add(iFilter); iSearch = new AriaButton(MESSAGES.buttonSearch()); iSearch.addStyleName("unitime-NoPrint"); iSearch.addClickHandler(clickSearch); iFilterPanel.add(iSearch); iMore = new AriaButton(MESSAGES.buttonMoreOperations()); iMore.setEnabled(false); iMore.addStyleName("unitime-NoPrint"); iMore.addClickHandler(clickMore); iFilterPanel.add(iMore); iNew = new AriaButton(MESSAGES.buttonAddNewRoomGroup()); iNew.setEnabled(false); iNew.addStyleName("unitime-NoPrint"); iNew.addClickHandler(clickNew); iFilterPanel.add(iNew); int filterRow = iGroupsPanel.addRow(iFilterPanel); iGroupsPanel.getCellFormatter().setHorizontalAlignment(filterRow, 0, HasHorizontalAlignment.ALIGN_CENTER); setup(null, CONSTANTS.searchWhenPageIsLoaded() && (iHistoryToken.hasParameter("id") || iHistoryToken.hasParameter("q"))); } iGlobalGroupsHeader = new UniTimeHeaderPanel(MESSAGES.headerGlobalRoomGroups()); iGlobalGroupsRow = iGroupsPanel.addHeaderRow(iGlobalGroupsHeader); iGlobalGroupsTable = new RoomGroupsTable(true) { protected void doSort(RoomGroupsColumn column) { super.doSort(column); iDepartmentalGroupsTable.setSortBy(RoomCookie.getInstance().getRoomGroupsSortBy()); } }; iGroupsPanel.addRow(iGlobalGroupsTable); iGroupsPanel.getRowFormatter().setVisible(iGlobalGroupsRow, false); iGroupsPanel.getRowFormatter().setVisible(iGlobalGroupsRow + 1, false); iDepartmentalGroupsHeader = new UniTimeHeaderPanel(MESSAGES.headerDepartmentalRoomGroups()); iDepartmentalGroupsRow = iGroupsPanel.addHeaderRow(iDepartmentalGroupsHeader); iDepartmentalGroupsTable = new RoomGroupsTable(false) { protected void doSort(RoomGroupsColumn column) { super.doSort(column); iGlobalGroupsTable.setSortBy(RoomCookie.getInstance().getRoomGroupsSortBy()); } }; iGroupsPanel.addRow(iDepartmentalGroupsTable); iGroupsPanel.getRowFormatter().setVisible(iDepartmentalGroupsRow, false); iGroupsPanel.getRowFormatter().setVisible(iDepartmentalGroupsRow + 1, false); iRootPanel = new SimplePanel(iGroupsPanel); iPanel.setWidget(iRootPanel); iGlobalGroupsTable.addMouseClickListener(new MouseClickListener<GroupInterface>() { @Override public void onMouseClick(final TableEvent<GroupInterface> event) { if (event.getData() != null && (event.getData().canDelete() || event.getData().canEdit())) edit(event.getData()); } }); iDepartmentalGroupsTable.addMouseClickListener(new MouseClickListener<GroupInterface>() { @Override public void onMouseClick(final TableEvent<GroupInterface> event) { if (event.getData() != null && (event.getData().canDelete() || event.getData().canEdit())) edit(event.getData()); } }); initWidget(iPanel); History.addValueChangeHandler(new ValueChangeHandler<String>() { @Override public void onValueChange(ValueChangeEvent<String> event) { if (!iInitialized) return; iHistoryToken.reset(event.getValue()); updateFilter(iGroupsPanel.getRowFormatter().isVisible(iGlobalGroupsRow) || iGroupsPanel.getRowFormatter().isVisible(iDepartmentalGroupsRow)); } }); }
From source file:org.unitime.timetable.gwt.client.rooms.RoomsPage.java
License:Apache License
public RoomsPage() { if (Location.getParameter("mode") != null) iMode = RoomsPageMode.valueOf(Location.getParameter("mode").toUpperCase()); iHistoryToken = new HistoryToken(iMode); iPanel = new SimplePanel(); iRoomsPanel = new VerticalPanel(); iRoomsPanel.setWidth("100%"); ClickHandler clickSearch = new ClickHandler() { @Override/*from w w w .j a va 2s .com*/ public void onClick(ClickEvent event) { changeUrl(); search(null); } }; ClickHandler clickNew = new ClickHandler() { @Override public void onClick(ClickEvent event) { iRoomEdit.setRoom(null); iRoomEdit.show(); } }; ClickHandler clickMore = new ClickHandler() { @Override public void onClick(ClickEvent event) { if (iRoomsTable == null) return; final PopupPanel popup = new PopupPanel(true); MenuBar menu = new UniTimeTableHeader.MenuBarWithAccessKeys(); if (iProperties != null && iProperties.isCanSaveFilterDefaults()) { MenuItem item = new MenuItem(MESSAGES.buttonClear(), true, new Command() { @Override public void execute() { popup.hide(); iFilter.setValue(iHistoryToken.getDefaultParameter("q", ""), true); hideResults(); changeUrl(); } }); Roles.getMenuitemRole().setAriaLabelProperty(item.getElement(), UniTimeHeaderPanel.stripAccessKey(MESSAGES.buttonClear())); menu.addItem(item); menu.addSeparator(); } boolean first = true; List<Operation> showHide = iRoomsTable.getShowHideOperations(); if (!showHide.isEmpty()) { MenuBar submenu = new MenuBar(true); for (final Operation op : showHide) { MenuItem item = new MenuItem(op.getName(), true, new Command() { @Override public void execute() { popup.hide(); op.execute(); } }); if (op instanceof AriaOperation) Roles.getMenuitemRole().setAriaLabelProperty(item.getElement(), ((AriaOperation) op).getAriaLabel()); else Roles.getMenuitemRole().setAriaLabelProperty(item.getElement(), UniTimeHeaderPanel.stripAccessKey(op.getName())); submenu.addItem(item); } MenuItem columns = new MenuItem(MESSAGES.opColumns(), submenu); columns.getElement().getStyle().setCursor(Cursor.POINTER); menu.addItem(columns); first = false; } List<Operation> sorts = iRoomsTable.getSortOperations(); if (!sorts.isEmpty()) { MenuBar submenu = new MenuBar(true); for (final Operation op : sorts) { String name = op.getName(); if (op instanceof HasColumnName) name = ((HasColumnName) op).getColumnName(); MenuItem item = new MenuItem(name, true, new Command() { @Override public void execute() { popup.hide(); op.execute(); } }); if (op instanceof AriaOperation) Roles.getMenuitemRole().setAriaLabelProperty(item.getElement(), ((AriaOperation) op).getAriaLabel()); else Roles.getMenuitemRole().setAriaLabelProperty(item.getElement(), UniTimeHeaderPanel.stripAccessKey(op.getName())); submenu.addItem(item); } MenuItem columns = new MenuItem(MESSAGES.opSort(), submenu); columns.getElement().getStyle().setCursor(Cursor.POINTER); menu.addItem(columns); first = false; } if (iRoomsTable.hasDepartmentOperations()) { List<Operation> depts = iRoomsTable.getDepartmentOperations(); if (!depts.isEmpty()) { MenuBar submenu = new MenuBar(true); for (final Operation op : depts) { MenuItem item = new MenuItem(op.getName(), true, new Command() { @Override public void execute() { popup.hide(); op.execute(); } }); if (op instanceof AriaOperation) Roles.getMenuitemRole().setAriaLabelProperty(item.getElement(), ((AriaOperation) op).getAriaLabel()); else Roles.getMenuitemRole().setAriaLabelProperty(item.getElement(), UniTimeHeaderPanel.stripAccessKey(op.getName())); submenu.addItem(item); } MenuItem columns = new MenuItem(MESSAGES.opDepartmentFormat(), submenu); columns.getElement().getStyle().setCursor(Cursor.POINTER); menu.addItem(columns); first = false; } } if (iRoomsTable.hasOrientationOperations()) { MenuBar orientation = null; if (!RoomCookie.getInstance().isGridAsText()) { if (orientation == null) orientation = new MenuBar(true); MenuItem item = new MenuItem(MESSAGES.opOrientationAsText(), true, new Command() { @Override public void execute() { popup.hide(); RoomCookie.getInstance().setOrientation(true, RoomCookie.getInstance().areRoomsHorizontal()); iRoomsTable.refreshTable(); } }); Roles.getMenuitemRole().setAriaLabelProperty(item.getElement(), MESSAGES.opOrientationAsText()); orientation.addItem(item); } if (RoomCookie.getInstance().isGridAsText()) { if (orientation == null) orientation = new MenuBar(true); MenuItem item = new MenuItem(MESSAGES.opOrientationAsGrid(), true, new Command() { @Override public void execute() { popup.hide(); RoomCookie.getInstance().setOrientation(false, RoomCookie.getInstance().areRoomsHorizontal()); iRoomsTable.refreshTable(); } }); Roles.getMenuitemRole().setAriaLabelProperty(item.getElement(), MESSAGES.opOrientationAsGrid()); orientation.addItem(item); } if (!RoomCookie.getInstance().isGridAsText() && RoomCookie.getInstance().areRoomsHorizontal()) { if (orientation == null) orientation = new MenuBar(true); MenuItem item = new MenuItem(MESSAGES.opOrientationVertical(), true, new Command() { @Override public void execute() { popup.hide(); RoomCookie.getInstance().setOrientation(false, false); iRoomsTable.refreshTable(); } }); Roles.getMenuitemRole().setAriaLabelProperty(item.getElement(), MESSAGES.opOrientationVertical()); orientation.addItem(item); } if (!RoomCookie.getInstance().isGridAsText() && !RoomCookie.getInstance().areRoomsHorizontal()) { if (orientation == null) orientation = new MenuBar(true); MenuItem item = new MenuItem(MESSAGES.opOrientationHorizontal(), true, new Command() { @Override public void execute() { popup.hide(); RoomCookie.getInstance().setOrientation(false, true); iRoomsTable.refreshTable(); } }); Roles.getMenuitemRole().setAriaLabelProperty(item.getElement(), MESSAGES.opOrientationHorizontal()); orientation.addItem(item); } if (iProperties != null && iProperties.hasModes() && !RoomCookie.getInstance().isGridAsText()) { boolean firstMode = true; for (final RoomSharingDisplayMode mode : iProperties.getModes()) { if (!mode.toHex().equals(RoomCookie.getInstance().getMode())) { if (orientation == null) orientation = new MenuBar(true); else if (firstMode) orientation.addSeparator(); firstMode = false; MenuItem item = new MenuItem(mode.getName(), true, new Command() { @Override public void execute() { popup.hide(); RoomCookie.getInstance().setMode( RoomCookie.getInstance().areRoomsHorizontal(), mode.toHex()); iRoomsTable.refreshTable(); } }); Roles.getMenuitemRole().setAriaLabelProperty(item.getElement(), mode.getName()); orientation.addItem(item); } } } if (orientation != null) { MenuItem columns = new MenuItem(MESSAGES.opOrientation(), orientation); columns.getElement().getStyle().setCursor(Cursor.POINTER); menu.addItem(columns); first = false; } ; } for (final Operation op : iRoomsTable.getOtherOperations()) { MenuItem item = new MenuItem(op.getName(), true, new Command() { @Override public void execute() { popup.hide(); op.execute(); } }); if (op instanceof AriaOperation) Roles.getMenuitemRole().setAriaLabelProperty(item.getElement(), ((AriaOperation) op).getAriaLabel()); else Roles.getMenuitemRole().setAriaLabelProperty(item.getElement(), UniTimeHeaderPanel.stripAccessKey(op.getName())); if (op.hasSeparator() && !first) menu.addSeparator(); menu.addItem(item); first = false; } popup.add(menu); popup.showRelativeTo((UIObject) event.getSource()); menu.focus(); } }; ClickHandler clickEditRoomSharing = new ClickHandler() { @Override public void onClick(ClickEvent event) { RoomFilterRpcRequest request = iFilter.getElementsRequest(); request.getOptions().remove("department"); LoadingWidget.execute(request, new AsyncCallback<FilterRpcResponse>() { @Override public void onFailure(Throwable caught) { iFilter.setErrorHint(MESSAGES.failedToLoadRooms(caught.getMessage())); UniTimeNotifications.error(MESSAGES.failedToLoadRooms(caught.getMessage()), caught); } @Override public void onSuccess(FilterRpcResponse result) { iFilter.clearHint(); if (result == null || result.getResults() == null || result.getResults().isEmpty()) { iFilter.setErrorHint(MESSAGES.errorNoRoomsMatchingFilter()); UniTimeNotifications.error(MESSAGES.errorNoRoomsMatchingFilter()); } else { iRoomDepartmentsEdit.setRooms(result.getResults(), iRoomsTable.hasSortBy() ? new Integer(iRoomsTable.getSortBy()) : null); iRoomDepartmentsEdit.show(); } } }, MESSAGES.waitLoadingRooms()); } }; if (iMode.hasSessionSelection()) { iFilterForm = new SimpleForm(); iHeaderPanel = new UniTimeHeaderPanel(MESSAGES.sectFilter()); iFilterForm.addHeaderRow(iHeaderPanel); iSession = new AcademicSessionSelectionBox(iHistoryToken.getParameter("term"), "Rooms") { @Override protected void onInitializationSuccess(List<AcademicSession> sessions) { iFilterForm.setVisible(sessions != null && !sessions.isEmpty()); UniTimePageHeader.getInstance().getRight().setVisible(false); UniTimePageHeader.getInstance().getRight().setPreventDefault(true); setup(getAcademicSessionId(), CONSTANTS.searchWhenPageIsLoaded() && (iHistoryToken.hasParameter("id") || iHistoryToken.hasParameter("q"))); } @Override protected void onInitializationFailure(Throwable caught) { UniTimeNotifications.error(MESSAGES.failedLoadSessions(caught.getMessage()), caught); } }; iSession.addAcademicSessionChangeHandler(new AcademicSessionChangeHandler() { @Override public void onAcademicSessionChange(AcademicSessionChangeEvent event) { setup(event.getNewAcademicSessionId(), iRoomsTable != null && iRoomsTable.isVisible() && iRoomsTable.getRowCount() > 1); } }); ; iFilterForm.addRow(MESSAGES.propAcademicSession(), (Widget) iSession); iFilter = new RoomFilterBox(iSession); iFilterForm.addRow(MESSAGES.propRoomFilter(), iFilter); iRoomsPanel.add(iFilterForm); iHeaderPanel.addButton("search", MESSAGES.buttonSearch(), clickSearch); iHeaderPanel.addButton("more", MESSAGES.buttonMoreOperations(), clickMore); iHeaderPanel.addButton("new", MESSAGES.buttonAddNewRoom(), clickNew); iHeaderPanel.addButton("sharing", MESSAGES.buttonEditRoomSharing(), clickEditRoomSharing); iHeaderPanel.setEnabled("more", false); iHeaderPanel.setEnabled("new", false); iHeaderPanel.setEnabled("sharing", false); } else { iFilterPanel = new HorizontalPanel(); iFilterPanel.setSpacing(3); Label filterLabel = new Label(MESSAGES.propFilter()); iFilterPanel.add(filterLabel); iFilterPanel.setCellVerticalAlignment(filterLabel, HasVerticalAlignment.ALIGN_MIDDLE); iSession = new Session(); iFilter = new RoomFilterBox(iSession); iFilterPanel.add(iFilter); iSearch = new AriaButton(MESSAGES.buttonSearch()); iSearch.addStyleName("unitime-NoPrint"); iSearch.addClickHandler(clickSearch); iFilterPanel.add(iSearch); iMore = new AriaButton(MESSAGES.buttonMoreOperations()); iMore.setEnabled(false); iMore.addStyleName("unitime-NoPrint"); iMore.addClickHandler(clickMore); iFilterPanel.add(iMore); iNew = new AriaButton(MESSAGES.buttonAddNewRoom()); iNew.setEnabled(false); iNew.addStyleName("unitime-NoPrint"); iNew.addClickHandler(clickNew); iFilterPanel.add(iNew); iEditRoomSharing = new AriaButton(MESSAGES.buttonEditRoomSharing()); iEditRoomSharing.setEnabled(false); iEditRoomSharing.setVisible(false); iEditRoomSharing.addStyleName("unitime-NoPrint"); iEditRoomSharing.addClickHandler(clickEditRoomSharing); iFilterPanel.add(iEditRoomSharing); iRoomsPanel.add(iFilterPanel); iRoomsPanel.setCellHorizontalAlignment(iFilterPanel, HasHorizontalAlignment.ALIGN_CENTER); setup(null, CONSTANTS.searchWhenPageIsLoaded() && (iHistoryToken.hasParameter("id") || iHistoryToken.hasParameter("q"))); } iRoomsTable = new RoomsTable(iMode); iRoomsTable.getElement().getStyle().setMarginTop(10, Unit.PX); iRoomsPanel.add(iRoomsTable); iRootPanel = new SimplePanel(iRoomsPanel); iPanel.setWidget(iRootPanel); initWidget(iPanel); History.addValueChangeHandler(new ValueChangeHandler<String>() { @Override public void onValueChange(ValueChangeEvent<String> event) { if (!iInitialized) return; if ("id=add".equals(event.getValue())) iHistoryToken.parse(event.getValue()); else iHistoryToken.reset(event.getValue()); updateFilter(iRoomsTable.isVisible()); } }); iRoomsTable.addOperation(new Operation() { @Override public void execute() { export("rooms.pdf"); } @Override public boolean isApplicable() { return iRoomsTable.getRowCount() > 0 && (iProperties != null && iProperties.isCanExportPdf()); } @Override public boolean hasSeparator() { return false; } @Override public String getName() { return MESSAGES.opExportPDF(); } }); iRoomsTable.addOperation(new Operation() { @Override public void execute() { export("rooms.csv"); } @Override public boolean isApplicable() { return iRoomsTable.getRowCount() > 0 && (iProperties != null && iProperties.isCanExportCsv()); } @Override public boolean hasSeparator() { return false; } @Override public String getName() { return MESSAGES.opExportCSV(); } }); iRoomsTable.addMouseClickListener(new MouseClickListener<RoomDetailInterface>() { @Override public void onMouseClick(final TableEvent<RoomDetailInterface> event) { if (event.getData() == null || !event.getData().isCanShowDetail()) return; iRoomDetail.setRoom(event.getData()); iRoomDetail.show(); } }); iRoomDetail = new RoomDetail(iMode) { @Override protected void onHide() { iRootPanel.setWidget(iRoomsPanel); UniTimePageLabel.getInstance().setPageName(MESSAGES.pageRooms()); if (iRoomsTable != null && iRoomsTable.isVisible()) search(getRoom() == null ? null : getRoom().getUniqueId()); changeUrl(); } @Override protected void onShow() { iRootPanel.setWidget(iRoomDetail); changeUrl(); } @Override protected void edit() { final Long roomId = (getRoom() == null ? null : getRoom().getUniqueId()); if (roomId != null) { FilterRpcRequest rooms = iFilter.createRpcRequest(); rooms.setCommand(FilterRpcRequest.Command.ENUMERATE); rooms.addOption("id", getRoom().getUniqueId().toString()); rooms.setSessionId(iProperties.getAcademicSessionId()); LoadingWidget.execute(rooms, new AsyncCallback<FilterRpcResponse>() { @Override public void onFailure(Throwable caught) { UniTimeNotifications.error(MESSAGES.failedToLoadRoomDetails(caught.getMessage()), caught); } @Override public void onSuccess(FilterRpcResponse result) { if (result == null || result.getResults() == null || result.getResults().isEmpty()) { UniTimeNotifications.error(MESSAGES.errorRoomDoesNotExist(roomId.toString())); } else { iRoomEdit.setRoom((RoomDetailInterface) result.getResults().get(0)); iRoomEdit.show(); } } }, MESSAGES.waitLoadingRoomDetails()); } else { hide(); } } @Override protected RoomDetailInterface getPrevious(Long roomId) { return iRoomsTable == null ? null : iRoomsTable.getPrevious(roomId); } @Override protected RoomDetailInterface getNext(Long roomId) { return iRoomsTable == null ? null : iRoomsTable.getNext(roomId); } @Override protected void previous(final RoomDetailInterface room) { setRoom(room); changeUrl(); } @Override protected void next(final RoomDetailInterface room) { setRoom(room); changeUrl(); } @Override public void hide() { super.hide(); } }; iRoomEdit = new RoomEdit(iMode) { @Override protected void onShow() { iRootPanel.setWidget(iRoomEdit); changeUrl(); } @Override protected void onHide(RoomDetailInterface detail, boolean canShowDetail, String message) { if (!canShowDetail || (detail == null && getRoom().getUniqueId() == null)) { iRootPanel.setWidget(iRoomsPanel); UniTimePageLabel.getInstance().setPageName(MESSAGES.pageRooms()); if (iRoomsTable.isVisible()) search(detail == null ? null : detail.getUniqueId()); } else { if (detail != null) iRoomDetail.setRoom(detail); iRoomDetail.show(message); } changeUrl(); } }; iRoomDepartmentsEdit = new RoomDepartmentsEdit() { @Override protected void onShow() { iRootPanel.setWidget(iRoomDepartmentsEdit); } @Override protected void onHide(boolean refresh) { iRootPanel.setWidget(iRoomsPanel); UniTimePageLabel.getInstance().setPageName(MESSAGES.pageRooms()); if (refresh && iRoomsTable.isVisible()) search(null); } }; iFilter.addValueChangeHandler(new ValueChangeHandler<String>() { @Override public void onValueChange(ValueChangeEvent<String> event) { if (iEditRoomSharing != null) iEditRoomSharing.setEnabled(iRoomDepartmentsEdit.setDepartmentOrExamType(iFilter) && iRoomDepartmentsEdit.canEdit()); if (iHeaderPanel != null) iHeaderPanel.setEnabled("sharing", iProperties != null && (iProperties.isCanEditRoomExams() || iProperties.isCanEditDepartments()) && iRoomDepartmentsEdit.setDepartmentOrExamType(iFilter) && iRoomDepartmentsEdit.canEdit()); } }); }
From source file:org.unitime.timetable.gwt.client.widgets.UniTimeTableHeader.java
License:Apache License
public boolean setMenu(final PopupPanel popup) { List<Operation> operations = getOperations(); if (operations.isEmpty()) return false; boolean first = true; MenuBar menu = new MenuBarWithAccessKeys(); for (final Operation op : operations) { if (!op.isApplicable()) continue; if (op.hasSeparator() && !first) menu.addSeparator();/* w w w .j a v a2 s . c o m*/ first = false; MenuItem item = new MenuItem(op.getName(), true, new Command() { @Override public void execute() { popup.hide(); op.execute(); } }); if (op instanceof AriaOperation) Roles.getMenuitemRole().setAriaLabelProperty(item.getElement(), ((AriaOperation) op).getAriaLabel()); else Roles.getMenuitemRole().setAriaLabelProperty(item.getElement(), UniTimeHeaderPanel.stripAccessKey(op.getName())); menu.addItem(item); } if (first) return false; menu.setVisible(true); popup.add(menu); return true; }