/** * */ package org.gcube.portlets.user.td.csvimportwidget.client.csvgrid; import java.util.ArrayList; import org.gcube.portlets.user.td.csvimportwidget.client.data.CSVRow; import org.gcube.portlets.user.td.csvimportwidget.client.dataresource.ResourceBundle; import com.google.gwt.event.logical.shared.SelectionEvent; import com.google.gwt.event.logical.shared.SelectionHandler; import com.sencha.gxt.core.client.ValueProvider; import com.sencha.gxt.widget.core.client.grid.GridView; import com.sencha.gxt.widget.core.client.grid.GridViewConfig; import com.sencha.gxt.widget.core.client.menu.CheckMenuItem; import com.sencha.gxt.widget.core.client.menu.Item; import com.sencha.gxt.widget.core.client.menu.Menu; /** * * @author "Giancarlo Panichi" * g.panichi@isti.cnr.it * */ public class CSVGridView extends GridView { protected ArrayList excludedColumns = new ArrayList(); public CSVGridView() { setViewConfig(new GridViewConfig() { public String getRowStyle(CSVRow model, int rowIndex) { return ""; } public String getColStyle(CSVRow model, ValueProvider valueProvider, int rowIndex, int colIndex) { return excludedColumns.contains(colIndex)?ResourceBundle.INSTANCE.importCss().getColumnExcluded():""; } }); } @Override protected Menu createContextMenu(final int colIndex) { Menu menu = new Menu(); CheckMenuItem includeMenu = new CheckMenuItem("Include"); includeMenu.setGroup("include"); includeMenu.setChecked(!excludedColumns.contains(colIndex)); menu.add(includeMenu); includeMenu.addSelectionHandler(new SelectionHandler() { public void onSelection(SelectionEvent event) { excludedColumns.remove(new Integer(colIndex)); refresh(false); } }); CheckMenuItem excludeMenu = new CheckMenuItem("Exclude"); excludeMenu.setGroup("include"); excludeMenu.setChecked(excludedColumns.contains(colIndex)); menu.add(excludeMenu); excludeMenu.addSelectionHandler(new SelectionHandler() { public void onSelection(SelectionEvent event) { excludedColumns.add(colIndex); refresh(false); } }); return menu; } /** * Returns the excluded columns by index. * @return an {@link ArrayList} of excluded column index. */ public ArrayList getExcludedColumns() { return excludedColumns; } }