package org.iplantc.phyloviewer.viewer.client.ui;
import org.iplantc.phyloviewer.client.events.NodeSelectionEvent;
import org.iplantc.phyloviewer.client.events.NodeSelectionHandler;
import org.iplantc.phyloviewer.shared.model.INode;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.Label;
public class NodeTable extends FlexTable implements NodeSelectionHandler
{
public NodeTable()
{
super();
setStylePrimaryName("nodeTable");
}
@Override
public void onNodeSelection(NodeSelectionEvent event)
{
removeAllRows();
if (event.getSelectedNodes().size() == 1)
{
INode node = event.getSelectedNodes().iterator().next();
setLabel(0, 0, "id");
setText(0, 1, String.valueOf(node.getId()));
setLabel(1, 0, "label");
setText(1, 1, node.getLabel());
setLabel(2, 0, "# of children");
setText(2, 1, String.valueOf(node.getNumberOfChildren()));
setLabel(3, 0, "# of leaves");
setText(3, 1, String.valueOf(node.getNumberOfLeafNodes()));
setLabel(4, 0, "subtree size");
setText(4, 1, String.valueOf(node.getNumberOfNodes()));
setLabel(5, 0, "height");
setText(5, 1, String.valueOf(node.findMaximumDepthToLeaf()));
}
}
private void setLabel(int row, int col, String text)
{
setWidget(row, col, new Label(text));
}
}