You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by hn...@apache.org on 2017/04/21 12:18:52 UTC
svn commit: r1792194 - in
/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago:
component/ internal/renderkit/renderer/ internal/taglib/component/
renderkit/css/
Author: hnoeth
Date: Fri Apr 21 12:18:52 2017
New Revision: 1792194
URL: http://svn.apache.org/viewvc?rev=1792194&view=rev
Log:
TOBAGO-1734 Align of dropdown menu is always 'left'
* implement ButtonInsideInAfterRenderer for buttons inside an after-facet of an input field
Added:
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/ButtonInsideInAfterRenderer.java
Modified:
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/RendererTypes.java
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/CommandRendererBase.java
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/InRenderer.java
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ButtonTagDeclaration.java
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/BootstrapClass.java
Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/RendererTypes.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/RendererTypes.java?rev=1792194&r1=1792193&r2=1792194&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/RendererTypes.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/component/RendererTypes.java Fri Apr 21 12:18:52 2017
@@ -28,6 +28,7 @@ public enum RendererTypes {
Box,
Button,
ButtonInsideIn,
+ ButtonInsideInAfter,
Buttons,
Calendar,
Column,
@@ -99,6 +100,7 @@ public enum RendererTypes {
public static final String BOX = "Box";
public static final String BUTTON = "Button";
public static final String BUTTON_INSIDE_IN = "ButtonInsideIn";
+ public static final String BUTTON_INSIDE_IN_AFTER = "ButtonInsideInAfter";
public static final String BUTTONS = "Buttons";
public static final String CALENDAR = "Calendar";
public static final String COLUMN = "Column";
Added: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/ButtonInsideInAfterRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/ButtonInsideInAfterRenderer.java?rev=1792194&view=auto
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/ButtonInsideInAfterRenderer.java (added)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/ButtonInsideInAfterRenderer.java Fri Apr 21 12:18:52 2017
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.myfaces.tobago.internal.renderkit.renderer;
+
+import org.apache.myfaces.tobago.internal.component.AbstractUICommand;
+import org.apache.myfaces.tobago.renderkit.css.BootstrapClass;
+import org.apache.myfaces.tobago.renderkit.css.CssItem;
+
+import javax.faces.context.FacesContext;
+import java.util.List;
+
+public class ButtonInsideInAfterRenderer extends ButtonInsideInRenderer {
+
+ @Override
+ protected void addDropdownCssItems(final FacesContext facesContext, final AbstractUICommand command,
+ final List<CssItem> collected) {
+ collected.add(BootstrapClass.DROPDOWN_MENU_RIGHT);
+ }
+}
Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/CommandRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/CommandRendererBase.java?rev=1792194&r1=1792193&r2=1792194&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/CommandRendererBase.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/CommandRendererBase.java Fri Apr 21 12:18:52 2017
@@ -157,7 +157,13 @@ public abstract class CommandRendererBas
if (parentOfCommands) {
writer.startElement(HtmlElements.DIV);
- writer.writeClassAttribute(BootstrapClass.DROPDOWN_MENU);
+ final List<CssItem> dropdownCssItems = new ArrayList<CssItem>();
+ addDropdownCssItems(facesContext, command, dropdownCssItems);
+ writer.writeClassAttribute(
+ BootstrapClass.DROPDOWN_MENU,
+ null,
+ dropdownCssItems.toArray(new CssItem[dropdownCssItems.size()])
+ );
writer.writeAttribute(Arias.LABELLEDBY, "dropdownMenuButton", false);
for (final UIComponent child : component.getChildren()) {
@@ -230,4 +236,8 @@ public abstract class CommandRendererBas
protected void addCssItems(final FacesContext facesContext, final AbstractUICommand command,
final List<CssItem> collected) {
}
+
+ protected void addDropdownCssItems(final FacesContext facesContext, final AbstractUICommand command,
+ final List<CssItem> collected) {
+ }
}
Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/InRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/InRenderer.java?rev=1792194&r1=1792193&r2=1792194&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/InRenderer.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/InRenderer.java Fri Apr 21 12:18:52 2017
@@ -82,7 +82,7 @@ public class InRenderer extends MessageL
writer.startElement(HtmlElements.DIV);
writer.writeClassAttribute(BootstrapClass.INPUT_GROUP);
}
- encodeGroupAddon(facesContext, writer, before);
+ encodeGroupAddon(facesContext, writer, before, false);
writer.startElement(HtmlElements.INPUT);
@@ -141,7 +141,7 @@ public class InRenderer extends MessageL
writer.endElement(HtmlElements.INPUT);
- encodeGroupAddon(facesContext, writer, after);
+ encodeGroupAddon(facesContext, writer, after, true);
if (after != null || before != null) {
writer.endElement(HtmlElements.DIV);
@@ -149,8 +149,8 @@ public class InRenderer extends MessageL
}
}
- private void encodeGroupAddon(FacesContext facesContext, TobagoResponseWriter writer, UIComponent addon)
- throws IOException {
+ private void encodeGroupAddon(FacesContext facesContext, TobagoResponseWriter writer, UIComponent addon,
+ boolean isAfterFacet) throws IOException {
if (addon != null) {
final List<UIComponent> children;
if (addon instanceof UIPanel) {
@@ -160,7 +160,11 @@ public class InRenderer extends MessageL
}
for (UIComponent child : children) {
if (child instanceof AbstractUIButton && ((AbstractUIButton) child).isParentOfCommands()) {
- child.setRendererType(RendererTypes.ButtonInsideIn.name());
+ if (isAfterFacet) {
+ child.setRendererType(RendererTypes.ButtonInsideInAfter.name());
+ } else {
+ child.setRendererType(RendererTypes.ButtonInsideIn.name());
+ }
RenderUtils.encode(facesContext, child);
} else {
writer.startElement(HtmlElements.SPAN);
Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ButtonTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ButtonTagDeclaration.java?rev=1792194&r1=1792193&r2=1792194&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ButtonTagDeclaration.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/ButtonTagDeclaration.java Fri Apr 21 12:18:52 2017
@@ -60,7 +60,7 @@ import javax.faces.component.UICommand;
"org.apache.myfaces.tobago.component.SupportsAccessKey"
},
componentFamily = UICommand.COMPONENT_FAMILY,
- rendererType = {RendererTypes.BUTTON, RendererTypes.BUTTON_INSIDE_IN},
+ rendererType = {RendererTypes.BUTTON, RendererTypes.BUTTON_INSIDE_IN, RendererTypes.BUTTON_INSIDE_IN_AFTER},
allowedChildComponenents = "NONE",
facets = {
@Facet(
Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/BootstrapClass.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/BootstrapClass.java?rev=1792194&r1=1792193&r2=1792194&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/BootstrapClass.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/BootstrapClass.java Fri Apr 21 12:18:52 2017
@@ -151,6 +151,7 @@ public enum BootstrapClass implements Cs
DROPDOWN("dropdown"),
DROPDOWN_ITEM("dropdown-item"),
DROPDOWN_MENU("dropdown-menu"),
+ DROPDOWN_MENU_RIGHT("dropdown-menu-right"),
DROPDOWN_TOGGLE("dropdown-toggle"),
FADE("fade"),
FIGURE("figure"),