[jboss-svn-commits] JBL Code SVN: r34973 - labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Sep 2 09:22:32 EDT 2010
Author: jervisliu
Date: 2010-09-02 09:22:31 -0400 (Thu, 02 Sep 2010)
New Revision: 34973
Modified:
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/ExplorerViewCenterPanel.java
Log:
GUVNOR-615: Closable TabPanel.
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/ExplorerViewCenterPanel.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/ExplorerViewCenterPanel.java 2010-09-02 07:11:48 UTC (rev 34972)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/ExplorerViewCenterPanel.java 2010-09-02 13:22:31 UTC (rev 34973)
@@ -23,7 +23,9 @@
import org.drools.guvnor.client.common.AssetFormats;
import org.drools.guvnor.client.common.FormStylePopup;
import org.drools.guvnor.client.common.GenericCallback;
+import org.drools.guvnor.client.common.ImageButton;
import org.drools.guvnor.client.common.LoadingPopup;
+import org.drools.guvnor.client.images.Images;
import org.drools.guvnor.client.messages.Constants;
import org.drools.guvnor.client.packages.PackageEditor;
import org.drools.guvnor.client.packages.SnapshotView;
@@ -42,23 +44,34 @@
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Style.Unit;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.History;
import com.google.gwt.user.client.Timer;
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.ClickListener;
+import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.ScrollPanel;
import com.google.gwt.user.client.ui.TabLayoutPanel;
+import com.google.gwt.user.client.ui.TreeItem;
import com.google.gwt.user.client.ui.Widget;
import com.gwtext.client.core.Ext;
-import com.gwtext.client.widgets.Button;
+
/**
* This is the tab panel manager.
* @author Fernando Meyer, Michael Neale
*/
public class ExplorerViewCenterPanel {
+ private Constants constants = ((Constants)GWT.create(Constants.class));
+ private static Images images = (Images)GWT.create(Images.class);
final TabLayoutPanel tp;
@@ -68,9 +81,10 @@
/** to keep track of what is dirty, filthy */
private Map<String, GuvnorEditor> openedAssetEditors = new HashMap<String, GuvnorEditor>();
private Map<String, PackageEditor> openedPackageEditors = new HashMap<String, PackageEditor>();
+
+ private Map<Panel, String[]> itemWidgets = new HashMap<Panel, String[]>();
- private Button closeAllButton;
- private Constants constants = ((Constants) GWT.create( Constants.class ));
+ //private Button closeAllButton;
public ExplorerViewCenterPanel() {
tp = new TabLayoutPanel(2, Unit.EM);
@@ -155,7 +169,8 @@
ScrollPanel localTP = new ScrollPanel();
localTP.add(widget);
- tp.add(localTP, tabname);
+ //tp.add(localTP, tabname);
+ tp.add(localTP, newClosableLabel(localTP, tabname));
tp.selectTab(localTP);
/* localTP.ad( new PanelListenerAdapter() {
@@ -179,10 +194,36 @@
//tp.activate( localTP.getId() );
- openedTabs.put( keys,
- localTP );
+ openedTabs.put(keys, localTP);
+ itemWidgets.put(localTP, keys);
}
+
+ private Widget newClosableLabel(final Panel panel, final String title) {
+ final HorizontalPanel hPanel = new HorizontalPanel();
+ final Label label = new Label(title);
+ DOM.setStyleAttribute(label.getElement(), "whiteSpace", "nowrap");
+ //ImageButton closeBtn = new ImageButton(images.backupSmall().getURL());
+ Button closeBtn = new Button("x");
+ closeBtn.addClickHandler(new ClickHandler() {
+ public void onClick(ClickEvent arg0) {
+ int widgetIndex = tp.getWidgetIndex(panel);
+ if (widgetIndex == tp.getSelectedIndex()) {
+ tp.selectTab(widgetIndex - 1);
+ }
+ tp.remove(widgetIndex);
+ String[] keys = itemWidgets.get(panel);
+ openedTabs.remove(keys);
+ }
+
+ });
+
+ hPanel.add(label);
+ hPanel.add(new HTML("   "));
+ hPanel.add(closeBtn);
+ return hPanel;
+ }
+
/**
* Will open if existing. If not it will return false;
*/
More information about the jboss-svn-commits
mailing list