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(); } }