import com.google.gwt.user.client.DOM; //导入方法依赖的package包/类
public CurriculaCourses() {
iTable = new UniTimeTable();
iTable.addStyleName("unitime-CurriculaCourseProjections");
initWidget(iTable);
iCourseChangedHandler = new CourseSelectionHandler() {
@Override
public void onCourseSelection(CourseSelectionEvent event) {
CurriculumStudentsInterface[] c = (iLastCourses == null ? null : iLastCourses.get(event.getCourse()));
for (int col = 0; col < iClassifications.getClassifications().size(); col ++) {
setEnrollmentAndLastLike(event.getCourse(), col,
c == null || c[col] == null ? null : c[col].getEnrollment(),
c == null || c[col] == null ? null : c[col].getLastLike(),
c == null || c[col] == null ? null : c[col].getProjection(),
c == null || c[col] == null ? null : c[col].getRequested(),
c == null || c[col] == null ? null : (!c[col].isSessionHasSnapshotData() ? null : c[col].getSnapshotProjection()));
}
Element td = ((Widget)event.getSource()).getElement();
while (td != null && !td.getPropertyString("tagName").equalsIgnoreCase("td")) {
td = DOM.getParent(td);
}
Element tr = DOM.getParent(td);
Element body = DOM.getParent(tr);
int row = DOM.getChildIndex(body, tr);
if (event.getCourse().isEmpty()) {
iTable.getRowFormatter().addStyleName(row, "unitime-NoPrint");
} else {
iTable.getRowFormatter().removeStyleName(row, "unitime-NoPrint");
}
if (row + 1 == iTable.getRowCount() && !event.getCourse().isEmpty())
addBlankLine();
}
};
iNewGroupDialog = new GroupDialogBox();
iTable.setHintProvider(new HintProvider() {
@Override
public Widget getHint(TableEvent event) {
if (!canShowStudentsTable(event.getRow())) return null;
StudentsTable studentsTable = new StudentsTable(event.getRow());
if (studentsTable.canShow()) return studentsTable;
return null;
}
});
}