package fr.lteconsulting.hexa.client.ui.containers;
import java.util.Iterator;
import com.google.gwt.dom.client.Element;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.Widget;
public class DivTree extends Panel
{
private Node rootNode;
public DivTree()
{
Element div = DOM.createDiv();
div.setClassName( "DivTree-Container" );
setElement( div );
rootNode = new Node( div );
}
public Node getRootNode()
{
return rootNode;
}
class Node
{
Element nodeContainer;
Element nodeDiv;
Element childContainer;
Widget nodeWidget = null;
public Node( Element container )
{
nodeContainer = container;
nodeDiv = DOM.createDiv();
nodeDiv.setClassName( "DivTree-NodeDiv" );
nodeContainer.appendChild( nodeDiv );
nodeDiv.setInnerText( "Node salam aleikum salam aleikum salam aleikum salam aleikum salam aleikum salam" );
childContainer = DOM.createDiv();
// childContainer.getStyle().setDisplay( Display.INLINE_BLOCK );
childContainer.setClassName( "DivTree-ChildrenContainer" );
nodeContainer.appendChild( childContainer );
}
public void setNodeWidget( Widget widget )
{
widget.removeFromParent();
if( nodeWidget != null )
{
try
{
orphan( nodeWidget );
}
finally
{
getElement().removeChild( nodeWidget.getElement() );
nodeWidget = null;
}
}
nodeWidget = widget;
if( widget != null )
{
DOM.appendChild( nodeDiv, widget.getElement() );
adopt( widget );
}
}
public Node addNodeChild()
{
Element childNodeContainer = DOM.createDiv();
childNodeContainer.setClassName( "DivTree-NodeContainer" );
childContainer.appendChild( childNodeContainer );
Node childNode = new Node( childNodeContainer );
return childNode;
}
}
@Override
public boolean remove( Widget child )
{
// TODO Auto-generated method stub
return false;
}
@Override
public Iterator<Widget> iterator()
{
// TODO Auto-generated method stub
return null;
}
@Override
protected void doAttachChildren()
{
}
@Override
protected void doDetachChildren()
{
}
}