package org.tessell.widgets;
import java.util.ArrayList;
import java.util.List;
import org.tessell.gwt.user.client.ui.IsWidget;
import org.tessell.util.ListDiff.ListLike;
public class StubRowTable extends StubWidget implements IsRowTable {
private final List<IsWidget> headers = new ArrayList<IsWidget>();
private final List<IsWidget> rows = new ArrayList<IsWidget>();
@Override
public void addHeader(final com.google.gwt.user.client.ui.IsWidget isWidget) {
headers.add((IsWidget) isWidget);
}
@Override
public void addRow(final com.google.gwt.user.client.ui.IsWidget isWidget) {
rows.add((IsWidget) isWidget);
}
public List<IsWidget> getHeaders() {
return headers;
}
public List<IsWidget> getRows() {
return rows;
}
@Override
public void replaceRow(final int i, final com.google.gwt.user.client.ui.IsWidget isWidget) {
rows.remove(i);
rows.add(i, (IsWidget) isWidget);
}
@Override
public void removeRow(final int i) {
rows.remove(i);
}
@Override
public boolean removeRow(com.google.gwt.user.client.ui.IsWidget view) {
removeRow(rows.indexOf(view));
return true;
}
@Override
public int size() {
return rows.size();
}
@Override
public void clearRows() {
while (rows.size() > 0) {
removeRow(0);
}
}
@Override
public void insertRow(final int i, final com.google.gwt.user.client.ui.IsWidget isWidget) {
rows.add(i, (IsWidget) isWidget);
}
@Override
protected IsWidget findInChildren(String id) {
IsWidget a = findInChildren(headers.iterator(), id);
if (a != null) {
return a;
}
return findInChildren(rows.iterator(), id);
}
@Override
public ListLike<IsWidget> getRowsPanel() {
return new ListLikeAdaptor();
}
private class ListLikeAdaptor implements ListLike<IsWidget> {
@Override
public IsWidget remove(int index) {
IsWidget row = rows.get(index);
removeRow(index);
return row;
}
@Override
public void add(int index, IsWidget a) {
insertRow(index, a);
}
}
@Override
public int indexOfRow(com.google.gwt.user.client.ui.IsWidget row) {
return rows.indexOf(row);
}
}