package fr.lteconsulting.hexa.client.ui.tree; import java.util.ArrayList; import com.google.gwt.user.client.ui.UIObject; public interface INodeWidget<NODE_DATA, LEAF_DATA> extends TreeWidget<NODE_DATA, LEAF_DATA> { public interface XNodeWidget<NODE_DATA, LEAF_DATA> { void onWantAdd( INodeWidget<NODE_DATA, LEAF_DATA> node, UIObject uiObject ); void onWantDelete( INodeWidget<NODE_DATA, LEAF_DATA> node, TreeWidget<NODE_DATA, LEAF_DATA> child, UIObject uiObject ); } void addChild( TreeWidget<NODE_DATA, LEAF_DATA> child ); void removeChild( TreeWidget<NODE_DATA, LEAF_DATA> child ); void replaceChild( TreeWidget<NODE_DATA, LEAF_DATA> oldChild, TreeWidget<NODE_DATA, LEAF_DATA> newChild ); INodeWidget<NODE_DATA, LEAF_DATA> createEmptyNode(); void childWantsAdd( UIObject uiObject ); ArrayList<TreeWidget<NODE_DATA, LEAF_DATA>> getChildren(); NODE_DATA getData(); void setData( NODE_DATA data ); }