/** * */ package org.gcube.portlets.user.performfishanalytics.client.view.totest; import java.util.List; import org.gcube.portlets.user.performfishanalytics.client.controllers.PerformFishAnalyticsController; import org.gcube.portlets.user.performfishanalytics.client.event.SelectedKPIEvent; import org.gcube.portlets.user.performfishanalytics.client.view.KPICell; import org.gcube.portlets.user.performfishanalytics.shared.KPI; import com.google.gwt.cell.client.Cell; import com.google.gwt.cell.client.CheckboxCell; import com.google.gwt.cell.client.CompositeCell; import com.google.gwt.cell.client.FieldUpdater; import com.google.gwt.cell.client.HasCell; import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.Element; import com.google.gwt.safehtml.shared.SafeHtmlBuilder; import com.google.gwt.view.client.SingleSelectionModel; /** * The Class LeafCell. * * @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it) * Mar 4, 2019 */ public class LeafCell extends CompositeCell { private final SingleSelectionModel multiSelectionModel = new SingleSelectionModel(); private List> hasCells; /** * @param hasCells */ public LeafCell(List> hasCells) { super(hasCells); this.hasCells = hasCells; hasCells.add(new HasCell() { private CheckboxCell cell = new CheckboxCell(true, true); public Cell getCell() { return cell; } public FieldUpdater getFieldUpdater() { return new FieldUpdater() { @Override public void update(int index, KPI object, Boolean value) { // TODO Auto-generated method stub GWT.log("Checked: " + object.getName() + " value: " + value); PerformFishAnalyticsController.eventBus.fireEvent(new SelectedKPIEvent( null, object, value)); // cell.set(value); // dataGrid.redraw(); } }; } public Boolean getValue(KPI object) { return multiSelectionModel.isSelected(object); } }); hasCells.add(new HasCell() { private KPICell cell = new KPICell(null); public Cell getCell() { return cell; } public FieldUpdater getFieldUpdater() { return null; } public KPI getValue(KPI object) { return object; } }); // TODO Auto-generated constructor stub } @Override public void render(Context context, KPI value, SafeHtmlBuilder sb) { sb.appendHtmlConstant(""); sb.appendHtmlConstant(value.getName()); sb.appendHtmlConstant("
"); } @Override protected Element getContainerElement(Element parent) { // Return the first TR element in the table. return parent.getFirstChildElement().getFirstChildElement().getFirstChildElement(); } @Override protected void render( Context context, KPI value, SafeHtmlBuilder sb, HasCell hasCell) { Cell cell = hasCell.getCell(); sb.appendHtmlConstant(""); cell.render(context, hasCell.getValue(value), sb); sb.appendHtmlConstant(""); } }