org.jboss.as.console.client.shared.general.SocketTable Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of switchyard-console-as7-core
Show all versions of switchyard-console-as7-core
Bundles the core AS7 console as a GWT module. Includes minor customizations to support extensions.
package org.jboss.as.console.client.shared.general;
import com.google.gwt.cell.client.FieldUpdater;
import com.google.gwt.cell.client.TextCell;
import com.google.gwt.user.cellview.client.CellTable;
import com.google.gwt.user.cellview.client.Column;
import com.google.gwt.user.cellview.client.ColumnSortEvent;
import com.google.gwt.user.cellview.client.TextColumn;
import com.google.gwt.view.client.ListDataProvider;
import com.google.gwt.view.client.ProvidesKey;
import org.jboss.as.console.client.shared.expr.ExpressionColumn;
import org.jboss.as.console.client.shared.general.model.SocketBinding;
import org.jboss.ballroom.client.widgets.tables.DefaultCellTable;
import java.util.Comparator;
import java.util.List;
/**
* @author Heiko Braun
* @date 6/7/11
*/
public class SocketTable {
private DefaultCellTable table;
private ListDataProvider dataProvider;
private int portOffset = 0;
public SocketTable() {
}
public SocketTable(int portOffset) {
this.portOffset = portOffset;
}
public DefaultCellTable asWidget() {
table = new DefaultCellTable(8, new ProvidesKey() {
@Override
public Object getKey(SocketBinding item) {
return item.getName()+String.valueOf(item.getGroup());
}
});
dataProvider = new ListDataProvider();
dataProvider.addDataDisplay(table);
ColumnSortEvent.ListHandler sortHandler =
new ColumnSortEvent.ListHandler(dataProvider.getList());
Column nameColumn = new Column(new TextCell()) {
{
setFieldUpdater(new FieldUpdater() {
@Override
public void update(int index, SocketBinding object, String value) {
object.setName(value);
}
});
}
@Override
public String getValue(SocketBinding object) {
return object.getName();
}
};
nameColumn.setSortable(true);
sortHandler.setComparator(nameColumn, new Comparator() {
@Override
public int compare(SocketBinding o1, SocketBinding o2) {
return o1.getName().compareTo(o2.getName());
}
});
ExpressionColumn portColumn = new ExpressionColumn("port") {
@Override
public String getRealValue(SocketBinding record) {
if(record.getPort()>0)
return String.valueOf(record.getPort()+portOffset);
else
return "";
}
};
TextColumn mcastColumn = new TextColumn() {
@Override
public String getValue(SocketBinding record) {
if(record.getMultiCastPort()>0)
return String.valueOf(record.getMultiCastPort()+portOffset);
else
return "";
}
};
table.addColumn(nameColumn, "Name");
table.addColumn(portColumn, "Port");
table.addColumn(mcastColumn, "MCast Port");
table.addColumnSortHandler(sortHandler);
table.getColumnSortList().push(nameColumn);
return table;
}
public CellTable getCellTable() {
return table;
}
public void updateFrom(String groupName, List bindings) {
List list = dataProvider.getList();
list.clear(); // cannot call setList() as that breaks the sort handler
list.addAll(bindings);
dataProvider.flush();
table.selectDefaultEntity();
}
public void updateFrom(String groupName, List bindings, int portOffset) {
this.portOffset = portOffset;
updateFrom(groupName, bindings);
}
}