You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2016/05/03 08:56:59 UTC
svn commit: r1742063 - in /myfaces/tobago/trunk:
tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/
tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/
tobago-example/tobago-example-demo/src/main/java/org...
Author: lofwyr
Date: Tue May 3 06:56:58 2016
New Revision: 1742063
URL: http://svn.apache.org/viewvc?rev=1742063&view=rev
Log:
TOBAGO-1559: Accesskey doesn't work with "labelLayout"
Modified:
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIInput.java
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/DateTagDeclaration.java
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/InTagDeclaration.java
myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TextareaTagDeclaration.java
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/AccessKeyController.java
myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/65-accessKey/accessKey.xhtml
myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/InRenderer.java
myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/LabelLayoutRendererBase.java
myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/TextareaRenderer.java
Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIInput.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIInput.java?rev=1742063&r1=1742062&r2=1742063&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIInput.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIInput.java Tue May 3 06:56:58 2016
@@ -19,6 +19,7 @@
package org.apache.myfaces.tobago.internal.component;
+import org.apache.myfaces.tobago.component.SupportsAccessKey;
import org.apache.myfaces.tobago.component.SupportsLabelLayout;
import org.apache.myfaces.tobago.component.Visual;
import org.apache.myfaces.tobago.util.ComponentUtils;
@@ -29,7 +30,7 @@ import java.util.Arrays;
import java.util.Collection;
public abstract class AbstractUIInput extends javax.faces.component.UIInput
- implements SupportsLabelLayout, Visual, ClientBehaviorHolder {
+ implements SupportsAccessKey, SupportsLabelLayout, Visual, ClientBehaviorHolder {
// todo generate
private static final Collection<String> EVENT_NAMES = Arrays.asList("change");
Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/DateTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/DateTagDeclaration.java?rev=1742063&r1=1742062&r2=1742063&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/DateTagDeclaration.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/DateTagDeclaration.java Tue May 3 06:56:58 2016
@@ -24,6 +24,7 @@ import org.apache.myfaces.tobago.apt.ann
import org.apache.myfaces.tobago.apt.annotation.UIComponentTag;
import org.apache.myfaces.tobago.component.Facets;
import org.apache.myfaces.tobago.component.RendererTypes;
+import org.apache.myfaces.tobago.internal.taglib.declaration.HasAccessKey;
import org.apache.myfaces.tobago.internal.taglib.declaration.HasConverter;
import org.apache.myfaces.tobago.internal.taglib.declaration.HasConverterMessage;
import org.apache.myfaces.tobago.internal.taglib.declaration.HasIdBindingAndRendered;
@@ -64,7 +65,7 @@ import javax.faces.component.UIInput;
"This facet can contain a UICommand that is invoked in a case of a change event from the component")
})
public interface DateTagDeclaration
- extends HasValidator, HasValue, HasValueChangeListener, HasTabIndex, IsFocus, IsVisual,
+ extends HasAccessKey, HasValidator, HasValue, HasValueChangeListener, HasTabIndex, IsFocus, IsVisual,
HasValidatorMessage, HasConverterMessage, HasRequiredMessage, HasIdBindingAndRendered, IsReadonly,
IsDisabled, HasConverter, HasLabel, HasLabelLayout,
HasTip, IsRequired, HasPlaceholder {
Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/InTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/InTagDeclaration.java?rev=1742063&r1=1742062&r2=1742063&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/InTagDeclaration.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/InTagDeclaration.java Tue May 3 06:56:58 2016
@@ -25,6 +25,7 @@ import org.apache.myfaces.tobago.apt.ann
import org.apache.myfaces.tobago.apt.annotation.UIComponentTag;
import org.apache.myfaces.tobago.component.Facets;
import org.apache.myfaces.tobago.component.RendererTypes;
+import org.apache.myfaces.tobago.internal.taglib.declaration.HasAccessKey;
import org.apache.myfaces.tobago.internal.taglib.declaration.HasAutocomplete;
import org.apache.myfaces.tobago.internal.taglib.declaration.HasConverter;
import org.apache.myfaces.tobago.internal.taglib.declaration.HasConverterMessage;
@@ -69,7 +70,7 @@ import javax.faces.component.UIInput;
})
public interface InTagDeclaration
extends HasIdBindingAndRendered, HasConverter, IsReadonly, IsDisabled, IsRequired, HasTip, IsPassword,
- HasValidator, HasValue, HasValueChangeListener, HasTabIndex, IsFocus, IsVisual,
+ HasAccessKey, HasValidator, HasValue, HasValueChangeListener, HasTabIndex, IsFocus, IsVisual,
HasValidatorMessage, HasConverterMessage, HasRequiredMessage, HasInputLabel, HasLabelLayout,
HasAutocomplete, HasPlaceholder {
Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TextareaTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TextareaTagDeclaration.java?rev=1742063&r1=1742062&r2=1742063&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TextareaTagDeclaration.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TextareaTagDeclaration.java Tue May 3 06:56:58 2016
@@ -24,6 +24,7 @@ import org.apache.myfaces.tobago.apt.ann
import org.apache.myfaces.tobago.apt.annotation.UIComponentTag;
import org.apache.myfaces.tobago.apt.annotation.UIComponentTagAttribute;
import org.apache.myfaces.tobago.component.RendererTypes;
+import org.apache.myfaces.tobago.internal.taglib.declaration.HasAccessKey;
import org.apache.myfaces.tobago.internal.taglib.declaration.HasConverter;
import org.apache.myfaces.tobago.internal.taglib.declaration.HasConverterMessage;
import org.apache.myfaces.tobago.internal.taglib.declaration.HasIdBindingAndRendered;
@@ -58,7 +59,7 @@ import javax.faces.component.UIInput;
allowedChildComponenents = "NONE")
public interface TextareaTagDeclaration
extends HasIdBindingAndRendered, HasConverter, IsReadonly, IsDisabled, IsRequired, HasLabel, HasLabelLayout, HasTip,
- HasValidator, HasValue, HasValueChangeListener, HasTabIndex, IsFocus, IsVisual,
+ HasAccessKey, HasValidator, HasValue, HasValueChangeListener, HasTabIndex, IsFocus, IsVisual,
HasValidatorMessage, HasConverterMessage, HasRequiredMessage, HasSanitize {
/**
Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/AccessKeyController.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/AccessKeyController.java?rev=1742063&r1=1742062&r2=1742063&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/AccessKeyController.java (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/AccessKeyController.java Tue May 3 06:56:58 2016
@@ -5,6 +5,7 @@ import org.apache.myfaces.tobago.compone
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
import java.io.Serializable;
+import java.util.Date;
@SessionScoped
@Named
@@ -34,4 +35,8 @@ public class AccessKeyController impleme
this.labelComponent = labelComponent;
}
+
+ public Date getCurrentDate() {
+ return new Date();
+ }
}
Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/65-accessKey/accessKey.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/65-accessKey/accessKey.xhtml?rev=1742063&r1=1742062&r2=1742063&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/65-accessKey/accessKey.xhtml (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/65-accessKey/accessKey.xhtml Tue May 3 06:56:58 2016
@@ -23,17 +23,14 @@
<ui:param name="title" value="#{overviewBundle.accessKey}"/>
<p>The <code>accessKey</code> attribute is available for many components like buttons, labels, checkboxes or links.
A component with this attribute is accessible by the given character. The character is not case sensitive.</p>
-
-
- <p>
- To log the use of the accessKey attribute please configure
- the category <code>org.apache.myfaces.tobago.internal.util.AccessKeyLogger</code> to log level "debug".
- </p>
+ <p>To log the use of the accessKey attribute please configure
+ the category <code>org.apache.myfaces.tobago.internal.util.AccessKeyLogger</code> to log level "debug".</p>
<p>The usage of accesskeys is different for every OS and browser.<br/>
For example, in Firefox for Windows, you have to press 'Alt + Shift + key'. In Chrome it's only 'Alt + key'.
- A complete listing can be found
- <tc:link label="here" link="https://developer.mozilla.org/de/docs/Web/HTML/Global_attributes/accesskey"/>.</p>
+ A complete listing can be found at the
+ <tc:link label="Mozilla Developer Network"
+ link="https://developer.mozilla.org/de/docs/Web/HTML/Global_attributes/accesskey"/>.</p>
<p>Tag Library Documentation:
<tc:link label="<tc:button/>" image="image/feather-leaf.png"
link="#{overviewBundle.tagDocUrl}/button.html"/>
@@ -47,7 +44,6 @@
<tc:link label="<tc:label/>" image="image/feather-leaf.png"
link="#{overviewBundle.tagDocUrl}/label.html"/></p>
-
<tc:section label="Basics">
<p>The access key is set to 'a'. Notice, that the 'A' in the label of the button has an underscore.</p>
<pre><code class="language-markup"><tc:button label="Button AccessKey" accessKey="a"></code></pre>
@@ -81,10 +77,19 @@
</tc:button>
</tc:section>
+ <tc:section label="Inputfields">
+ <tc:in label="Input" accessKey="i"/>
+ <tc:textarea label="Textarea" accessKey="t"/>
+ <tc:date label="Date" accessKey="d" value="#{accessKeyController.currentDate}">
+ <f:convertDateTime pattern="yyyy-MM-dd"/>
+ </tc:date>
+ </tc:section>
+
<tc:section label="Label">
- <tc:label value="Test" accessKey="e" for="@auto"/> (todo: fix, this is because of the change, that the local root element has now the clientId, need ::filed suffix)
- <tc:in />
- <tc:in label="Test" accessKey="s" />
- <tc:selectBooleanCheckbox label="Test" accessKey="s" />
+ (todo: fix, this is because of the change, that the local root element has now the clientId, need ::filed suffix)
+ <tc:label value="Test" accessKey="e" for="@auto"/>
+ <tc:in id="in1" />
+ <!--<tc:in label="Test" accessKey="s" />-->
+ <!--<tc:selectBooleanCheckbox label="Test" accessKey="s" />-->
</tc:section>
</ui:composition>
Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/InRenderer.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/InRenderer.java?rev=1742063&r1=1742062&r2=1742063&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/InRenderer.java (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/InRenderer.java Tue May 3 06:56:58 2016
@@ -21,6 +21,7 @@ package org.apache.myfaces.tobago.render
import org.apache.myfaces.tobago.component.Attributes;
import org.apache.myfaces.tobago.internal.component.AbstractUIInput;
+import org.apache.myfaces.tobago.internal.util.AccessKeyLogger;
import org.apache.myfaces.tobago.internal.util.StringUtils;
import org.apache.myfaces.tobago.renderkit.css.BootstrapClass;
import org.apache.myfaces.tobago.renderkit.css.Classes;
@@ -65,6 +66,12 @@ public class InRenderer extends LabelLay
final TobagoResponseWriter writer = HtmlRendererUtils.getTobagoResponseWriter(facesContext);
writer.startElement(HtmlElements.INPUT);
+
+ if (input.getAccessKey() != null) {
+ writer.writeAttribute(HtmlAttributes.ACCESSKEY, Character.toString(input.getAccessKey()), false);
+ AccessKeyLogger.addAccessKey(facesContext, input.getAccessKey(), clientId);
+ }
+
writer.writeAttribute(HtmlAttributes.TYPE, type);
writer.writeNameAttribute(clientId);
writer.writeIdAttribute(fieldId);
Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/LabelLayoutRendererBase.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/LabelLayoutRendererBase.java?rev=1742063&r1=1742062&r2=1742063&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/LabelLayoutRendererBase.java (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/LabelLayoutRendererBase.java Tue May 3 06:56:58 2016
@@ -21,8 +21,10 @@ package org.apache.myfaces.tobago.render
import org.apache.myfaces.tobago.component.Attributes;
import org.apache.myfaces.tobago.component.LabelLayout;
+import org.apache.myfaces.tobago.component.SupportsAccessKey;
import org.apache.myfaces.tobago.component.SupportsLabelLayout;
import org.apache.myfaces.tobago.internal.util.StringUtils;
+import org.apache.myfaces.tobago.renderkit.LabelWithAccessKey;
import org.apache.myfaces.tobago.renderkit.css.BootstrapClass;
import org.apache.myfaces.tobago.renderkit.css.CssItem;
import org.apache.myfaces.tobago.renderkit.css.TobagoClass;
@@ -188,8 +190,12 @@ public abstract class LabelLayoutRendere
writer.startElement(HtmlElements.LABEL);
writer.writeAttribute(HtmlAttributes.FOR, component.getClientId(), false);
writer.writeClassAttribute(TobagoClass.LABEL, BootstrapClass.FORM_CONTROL_LABEL);
- // todo: label with accesskey
- writer.writeText(label);
+ if (component instanceof SupportsAccessKey) {
+ LabelWithAccessKey labelWithAccessKey = new LabelWithAccessKey((SupportsAccessKey) component);
+ HtmlRendererUtils.writeLabelWithAccessKey(writer, labelWithAccessKey);
+ } else {
+ writer.writeText(label);
+ }
writer.endElement(HtmlElements.LABEL);
}
}
Modified: myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/TextareaRenderer.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/TextareaRenderer.java?rev=1742063&r1=1742062&r2=1742063&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/TextareaRenderer.java (original)
+++ myfaces/tobago/trunk/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/TextareaRenderer.java Tue May 3 06:56:58 2016
@@ -21,8 +21,9 @@ package org.apache.myfaces.tobago.render
import org.apache.myfaces.tobago.component.UITextarea;
import org.apache.myfaces.tobago.config.TobagoConfig;
-import org.apache.myfaces.tobago.renderkit.css.Classes;
+import org.apache.myfaces.tobago.internal.util.AccessKeyLogger;
import org.apache.myfaces.tobago.renderkit.css.BootstrapClass;
+import org.apache.myfaces.tobago.renderkit.css.Classes;
import org.apache.myfaces.tobago.renderkit.html.DataAttributes;
import org.apache.myfaces.tobago.renderkit.html.HtmlAttributes;
import org.apache.myfaces.tobago.renderkit.html.HtmlElements;
@@ -70,6 +71,11 @@ public class TextareaRenderer extends La
writer.writeAttribute(HtmlAttributes.REQUIRED, input.isRequired());
writer.writeAttribute(HtmlAttributes.TABINDEX, input.getTabIndex());
+ if (input.getAccessKey() != null) {
+ writer.writeAttribute(HtmlAttributes.ACCESSKEY, Character.toString(input.getAccessKey()), false);
+ AccessKeyLogger.addAccessKey(facesContext, input.getAccessKey(), clientId);
+ }
+
writer.writeClassAttribute(Classes.create(input), BootstrapClass.FORM_CONTROL, input.getCustomClass());
writer.writeStyleAttribute(input.getStyle());
int maxLength = -1;