You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by we...@apache.org on 2014/04/26 15:44:44 UTC

svn commit: r1590236 - in /myfaces/tobago/trunk: tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/ tobago-theme/tobago-theme-scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/style/ tobag...

Author: weber
Date: Sat Apr 26 13:44:44 2014
New Revision: 1590236

URL: http://svn.apache.org/r1590236
Log:
TOBAGO-1386 - ToolbarButtons in TabLabels

Modified:
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITabGroup.java
    myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/style/tobago.css
    myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/TabGroupRenderer.java
    myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago.js

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITabGroup.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITabGroup.java?rev=1590236&r1=1590235&r2=1590236&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITabGroup.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITabGroup.java Sat Apr 26 13:44:44 2014
@@ -25,6 +25,7 @@ import org.apache.myfaces.tobago.compone
 import org.apache.myfaces.tobago.component.OnComponentPopulated;
 import org.apache.myfaces.tobago.component.RendererTypes;
 import org.apache.myfaces.tobago.component.SupportsRenderedPartially;
+import org.apache.myfaces.tobago.component.UITab;
 import org.apache.myfaces.tobago.event.TabChangeEvent;
 import org.apache.myfaces.tobago.event.TabChangeListener;
 import org.apache.myfaces.tobago.event.TabChangeSource2;
@@ -138,8 +139,25 @@ public abstract class AbstractUITabGroup
       if (!isRendered()) {
         return;
       }
-      final AbstractUIPanelBase renderedTab = getRenderedTab();
-      renderedTab.processDecodes(context);
+      int index = 0;
+      for (final UIComponent child : getChildren()) {
+        if (child instanceof UITab) {
+          final UITab tab = (UITab) child;
+          if (tab.isRendered()) {
+            if (getRenderedIndex() == index) {
+              tab.processDecodes(context);
+            } else {
+              UIComponent facet = tab.getFacet(Facets.TOOL_BAR);
+              if (facet != null) {
+                facet.processDecodes(context);
+              }
+            }
+          }
+          index++;
+        }
+      }
+//      final AbstractUIPanelBase renderedTab = getRenderedTab();
+//      renderedTab.processDecodes(context);
       for (final UIComponent facet : getFacets().values()) {
         facet.processDecodes(context);
       }

Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/style/tobago.css
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/style/tobago.css?rev=1590236&r1=1590235&r2=1590236&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/style/tobago.css (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/style/tobago.css Sat Apr 26 13:44:44 2014
@@ -1277,6 +1277,18 @@ div.tobago-richTextEditor-body {
   padding-left: 13px;
 }
 
+.tobago-tab-toolBar {
+  position: relative;
+  float: right;
+  top: -2px;
+  right: -7px;
+}
+
+.tobago-tab-toolBar-markup-selected {
+  top: -1px;
+  right: -6px;
+}
+
 .tobago-tabGroup {
   position: absolute;
 }

Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/TabGroupRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/TabGroupRenderer.java?rev=1590236&r1=1590235&r2=1590236&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/TabGroupRenderer.java (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/TabGroupRenderer.java Sat Apr 26 13:44:44 2014
@@ -54,6 +54,7 @@ import javax.el.ValueExpression;
 import javax.faces.application.Application;
 import javax.faces.application.FacesMessage;
 import javax.faces.component.UIComponent;
+import javax.faces.component.UIPanel;
 import javax.faces.component.UIViewRoot;
 import javax.faces.context.FacesContext;
 import java.io.IOException;
@@ -222,6 +223,11 @@ public class TabGroupRenderer extends La
           }
           writer.endElement(HtmlElements.A);
 
+          final UIPanel toolbar = (UIPanel) tab.getFacet(Facets.TOOL_BAR);
+          if (toolbar != null) {
+            renderTabToolbar(facesContext, writer, tab, toolbar);
+          }
+
           if (label.getAccessKey() != null) {
             if (LOG.isWarnEnabled()
                 && !AccessKeyMap.addAccessKey(facesContext, label.getAccessKey())) {
@@ -245,6 +251,16 @@ public class TabGroupRenderer extends La
     }
   }
 
+  protected void renderTabToolbar(
+      final FacesContext facesContext, final TobagoResponseWriter writer, final UITab tab, final UIPanel toolbar)
+      throws IOException {
+    writer.startElement(HtmlElements.SPAN, null);
+    writer.writeClassAttribute(Classes.create(tab, "toolBar"));
+    toolbar.setRendererType("TabGroupToolBar");
+    RenderUtils.encode(facesContext, toolbar);
+    writer.endElement(HtmlElements.SPAN);
+  }
+
   private UIToolBar createToolBar(final FacesContext facesContext, final UITabGroup tabGroup) {
     final String clientId = tabGroup.getClientId(facesContext);
     final Application application = facesContext.getApplication();
@@ -256,12 +272,15 @@ public class TabGroupRenderer extends La
     previous.setRendererType(null);
     previous.getAttributes().put(Attributes.IMAGE, "image/tabPrev.gif");
     previous.setOmit(true); // avoid submit
+    ComponentUtils.putDataAttribute(previous, "tobago-tabgroup-toolbar-prev", "p");
+
     // next
     final UICommand next = (UICommand) application.createComponent(UICommand.COMPONENT_TYPE);
     next.setId(viewRoot.createUniqueId());
     next.setRendererType(null);
     next.getAttributes().put(Attributes.IMAGE, "image/tabNext.gif");
     next.setOmit(true); // avoid submit
+    ComponentUtils.putDataAttribute(next, "tobago-tabgroup-toolbar-next", "n");
 
     // all: sub menu to select any tab directly
     final UICommand all = (UICommand) CreateComponentUtils.createComponent(

Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago.js
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago.js?rev=1590236&r1=1590235&r2=1590236&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago.js (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago.js Sat Apr 26 13:44:44 2014
@@ -890,6 +890,8 @@ var Tobago = {
                 } else {
                   Tobago.reloadComponent(this, commands.click.partially, action, commands.click);
                 }
+                event.preventDefault();
+                return false;
               } else if (commands.click.url) {
                 if (commands.click.target) {
                   window.open(commands.click.url, commands.click.target)
@@ -2627,8 +2629,7 @@ Tobago.TabGroup.init = function(elements
   });
 
   // initialize previous button
-  // XXX ":first" and eq(1) are dangerous, please define e.g. a unique class for "previous" and "next"
-  tabGroups.find(".tobago-tabGroupToolBar-button:first").click(function() {
+  tabGroups.find("[data-tobago-tabgroup-toolbar-prev]").click(function() {
     var tabGroup = jQuery(this).parents(".tobago-tabGroup:first");
     var selected = tabGroup.find(".tobago-tab-markup-selected");
     // the nearest of the previous siblings, which are not disabled
@@ -2636,8 +2637,7 @@ Tobago.TabGroup.init = function(elements
   });
 
   // initialize next button
-  // XXX ":first" and eq(1) are dangerous, please define e.g. a unique class for "previous" and "next"
-  tabGroups.find(".tobago-tabGroupToolBar-button:eq(1)").click(function() {
+  tabGroups.find("[data-tobago-tabgroup-toolbar-next]").click(function() {
     var tabGroup = jQuery(this).parents(".tobago-tabGroup:first");
     var selected = tabGroup.find(".tobago-tab-markup-selected");
     // the nearest of the next siblings, which are not disabled