|
|
@@ -19,6 +19,7 @@ import java.util.function.BiConsumer; |
|
|
|
|
|
|
|
import com.google.gwt.core.client.GWT; |
|
|
|
import com.google.gwt.dom.client.Element; |
|
|
|
import com.google.gwt.dom.client.TableCellElement; |
|
|
|
import com.google.gwt.event.dom.client.ClickEvent; |
|
|
|
import com.google.gwt.event.dom.client.ClickHandler; |
|
|
|
import com.google.gwt.event.dom.client.HasClickHandlers; |
|
|
@@ -30,8 +31,9 @@ import com.google.gwt.user.client.ui.HTML; |
|
|
|
import com.google.gwt.user.client.ui.Widget; |
|
|
|
import com.vaadin.client.WidgetUtil; |
|
|
|
import com.vaadin.client.connectors.treegrid.TreeGridConnector; |
|
|
|
import com.vaadin.client.widget.escalator.FlyweightCell; |
|
|
|
import com.vaadin.client.widget.grid.RendererCellReference; |
|
|
|
import com.vaadin.client.widget.treegrid.HierarchyRendererCellReferenceWrapper; |
|
|
|
import com.vaadin.client.widget.grid.RowReference; |
|
|
|
import com.vaadin.shared.ui.treegrid.HierarchicalDataCommunicatorConstants; |
|
|
|
|
|
|
|
import elemental.json.JsonObject; |
|
|
@@ -44,6 +46,42 @@ import elemental.json.JsonObject; |
|
|
|
*/ |
|
|
|
public class HierarchyRenderer extends ClickableRenderer<Object, Widget> { |
|
|
|
|
|
|
|
/** |
|
|
|
* Wrapper for cell references. Used to get the correct inner element to |
|
|
|
* render. |
|
|
|
* |
|
|
|
* @author Vaadin Ltd |
|
|
|
* @since 8.1 |
|
|
|
*/ |
|
|
|
private static class HierarchyRendererCellReferenceWrapper |
|
|
|
extends RendererCellReference { |
|
|
|
|
|
|
|
private Element element; |
|
|
|
|
|
|
|
public HierarchyRendererCellReferenceWrapper(RendererCellReference cell, |
|
|
|
Element element) { |
|
|
|
super(getRowReference(cell)); |
|
|
|
set(getFlyweightCell(cell), cell.getColumnIndex(), |
|
|
|
cell.getColumn()); |
|
|
|
this.element = element; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public TableCellElement getElement() { |
|
|
|
return (TableCellElement) element; |
|
|
|
} |
|
|
|
|
|
|
|
private native static RowReference<Object> getRowReference( |
|
|
|
RendererCellReference cell) /*-{ |
|
|
|
return cell.@com.vaadin.client.widget.grid.CellReference::getRowReference()(); |
|
|
|
}-*/; |
|
|
|
|
|
|
|
private native static FlyweightCell getFlyweightCell( |
|
|
|
RendererCellReference cell) /*-{ |
|
|
|
return cell.@com.vaadin.client.widget.grid.RendererCellReference::cell; |
|
|
|
}-*/; |
|
|
|
} |
|
|
|
|
|
|
|
private String nodeStyleName; |
|
|
|
private String expanderStyleName; |
|
|
|
private String cellContentStyleName; |