Example usage for com.google.gwt.user.client DOM createTHead

List of usage examples for com.google.gwt.user.client DOM createTHead

Introduction

In this page you can find the example usage for com.google.gwt.user.client DOM createTHead.

Prototype

public static Element createTHead() 

Source Link

Document

Creates an HTML THEAD element.

Usage

From source file:org.obiba.opal.web.gwt.app.client.ui.DefaultFlexTable.java

License:Open Source License

public DefaultFlexTable() {
    head = DOM.createTHead();
    headerTr = DOM.createTR();//from w  ww  .  ja  v  a 2s  .  co m
    DOM.insertChild(getElement(), head, 0);
    DOM.insertChild(head, headerTr, 0);
    setStyled(true);
    setCondensed(true);
    setZebra(true);
    setBordered(true);
}

From source file:org.unitime.timetable.gwt.client.events.EventResourceTimetable.java

License:Apache License

public EventResourceTimetable(PageType type) {
    iHistoryToken = new HistoryToken(type);
    iType = type;//from w  ww . j  av  a2  s  .c  om

    iFilter = new SimpleForm(2);
    iFilter.removeStyleName("unitime-NotPrintableBottomLine");
    iFilter.getColumnFormatter().setWidth(0, "120px");

    iFilterHeader = new UniTimeHeaderPanel(MESSAGES.sectFilter());
    iLookup = new Lookup();
    iLookup.setOptions("mustHaveExternalId");
    iLookup.addValueChangeHandler(new ValueChangeHandler<PersonInterface>() {
        @Override
        public void onValueChange(ValueChangeEvent<PersonInterface> event) {
            if (event.getValue() != null) {
                iResources.setText(event.getValue().getId());
                resourceTypeChanged(true);
            }
        }
    });
    iFilterHeader.addButton("lookup", MESSAGES.buttonLookup(), 75, new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            iLookup.center();
        }
    });
    iFilterHeader.setEnabled("lookup", false);
    iFilterHeader.addButton("add", MESSAGES.buttonAddEvent(), 75, new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            iEventAdd.setEvent(null);
            iEventAdd.show();
        }
    });
    iFilterHeader.setEnabled("add", false);
    iFilter.addHeaderRow(iFilterHeader);
    iFilterHeader.addButton("clear", MESSAGES.buttonClear(), 75, new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            // Event filter
            iEvents.setValue(iHistoryToken.getDefaultParameter("events", ""), true);

            // Room filter
            iRooms.setValue(iHistoryToken.getDefaultParameter("rooms", ""), true);

            // Resource type
            if (!"true".equals(iHistoryToken.getParameter("fixedType", "false"))) {
                String typeString = iHistoryToken.getDefaultParameter("type", "room");
                if (typeString != null)
                    for (int idx = 0; idx < iResourceTypes.getItemCount(); idx++) {
                        if (iResourceTypes.getValue(idx).equalsIgnoreCase(typeString)) {
                            iResourceTypes.setSelectedIndex(idx);
                        }
                    }
            }

            // Subject, curriculum, department, etc.
            iResources.setValue(iHistoryToken.getDefaultParameter("name", ""));

            // Room selection
            iLocRoom = iHistoryToken.getDefaultParameter("room", "");

            // Week selection
            iLocDate = iHistoryToken.getDefaultParameter("date", "");

            hideResults();
            changeUrl();
            UniTimePageLabel.getInstance().setPageName(getPageName());
            resourceTypeChanged(false);
        }
    });
    iFilterHeader.setEnabled("clear", "true".equals(iHistoryToken.getParameter("showClear", "true")));
    iFilterHeader.addButton("search", MESSAGES.buttonSearch(), 75, new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            resourceTypeChanged(true);
        }
    });

    iSession = new AcademicSessionSelectionBox(iHistoryToken.getParameter("term"), "Events") {
        @Override
        protected void onInitializationSuccess(List<AcademicSession> sessions) {
            iFilter.setVisible(sessions != null && !sessions.isEmpty());
            UniTimePageHeader.getInstance().getRight().setVisible(false);
            UniTimePageHeader.getInstance().getRight().setPreventDefault(true);
        }

        @Override
        protected void onInitializationFailure(Throwable caught) {
            UniTimeNotifications.error(MESSAGES.failedLoadSessions(caught.getMessage()), caught);
        }
    };
    iSession.setFilter(this);
    iSessionRow = iFilter.addRow(MESSAGES.propAcademicSession(), iSession);

    iEvents = new EventFilterBox(iSession);
    if ("true".equals(iHistoryToken.getParameter("showFilter", "true")))
        iFilter.addRow(MESSAGES.propEventFilter(), iEvents);

    iRooms = new RoomFilterBox(iSession);
    if ("true".equals(iHistoryToken.getParameter("showFilter", "true")))
        iFilter.addRow(MESSAGES.propRoomFilter(), iRooms);

    iResourceTypes = new ListBox();
    for (ResourceType resource : ResourceType.values()) {
        if (resource.isVisible())
            iResourceTypes.addItem(resource.getResourceType(CONSTANTS), resource.name());
    }

    iResourceTypes.addChangeHandler(new ChangeHandler() {
        @Override
        public void onChange(ChangeEvent event) {
            iResources.setText("");
            UniTimePageLabel.getInstance().setPageName(getPageName());
            hideResults();
            if (iProperties != null)
                resourceTypeChanged(isShowingResults());
        }
    });
    int row = iFilter.addRow(MESSAGES.propResourceType(), iResourceTypes);
    if ("true".equals(iHistoryToken.getParameter("fixedType", "false")))
        iFilter.getRowFormatter().setVisible(row, false);

    iResources = new SuggestBox(new SuggestOracle() {
        @Override
        public void requestDefaultSuggestions(Request request, Callback callback) {
            requestSuggestions(request, callback);
        }

        @Override
        public void requestSuggestions(final Request request, final Callback callback) {
            if (iSession.getAcademicSessionId() != null) {
                RPC.execute(
                        ResourceLookupRpcRequest.findResources(iSession.getAcademicSessionId(),
                                ResourceType
                                        .valueOf(iResourceTypes.getValue(iResourceTypes.getSelectedIndex())),
                                request.getQuery(), request.getLimit()),
                        new AsyncCallback<GwtRpcResponseList<ResourceInterface>>() {
                            @Override
                            public void onFailure(final Throwable caught) {
                                ArrayList<Suggestion> suggestions = new ArrayList<Suggestion>();
                                suggestions.add(new Suggestion() {
                                    @Override
                                    public String getDisplayString() {
                                        return "<font color='red'>" + caught.getMessage() + "</font>";
                                    }

                                    @Override
                                    public String getReplacementString() {
                                        return "";
                                    }
                                });
                                callback.onSuggestionsReady(request, new Response(suggestions));
                                ToolBox.checkAccess(caught);
                            }

                            @Override
                            public void onSuccess(GwtRpcResponseList<ResourceInterface> result) {
                                ArrayList<Suggestion> suggestions = new ArrayList<Suggestion>();
                                for (ResourceInterface resource : result) {
                                    suggestions.add(new ResourceSuggestion(resource));
                                }
                                callback.onSuggestionsReady(request, new Response(suggestions));
                            }
                        });
            }
        }

        @Override
        public boolean isDisplayStringHTML() {
            return true;
        }
    });
    iResources.getValueBox().addFocusHandler(new FocusHandler() {
        @Override
        public void onFocus(FocusEvent event) {
            iResources.showSuggestionList();
        }
    });
    iResourcesRow = iFilter.addRow(MESSAGES.propResource(), iResources);
    iResources.addSelectionHandler(new SelectionHandler<Suggestion>() {
        public void onSelection(SelectionEvent<Suggestion> event) {
            if (event.getSelectedItem() instanceof ResourceSuggestion) {
                resourceChanged(((ResourceSuggestion) event.getSelectedItem()).getResource());
            }
        }
    });
    iFilter.getRowFormatter().setVisible(iResourcesRow, false);

    iResourceTypes.setSelectedIndex(ResourceType.ROOM.ordinal());

    iPanel = new SimpleForm(2);
    iPanel.removeStyleName("unitime-NotPrintableBottomLine");
    iPanel.addRow(iFilter);
    iHeader = new UniTimeHeaderPanel();
    iPanel.addHeaderRow(iHeader);
    iWeekPanel = new WeekSelector(iSession);
    iWeekPanel.addValueChangeHandler(new ValueChangeHandler<WeekSelector.Interval>() {
        @Override
        public void onValueChange(ValueChangeEvent<WeekSelector.Interval> e) {
            iLocDate = iWeekPanel.getSelection();
            tabOrDataChanged(true);
        }
    });
    iWeekPanel.setFilter(new WeekSelector.Filter<WeekInterface>() {
        @Override
        public boolean filter(WeekInterface week) {
            return !iMatchingWeeks.contains(week.getDayOfYear());
        }

        @Override
        public boolean isEmpty() {
            return iMatchingRooms.isEmpty();
        }
    });
    iRoomPanel = new RoomSelector();
    iRoomPanel.setFilter(new WeekSelector.Filter<ResourceInterface>() {
        @Override
        public boolean filter(ResourceInterface room) {
            return !iMatchingRooms.contains(room.getId());
        }

        @Override
        public boolean isEmpty() {
            return iMatchingRooms.isEmpty();
        }
    });

    iTabBar = new AriaTabBar();
    iTabBar.addTab(MESSAGES.tabGrid(), true);
    iTabBar.addTab(MESSAGES.tabEventTable(), true);
    iTabBar.addTab(MESSAGES.tabMeetingTable(), true);
    iTabBar.addSelectionHandler(new SelectionHandler<Integer>() {
        @Override
        public void onSelection(SelectionEvent<Integer> event) {
            tabOrDataChanged(true);
        }
    });

    iGridOrTablePanel = new SimplePanel();
    iGridOrTablePanel.setStyleName("unitime-TabPanel");

    final Character gridAccessKey = UniTimeHeaderPanel.guessAccessKey(MESSAGES.tabGrid());
    final Character eventsAccessKey = UniTimeHeaderPanel.guessAccessKey(MESSAGES.tabEventTable());
    final Character meetingsAccessKey = UniTimeHeaderPanel.guessAccessKey(MESSAGES.tabMeetingTable());
    if (gridAccessKey != null || eventsAccessKey != null || meetingsAccessKey != null) {
        RootPanel.get().addDomHandler(new KeyUpHandler() {
            @Override
            public void onKeyUp(KeyUpEvent event) {
                if (!iRootPanel.getWidget().equals(iPanel))
                    return;
                int tab = -1;
                if (gridAccessKey != null && event.getNativeEvent().getCtrlKey()
                        && (event.getNativeKeyCode() == gridAccessKey
                                || event.getNativeKeyCode() == Character.toUpperCase(gridAccessKey))) {
                    tab = 0;
                }
                if (eventsAccessKey != null && event.getNativeEvent().getCtrlKey()
                        && (event.getNativeKeyCode() == eventsAccessKey
                                || event.getNativeKeyCode() == Character.toUpperCase(eventsAccessKey))) {
                    tab = 1;
                }
                if (meetingsAccessKey != null && event.getNativeEvent().getCtrlKey()
                        && (event.getNativeKeyCode() == meetingsAccessKey
                                || event.getNativeKeyCode() == Character.toUpperCase(meetingsAccessKey))) {
                    tab = 2;
                }
                if (tab >= 0) {
                    iTabBar.selectTab(tab);
                    event.preventDefault();
                }
            }
        }, KeyUpEvent.getType());
    }

    iDockPanel = new DockPanel();
    iDockPanel.setStyleName("unitime-EventResults");
    iDockPanel.setSpacing(0);
    iDockPanel.add(iGridOrTablePanel, DockPanel.SOUTH);
    iDockPanel.add(iRoomPanel, DockPanel.WEST);
    iDockPanel.setCellHorizontalAlignment(iRoomPanel, HasHorizontalAlignment.ALIGN_LEFT);
    iDockPanel.add(iTabBar, DockPanel.CENTER);
    iDockPanel.setCellVerticalAlignment(iTabBar, HasVerticalAlignment.ALIGN_BOTTOM);
    iDockPanel.setCellHorizontalAlignment(iTabBar, HasHorizontalAlignment.ALIGN_CENTER);
    iDockPanel.add(iWeekPanel, DockPanel.EAST);
    iDockPanel.setCellHorizontalAlignment(iWeekPanel, HasHorizontalAlignment.ALIGN_RIGHT);
    Roles.getTabpanelRole().set(iDockPanel.getElement());
    Roles.getTabpanelRole().setAriaOwnsProperty(iDockPanel.getElement(), Id.of(iTabBar.getElement()));

    iPanel.addRow(iDockPanel);

    hideResults();

    iFooter = iHeader.clonePanel();
    iPanel.addRow(iFooter);
    iRootPanel = new SimplePanel(iPanel);
    initWidget(iRootPanel);

    iRoomPanel.addValueChangeHandler(new ValueChangeHandler<IntervalSelector<ResourceInterface>.Interval>() {
        @Override
        public void onValueChange(ValueChangeEvent<IntervalSelector<ResourceInterface>.Interval> e) {
            iLocRoom = iRoomPanel.getSelection();
            tabOrDataChanged(true);
        }
    });

    for (int i = 1; i < iPanel.getRowCount(); i++)
        iPanel.getRowFormatter().setVisible(i, false);

    iHeader.addButton("add", MESSAGES.buttonAddEvent(), 75, new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            iEventAdd.setEvent(null);
            iEventAdd.show();
        }
    });
    iHeader.setEnabled("add", false);
    iHeader.addButton("print", MESSAGES.buttonPrint(), 75, new ClickHandler() {
        @Override
        public void onClick(ClickEvent clickEvent) {
            final EventMeetingTable table = new EventMeetingTable(
                    getSelectedTab() <= 1 ? EventMeetingTable.Mode.ListOfEvents
                            : EventMeetingTable.Mode.ListOfMeetings,
                    false, EventResourceTimetable.this);
            table.setMeetingFilter(EventResourceTimetable.this);
            table.setShowMainContact(iProperties != null && iProperties.isCanLookupMainContact());
            table.setEvents(iData);
            table.setSortBy(iTable.getSortBy());
            table.getElement().getStyle().setWidth(1040, Unit.PX);

            int firstSlot = 84, lastSlot = 216;
            boolean skipDays = iEvents.hasChip(new FilterBox.Chip("day", null));
            boolean hasDay[] = new boolean[] {
                    !skipDays || iEvents.hasChip(new FilterBox.Chip("day", CONSTANTS.longDays()[0])),
                    !skipDays || iEvents.hasChip(new FilterBox.Chip("day", CONSTANTS.longDays()[1])),
                    !skipDays || iEvents.hasChip(new FilterBox.Chip("day", CONSTANTS.longDays()[2])),
                    !skipDays || iEvents.hasChip(new FilterBox.Chip("day", CONSTANTS.longDays()[3])),
                    !skipDays || iEvents.hasChip(new FilterBox.Chip("day", CONSTANTS.longDays()[4])),
                    iEvents.hasChip(new FilterBox.Chip("day", CONSTANTS.longDays()[5])),
                    iEvents.hasChip(new FilterBox.Chip("day", CONSTANTS.longDays()[6])) };
            for (EventInterface event : iData) {
                if (event.getType() == EventType.Unavailabile
                        && !iEvents.hasChip(new Chip("type", "Not Available")))
                    continue;
                for (MeetingInterface meeting : event.getMeetings()) {
                    if (filterEvent(event, meeting))
                        continue;
                    if (meeting.getApprovalStatus() != ApprovalStatus.Pending
                            && meeting.getApprovalStatus() != ApprovalStatus.Approved)
                        continue;
                    if (firstSlot > meeting.getStartSlot())
                        firstSlot = meeting.getStartSlot();
                    if (lastSlot < meeting.getEndSlot())
                        lastSlot = meeting.getEndSlot();
                    hasDay[meeting.getDayOfWeek()] = true;
                }
            }
            Chip after = iEvents.getChip("after");
            if (after != null) {
                Integer slot = TimeUtils.parseTime(CONSTANTS, after.getValue(), null);
                if (slot != null && firstSlot > slot)
                    firstSlot = slot;
            }
            Chip before = iEvents.getChip("before");
            if (before != null) {
                Integer slot = TimeUtils.parseTime(CONSTANTS, before.getValue(), firstSlot);
                if (slot != null && lastSlot < slot)
                    lastSlot = slot;
            }
            int nrDays = 0;
            for (boolean d : hasDay)
                if (d)
                    nrDays++;
            int days[] = new int[nrDays];
            int d = 0;
            for (int i = 0; i < 7; i++)
                if (hasDay[i])
                    days[d++] = i;
            int firstHour = firstSlot / 12;
            int lastHour = 1 + (lastSlot - 1) / 12;
            if (firstHour <= 7 && firstHour > 0 && ((firstSlot % 12) <= 6))
                firstHour--;
            HashMap<Long, String> colors = new HashMap<Long, String>();

            final TimeGrid tg = new TimeGrid(colors, days, (int) (1000 / nrDays), 55, true, false,
                    (firstHour < 7 ? firstHour : 7), (lastHour > 18 ? lastHour : 18),
                    EventResourceTimetable.this);
            tg.setResourceType(getResourceType());
            tg.setSelectedWeeks(iWeekPanel.getSelected());
            tg.setRoomResources(iRoomPanel.getSelected());
            tg.setMode(gridMode());
            tg.showVerticalSplit();

            for (EventInterface event : sortedEvents()) {
                List<MeetingInterface> meetings = new ArrayList<MeetingInterface>();
                for (MeetingInterface meeting : event.getMeetings()) {
                    if (meeting.getApprovalStatus() != ApprovalStatus.Pending
                            && meeting.getApprovalStatus() != ApprovalStatus.Approved)
                        continue;
                    if (meeting.getMeetingDate() != null && !filterEvent(event, meeting))
                        meetings.add(meeting);
                }
                if (!meetings.isEmpty())
                    tg.addEvent(event, meetings);
            }
            if (iWeekPanel.getValue() != null)
                tg.labelDays(iWeekPanel.getValue().getFirst(), iWeekPanel.getValue().getLast());

            // Move header row to thead
            Element headerRow = table.getRowFormatter().getElement(0);
            Element tableElement = table.getElement();
            Element thead = DOM.createTHead();
            tableElement.insertFirst(thead);
            headerRow.getParentElement().removeChild(headerRow);
            thead.appendChild(headerRow);

            ToolBox.print(new ToolBox.Page() {
                @Override
                public String getName() {
                    return iHeader.getHeaderTitle();
                }

                @Override
                public String getUser() {
                    return iRoomPanel.getValue().toString();
                }

                @Override
                public String getSession() {
                    return iWeekPanel.getValue().toString();
                }

                @Override
                public Element getBody() {
                    return tg.getElement();
                }
            }, new ToolBox.Page() {
                @Override
                public String getName() {
                    return iHeader.getHeaderTitle();
                }

                @Override
                public String getUser() {
                    return iRoomPanel.getValue().toString();
                }

                @Override
                public String getSession() {
                    return iWeekPanel.getValue().toString();
                }

                @Override
                public Element getBody() {
                    return table.getElement();
                }
            });
        }
    });

    iHeader.addButton("export", MESSAGES.buttonExport(), 75, new ClickHandler() {
        @Override
        public void onClick(ClickEvent clickEvent) {
            if (iProperties != null && iProperties.isCanExportCSV()) {
                final PopupPanel popup = new PopupPanel(true);
                MenuBar menu = new MenuBar(true);
                MenuItem exportPdf = new MenuItem(MESSAGES.opExportPDF(), true, new Command() {
                    @Override
                    public void execute() {
                        popup.hide();
                        export("output=" + (getSelectedTab() <= 1 ? "events" : "meetings") + ".pdf&flags="
                                + EventCookie.getInstance().getFlags(), true);
                    }
                });
                exportPdf.getElement().getStyle().setCursor(Cursor.POINTER);
                menu.addItem(exportPdf);
                MenuItem exportCsv = new MenuItem(MESSAGES.opExportCSV(), true, new Command() {
                    @Override
                    public void execute() {
                        popup.hide();
                        export("output=" + (getSelectedTab() <= 1 ? "events" : "meetings") + ".csv&flags="
                                + EventCookie.getInstance().getFlags(), true);
                    }
                });
                exportCsv.getElement().getStyle().setCursor(Cursor.POINTER);
                menu.addItem(exportCsv);
                MenuItem exportIcs = new MenuItem(MESSAGES.opExportICalendar(), true, new Command() {
                    @Override
                    public void execute() {
                        popup.hide();
                        copyToClipboard(
                                "output=events.ics"
                                        + (iType == PageType.Personal ? "&e:flag=All+Sessions" : ""),
                                iType == PageType.Personal);
                    }
                });
                exportIcs.getElement().getStyle().setCursor(Cursor.POINTER);
                menu.addItem(exportIcs);
                popup.add(menu);
                popup.showRelativeTo((UIObject) clickEvent.getSource());
                menu.focus();
            } else {
                export("output=events.ics", false);
            }
        }
    });
    iHeader.addButton("operations", MESSAGES.buttonMoreOperations(), 75, new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            final PopupPanel popup = new PopupPanel(true);
            iTable.getHeader(0).setMenu(popup);
            popup.showRelativeTo((UIObject) event.getSource());
            ((MenuBar) popup.getWidget()).focus();
        }
    });
    iHeader.setEnabled("print", false);
    iHeader.setEnabled("export", false);
    iHeader.setEnabled("operations", false);

    iSession.addAcademicSessionChangeHandler(new AcademicSessionChangeHandler() {
        @Override
        public void onAcademicSessionChange(AcademicSessionChangeEvent event) {
            loadProperties(new AsyncCallback<EventPropertiesRpcResponse>() {
                @Override
                public void onFailure(Throwable caught) {
                }

                @Override
                public void onSuccess(EventPropertiesRpcResponse result) {
                    if (!iInitialized)
                        setup(true);
                    else
                        resourceTypeChanged(isShowingResults());
                }
            });
        }
    });

    iEventDetail = new EventDetail(this) {
        @Override
        protected void onHide() {
            iRootPanel.setWidget(iPanel);
            UniTimePageLabel.getInstance().setPageName(getPageName());
            if (!isShowingResults())
                resourceTypeChanged(true);
            changeUrl();
        }

        @Override
        protected void onShow() {
            iBack.clear();
            if (iTable != null)
                iTable.clearHover();
            iRootPanel.setWidget(iEventDetail);
            changeUrl();
        }

        @Override
        protected void edit() {
            super.hide();
            iEventAdd.setEvent(getEvent());
            iEventAdd.show();
        }

        @Override
        protected EventInterface getPrevious(Long eventId) {
            return iTable.previous(eventId);
        }

        @Override
        protected EventInterface getNext(Long eventId) {
            return iTable.next(eventId);
        }

        @Override
        protected void previous(final EventInterface event) {
            iBack.add(getEvent());
            LoadingWidget.execute(
                    EventDetailRpcRequest.requestEventDetails(iSession.getAcademicSessionId(), event.getId()),
                    new AsyncCallback<EventInterface>() {
                        @Override
                        public void onFailure(Throwable caught) {
                            UniTimeNotifications
                                    .error(MESSAGES.failedLoad(event.getName(), caught.getMessage()), caught);
                        }

                        @Override
                        public void onSuccess(EventInterface result) {
                            LoadingWidget.getInstance().hide();
                            setEvent(result);
                            changeUrl();
                        }
                    }, MESSAGES.waitLoading(event.getName()));
        }

        @Override
        protected void next(final EventInterface event) {
            previous(event);
        }

        @Override
        public void hide() {
            if (!iBack.isEmpty()) {
                EventInterface last = iBack.remove(iBack.size() - 1);
                setEvent(last);
            } else {
                super.hide();
            }
        }

        @Override
        protected void onApprovalOrReject(Long eventId, EventInterface event) {
            if (iData != null)
                populate(tinker(new GwtRpcResponseList<EventInterface>(iData), eventId, event));
        }
    };

    iEventAdd = new EventAdd(iSession, this) {
        @Override
        protected void onHide() {
            iSession.setFilter(EventResourceTimetable.this);
            iFilter.setWidget(iSessionRow, 1, iSession);
            final EventInterface modified = iEventAdd.getEvent(), detail = iEventDetail.getEvent(),
                    saved = iEventAdd.getSavedEvent();
            if (saved != null) {
                if (iData != null)
                    populate(tinker(new GwtRpcResponseList<EventInterface>(iData),
                            (saved.getId() == null ? modified.getId() : saved.getId()), saved));
                if (saved.getId() != null) {
                    iEventDetail.setEvent(saved);
                    iEventDetail.show();
                } else {
                    iRootPanel.setWidget(iPanel);
                    UniTimePageLabel.getInstance().setPageName(getPageName());
                }
            } else if (modified != null && detail != null && detail.getId().equals(modified.getId())) {
                LoadingWidget.execute(EventDetailRpcRequest.requestEventDetails(iSession.getAcademicSessionId(),
                        modified.getId()), new AsyncCallback<EventInterface>() {
                            @Override
                            public void onFailure(Throwable caught) {
                                UniTimeNotifications.error(
                                        MESSAGES.failedLoad(detail.getName(), caught.getMessage()), caught);
                            }

                            @Override
                            public void onSuccess(EventInterface result) {
                                LoadingWidget.getInstance().hide();
                                if (result == null) {
                                    iRootPanel.setWidget(iPanel);
                                    UniTimePageLabel.getInstance().setPageName(getPageName());
                                } else {
                                    iEventDetail.setEvent(result);
                                    iEventDetail.show();
                                }
                            }
                        }, MESSAGES.waitLoading(detail.getName()));
            } else {
                iRootPanel.setWidget(iPanel);
                UniTimePageLabel.getInstance().setPageName(getPageName());
            }
            changeUrl();
        }

        @Override
        protected void onShow() {
            if (iTable != null)
                iTable.clearHover();
            iRootPanel.setWidget(iEventAdd);
            changeUrl();
        }
    };

    iMeetingClickHandler = new MeetingClickHandler() {
        @Override
        public void onMeetingClick(final MeetingClickEvent event) {
            if (!event.getEvent().isCanView())
                return;
            LoadingWidget.execute(EventDetailRpcRequest.requestEventDetails(iSession.getAcademicSessionId(),
                    event.getEvent().getId()), new AsyncCallback<EventInterface>() {
                        @Override
                        public void onFailure(Throwable caught) {
                            UniTimeNotifications.error(
                                    MESSAGES.failedLoad(event.getEvent().getName(), caught.getMessage()),
                                    caught);
                        }

                        @Override
                        public void onSuccess(EventInterface result) {
                            LoadingWidget.getInstance().hide();
                            iEventDetail.setEvent(result);
                            iEventDetail.show();
                        }
                    }, MESSAGES.waitLoading(event.getEvent().getName()));
        }
    };

    iTable = new EventMeetingTable(EventMeetingTable.Mode.ListOfEvents, true, this) {
        @Override
        protected void onSortByChanded(EventComparator.EventMeetingSortBy sortBy, boolean asc) {
            changeUrl();
        }

        @Override
        protected void onColumnShownOrHid(int eventCookieFlags) {
            changeUrl();
        }
    };
    iTable.setMeetingFilter(this);
    iTable.addMouseClickListener(new MouseClickListener<EventMeetingRow>() {
        @Override
        public void onMouseClick(final TableEvent<EventMeetingRow> event) {
            if (event.getData() == null)
                return;
            final EventInterface e = event.getData().getEvent();
            if (e == null || !e.isCanView())
                return;
            LoadingWidget.execute(
                    EventDetailRpcRequest.requestEventDetails(iSession.getAcademicSessionId(), e.getId()),
                    new AsyncCallback<EventInterface>() {
                        @Override
                        public void onFailure(Throwable caught) {
                            UniTimeNotifications.error(MESSAGES.failedLoad(e.getName(), caught.getMessage()),
                                    caught);
                        }

                        @Override
                        public void onSuccess(EventInterface result) {
                            LoadingWidget.getInstance().hide();
                            iEventDetail.setEvent(result);
                            iEventDetail.show();
                        }
                    }, MESSAGES.waitLoading(e.getName()));
        }
    });

    iApproveDialog = new ApproveDialog(this) {
        @Override
        protected void onSubmit(ApproveEventRpcRequest.Operation operation, List<EventMeetingRow> data,
                String message, boolean emailConfirmation) {
            Map<EventInterface, List<MeetingInterface>> event2meetings = new HashMap<EventInterface, List<MeetingInterface>>();
            List<EventInterface> events = new ArrayList<EventInterface>();
            for (EventMeetingRow row : data) {
                if (row.getMeeting() != null) {
                    List<MeetingInterface> meetings = event2meetings.get(row.getEvent());
                    if (meetings == null) {
                        meetings = new ArrayList<EventInterface.MeetingInterface>();
                        event2meetings.put(row.getEvent(), meetings);
                        events.add(row.getEvent());
                    }
                    meetings.add(row.getMeeting());
                } else {
                    events.add(row.getEvent());
                }
            }
            onSubmit(operation, events.iterator(), event2meetings, message, emailConfirmation,
                    new GwtRpcResponseList<EventInterface>(iData));
        }

        protected void onSubmit(final ApproveEventRpcRequest.Operation operation,
                final Iterator<EventInterface> events,
                final Map<EventInterface, List<MeetingInterface>> event2meetings, final String message,
                final boolean emailConfirmation, final GwtRpcResponseList<EventInterface> data) {
            if (events.hasNext()) {
                final EventInterface event = events.next();
                List<MeetingInterface> meetings = event2meetings.get(event);
                if (meetings == null) {
                    meetings = new ArrayList<MeetingInterface>();
                    for (MeetingInterface meeting : event.getMeetings()) {
                        switch (operation) {
                        case APPROVE:
                        case REJECT:
                            if (meeting.isCanApprove() && !filter(event, meeting))
                                meetings.add(meeting);
                            break;
                        case CANCEL:
                            if (meeting.isCanCancel() && !filter(event, meeting))
                                meetings.add(meeting);
                            break;
                        case INQUIRE:
                            if (meeting.isCanInquire() && !filter(event, meeting))
                                meetings.add(meeting);
                            break;
                        }
                    }
                }
                if (meetings.isEmpty()) {
                    onSubmit(operation, events, event2meetings, message, emailConfirmation, data);
                } else {
                    switch (operation) {
                    case APPROVE:
                        LoadingWidget.getInstance().show(MESSAGES.waitForApproval(event.getName()));
                        break;
                    case INQUIRE:
                        LoadingWidget.getInstance().show(MESSAGES.waitForInquiry(event.getName()));
                        break;
                    case REJECT:
                        LoadingWidget.getInstance().show(MESSAGES.waitForRejection(event.getName()));
                        break;
                    case CANCEL:
                        LoadingWidget.getInstance().show(MESSAGES.waitForCancellation(event.getName()));
                        break;
                    }
                    RPC.execute(
                            ApproveEventRpcRequest.createRequest(operation, iSession.getAcademicSessionId(),
                                    event, meetings, message, emailConfirmation),
                            new AsyncCallback<SaveOrApproveEventRpcResponse>() {
                                @Override
                                public void onFailure(Throwable caught) {
                                    LoadingWidget.getInstance().hide();
                                    UniTimeNotifications.error(caught);
                                    onSubmit(operation, events, event2meetings, message, emailConfirmation,
                                            data);
                                }

                                @Override
                                public void onSuccess(SaveOrApproveEventRpcResponse result) {
                                    LoadingWidget.getInstance().hide();
                                    if (result.hasMessages())
                                        for (MessageInterface m : result.getMessages()) {
                                            if (m.isError())
                                                UniTimeNotifications.warn(m.getMessage());
                                            else if (m.isWarning())
                                                UniTimeNotifications.error(m.getMessage());
                                            else
                                                UniTimeNotifications.info(m.getMessage());
                                        }
                                    switch (operation) {
                                    case APPROVE:
                                    case REJECT:
                                    case CANCEL:
                                        tinker(data, event.getId(), result.getEvent());
                                    }
                                    onSubmit(operation, events, event2meetings, message, emailConfirmation,
                                            data);
                                }
                            });
                }
            } else {
                LoadingWidget.getInstance().hide();
                populate(data);
            }
        }
    };
    iTable.setOperation(EventMeetingTable.OperationType.Approve, iApproveDialog);
    iTable.setOperation(EventMeetingTable.OperationType.Reject, iApproveDialog);
    iTable.setOperation(EventMeetingTable.OperationType.Inquire, iApproveDialog);
    iTable.setOperation(EventMeetingTable.OperationType.Cancel, iApproveDialog);

    History.addValueChangeHandler(new ValueChangeHandler<String>() {
        @Override
        public void onValueChange(ValueChangeEvent<String> event) {
            if (iInitialized) {
                if ("event=add".equals(event.getValue()))
                    iHistoryToken.parse(event.getValue());
                else
                    iHistoryToken.reset(event.getValue());
                setup(false);
                if (LoadingWidget.getInstance().isShowing())
                    LoadingWidget.getInstance().hide();
            }
        }
    });
}

From source file:org.unitime.timetable.gwt.client.hql.SavedHQLPage.java

License:Apache License

public SavedHQLPage() {
    iAppearance = Window.Location.getParameter("appearance");
    if ("courses".equalsIgnoreCase(iAppearance)) {
        UniTimePageLabel.getInstance().setPageName(MESSAGES.pageCourseReports());
    } else if ("exams".equalsIgnoreCase(iAppearance)) {
        UniTimePageLabel.getInstance().setPageName(MESSAGES.pageExaminationReports());
    } else if ("sectioning".equalsIgnoreCase(iAppearance)) {
        UniTimePageLabel.getInstance().setPageName(MESSAGES.pageStudentSectioningReports());
    } else if ("events".equalsIgnoreCase(iAppearance)) {
        UniTimePageLabel.getInstance().setPageName(MESSAGES.pageEventReports());
    } else if ("administration".equalsIgnoreCase(iAppearance)) {
        UniTimePageLabel.getInstance().setPageName(MESSAGES.pageAdministrationReports());
    } else {//from  w ww .  j  av a2  s . c o  m
        iAppearance = "courses";
        UniTimePageLabel.getInstance().setPageName(MESSAGES.pageCourseReports());
    }

    iForm = new SimpleForm(2);

    iForm.removeStyleName("unitime-NotPrintableBottomLine");

    iHeader = new UniTimeHeaderPanel(MESSAGES.sectFilter());
    iHeader.addButton("execute", MESSAGES.buttonExecute(), 75, new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            iFirstLine = 0;
            iLastSort = 0;
            execute();
        }
    });

    iHeader.addButton("print", MESSAGES.buttonPrint(), 75, new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            HQLExecuteRpcRequest request = new HQLExecuteRpcRequest();
            Long id = Long.valueOf(
                    iQuerySelector.getWidget().getValue(iQuerySelector.getWidget().getSelectedIndex()));
            for (SavedHQLInterface.Query q : iQueries) {
                if (id.equals(q.getId())) {
                    request.setQuery(q);
                    break;
                }
            }
            if (request.getQuery() == null) {
                iHeader.setErrorMessage(MESSAGES.errorNoReportSelected());
                return;
            }
            final SimpleForm form = new SimpleForm();
            form.addHeaderRow(request.getQuery().getName());
            if (!request.getQuery().getDescription().isEmpty())
                form.addRow(MESSAGES.propDescription(), new HTML(request.getQuery().getDescription()));

            for (int i = 0; i < iOptions.size(); i++) {
                SavedHQLInterface.Option option = iOptions.get(i);
                if (request.getQuery().getQuery().contains("%" + option.getType() + "%")) {
                    ListBox list = ((UniTimeWidget<ListBox>) iForm.getWidget(3 + i, 1)).getWidget();
                    String value = "";
                    String values = "";
                    boolean allSelected = true;
                    if (list.isMultipleSelect()) {
                        for (int j = 0; j < list.getItemCount(); j++)
                            if (list.isItemSelected(j)) {
                                if (!value.isEmpty()) {
                                    value += ",";
                                    values += ", ";
                                }
                                value += list.getValue(j);
                                values += list.getItemText(j);
                            } else {
                                allSelected = false;
                            }
                        if (allSelected)
                            values = MESSAGES.itemAll();
                    } else if (list.getSelectedIndex() > 0) {
                        value = list.getValue(list.getSelectedIndex());
                        values = list.getItemText(list.getSelectedIndex());
                    }
                    if (value.isEmpty()) {
                        iHeader.setErrorMessage(MESSAGES.errorItemNotSelected(option.getName()));
                        return;
                    }
                    request.addOption(option.getType(), value);
                    form.addRow(option.getName() + ":", new Label(values, true));
                }
            }
            LoadingWidget.getInstance().show(MESSAGES.waitExecuting(request.getQuery().getName()));
            request.setFromRow(0);
            request.setMaxRows(10000);
            RPC.execute(request, new AsyncCallback<Table>() {
                @Override
                public void onFailure(Throwable caught) {
                    iTableHeader.setErrorMessage(caught.getMessage(), true);
                    LoadingWidget.getInstance().hide();
                }

                @Override
                public void onSuccess(Table result) {
                    LoadingWidget.getInstance().hide();
                    if (result == null || result.size() <= 1) {
                        iTableHeader.setMessage(MESSAGES.errorNoResults());
                        return;
                    }
                    final UniTimeTable<String[]> table = new UniTimeTable<String[]>();
                    String firstField = null;
                    int nrCols = 0;
                    for (int i = 0; i < result.size(); i++) {
                        String[] row = result.get(i);
                        List<Widget> line = new ArrayList<Widget>();
                        if (i == 0) {
                            firstField = row[0];
                            nrCols = row.length;
                            for (String x : row) {
                                final String name = x.replace('_', ' ').trim();
                                UniTimeTableHeader h = new UniTimeTableHeader(name, 1);
                                line.add(h);
                            }
                        } else {
                            for (String x : row) {
                                line.add(new HTML(x == null ? "" : x.replace("\\n", "<br>")));
                            }
                        }
                        table.addRow(i == 0 ? null : row, line);
                    }
                    if (firstField != null && firstField.startsWith("__"))
                        table.setColumnVisible(0, false);
                    if (iLastSort != 0 && Math.abs(iLastSort) <= nrCols) {
                        table.sort(table.getHeader(Math.abs(iLastSort) - 1), new Comparator<String[]>() {
                            @Override
                            public int compare(String[] o1, String[] o2) {
                                return SavedHQLPage.compare(o1, o2, Math.abs(iLastSort) - 1);
                            }
                        }, iLastSort > 0);
                    }
                    table.getElement().getStyle().setWidth(1040, Unit.PX);

                    // Move header row to thead
                    Element headerRow = table.getRowFormatter().getElement(0);
                    Element tableElement = table.getElement();
                    Element thead = DOM.createTHead();
                    tableElement.insertFirst(thead);
                    headerRow.getParentElement().removeChild(headerRow);
                    thead.appendChild(headerRow);

                    final Element div = DOM.createDiv();
                    div.appendChild(form.getElement());
                    div.appendChild(table.getElement());

                    String name = MESSAGES.pageCourseReports();
                    if ("courses".equalsIgnoreCase(iAppearance)) {
                        name = MESSAGES.pageCourseReports();
                    } else if ("exams".equalsIgnoreCase(iAppearance)) {
                        name = MESSAGES.pageExaminationReports();
                    } else if ("sectioning".equalsIgnoreCase(iAppearance)) {
                        name = MESSAGES.pageStudentSectioningReports();
                    } else if ("events".equalsIgnoreCase(iAppearance)) {
                        name = MESSAGES.pageEventReports();
                    } else if ("administration".equalsIgnoreCase(iAppearance)) {
                        name = MESSAGES.pageAdministrationReports();
                    }
                    final String pageName = name;

                    ToolBox.print(new ToolBox.Page() {
                        @Override
                        public String getName() {
                            return pageName;
                        }

                        @Override
                        public String getUser() {
                            return "";
                        }

                        @Override
                        public String getSession() {
                            return "";
                        }

                        @Override
                        public Element getBody() {
                            return div;
                        }
                    });

                }
            });
        }
    });

    iHeader.addButton("export", MESSAGES.buttonExportCSV(), 85, new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            Long id = Long.valueOf(
                    iQuerySelector.getWidget().getValue(iQuerySelector.getWidget().getSelectedIndex()));
            SavedHQLInterface.Query query = null;
            for (SavedHQLInterface.Query q : iQueries) {
                if (id.equals(q.getId())) {
                    query = q;
                    break;
                }
            }
            if (query == null) {
                iHeader.setErrorMessage(MESSAGES.errorNoReportSelected());
                return;
            }
            String params = "";
            for (int i = 0; i < iOptions.size(); i++) {
                SavedHQLInterface.Option option = iOptions.get(i);
                if (query.getQuery().contains("%" + option.getType() + "%")) {
                    ListBox list = ((UniTimeWidget<ListBox>) iForm.getWidget(3 + i, 1)).getWidget();
                    String value = "";
                    boolean allSelected = true;
                    if (list.isMultipleSelect()) {
                        for (int j = 0; j < list.getItemCount(); j++)
                            if (list.isItemSelected(j)) {
                                if (!value.isEmpty())
                                    value += ",";
                                value += list.getValue(j);
                            } else {
                                allSelected = false;
                            }
                    } else if (list.getSelectedIndex() > 0) {
                        value = list.getValue(list.getSelectedIndex());
                    }
                    if (value.isEmpty()) {
                        iHeader.setErrorMessage(MESSAGES.errorItemNotSelected(option.getName()));
                        return;
                    }
                    if (!params.isEmpty())
                        params += ":";
                    params += (list.isMultipleSelect() && allSelected ? "" : value);
                }
            }
            String reportId = iQuerySelector.getWidget()
                    .getValue(iQuerySelector.getWidget().getSelectedIndex());

            RPC.execute(EncodeQueryRpcRequest.encode(
                    "output=hql-report.csv&report=" + reportId + "&params=" + params + "&sort=" + iLastSort),
                    new AsyncCallback<EncodeQueryRpcResponse>() {
                        @Override
                        public void onFailure(Throwable caught) {
                        }

                        @Override
                        public void onSuccess(EncodeQueryRpcResponse result) {
                            ToolBox.open(GWT.getHostPageBaseURL() + "export?q=" + result.getQuery());
                        }
                    });
        }
    });

    iHeader.addButton("edit", MESSAGES.buttonEdit(), 75, new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            SavedHQLInterface.Query query = null;
            Long id = Long.valueOf(
                    iQuerySelector.getWidget().getValue(iQuerySelector.getWidget().getSelectedIndex()));
            for (SavedHQLInterface.Query q : iQueries) {
                if (id.equals(q.getId())) {
                    query = q;
                    break;
                }
            }
            if (query == null) {
                iHeader.setErrorMessage(MESSAGES.errorNoReportSelected());
                return;
            }
            openDialog(query);
        }
    });

    iHeader.addButton("add", MESSAGES.buttonAddNew(), 75, new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            openDialog(null);
        }
    });

    iForm.addHeaderRow(iHeader);
    iHeader.setEnabled("execute", false);
    iHeader.setEnabled("edit", false);
    iHeader.setEnabled("add", false);
    iHeader.setEnabled("print", false);
    iHeader.setEnabled("export", false);

    iForm.getColumnFormatter().setWidth(0, "120px");
    iForm.getColumnFormatter().setWidth(1, "100%");

    iQuerySelector = new UniTimeWidget<ListBox>(new ListBox());
    iForm.addRow(MESSAGES.propReport(), iQuerySelector);
    iQuerySelector.getWidget().addChangeHandler(new ChangeHandler() {
        @Override
        public void onChange(ChangeEvent event) {
            iQuerySelector.clearHint();
            iQuerySelector.setPrintText(
                    iQuerySelector.getWidget().getItemText(iQuerySelector.getWidget().getSelectedIndex()));
            queryChanged();
        }
    });
    iDescription = new HTML("");
    iForm.addRow(MESSAGES.propDescription(), iDescription);
    iForm.getCellFormatter().setVerticalAlignment(2, 0, HasVerticalAlignment.ALIGN_TOP);

    LoadingWidget.getInstance().show(MESSAGES.waitLoadingReports());
    RPC.execute(new HQLOptionsRpcRequest(), new AsyncCallback<HQLOptionsInterface>() {
        @Override
        public void onFailure(Throwable caught) {
            iHeader.setErrorMessage(caught.getMessage());
            LoadingWidget.getInstance().hide();
            ToolBox.checkAccess(caught);
        }

        @Override
        public void onSuccess(HQLOptionsInterface result) {
            iFlags = result.getFlags();
            iOptions = result.getOptions();
            iHeader.setEnabled("add", result.isEditable());
            for (int i = 0; i < iOptions.size(); i++) {
                SavedHQLInterface.Option option = iOptions.get(i);
                ListBox list = new ListBox();
                list.setMultipleSelect(option.isMultiSelect());
                if (!option.isMultiSelect())
                    list.addItem(MESSAGES.itemSelect(), "-1");
                for (SavedHQLInterface.IdValue v : option.values())
                    list.addItem(v.getText(), v.getValue());
                final UniTimeWidget<ListBox> u = new UniTimeWidget<ListBox>(list);
                iForm.addRow(option.getName() + ":", u);
                iForm.getCellFormatter().setVerticalAlignment(3 + i, 0, HasVerticalAlignment.ALIGN_TOP);
                iForm.getRowFormatter().setVisible(3 + i, false);
                if (list.isMultipleSelect()) {
                    for (int j = 0; j < list.getItemCount(); j++)
                        list.setItemSelected(j, true);
                    u.setPrintText(MESSAGES.itemAll());
                } else if (list.getItemCount() == 2) {
                    list.setSelectedIndex(1);
                    u.setPrintText(list.getItemText(1));
                }
                list.addChangeHandler(new ChangeHandler() {
                    @Override
                    public void onChange(ChangeEvent event) {
                        u.clearHint();
                        String selected = "";
                        boolean hasAll = true;
                        for (int i = 0; i < u.getWidget().getItemCount(); i++) {
                            if (u.getWidget().isItemSelected(i)) {
                                if (!selected.isEmpty())
                                    selected += ",";
                                selected += u.getWidget().getItemText(i);
                            } else
                                hasAll = false;
                        }
                        if (hasAll && u.getWidget().getItemCount() > 5)
                            selected = MESSAGES.itemAll();
                        if (selected.length() > 150)
                            selected = selected.substring(0, 147) + "...";
                        u.setPrintText(selected);
                        iHeader.clearMessage();
                    }
                });
            }
            iTableHeader = new UniTimeHeaderPanel(MESSAGES.sectResults());
            iTableHeader.addButton("previous", MESSAGES.buttonPrevious(), 75, new ClickHandler() {
                @Override
                public void onClick(ClickEvent event) {
                    iFirstLine -= 100;
                    execute();
                }
            });
            iTableHeader.addButton("next", MESSAGES.buttonNext(), 75, new ClickHandler() {
                @Override
                public void onClick(ClickEvent event) {
                    iFirstLine += 100;
                    execute();
                }
            });
            iTableHeader.setEnabled("previous", false);
            iTableHeader.setEnabled("next", false);
            iForm.addHeaderRow(iTableHeader);
            iForm.addRow(iTable);
            iForm.addBottomRow(iHeader.clonePanel(""));
            loadQueries(null, true);
        }
    });

    iTable.addMouseClickListener(new UniTimeTable.MouseClickListener<String[]>() {
        @Override
        public void onMouseClick(UniTimeTable.TableEvent<String[]> event) {
            if (event.getRow() > 0 && event.getData() != null) {
                if ("__Class".equals(iFirstField))
                    ToolBox.open(GWT.getHostPageBaseURL() + "classDetail.do?cid=" + event.getData()[0]);
                else if ("__Offering".equals(iFirstField))
                    ToolBox.open(GWT.getHostPageBaseURL() + "instructionalOfferingDetail.do?op=view&io="
                            + event.getData()[0]);
                else if ("__Subpart".equals(iFirstField))
                    ToolBox.open(GWT.getHostPageBaseURL() + "schedulingSubpartDetail.do?ssuid="
                            + event.getData()[0]);
                else if ("__Room".equals(iFirstField))
                    ToolBox.open(
                            GWT.getHostPageBaseURL() + "gwt.jsp?page=rooms&back=1&id=" + event.getData()[0]);
                else if ("__Instructor".equals(iFirstField))
                    ToolBox.open(GWT.getHostPageBaseURL() + "instructorDetail.do?instructorId="
                            + event.getData()[0]);
                else if ("__Exam".equals(iFirstField))
                    ToolBox.open(GWT.getHostPageBaseURL() + "examDetail.do?examId=" + event.getData()[0]);
                else if ("__Event".equals(iFirstField))
                    ToolBox.open(GWT.getHostPageBaseURL() + "gwt.jsp?page=events#event=" + event.getData()[0]);
            }
        }
    });

    initWidget(iForm);

    History.addValueChangeHandler(new ValueChangeHandler<String>() {
        @Override
        public void onValueChange(ValueChangeEvent<String> event) {
            reload(event.getValue());
        }
    });
}

From source file:org.unitime.timetable.gwt.client.pointintimedata.PointInTimeDataReportsPage.java

License:Apache License

public PointInTimeDataReportsPage() {
    UniTimePageLabel.getInstance().setPageName(MESSAGES.pagePointInTimeDataReports());

    iForm = new SimpleForm(2);

    iForm.removeStyleName("unitime-NotPrintableBottomLine");

    iHeader = new UniTimeHeaderPanel(MESSAGES.sectFilter());
    iHeader.addButton("execute", MESSAGES.buttonExecute(), 75, new ClickHandler() {
        @Override//  w ww  . ja  v  a2  s  .c  o m
        public void onClick(ClickEvent event) {
            iLastSort = 0;
            execute();
        }
    });

    iHeader.addButton("print", MESSAGES.buttonPrint(), 75, new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            PITDExecuteRpcRequest request = new PITDExecuteRpcRequest();
            String id = iReportSelector.getWidget().getValue(iReportSelector.getWidget().getSelectedIndex());
            for (PointInTimeDataReportsInterface.Report q : iReports) {
                if (id.equals(q.getId())) {
                    request.setReport(q);
                    break;
                }
            }
            if (request.getReport() == null) {
                iHeader.setErrorMessage(MESSAGES.errorNoReportSelected());
                return;
            }
            final SimpleForm form = new SimpleForm();
            form.addHeaderRow(request.getReport().getName());
            if (!request.getReport().getDescription().isEmpty())
                form.addRow(MESSAGES.propDescription(), new HTML(request.getReport().getDescription()));

            for (int i = 0; i < iParameters.size(); i++) {
                PointInTimeDataReportsInterface.Parameter parameter = iParameters.get(i);
                if (request.getReport().parametersContain(parameter.getType())) {
                    if (parameter.isTextField()) {
                        TextBox textBox = ((UniTimeWidget<TextBox>) iForm.getWidget(3 + i, 1)).getWidget();
                        String value = textBox.getText();
                        if (value.isEmpty()) {
                            iHeader.setErrorMessage(MESSAGES.errorItemNotSelected(parameter.getName()));
                            return;
                        }
                        request.addParameter(parameter.getType(), value);
                        form.addRow(parameter.getName() + ":", new Label(value, true));
                    } else {
                        ListBox list = ((UniTimeWidget<ListBox>) iForm.getWidget(3 + i, 1)).getWidget();
                        String value = "";
                        String values = "";
                        boolean allSelected = true;
                        if (list.isMultipleSelect()) {
                            for (int j = 0; j < list.getItemCount(); j++)
                                if (list.isItemSelected(j)) {
                                    if (!value.isEmpty()) {
                                        value += ",";
                                        values += ", ";
                                    }
                                    value += list.getValue(j);
                                    values += list.getItemText(j);
                                } else {
                                    allSelected = false;
                                }
                            if (allSelected)
                                values = MESSAGES.itemAll();
                        } else if (list.getSelectedIndex() > 0) {
                            value = list.getValue(list.getSelectedIndex());
                            values = list.getItemText(list.getSelectedIndex());
                        }
                        if (value.isEmpty()) {
                            iHeader.setErrorMessage(MESSAGES.errorItemNotSelected(parameter.getName()));
                            return;
                        }
                        request.addParameter(parameter.getType(), value);
                        form.addRow(parameter.getName() + ":", new Label(values, true));
                    }
                }
            }
            LoadingWidget.getInstance().show(MESSAGES.waitExecuting(request.getReport().getName()));
            RPC.execute(request, new AsyncCallback<Table>() {
                @Override
                public void onFailure(Throwable caught) {
                    iTableHeader.setErrorMessage(caught.getMessage());
                    LoadingWidget.getInstance().hide();
                }

                @Override
                public void onSuccess(Table result) {
                    LoadingWidget.getInstance().hide();
                    if (result == null || result.size() <= 1) {
                        iTableHeader.setMessage(MESSAGES.errorNoResults());
                        return;
                    }
                    final UniTimeTable<String[]> table = new UniTimeTable<String[]>();
                    String firstField = null;
                    int nrCols = 0;
                    for (int i = 0; i < result.size(); i++) {
                        String[] row = result.get(i);
                        List<Widget> line = new ArrayList<Widget>();
                        if (i == 0) {
                            firstField = row[0];
                            nrCols = row.length;
                            for (String x : row) {
                                final String name = x.replace('_', ' ').trim();
                                UniTimeTableHeader h = new UniTimeTableHeader(name, 1);
                                line.add(h);
                            }
                        } else {
                            for (String x : row) {
                                line.add(new HTML(x == null ? "" : x.replace("\\n", "<br>")));
                            }
                        }
                        table.addRow(i == 0 ? null : row, line);
                    }
                    if (firstField != null && firstField.startsWith("__"))
                        table.setColumnVisible(0, false);
                    if (iLastSort != 0 && Math.abs(iLastSort) <= nrCols) {
                        table.sort(table.getHeader(Math.abs(iLastSort) - 1), new Comparator<String[]>() {
                            @Override
                            public int compare(String[] o1, String[] o2) {
                                return PointInTimeDataReportsPage.compare(o1, o2, Math.abs(iLastSort) - 1);
                            }
                        }, iLastSort > 0);
                    }
                    table.getElement().getStyle().setWidth(1040, Unit.PX);

                    // Move header row to thead
                    Element headerRow = table.getRowFormatter().getElement(0);
                    Element tableElement = table.getElement();
                    Element thead = DOM.createTHead();
                    tableElement.insertFirst(thead);
                    headerRow.getParentElement().removeChild(headerRow);
                    thead.appendChild(headerRow);

                    final Element div = DOM.createDiv();
                    div.appendChild(form.getElement());
                    div.appendChild(table.getElement());

                    String name = MESSAGES.pagePointInTimeDataReports();
                    final String pageName = name;

                    ToolBox.print(new ToolBox.Page() {
                        @Override
                        public String getName() {
                            return pageName;
                        }

                        @Override
                        public String getUser() {
                            return "";
                        }

                        @Override
                        public String getSession() {
                            return "";
                        }

                        @Override
                        public Element getBody() {
                            return div;
                        }
                    });

                }
            });
        }
    });

    iHeader.addButton("export", MESSAGES.buttonExportCSV(), 85, new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            String id = iReportSelector.getWidget().getValue(iReportSelector.getWidget().getSelectedIndex());
            PointInTimeDataReportsInterface.Report query = null;
            for (PointInTimeDataReportsInterface.Report q : iReports) {
                if (id.equals(q.getId())) {
                    query = q;
                    break;
                }
            }
            if (query == null) {
                iHeader.setErrorMessage(MESSAGES.errorNoReportSelected());
                return;
            }
            String params = "";
            for (int i = 0; i < iParameters.size(); i++) {
                PointInTimeDataReportsInterface.Parameter parameter = iParameters.get(i);
                if (query.parametersContain(parameter.getType())) {
                    if (parameter.isTextField()) {
                        TextBox textBox = ((UniTimeWidget<TextBox>) iForm.getWidget(3 + i, 1)).getWidget();
                        String value = textBox.getText();
                        if (value.isEmpty()) {
                            iHeader.setErrorMessage(MESSAGES.errorItemNotSelected(parameter.getName()));
                            return;
                        }
                        if (!params.isEmpty())
                            params += ":";
                        params += (value == null ? "" : value);
                    } else {

                        ListBox list = ((UniTimeWidget<ListBox>) iForm.getWidget(3 + i, 1)).getWidget();
                        String value = "";
                        boolean allSelected = true;
                        if (list.isMultipleSelect()) {
                            for (int j = 0; j < list.getItemCount(); j++)
                                if (list.isItemSelected(j)) {
                                    if (!value.isEmpty())
                                        value += ",";
                                    value += list.getValue(j);
                                } else {
                                    allSelected = false;
                                }
                        } else if (list.getSelectedIndex() > 0) {
                            value = list.getValue(list.getSelectedIndex());
                        }
                        if (value.isEmpty()) {
                            iHeader.setErrorMessage(MESSAGES.errorItemNotSelected(parameter.getName()));
                            return;
                        }
                        if (!params.isEmpty())
                            params += ":";
                        params += (list.isMultipleSelect() && allSelected ? "" : value);
                    }
                }
            }
            String reportId = iReportSelector.getWidget()
                    .getValue(iReportSelector.getWidget().getSelectedIndex());

            RPC.execute(EncodeQueryRpcRequest.encode(
                    "output=pitd-report.csv&report=" + reportId + "&params=" + params + "&sort=" + iLastSort),
                    new AsyncCallback<EncodeQueryRpcResponse>() {
                        @Override
                        public void onFailure(Throwable caught) {
                        }

                        @Override
                        public void onSuccess(EncodeQueryRpcResponse result) {
                            ToolBox.open(GWT.getHostPageBaseURL() + "export?q=" + result.getQuery());
                        }
                    });
        }
    });

    iForm.addHeaderRow(iHeader);
    iHeader.setEnabled("execute", false);
    iHeader.setEnabled("print", false);
    iHeader.setEnabled("export", false);

    iForm.getColumnFormatter().setWidth(0, "120px");
    iForm.getColumnFormatter().setWidth(1, "100%");

    iReportSelector = new UniTimeWidget<ListBox>(new ListBox());
    iForm.addRow(MESSAGES.propReport(), iReportSelector);
    iReportSelector.getWidget().addChangeHandler(new ChangeHandler() {
        @Override
        public void onChange(ChangeEvent event) {
            iReportSelector.clearHint();
            iReportSelector.setPrintText(
                    iReportSelector.getWidget().getItemText(iReportSelector.getWidget().getSelectedIndex()));
            queryChanged();
        }
    });
    iDescription = new HTML("");
    iForm.addRow(MESSAGES.propDescription(), iDescription);
    iForm.getCellFormatter().setVerticalAlignment(2, 0, HasVerticalAlignment.ALIGN_TOP);

    LoadingWidget.getInstance().show(MESSAGES.waitLoadingReports());
    RPC.execute(new PITDParametersRpcRequest(), new AsyncCallback<PITDParametersInterface>() {
        @Override
        public void onFailure(Throwable caught) {
            iHeader.setErrorMessage(caught.getMessage());
            LoadingWidget.getInstance().hide();
            ToolBox.checkAccess(caught);
        }

        @Override
        public void onSuccess(PITDParametersInterface result) {
            iParameters = result.getParameters();
            for (int i = 0; i < iParameters.size(); i++) {
                PointInTimeDataReportsInterface.Parameter parameter = iParameters.get(i);
                if (parameter.isTextField()) {
                    TextBox text = new TextBox();
                    if (parameter.getDefaultTextValue() != null) {
                        text.setText(parameter.getDefaultTextValue());
                        text.setValue(parameter.getDefaultTextValue());
                    }
                    final UniTimeWidget<TextBox> u = new UniTimeWidget<TextBox>(text);
                    iForm.addRow(parameter.getName() + ":", u);
                    iForm.getCellFormatter().setVerticalAlignment(3 + i, 0, HasVerticalAlignment.ALIGN_TOP);
                    iForm.getRowFormatter().setVisible(3 + i, false);
                    u.setPrintText(text.getValue());
                    text.addChangeHandler(new ChangeHandler() {
                        @Override
                        public void onChange(ChangeEvent event) {
                            u.clearHint();
                            String entered = u.getWidget().getValue();
                            u.setPrintText(entered);
                            iHeader.clearMessage();
                        }
                    });
                } else {
                    ListBox list = new ListBox();
                    list.setMultipleSelect(parameter.isMultiSelect());
                    if (!parameter.isMultiSelect())
                        list.addItem(MESSAGES.itemSelect(), "-1");
                    for (PointInTimeDataReportsInterface.IdValue v : parameter.values())
                        list.addItem(v.getText(), v.getValue());
                    final UniTimeWidget<ListBox> u = new UniTimeWidget<ListBox>(list);
                    iForm.addRow(parameter.getName() + ":", u);
                    iForm.getCellFormatter().setVerticalAlignment(3 + i, 0, HasVerticalAlignment.ALIGN_TOP);
                    iForm.getRowFormatter().setVisible(3 + i, false);
                    if (list.isMultipleSelect()) {
                        for (int j = 0; j < list.getItemCount(); j++)
                            list.setItemSelected(j, true);
                        u.setPrintText(MESSAGES.itemAll());
                    } else if (list.getItemCount() == 2) {
                        list.setSelectedIndex(1);
                        u.setPrintText(list.getItemText(1));
                    }
                    list.addChangeHandler(new ChangeHandler() {
                        @Override
                        public void onChange(ChangeEvent event) {
                            u.clearHint();
                            String selected = "";
                            boolean hasAll = true;
                            for (int i = 0; i < u.getWidget().getItemCount(); i++) {
                                if (u.getWidget().isItemSelected(i)) {
                                    if (!selected.isEmpty())
                                        selected += ",";
                                    selected += u.getWidget().getItemText(i);
                                } else
                                    hasAll = false;
                            }
                            if (hasAll && u.getWidget().getItemCount() > 5)
                                selected = MESSAGES.itemAll();
                            if (selected.length() > 150)
                                selected = selected.substring(0, 147) + "...";
                            u.setPrintText(selected);
                            iHeader.clearMessage();
                        }
                    });

                }
            }
            iTableHeader = new UniTimeHeaderPanel(MESSAGES.sectResults());
            iForm.addHeaderRow(iTableHeader);
            iForm.addRow(iTable);
            iForm.addBottomRow(iHeader.clonePanel(""));
            loadQueries(null, true);
        }
    });

    iTable.addMouseClickListener(new UniTimeTable.MouseClickListener<String[]>() {
        @Override
        public void onMouseClick(UniTimeTable.TableEvent<String[]> event) {
            if (event.getRow() > 0 && event.getData() != null) {
                if ("__Class".equals(iFirstField))
                    ToolBox.open(GWT.getHostPageBaseURL() + "classDetail.do?cid=" + event.getData()[0]);
                else if ("__Offering".equals(iFirstField))
                    ToolBox.open(GWT.getHostPageBaseURL() + "instructionalOfferingDetail.do?op=view&io="
                            + event.getData()[0]);
                else if ("__Subpart".equals(iFirstField))
                    ToolBox.open(GWT.getHostPageBaseURL() + "schedulingSubpartDetail.do?ssuid="
                            + event.getData()[0]);
                else if ("__Room".equals(iFirstField))
                    ToolBox.open(
                            GWT.getHostPageBaseURL() + "gwt.jsp?page=rooms&back=1&id=" + event.getData()[0]);
                else if ("__Instructor".equals(iFirstField))
                    ToolBox.open(GWT.getHostPageBaseURL() + "instructorDetail.do?instructorId="
                            + event.getData()[0]);
                else if ("__Exam".equals(iFirstField))
                    ToolBox.open(GWT.getHostPageBaseURL() + "examDetail.do?examId=" + event.getData()[0]);
                else if ("__Event".equals(iFirstField))
                    ToolBox.open(GWT.getHostPageBaseURL() + "gwt.jsp?page=events#event=" + event.getData()[0]);
            }
        }
    });

    initWidget(iForm);

    History.addValueChangeHandler(new ValueChangeHandler<String>() {
        @Override
        public void onValueChange(ValueChangeEvent<String> event) {
            reload(event.getValue());
        }
    });
}

From source file:org.unitime.timetable.gwt.client.rooms.RoomsTable.java

License:Apache License

public RoomsTable(RoomsPageMode mode, boolean selectable) {
    setStyleName("unitime-Rooms");
    iMode = mode;/*from  w  w w .j  a  v a2  s  . co m*/
    iSelectable = selectable;

    addOperation(new Operation() {

        @Override
        public void execute() {
            final RoomsTable table = new RoomsTable(iMode);
            table.setProperties(iProperties);
            table.setDepartment(iDepartment);
            for (int i = 1; i < getRowCount(); i++)
                table.addRoom(getData(i));
            table.getElement().getStyle().setWidth(1040, Unit.PX);

            // Move header row to thead
            Element headerRow = table.getRowFormatter().getElement(0);
            Element tableElement = table.getElement();
            Element thead = DOM.createTHead();
            tableElement.insertFirst(thead);
            headerRow.getParentElement().removeChild(headerRow);
            thead.appendChild(headerRow);

            ToolBox.print(new ToolBox.Page() {
                @Override
                public String getName() {
                    return MESSAGES.pageRooms();
                }

                @Override
                public String getUser() {
                    return UniTimePageHeader.getInstance().getMiddle().getText();
                }

                @Override
                public String getSession() {
                    return UniTimePageHeader.getInstance().getRight().getText();
                }

                @Override
                public Element getBody() {
                    return table.getElement();
                }
            });
        }

        @Override
        public String getName() {
            return MESSAGES.buttonPrint();
        }

        @Override
        public boolean isApplicable() {
            return getRowCount() > 1 && !iSelectable;
        }

        @Override
        public boolean hasSeparator() {
            return true;
        }
    });
}

From source file:org.unitime.timetable.gwt.client.sectioning.SectioningReports.java

License:Apache License

public SectioningReports(boolean online) {
    iOnline = online;/*from ww w  .j av  a2  s  .  c  o m*/
    iForm = new SimpleForm(2);

    iForm.removeStyleName("unitime-NotPrintableBottomLine");

    iHeader = new UniTimeHeaderPanel(MESSAGES.sectFilter());
    iHeader.addButton("execute", MESSAGES.buttonExecute(), 75, new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            iFirstLine = 0;
            iLastSort = 0;
            execute();
        }
    });

    iHeader.addButton("print", MESSAGES.buttonPrint(), 75, new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            final UniTimeTable<RowData> table = new UniTimeTable<RowData>();
            List<Widget> header = new ArrayList<Widget>();
            for (int i = 0; i < iHead.getLength(); i++) {
                String x = iHead.getCell(i);
                String name = x.replace('_', ' ').trim();
                UniTimeTableHeader h = new UniTimeTableHeader(name.replaceAll("\\n", "<br>"), 1);
                if (i + 1 == iLastSort)
                    h.setOrder(true);
                else if (-1 - i == iLastSort)
                    h.setOrder(false);
                header.add(h);
            }
            table.addRow(null, header);
            RowData prev = null;
            for (int i = 0; i < iData.size(); i++) {
                RowData row = iData.get(i);
                List<Widget> line = new ArrayList<Widget>();
                boolean prevHide = true;
                for (int x = 0; x < table.getCellCount(0); x++) {
                    boolean hide = true;
                    if (prev == null || !prevHide || !prev.getCell(x).equals(row.getCell(x)))
                        hide = false;
                    String text = row.getCell(x).replaceAll("\\n", "<br>");
                    boolean number = false;
                    try {
                        Double.parseDouble(text);
                        number = true;
                    } catch (Exception e) {
                    }
                    if (iHead.getCell(x).contains("%") && number)
                        text = PF.format(Double.parseDouble(text));
                    else if (text.matches("[\\-]?[0-9]+\\.[0-9]+") && number)
                        text = DF.format(Double.parseDouble(text));
                    line.add(number ? new NumberCell(hide ? "" : text) : new HTML(hide ? "" : text));
                    prevHide = hide;
                }
                int last = table.addRow(row, line);
                if (prev != null && !prev.getCell(0).equals(row.getCell(0)))
                    for (int c = 0; c < table.getCellCount(last); c++)
                        table.getCellFormatter().addStyleName(last, c, "unitime-TopLineDash");
                prev = row;
            }
            if (iHead.getCell(0).startsWith("__"))
                table.setColumnVisible(0, false);
            table.getElement().getStyle().setWidth(1040, Unit.PX);

            // Move header row to thead
            Element headerRow = table.getRowFormatter().getElement(0);
            Element tableElement = table.getElement();
            Element thead = DOM.createTHead();
            tableElement.insertFirst(thead);
            headerRow.getParentElement().removeChild(headerRow);
            thead.appendChild(headerRow);

            final String name = iReportSelector.getWidget()
                    .getItemText(iReportSelector.getWidget().getSelectedIndex());

            ToolBox.print(new ToolBox.Page() {
                @Override
                public String getName() {
                    return name;
                }

                @Override
                public String getUser() {
                    return "";
                }

                @Override
                public String getSession() {
                    return "";
                }

                @Override
                public Element getBody() {
                    return table.getElement();
                }
            });
        }
    });

    iHeader.addButton("export", MESSAGES.buttonExportCSV(), 85, new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            if (iReportSelector.getWidget().getSelectedIndex() <= 0) {
                iHeader.setErrorMessage(MESSAGES.errorNoReportSelected());
                return;
            }
            ReportType type = ReportType.valueOf(
                    iReportSelector.getWidget().getValue(iReportSelector.getWidget().getSelectedIndex()));
            String query = "output=sct-report.csv&name=" + type.name() + "&report=" + type.getImplementation()
                    + "&online=" + (iOnline ? "true" : "false") + "&sort=" + iLastSort;
            for (int i = 0; i + 1 < type.getParameters().length; i += 2)
                query += "&" + type.getParameters()[i] + "=" + type.getParameters()[i + 1];

            RPC.execute(EncodeQueryRpcRequest.encode(query), new AsyncCallback<EncodeQueryRpcResponse>() {
                @Override
                public void onFailure(Throwable caught) {
                }

                @Override
                public void onSuccess(EncodeQueryRpcResponse result) {
                    ToolBox.open(GWT.getHostPageBaseURL() + "export?q=" + result.getQuery());
                }
            });
        }
    });

    iForm.addHeaderRow(iHeader);
    iHeader.setEnabled("execute", false);
    iHeader.setEnabled("print", false);
    iHeader.setEnabled("export", false);

    iForm.getColumnFormatter().setWidth(0, "120px");
    iForm.getColumnFormatter().setWidth(1, "100%");

    iReportSelector = new UniTimeWidget<ListBox>(new ListBox());
    iReportSelector.getWidget().addItem(MESSAGES.itemSelect(), "");
    for (ReportType type : ReportType.values())
        iReportSelector.getWidget().addItem(type.getName(), type.name());
    iForm.addRow(MESSAGES.propReport(), iReportSelector);
    iReportSelector.getWidget().addChangeHandler(new ChangeHandler() {
        @Override
        public void onChange(ChangeEvent event) {
            iReportSelector.clearHint();
            iReportSelector.setPrintText(
                    iReportSelector.getWidget().getItemText(iReportSelector.getWidget().getSelectedIndex()));
            queryChanged();
        }
    });

    iTableHeader = new UniTimeHeaderPanel(MESSAGES.sectResults());
    iTableHeader.addButton("previous", MESSAGES.buttonPrevious(), 75, new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            iFirstLine -= 100;
            populate(false);
            History.newItem(iLastHistory + ":" + iFirstLine + ":" + iLastSort, false);
        }
    });
    iTableHeader.addButton("next", MESSAGES.buttonNext(), 75, new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            iFirstLine += 100;
            populate(false);
            History.newItem(iLastHistory + ":" + iFirstLine + ":" + iLastSort, false);
        }
    });
    iTableHeader.setEnabled("previous", false);
    iTableHeader.setEnabled("next", false);
    iForm.addHeaderRow(iTableHeader);
    iForm.addRow(iTable);
    iForm.addBottomRow(iHeader.clonePanel(""));

    initWidget(iForm);

    History.addValueChangeHandler(new ValueChangeHandler<String>() {
        @Override
        public void onValueChange(ValueChangeEvent<String> event) {
            reload(event.getValue());
        }
    });

    iTable.addMouseClickListener(new UniTimeTable.MouseClickListener<RowData>() {
        @Override
        public void onMouseClick(UniTimeTable.TableEvent<RowData> event) {
            if (event.getRow() > 0 && event.getData() != null) {
                if ("__Class".equals(iHead.getCell(0)))
                    ToolBox.open(GWT.getHostPageBaseURL() + "classDetail.do?cid=" + event.getData().getCell(0));
                else if ("__Offering".equals(iHead.getCell(0)))
                    ToolBox.open(GWT.getHostPageBaseURL() + "instructionalOfferingDetail.do?op=view&io="
                            + event.getData().getCell(0));
                else if ("__Subpart".equals(iHead.getCell(0)))
                    ToolBox.open(GWT.getHostPageBaseURL() + "schedulingSubpartDetail.do?ssuid="
                            + event.getData().getCell(0));
                else if ("__Room".equals(iHead.getCell(0)))
                    ToolBox.open(GWT.getHostPageBaseURL() + "gwt.jsp?page=rooms&back=1&id="
                            + event.getData().getCell(0));
                else if ("__Instructor".equals(iHead.getCell(0)))
                    ToolBox.open(GWT.getHostPageBaseURL() + "instructorDetail.do?instructorId="
                            + event.getData().getCell(0));
                else if ("__Exam".equals(iHead.getCell(0)))
                    ToolBox.open(
                            GWT.getHostPageBaseURL() + "examDetail.do?examId=" + event.getData().getCell(0));
                else if ("__Event".equals(iHead.getCell(0)))
                    ToolBox.open(GWT.getHostPageBaseURL() + "gwt.jsp?page=events#event="
                            + event.getData().getCell(0));
            }
        }
    });

    reload(History.getToken());
}

From source file:org.unitime.timetable.gwt.client.solver.AssignedClassesPage.java

License:Apache License

protected void print() {
    final DataTable table = new DataTable(iLastResponse);
    Element headerRow = table.getRowFormatter().getElement(0);
    Element tableElement = table.getElement();
    Element thead = DOM.createTHead();
    tableElement.insertFirst(thead);/*from  w w w .ja  va2s  . c  om*/
    headerRow.getParentElement().removeChild(headerRow);
    thead.appendChild(headerRow);
    Page page = new Page() {
        @Override
        public String getName() {
            return MESSAGES.sectAssignedClasses();
        }

        @Override
        public String getUser() {
            return "";
        }

        @Override
        public String getSession() {
            return "";
        }

        @Override
        public Element getBody() {
            return table.getElement();
        }
    };
    ToolBox.print(page);
}

From source file:org.unitime.timetable.gwt.client.solver.AssignmentHistoryPage.java

License:Apache License

protected void print() {
    final DataTable table = new DataTable(iLastResponse);
    Element headerRow = table.getRowFormatter().getElement(0);
    Element tableElement = table.getElement();
    Element thead = DOM.createTHead();
    tableElement.insertFirst(thead);/*from  w  w w  . jav  a 2s  .  c o m*/
    headerRow.getParentElement().removeChild(headerRow);
    thead.appendChild(headerRow);
    Page page = new Page() {
        @Override
        public String getName() {
            return MESSAGES.sectAssignmentHistory();
        }

        @Override
        public String getUser() {
            return "";
        }

        @Override
        public String getSession() {
            return "";
        }

        @Override
        public Element getBody() {
            return table.getElement();
        }
    };
    ToolBox.print(page);
}

From source file:org.unitime.timetable.gwt.client.solver.NotAssignedClassesPage.java

License:Apache License

protected void print() {
    final DataTable table = new DataTable(iLastResponse);
    Element headerRow = table.getRowFormatter().getElement(0);
    Element tableElement = table.getElement();
    Element thead = DOM.createTHead();
    tableElement.insertFirst(thead);/*from  www .  j  a  v  a  2s .c o  m*/
    headerRow.getParentElement().removeChild(headerRow);
    thead.appendChild(headerRow);
    Page page = new Page() {
        @Override
        public String getName() {
            return MESSAGES.sectNotAssignedClasses();
        }

        @Override
        public String getUser() {
            return "";
        }

        @Override
        public String getSession() {
            return "";
        }

        @Override
        public Element getBody() {
            return table.getElement();
        }
    };
    ToolBox.print(page);
}

From source file:org.unitime.timetable.gwt.client.solver.SolutionChangesPage.java

License:Apache License

protected void print() {
    final DataTable table = new DataTable(iLastResponse);
    Element headerRow = table.getRowFormatter().getElement(0);
    Element tableElement = table.getElement();
    Element thead = DOM.createTHead();
    tableElement.insertFirst(thead);//from w ww.  j a  v  a2s  .  c  om
    headerRow.getParentElement().removeChild(headerRow);
    thead.appendChild(headerRow);
    Page page = new Page() {
        @Override
        public String getName() {
            return MESSAGES.sectSolutionChanges();
        }

        @Override
        public String getUser() {
            return "";
        }

        @Override
        public String getSession() {
            return "";
        }

        @Override
        public Element getBody() {
            return table.getElement();
        }
    };
    ToolBox.print(page);
}