private void refreshTable(boolean needToSort) { if (needToSort) { // Sort the projects. Comparator<Project> comparator; switch (sortField) { default: case NAME: comparator = (sortOrder == SortOrder.ASCENDING) ? ProjectComparators.COMPARE_BY_NAME_ASCENDING : ProjectComparators.COMPARE_BY_NAME_DESCENDING; break; case DATE_CREATED: comparator = (sortOrder == SortOrder.ASCENDING) ? ProjectComparators.COMPARE_BY_DATE_CREATED_ASCENDING : ProjectComparators.COMPARE_BY_DATE_CREATED_DESCENDING; break; case DATE_MODIFIED: comparator = (sortOrder == SortOrder.ASCENDING) ? ProjectComparators.COMPARE_BY_DATE_MODIFIED_ASCENDING : ProjectComparators.COMPARE_BY_DATE_MODIFIED_DESCENDING; break; } Collections.sort(projects, comparator); } refreshSortIndicators(); // Refill the table. table.resize(1 + projects.size(), 5); int row = 1; for (Project project : projects) { ProjectWidgets pw = projectWidgets.get(project); if (selectedProjects.contains(project)) { table.getRowFormatter().setStyleName(row, "ode-ProjectRowHighlighted"); pw.checkBox.setValue(true); } else { table.getRowFormatter().setStyleName(row, "ode-ProjectRowUnHighlighted"); pw.checkBox.setValue(false); } table.setWidget(row, 0, pw.checkBox); table.setWidget(row, 1, pw.nameLabel); table.setWidget(row, 2, pw.dateCreatedLabel); table.setWidget(row, 3, pw.dateModifiedLabel); table.setWidget(row, 4, pw.editButton); preparePublishApp(project, pw); row++; } Ode.getInstance().getProjectToolbar().updateButtons(); }