package org.gcube.portlets.user.td.csvimportwidget.client;
import java.util.ArrayList;
import org.gcube.portlets.user.td.gwtservice.shared.csv.CSVRowError;
import com.google.gwt.core.client.GWT;
import com.sencha.gxt.core.client.ValueProvider;
import com.sencha.gxt.data.shared.ListStore;
import com.sencha.gxt.data.shared.ModelKeyProvider;
import com.sencha.gxt.data.shared.PropertyAccess;
import com.sencha.gxt.widget.core.client.Window;
import com.sencha.gxt.widget.core.client.button.TextButton;
import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutPack;
import com.sencha.gxt.widget.core.client.event.SelectEvent;
import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler;
import com.sencha.gxt.widget.core.client.grid.ColumnConfig;
import com.sencha.gxt.widget.core.client.grid.ColumnModel;
import com.sencha.gxt.widget.core.client.grid.Grid;
/**
*
* @author "Giancarlo Panichi"
* g.panichi@isti.cnr.it
*
*/
public class CSVErrorWindow extends Window {
private static final CSVRowErrorProperties props = GWT.create(CSVRowErrorProperties.class);
protected Grid grid;
protected ListStore store;
public CSVErrorWindow()
{
setHeadingText("CSV error details");
setModal(true);
setBlinkModal(true);
setWidth(600);
setHeight(350);
createGrid();
add(grid);
TextButton close = new TextButton("Close");
close.addSelectHandler(new SelectHandler() {
public void onSelect(SelectEvent event) {
hide();
}
});
addButton(close);
setButtonAlign(BoxLayoutPack.CENTER);
}
protected void createGrid()
{
ArrayList> columns = new ArrayList>();
columns.add(new ColumnConfig(props.lineNumber(), 30, "# line"));
columns.add(new ColumnConfig(props.lineValue(), 60, "Line"));
columns.add(new ColumnConfig(props.errorDescription(), 160, "Error"));
ColumnModel columnModel = new ColumnModel(columns);
store = new ListStore(props.id());
grid = new Grid(store, columnModel);
grid.getView().setForceFit(true);
}
public void updateGrid(ArrayList errors)
{
store.clear();
store.addAll(errors);
}
protected interface CSVRowErrorProperties extends PropertyAccess {
ModelKeyProvider id();
ValueProvider lineNumber();
ValueProvider lineValue();
ValueProvider errorDescription();
}
}