Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(598)

Unified Diff: frontend/client/src/autotest/common/table/DynamicTable.java

Issue 3554003: Merge remote branch 'cros/upstream' into tempbranch3 (Closed) Base URL: http://git.chromium.org/git/autotest.git
Patch Set: Created 10 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: frontend/client/src/autotest/common/table/DynamicTable.java
diff --git a/frontend/client/src/autotest/common/table/DynamicTable.java b/frontend/client/src/autotest/common/table/DynamicTable.java
index 66227de612e1a736e967da0671017b090a10a77f..bcb9ca7ab9b05c04c5efca9fbb45a5b525f51deb 100644
--- a/frontend/client/src/autotest/common/table/DynamicTable.java
+++ b/frontend/client/src/autotest/common/table/DynamicTable.java
@@ -24,82 +24,82 @@ public class DynamicTable extends DataTable implements DataCallback {
public static final int NO_COLUMN = -1;
public static final String SORT_UP_IMAGE = "arrow_up.png",
SORT_DOWN_IMAGE = "arrow_down.png";
-
+
public static interface DynamicTableListener extends DataTableListener {
public void onTableRefreshed();
}
-
+
static class SortIndicator extends Composite {
public int column;
private Image image = new Image();
-
+
public SortIndicator(int column) {
this.column = column;
initWidget(image);
setVisible(false);
}
-
+
public void sortOn(SortDirection direction) {
image.setUrl(direction == SortDirection.ASCENDING ? SORT_UP_IMAGE : SORT_DOWN_IMAGE);
setVisible(true);
}
-
+
public void sortOff() {
setVisible(false);
}
}
-
+
protected DataSource dataSource;
private Query currentQuery;
-
+
private boolean clientSortable = false;
private SortIndicator[] sortIndicators;
private List<SortSpec> sortColumns = new ArrayList<SortSpec>();
-
+
protected List<Filter> filters = new ArrayList<Filter>();
protected List<Paginator> paginators = new ArrayList<Paginator>();
protected Integer rowsPerPage;
-
- protected List<DynamicTableListener> dynamicTableListeners =
+
+ protected List<DynamicTableListener> dynamicTableListeners =
new ArrayList<DynamicTableListener>();
-
+
public DynamicTable(String[][] columns, DataSource dataSource) {
super(columns);
setDataSource(dataSource);
}
-
+
// SORTING
-
+
/**
- * Makes the table client sortable, that is, sortable by the user by
- * clicking on column headers.
+ * Makes the table client sortable, that is, sortable by the user by
+ * clicking on column headers.
*/
public void makeClientSortable() {
this.clientSortable = true;
- table.getRowFormatter().addStyleName(0,
+ table.getRowFormatter().addStyleName(0,
DataTable.HEADER_STYLE + "-sortable");
-
+
sortIndicators = new SortIndicator[columns.length];
for(int i = 0; i < columns.length; i++) {
sortIndicators[i] = new SortIndicator(i);
-
+
// we have to use an HTMLPanel here to preserve styles correctly and
// not break hover
// we add a <span> with a unique ID to hold the sort indicator
String name = columns[i][COL_TITLE];
String id = HTMLPanel.createUniqueId();
- HTMLPanel panel = new HTMLPanel(name +
+ HTMLPanel panel = new HTMLPanel(name +
" <span id=\"" + id + "\"></span>");
panel.add(sortIndicators[i], id);
table.setWidget(0, i, panel);
}
}
-
+
private void updateSortIndicators() {
if (!clientSortable) {
return;
}
-
+
SortSpec firstSpec = getFirstSortSpec();
for (SortIndicator indicator : sortIndicators) {
if (columns[indicator.column][COL_NAME].equals(firstSpec.getField())) {
@@ -116,7 +116,7 @@ public class DynamicTable extends DataTable implements DataCallback {
}
return sortColumns.get(0);
}
-
+
/**
* Set column on which data is sorted. You must call <code>refresh()</code>
* after this to display the results.
@@ -131,25 +131,25 @@ public class DynamicTable extends DataTable implements DataCallback {
break;
}
}
-
+
sortColumns.add(0, new SortSpec(columnField, sortDirection));
updateSortIndicators();
}
-
+
/**
* Defaults to ascending order.
*/
public void sortOnColumn(String columnField) {
sortOnColumn(columnField, SortDirection.ASCENDING);
}
-
+
public void clearSorts() {
sortColumns.clear();
updateSortIndicators();
}
-
+
// PAGINATION
-
+
/**
* Attach a new paginator to this table.
*/
@@ -160,11 +160,11 @@ public class DynamicTable extends DataTable implements DataCallback {
public void doCallback(Object source) {
setPaginatorStart(((Paginator) source).getStart());
fetchPage();
- }
+ }
});
paginator.setResultsPerPage(rowsPerPage.intValue());
}
-
+
/**
* Set the page size of this table (only useful if you attach paginators).
*/
@@ -175,9 +175,9 @@ public class DynamicTable extends DataTable implements DataCallback {
paginator.setResultsPerPage(rowsPerPage);
}
}
-
+
/**
- * Set start row for pagination. You must call
+ * Set start row for pagination. You must call
* <code>refresh()</code> after this to display the results.
*/
public void setPaginatorStart(int start) {
@@ -185,22 +185,22 @@ public class DynamicTable extends DataTable implements DataCallback {
paginator.setStart(start);
}
}
-
+
protected void refreshPaginators() {
for (Paginator paginator : paginators) {
paginator.update();
}
}
-
+
protected void updatePaginatorTotalResults(int totalResults) {
for (Paginator paginator : paginators) {
paginator.setNumTotalResults(totalResults);
}
}
-
-
+
+
// FILTERING
-
+
public void addFilter(Filter filter) {
filters.add(filter);
filter.addCallback(new SimpleCallback() {
@@ -210,7 +210,7 @@ public class DynamicTable extends DataTable implements DataCallback {
}
});
}
-
+
protected void addFilterParams(JSONObject params) {
for (Filter filter : filters) {
if (filter.isActive()) {
@@ -218,7 +218,7 @@ public class DynamicTable extends DataTable implements DataCallback {
}
}
}
-
+
public boolean isAnyUserFilterActive() {
for (Filter filter : filters) {
if (filter.isUserControlled() && filter.isActive()) {
@@ -228,10 +228,10 @@ public class DynamicTable extends DataTable implements DataCallback {
return false;
}
-
-
+
+
// DATA MANAGEMENT
-
+
public void refresh() {
JSONObject params = new JSONObject();
addFilterParams(params);
@@ -278,28 +278,29 @@ public class DynamicTable extends DataTable implements DataCallback {
public String[] getRowData(int row) {
String[] data = new String[columns.length];
for (int i = 0; i < columns.length; i++) {
- if(isWidgetColumn(i))
+ if(isWidgetColumn(i)) {
continue;
+ }
data[i] = table.getHTML(row, i);
}
return data;
}
-
+
public DataSource getDataSource() {
return dataSource;
}
-
+
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}
-
+
public Query getCurrentQuery() {
return currentQuery;
}
-
-
+
+
// INPUT
-
+
@Override
protected void onCellClicked(int row, int cell, boolean isRightClick) {
if (row == headerRow) {
@@ -314,17 +315,17 @@ public class DynamicTable extends DataTable implements DataCallback {
if (firstSortSpec != null && columnName.equals(firstSortSpec.getField())) {
newSortDirection = invertSortDirection(firstSortSpec.getDirection());
}
-
+
sortOnColumn(columnName, newSortDirection);
refresh();
return;
}
-
+
super.onCellClicked(row, cell, isRightClick);
}
-
+
private SortDirection invertSortDirection(SortDirection direction) {
- return direction == SortDirection.ASCENDING ?
+ return direction == SortDirection.ASCENDING ?
SortDirection.DESCENDING : SortDirection.ASCENDING;
}
@@ -332,18 +333,18 @@ public class DynamicTable extends DataTable implements DataCallback {
super.addListener(listener);
dynamicTableListeners.add(listener);
}
-
+
public void removeListener(DynamicTableListener listener) {
super.removeListener(listener);
dynamicTableListeners.remove(listener);
}
-
+
protected void notifyListenersRefreshed() {
for (DynamicTableListener listener : dynamicTableListeners) {
listener.onTableRefreshed();
}
}
-
+
public List<SortSpec> getSortSpecs() {
return Collections.unmodifiableList(sortColumns);
}

Powered by Google App Engine
This is Rietveld 408576698