fother
25 Jun 2009, 9:29 AM
code example.. click in the button
public class Gxt implements EntryPoint {
public class Data extends BaseModel {
public Data(String name, Double value) {
setName(name);
setValue(value);
}
public Data(String name, Double value, Double number) {
setName(name);
setValue(value);
setNumber(number);
}
public String getName() {
return get("name");
}
public Double getNumber() {
return get("number");
}
public Double getValue() {
return get("value");
}
public void setName(String name) {
set("name", name);
}
public void setNumber(Double number) {
set("number", number);
}
public void setValue(Double value) {
set("value", value);
}
}
public void onModuleLoad() {
List<ColumnConfig> configs = new ArrayList<ColumnConfig>();
ColumnConfig column = new ColumnConfig();
column.setId("name");
column.setHeader("Name");
column.setWidth(200);
configs.add(column);
column = new ColumnConfig();
column.setId("value");
column.setHeader("Value");
column.setAlignment(HorizontalAlignment.RIGHT);
column.setWidth(100);
configs.add(column);
final ListStore<Data> store = new ListStore<Data>();
store.add(new Data("name 1", 5.0));
store.add(new Data("name 2", 6.0));
store.add(new Data("name 3", 7.0));
store.add(new Data("name 4", 8.0));
store.add(new Data("name 5", 9.0));
ColumnModel cm = new ColumnModel(configs);
AggregationRowConfig<Data> averages = new AggregationRowConfig<Data>();
averages.setSummaryType("value", SummaryType.AVG);
averages.setRenderer("value", new AggregationRenderer<Data>() {
public Object render(Number value, int colIndex, Grid<Data> grid, ListStore<Data> store) {
if (value != null) {
return NumberFormat.getCurrencyFormat().format(value.doubleValue());
} else {
return "nothing";
}
}
});
cm.addAggregationRow(averages);
final Grid<Data> grid = new Grid<Data>(store, cm);
grid.setBorders(false);
grid.setAutoExpandColumn("name");
grid.setBorders(true);
grid.setSize(400, 200);
Button button = new Button("reconfigure grid", new SelectionListener<ButtonEvent>() {
@Override
public void componentSelected(ButtonEvent ce) {
List<ColumnConfig> newConfigs = new ArrayList<ColumnConfig>();
ColumnConfig newColumn = new ColumnConfig();
newColumn.setId("name");
newColumn.setHeader("Name");
newColumn.setWidth(200);
newConfigs.add(newColumn);
newColumn = new ColumnConfig();
newColumn.setId("value");
newColumn.setHeader("Value");
newColumn.setAlignment(HorizontalAlignment.RIGHT);
newColumn.setWidth(100);
newConfigs.add(newColumn);
newColumn = new ColumnConfig();
newColumn.setId("number");
newColumn.setHeader("Number");
newColumn.setAlignment(HorizontalAlignment.RIGHT);
newColumn.setWidth(100);
newConfigs.add(newColumn);
ColumnModel newCm = new ColumnModel(newConfigs);
AggregationRowConfig<Data> newAverages = new AggregationRowConfig<Data>();
newAverages.setSummaryType("value", SummaryType.AVG);
newAverages.setRenderer("value", new AggregationRenderer<Data>() {
public Object render(Number value, int colIndex, Grid<Data> grid, ListStore<Data> store) {
if (value != null) {
return NumberFormat.getCurrencyFormat().format(value.doubleValue());
} else {
return "nothing";
}
}
});
newAverages.setSummaryType("number", SummaryType.AVG);
newAverages.setRenderer("number", new AggregationRenderer<Data>() {
public Object render(Number value, int colIndex, Grid<Data> grid, ListStore<Data> store) {
if (value != null) {
return NumberFormat.getCurrencyFormat().format(value.doubleValue());
} else {
return "nothing";
}
}
});
newCm.addAggregationRow(newAverages);
final ListStore<Data> newStore = new ListStore<Data>();
newStore.add(new Data("name 1", 5.0, 8.0));
newStore.add(new Data("name 2", 6.0, 9.0));
newStore.add(new Data("name 3", 7.0, 10.0));
newStore.add(new Data("name 4", 8.0, 11.0));
newStore.add(new Data("name 5", 9.0, 12.0));
grid.reconfigure(newStore, newCm);
}
});
RootPanel.get().add(grid);
RootPanel.get().add(button);
}
}
public class Gxt implements EntryPoint {
public class Data extends BaseModel {
public Data(String name, Double value) {
setName(name);
setValue(value);
}
public Data(String name, Double value, Double number) {
setName(name);
setValue(value);
setNumber(number);
}
public String getName() {
return get("name");
}
public Double getNumber() {
return get("number");
}
public Double getValue() {
return get("value");
}
public void setName(String name) {
set("name", name);
}
public void setNumber(Double number) {
set("number", number);
}
public void setValue(Double value) {
set("value", value);
}
}
public void onModuleLoad() {
List<ColumnConfig> configs = new ArrayList<ColumnConfig>();
ColumnConfig column = new ColumnConfig();
column.setId("name");
column.setHeader("Name");
column.setWidth(200);
configs.add(column);
column = new ColumnConfig();
column.setId("value");
column.setHeader("Value");
column.setAlignment(HorizontalAlignment.RIGHT);
column.setWidth(100);
configs.add(column);
final ListStore<Data> store = new ListStore<Data>();
store.add(new Data("name 1", 5.0));
store.add(new Data("name 2", 6.0));
store.add(new Data("name 3", 7.0));
store.add(new Data("name 4", 8.0));
store.add(new Data("name 5", 9.0));
ColumnModel cm = new ColumnModel(configs);
AggregationRowConfig<Data> averages = new AggregationRowConfig<Data>();
averages.setSummaryType("value", SummaryType.AVG);
averages.setRenderer("value", new AggregationRenderer<Data>() {
public Object render(Number value, int colIndex, Grid<Data> grid, ListStore<Data> store) {
if (value != null) {
return NumberFormat.getCurrencyFormat().format(value.doubleValue());
} else {
return "nothing";
}
}
});
cm.addAggregationRow(averages);
final Grid<Data> grid = new Grid<Data>(store, cm);
grid.setBorders(false);
grid.setAutoExpandColumn("name");
grid.setBorders(true);
grid.setSize(400, 200);
Button button = new Button("reconfigure grid", new SelectionListener<ButtonEvent>() {
@Override
public void componentSelected(ButtonEvent ce) {
List<ColumnConfig> newConfigs = new ArrayList<ColumnConfig>();
ColumnConfig newColumn = new ColumnConfig();
newColumn.setId("name");
newColumn.setHeader("Name");
newColumn.setWidth(200);
newConfigs.add(newColumn);
newColumn = new ColumnConfig();
newColumn.setId("value");
newColumn.setHeader("Value");
newColumn.setAlignment(HorizontalAlignment.RIGHT);
newColumn.setWidth(100);
newConfigs.add(newColumn);
newColumn = new ColumnConfig();
newColumn.setId("number");
newColumn.setHeader("Number");
newColumn.setAlignment(HorizontalAlignment.RIGHT);
newColumn.setWidth(100);
newConfigs.add(newColumn);
ColumnModel newCm = new ColumnModel(newConfigs);
AggregationRowConfig<Data> newAverages = new AggregationRowConfig<Data>();
newAverages.setSummaryType("value", SummaryType.AVG);
newAverages.setRenderer("value", new AggregationRenderer<Data>() {
public Object render(Number value, int colIndex, Grid<Data> grid, ListStore<Data> store) {
if (value != null) {
return NumberFormat.getCurrencyFormat().format(value.doubleValue());
} else {
return "nothing";
}
}
});
newAverages.setSummaryType("number", SummaryType.AVG);
newAverages.setRenderer("number", new AggregationRenderer<Data>() {
public Object render(Number value, int colIndex, Grid<Data> grid, ListStore<Data> store) {
if (value != null) {
return NumberFormat.getCurrencyFormat().format(value.doubleValue());
} else {
return "nothing";
}
}
});
newCm.addAggregationRow(newAverages);
final ListStore<Data> newStore = new ListStore<Data>();
newStore.add(new Data("name 1", 5.0, 8.0));
newStore.add(new Data("name 2", 6.0, 9.0));
newStore.add(new Data("name 3", 7.0, 10.0));
newStore.add(new Data("name 4", 8.0, 11.0));
newStore.add(new Data("name 5", 9.0, 12.0));
grid.reconfigure(newStore, newCm);
}
});
RootPanel.get().add(grid);
RootPanel.get().add(button);
}
}