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/11 09:36:07 UTC

svn commit: r1743331 - in /myfaces/tobago/trunk/tobago-core/src: main/java/org/apache/myfaces/tobago/config/ main/java/org/apache/myfaces/tobago/internal/config/ main/java/org/apache/myfaces/tobago/renderkit/ main/resources/org/apache/myfaces/tobago/co...

Author: lofwyr
Date: Wed May 11 09:36:07 2016
New Revision: 1743331

URL: http://svn.apache.org/viewvc?rev=1743331&view=rev
Log:
TOBAGO-1561: Remove AutoAccessKey (underline)
[developed by hnoeth]

Modified:
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/config/TobagoConfig.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/TobagoConfigFragment.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/TobagoConfigImpl.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/TobagoConfigParser.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/TobagoConfigSorter.java
    myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/LabelWithAccessKey.java
    myfaces/tobago/trunk/tobago-core/src/main/resources/org/apache/myfaces/tobago/config/tobago-config-3.0.xsd
    myfaces/tobago/trunk/tobago-core/src/test/java/org/apache/myfaces/tobago/renderkit/LabelWithAccessKeyUnitTest.java

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/config/TobagoConfig.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/config/TobagoConfig.java?rev=1743331&r1=1743330&r2=1743331&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/config/TobagoConfig.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/config/TobagoConfig.java Wed May 11 09:36:07 2016
@@ -61,8 +61,6 @@ public abstract class TobagoConfig {
 
   public abstract Sanitizer getSanitizer();
 
-  public abstract boolean isAutoAccessKeyFromLabel();
-
   public abstract Map<String, String> getMimeTypes();
 
   /**

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/TobagoConfigFragment.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/TobagoConfigFragment.java?rev=1743331&r1=1743330&r2=1743331&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/TobagoConfigFragment.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/TobagoConfigFragment.java Wed May 11 09:36:07 2016
@@ -51,7 +51,6 @@ public class TobagoConfigFragment {
   private URL url;
   private String sanitizerClass;
   private Properties sanitizerProperties;
-  private Boolean autoAccessKeyFromLabel;
   private Map<String, String> mimeTypes;
 
   public TobagoConfigFragment() {
@@ -196,14 +195,6 @@ public class TobagoConfigFragment {
     this.sanitizerProperties = sanitizerProperties;
   }
 
-  public Boolean getAutoAccessKeyFromLabel() {
-    return autoAccessKeyFromLabel;
-  }
-
-  public void setAutoAccessKeyFromLabel(Boolean autoAccessKeyFromLabel) {
-    this.autoAccessKeyFromLabel = autoAccessKeyFromLabel;
-  }
-
   public void addMimeType(String extension, String type) {
     this.mimeTypes.put(extension, type);
   }

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/TobagoConfigImpl.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/TobagoConfigImpl.java?rev=1743331&r1=1743330&r2=1743331&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/TobagoConfigImpl.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/TobagoConfigImpl.java Wed May 11 09:36:07 2016
@@ -69,7 +69,6 @@ public class TobagoConfigImpl extends To
   private boolean setNosniffHeader;
   private Map<String, String> defaultValidatorInfo;
   private Sanitizer sanitizer;
-  private boolean autoAccessKeyFromLabel;
   private Map<String, String> mimeTypes;
 
   private boolean unmodifiable = false;
@@ -84,7 +83,6 @@ public class TobagoConfigImpl extends To
     preventFrameAttacks = true;
     setNosniffHeader = true;
     contentSecurityPolicy = new ContentSecurityPolicy(ContentSecurityPolicy.Mode.OFF.getValue());
-    autoAccessKeyFromLabel = true;
     mimeTypes = new HashMap<String, String>();
   }
 
@@ -377,16 +375,6 @@ public class TobagoConfigImpl extends To
   }
 
   @Override
-  public boolean isAutoAccessKeyFromLabel() {
-    return autoAccessKeyFromLabel;
-  }
-
-  public void setAutoAccessKeyFromLabel(boolean autoAccessKeyFromLabel) {
-    checkLocked();
-    this.autoAccessKeyFromLabel = autoAccessKeyFromLabel;
-  }
-
-  @Override
   public Map<String, String> getMimeTypes() {
     return mimeTypes;
   }
@@ -431,8 +419,6 @@ public class TobagoConfigImpl extends To
     builder.append(defaultValidatorInfo);
     builder.append(", \nsanitizer=");
     builder.append(sanitizer);
-    builder.append(", \nautoAccessKeyFromLabel=");
-    builder.append(autoAccessKeyFromLabel);
     // to see only different (ignore alternative names for the same theme)
     builder.append(", \nthemes=");
     final Set<Theme> all = new HashSet<Theme>(availableThemes.values());

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/TobagoConfigParser.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/TobagoConfigParser.java?rev=1743331&r1=1743330&r2=1743331&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/TobagoConfigParser.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/TobagoConfigParser.java Wed May 11 09:36:07 2016
@@ -82,7 +82,6 @@ public class TobagoConfigParser extends
   private static final int STYLE = 109780401;
   private static final int PROPERTIES = -926053069;
   private static final int ENTRY = 96667762;
-  private static final int AUTO_ACCESS_KEY_FROM_LABEL = 2070339882;
   private static final int MIME_TYPES = 1081186720;
   private static final int MIME_TYPE = -242217677;
   private static final int EXTENSION = -612557761;
@@ -248,7 +247,6 @@ public class TobagoConfigParser extends
       case FALLBACK:
       case SANITIZER:
       case SANITIZER_CLASS:
-      case AUTO_ACCESS_KEY_FROM_LABEL:
       case MIME_TYPES:
       case MIME_TYPE:
       case EXTENSION:
@@ -388,10 +386,6 @@ public class TobagoConfigParser extends
         entryKey = null;
         break;
 
-      case AUTO_ACCESS_KEY_FROM_LABEL:
-        tobagoConfig.setAutoAccessKeyFromLabel(Boolean.parseBoolean(text));
-        break;
-
       case EXTENSION:
         extension = text;
         break;

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/TobagoConfigSorter.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/TobagoConfigSorter.java?rev=1743331&r1=1743330&r2=1743331&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/TobagoConfigSorter.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/config/TobagoConfigSorter.java Wed May 11 09:36:07 2016
@@ -130,10 +130,6 @@ public class TobagoConfigSorter implemen
         sanitizerProperties = fragment.getSanitizerProperties();
       }
 
-      if (fragment.getAutoAccessKeyFromLabel() != null) {
-        result.setAutoAccessKeyFromLabel(fragment.getAutoAccessKeyFromLabel());
-      }
-
       // theme definition
       result.toString();
       for (ThemeImpl theme : fragment.getThemeDefinitions()) {

Modified: myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/LabelWithAccessKey.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/LabelWithAccessKey.java?rev=1743331&r1=1743330&r2=1743331&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/LabelWithAccessKey.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/LabelWithAccessKey.java Wed May 11 09:36:07 2016
@@ -21,21 +21,16 @@ package org.apache.myfaces.tobago.render
 
 import org.apache.myfaces.tobago.component.SupportsAccessKey;
 import org.apache.myfaces.tobago.component.UISelectBooleanCheckbox;
-import org.apache.myfaces.tobago.config.TobagoConfig;
 import org.apache.myfaces.tobago.internal.util.Deprecation;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.faces.context.FacesContext;
 import java.util.Locale;
 
 public final class LabelWithAccessKey {
 
   private static final Logger LOG = LoggerFactory.getLogger(LabelWithAccessKey.class);
 
-  public static final char INDICATOR = '_';
-  private static final String ESCAPED_INDICATOR = "__";
-
   private final String label;
   private final Character accessKey;
   private final int pos;
@@ -83,49 +78,8 @@ public final class LabelWithAccessKey {
       }
     }
 
-    boolean auto = TobagoConfig.getInstance(FacesContext.getCurrentInstance()).isAutoAccessKeyFromLabel();
-    // try to find the accessKey from the label if
-    // a) it's configured to do that AND
-    // b) there wasn't an accessKey defined in the component AND
-    // c) there is a label
-    if (auto && component.getAccessKey() == null && label0 != null) {
-
-      final int first = label0.indexOf(INDICATOR);
-      if (first > -1) {
-        final char[] chars = label0.toCharArray();
-        int j = first;
-        for (int i = first; i < chars.length; i++) {
-          if (chars[i] == INDICATOR) {
-            if (i + 1 < chars.length) {
-              i++; // ignore the first one
-              chars[j] = chars[i];
-              if (chars[i] != INDICATOR) {
-                if (accessKey0 == null) {
-                  pos0 = j;
-                  accessKey0 = Character.toLowerCase(chars[i]);
-                  if (!isPermitted(accessKey0)) {
-                    LOG.warn("Ignoring illegal access key: " + accessKey0);
-                    accessKey0 = null;
-                    pos0 = -1;
-                  }
-                }
-              }
-              j++;
-            } else {
-              LOG.warn("'" + INDICATOR + "' in label is last char, this is not allowed label='" + label0 + "'.");
-            }
-          } else {
-            chars[j] = chars[i];
-            j++;
-          }
-        }
-        label0 = new String(chars, 0, j);
-      }
-
-    } else {
-      if (accessKey0 != null && label0 != null) {
-        pos0 = label0.toLowerCase(Locale.ENGLISH).indexOf(accessKey0);
-      }
+    if (accessKey0 != null && label0 != null) {
+      pos0 = label0.toLowerCase(Locale.ENGLISH).indexOf(accessKey0);
     }
 
     label = label0;
@@ -133,31 +87,6 @@ public final class LabelWithAccessKey {
     pos = pos0;
   }
 
-/*
-  private void findIndicator(final String label, int index, int escapedIndicatorCount) {
-
-    index = label.indexOf(INDICATOR, index);
-    if (index == -1) {
-      text = label;
-    } else {
-      if (index == label.length() - 1) {
-        LOG.warn(INDICATOR + " in label is last char, this is not allowed"
-            + "label='" + label + "'.");
-        text = label.substring(0, label.length() - 1);
-        pos = -1;
-      } else if (label.charAt(index + 1) == INDICATOR) {
-        escapedIndicatorCount++;
-        findIndicator(label, index + 2, escapedIndicatorCount);
-      } else {
-        text = label.substring(0, index)
-            + label.substring(index + 1);
-        setAccessKey(text.charAt(index));
-        pos = index - escapedIndicatorCount;
-      }
-    }
-  }
-*/
-
   /**
    * @deprecated since 2.0.0. Attributes are final now, use a new instance.
    */

Modified: myfaces/tobago/trunk/tobago-core/src/main/resources/org/apache/myfaces/tobago/config/tobago-config-3.0.xsd
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/main/resources/org/apache/myfaces/tobago/config/tobago-config-3.0.xsd?rev=1743331&r1=1743330&r2=1743331&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/main/resources/org/apache/myfaces/tobago/config/tobago-config-3.0.xsd (original)
+++ myfaces/tobago/trunk/tobago-core/src/main/resources/org/apache/myfaces/tobago/config/tobago-config-3.0.xsd Wed May 11 09:36:07 2016
@@ -67,7 +67,6 @@
       <xs:element name="check-session-secret" type="xs:boolean" minOccurs="0" default="true"/>
       <xs:element name="prevent-frame-attacks" type="xs:boolean" minOccurs="0" default="true"/>
       <xs:element name="set-nosniff-header" type="xs:boolean" minOccurs="0" default="true"/>
-      <xs:element name="auto-access-key-from-label" type="xs:boolean" minOccurs="0" default="true"/>
       <xs:element name="classic-date-time-picker" type="xs:boolean" minOccurs="0" default="false"/>
       <xs:element name="content-security-policy" type="tobago:content-security-policy-type" minOccurs="0"/>
       <xs:element name="sanitizer" type="tobago:sanitizer-type" minOccurs="0"/>

Modified: myfaces/tobago/trunk/tobago-core/src/test/java/org/apache/myfaces/tobago/renderkit/LabelWithAccessKeyUnitTest.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-core/src/test/java/org/apache/myfaces/tobago/renderkit/LabelWithAccessKeyUnitTest.java?rev=1743331&r1=1743330&r2=1743331&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-core/src/test/java/org/apache/myfaces/tobago/renderkit/LabelWithAccessKeyUnitTest.java (original)
+++ myfaces/tobago/trunk/tobago-core/src/test/java/org/apache/myfaces/tobago/renderkit/LabelWithAccessKeyUnitTest.java Wed May 11 09:36:07 2016
@@ -37,46 +37,6 @@ public class LabelWithAccessKeyUnitTest
   }
 
   @Test
-  public void testWithKeyFirstLetter() {
-    final UILabel component = new UILabel();
-    component.setValue("Save_");
-    final LabelWithAccessKey label = new LabelWithAccessKey(component);
-    Assert.assertEquals("Save", label.getLabel());
-    Assert.assertEquals(-1, label.getPos());
-    Assert.assertNull(label.getAccessKey());
-  }
-
-  @Test
-  public void testWithKeyLastLetter() {
-    final UILabel component = new UILabel();
-    component.setValue("A__n__a_ly__ze");
-    final LabelWithAccessKey label = new LabelWithAccessKey(component);
-    Assert.assertEquals("A_n_aly_ze", label.getLabel());
-    Assert.assertEquals(5, label.getPos());
-    Assert.assertEquals(Character.valueOf('l'), label.getAccessKey());
-  }
-
-  @Test
-  public void testAmpersand() {
-    final UILabel component = new UILabel();
-    component.setValue("_Save");
-    final LabelWithAccessKey label = new LabelWithAccessKey(component);
-    Assert.assertEquals("Save", label.getLabel());
-    Assert.assertEquals(0, label.getPos());
-    Assert.assertEquals(Character.valueOf('s'), label.getAccessKey());
-  }
-
-  @Test
-  public void testAmpersandAtEnd() {
-    final UILabel component = new UILabel();
-    component.setValue("Save_");
-    final LabelWithAccessKey label = new LabelWithAccessKey(component);
-    Assert.assertEquals("Save", label.getLabel());
-    Assert.assertEquals(-1, label.getPos());
-    Assert.assertEquals(null, label.getAccessKey());
-  }
-
-  @Test
   public void testUmlauts() {
     // Umlauts are not supported as accessKey
     final UILabel component = new UILabel();
@@ -88,17 +48,6 @@ public class LabelWithAccessKeyUnitTest
   }
 
   @Test
-  public void testUmlauts2() {
-    // Umlauts are not supported as accessKey
-    final UILabel component = new UILabel();
-    component.setValue("L_öschen");
-    final LabelWithAccessKey label = new LabelWithAccessKey(component);
-    Assert.assertEquals("Löschen", label.getLabel());
-    Assert.assertEquals(-1, label.getPos());
-    Assert.assertEquals(null, label.getAccessKey());
-  }
-
-  @Test
   public void testKey() {
     final UILabel component = new UILabel();
     component.setValue("Save");
@@ -163,46 +112,6 @@ public class LabelWithAccessKeyUnitTest
     Assert.assertEquals(-1, label.getPos());
     Assert.assertEquals(null, label.getAccessKey());
   }
-
-  @Test
-  public void testUnderscores1() {
-    final UILabel component = new UILabel();
-    component.setValue("_");
-    final LabelWithAccessKey label = new LabelWithAccessKey(component);
-    Assert.assertEquals("", label.getLabel());
-    Assert.assertEquals(-1, label.getPos());
-    Assert.assertEquals(null, label.getAccessKey());
-  }
-
-  @Test
-  public void testUnderscores2() {
-    final UILabel component = new UILabel();
-    component.setValue("__");
-    final LabelWithAccessKey label = new LabelWithAccessKey(component);
-    Assert.assertEquals("_", label.getLabel());
-    Assert.assertEquals(-1, label.getPos());
-    Assert.assertEquals(null, label.getAccessKey());
-  }
-
-  @Test
-  public void testUnderscores3() {
-    final UILabel component = new UILabel();
-    component.setValue("___");
-    final LabelWithAccessKey label = new LabelWithAccessKey(component);
-    Assert.assertEquals("_", label.getLabel());
-    Assert.assertEquals(-1, label.getPos());
-    Assert.assertEquals(null, label.getAccessKey());
-  }
-
-  @Test
-  public void testUnderscores4() {
-    final UILabel component = new UILabel();
-    component.setValue("____");
-    final LabelWithAccessKey label = new LabelWithAccessKey(component);
-    Assert.assertEquals("__", label.getLabel());
-    Assert.assertEquals(-1, label.getPos());
-    Assert.assertEquals(null, label.getAccessKey());
-  }
 
   @Test
   public void testNull() {