Example usage for com.google.gwt.aria.client Roles getMenuitemRole

List of usage examples for com.google.gwt.aria.client Roles getMenuitemRole

Introduction

In this page you can find the example usage for com.google.gwt.aria.client Roles getMenuitemRole.

Prototype

public static MenuitemRole getMenuitemRole() 

Source Link

Usage

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;
}