package org.drools.guvnor.client.explorer; import java.util.HashMap; import java.util.Map; import com.google.gwt.event.logical.shared.SelectionHandler; import com.google.gwt.resources.client.ImageResource; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.Tree; import com.google.gwt.user.client.ui.TreeItem; import org.drools.guvnor.client.ruleeditor.MultiViewRow; import org.drools.guvnor.client.ruleeditor.NewAssetWizard; import org.drools.guvnor.client.rulelist.EditItemEvent; import org.drools.guvnor.client.util.TabOpener; import org.drools.guvnor.client.util.Util; public abstract class AbstractTree extends Composite implements SelectionHandler<TreeItem> { protected String name; protected ImageResource image; protected final Tree mainTree; protected Map<TreeItem, String> itemWidgets = new HashMap<TreeItem, String>(); /** * Constructor. */ public AbstractTree() { mainTree = createTree(); mainTree.setStyleName( "guvnor-Tree" ); initWidget( mainTree ); } protected abstract Tree createTree(); /** * Get a string representation of the header that includes an image and some * text. * @return the header as a string */ public HTML getHeaderHTML() { return Util.getHeaderHTML( image, name ); } public void refreshTree() { } protected void launchWizard(String format, String title, boolean showCats) { final TabOpener tabOpener = TabOpener.getInstance(); NewAssetWizard pop = new NewAssetWizard( new EditItemEvent() { public void open(String key) { tabOpener.openAsset( key ); } public void open(MultiViewRow[] rows) { for ( MultiViewRow row : rows ) { tabOpener.openAsset( row.uuid ); } } }, showCats, format, title ); pop.show(); } }