@Override
 public void setTabs(CourseFinderTab... tabs) {
   iTabs = tabs;
   if (iTabs.length == 1) {
     if (iTabs[0].asWidget() instanceof VerticalPanel) {
       VerticalPanel vp = (VerticalPanel) iTabs[0].asWidget();
       while (vp.getWidgetCount() > 0) {
         Widget w = vp.getWidget(0);
         vp.remove(w);
         iDialogPanel.add(w);
       }
     } else {
       iDialogPanel.add(iTabs[0].asWidget());
     }
   } else {
     iTabPanel = new UniTimeTabPanel();
     int tabIndex = 0;
     for (CourseFinderTab tab : iTabs) {
       iTabPanel.add(tab.asWidget(), tab.getName(), true);
       Character ch = UniTimeHeaderPanel.guessAccessKey(tab.getName());
       if (ch != null) iTabAccessKeys.put(ch, tabIndex);
       tabIndex++;
     }
     iTabPanel.selectTab(0);
     iDialogPanel.add(iTabPanel);
   }
   for (final CourseFinderTab tab : iTabs) {
     tab.addValueChangeHandler(
         new ValueChangeHandler<String>() {
           @Override
           public void onValueChange(ValueChangeEvent<String> event) {
             if (event.getSource().equals(tab)) selectTab(tab);
             else tab.setValue(event.getValue());
             iFilter.setValue(event.getValue());
           }
         });
     tab.addSelectionHandler(
         new SelectionHandler<String>() {
           @Override
           public void onSelection(SelectionEvent<String> event) {
             iFilter.setValue(event.getSelectedItem());
             hide();
             SelectionEvent.fire(CourseFinderDialog.this, getValue());
           }
         });
     tab.addResponseHandler(
         new ResponseHandler() {
           @Override
           public void onResponse(ResponseEvent event) {
             if (event.isValid()) {
               CourseFinderTab selected = getSelectedTab();
               if (selected != null && selected.isCourseSelection() && selected.getValue() != null)
                 return;
               selectTab(tab);
             }
           }
         });
   }
 }
Ejemplo n.º 2
0
 private void selectLastTab() {
   try {
     int tab = Integer.valueOf(Cookies.getCookie("UniTime:CourseFinderCourses"));
     if (tab >= 0
         || tab < iCourseDetailsTabPanel.getTabCount()
             && tab != iCourseDetailsTabPanel.getSelectedTab())
       iCourseDetailsTabPanel.selectTab(tab);
     else iCourseDetailsTabPanel.selectTab(0);
   } catch (Exception e) {
     iCourseDetailsTabPanel.selectTab(0);
   }
 }
 protected void selectTab(CourseFinderTab tab) {
   if (iTabs != null && iTabs.length > 1) {
     for (int i = 0; i < iTabs.length; i++) {
       if (tab.equals(iTabs[i])) {
         iTabPanel.selectTab(i);
         break;
       }
     }
   }
 }
Ejemplo n.º 4
0
 @Override
 public void setCourseDetails(CourseFinderCourseDetails... details) {
   iDetails = details;
   int tabIndex = 0;
   for (CourseFinderCourseDetails detail : iDetails) {
     ScrollPanel panel = new ScrollPanel(detail.asWidget());
     panel.setStyleName("unitime-ScrollPanel-inner");
     panel.getElement().getStyle().setWidth(780, Unit.PX);
     panel.getElement().getStyle().setHeight(200, Unit.PX);
     iCourseDetailsTabPanel.add(panel, detail.getName(), true);
     Character ch = UniTimeHeaderPanel.guessAccessKey(detail.getName());
     if (ch != null) iTabAccessKeys.put(ch, tabIndex);
     tabIndex++;
   }
   selectLastTab();
 }
Ejemplo n.º 5
0
 @Override
 public void onKeyUp(KeyUpEvent event) {
   if (event.getNativeKeyCode() == KeyCodes.KEY_DOWN) {
     iCourses.setSelectedRow(iCourses.getSelectedRow() + 1);
     scrollToSelectedRow();
     updateCourseDetails();
   } else if (event.getNativeKeyCode() == KeyCodes.KEY_UP) {
     iCourses.setSelectedRow(
         iCourses.getSelectedRow() == 0
             ? iCourses.getRowsCount() - 1
             : iCourses.getSelectedRow() - 1);
     scrollToSelectedRow();
     updateCourseDetails();
   } else if (event.isControlKeyDown() || event.isAltKeyDown()) {
     for (Map.Entry<Character, Integer> entry : iTabAccessKeys.entrySet())
       if (event.getNativeKeyCode() == Character.toLowerCase(entry.getKey())
           || event.getNativeKeyCode() == Character.toUpperCase(entry.getKey())) {
         iCourseDetailsTabPanel.selectTab(entry.getValue());
         event.preventDefault();
         event.stopPropagation();
       }
   }
 }
Ejemplo n.º 6
0
  public CourseFinderCourses() {
    super();

    iCourses = new WebTable();
    iCourses.setHeader(
        new WebTable.Row(
            new WebTable.Cell(MESSAGES.colSubject(), 1, "80px"),
            new WebTable.Cell(MESSAGES.colCourse(), 1, "80px"),
            new WebTable.Cell(MESSAGES.colLimit(), 1, "60px"),
            new WebTable.Cell(MESSAGES.colTitle(), 1, "300px"),
            new WebTable.Cell(MESSAGES.colCredit(), 1, "60px"),
            new WebTable.Cell(MESSAGES.colNote(), 1, "300px")));
    iCourses.addRowDoubleClickHandler(
        new WebTable.RowDoubleClickHandler() {
          public void onRowDoubleClick(WebTable.RowDoubleClickEvent event) {
            iCourses.setSelectedRow(event.getRowIdx());
            updateCourseDetails();
            SelectionEvent.fire(CourseFinderCourses.this, getValue());
          }
        });
    iCourses.addRowClickHandler(
        new WebTable.RowClickHandler() {
          public void onRowClick(WebTable.RowClickEvent event) {
            iCourses.setSelectedRow(event.getRowIdx());
            updateCourseDetails();
          }
        });

    iCoursesPanel = new ScrollPanel(iCourses);
    iCoursesPanel.getElement().getStyle().setWidth(780, Unit.PX);
    iCoursesPanel.getElement().getStyle().setHeight(200, Unit.PX);
    iCoursesPanel.setStyleName("unitime-ScrollPanel");

    iCoursesTip =
        new Label(CONSTANTS.courseTips()[(int) (Math.random() * CONSTANTS.courseTips().length)]);
    iCoursesTip.setStyleName("unitime-Hint");
    ToolBox.disableTextSelectInternal(iCoursesTip.getElement());
    iCoursesTip.addClickHandler(
        new ClickHandler() {
          public void onClick(ClickEvent event) {
            String oldText = iCoursesTip.getText();
            do {
              iCoursesTip.setText(
                  CONSTANTS.courseTips()[(int) (Math.random() * CONSTANTS.courseTips().length)]);
            } while (oldText.equals(iCoursesTip.getText()));
          }
        });

    iCourseDetailsTabPanel = new UniTimeTabPanel();
    iCourseDetailsTabPanel.setDeckStyleName("unitime-TabPanel");
    iCourseDetailsTabPanel.addSelectionHandler(
        new SelectionHandler<Integer>() {
          @Override
          public void onSelection(SelectionEvent<Integer> event) {
            Cookies.setCookie(
                "UniTime:CourseFinderCourses", String.valueOf(event.getSelectedItem()));
          }
        });

    setSpacing(10);
    add(iCoursesPanel);
    add(iCourseDetailsTabPanel);
    add(iCoursesTip);
  }
 protected CourseFinderTab getSelectedTab() {
   if (iTabs == null) return null;
   if (iTabs.length == 1) return iTabs[0];
   else return iTabs[iTabPanel.getSelectedTab()];
 }