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 2019/12/02 09:29:40 UTC

[myfaces-tobago] 03/19: Tobago-1999: styling

This is an automated email from the ASF dual-hosted git repository.

weber pushed a commit to branch TOBAGO-1999_Select2
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git

commit 946609967ae6aa6633ecd43ecf2eecb37880eb94
Author: Volker Weber <v....@inexso.de>
AuthorDate: Tue Aug 20 16:53:01 2019 +0200

    Tobago-1999: styling
---
 .../internal/component/AbstractUISelectOneChoice.java    |  2 +-
 .../src/main/webapp/content/25-select/select.xhtml       |  2 +-
 .../renderkit/html/speyside/standard/style/tobago.less   | 14 ++++++++++++++
 .../standard/standard/tag/SelectManyBoxRenderer.java     |  9 ++++++++-
 .../standard/standard/tag/SelectOneChoiceRenderer.java   | 15 ++++++++++++++-
 .../html/standard/standard/script/tobago-select2.js      | 16 ++++------------
 .../renderkit/html/standard/standard/style/tobago.css    |  6 +++---
 7 files changed, 45 insertions(+), 19 deletions(-)

diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISelectOneChoice.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISelectOneChoice.java
index 34c9779..d42d95e 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISelectOneChoice.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUISelectOneChoice.java
@@ -31,7 +31,7 @@ public abstract class AbstractUISelectOneChoice extends AbstractUISelectOneBase
     return false;
   }
 
-  public void setSelect2(Boolean bool) {
+  public void setSelect2(boolean bool) {
     getStateHelper().put(Select2Keys.isSelect2, bool);
   }
 
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/25-select/select.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/25-select/select.xhtml
index ce08551..9b248bd 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/25-select/select.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/25-select/select.xhtml
@@ -66,7 +66,7 @@
 
     <!-- code-sniplet-start id="selectOneChoice" -->
     <tx:selectOneChoice value="selectOneChoice0"
-                        label="Contact me1: "
+                        label="Select 2 single: "
                         select2="true">
       
       <tc:selectItem itemLabel="Letter" itemValue="letter"/>
diff --git a/tobago-theme/tobago-theme-speyside/src/main/less/org/apache/myfaces/tobago/renderkit/html/speyside/standard/style/tobago.less b/tobago-theme/tobago-theme-speyside/src/main/less/org/apache/myfaces/tobago/renderkit/html/speyside/standard/style/tobago.less
index 3bcbc7f..95cf64a 100644
--- a/tobago-theme/tobago-theme-speyside/src/main/less/org/apache/myfaces/tobago/renderkit/html/speyside/standard/style/tobago.less
+++ b/tobago-theme/tobago-theme-speyside/src/main/less/org/apache/myfaces/tobago/renderkit/html/speyside/standard/style/tobago.less
@@ -1043,6 +1043,13 @@ input.tobago-time-markup-error, input.tobago-time-markup-fatal {
 
 /* select2 */
 
+.select2-container--default .select2-selection--single {
+  border: 1px solid darken(@borderColor, 10%);
+  font: @font;
+  .border-radius;
+  height: 20px;
+}
+
 .select2-container--default .select2-selection--single .select2-selection__rendered {
   color: @textColor;
   line-height: 18px;
@@ -1056,3 +1063,10 @@ input.tobago-time-markup-error, input.tobago-time-markup-fatal {
 .select2-container--default .select2-selection--single .select2-selection__arrow b {
   border-color: @textColor transparent transparent transparent;
 }
+
+.select2-container--default .select2-selection--multiple {
+  border: 1px solid darken(@borderColor, 10%);
+  font: @font;
+  .border-radius;
+
+}
\ No newline at end of file
diff --git a/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectManyBoxRenderer.java b/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectManyBoxRenderer.java
index 9ef2753..ddb1950 100644
--- a/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectManyBoxRenderer.java
+++ b/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectManyBoxRenderer.java
@@ -21,6 +21,7 @@ package org.apache.myfaces.tobago.renderkit.html.standard.standard.tag;
 
 import org.apache.myfaces.tobago.component.UISelectManyBox;
 import org.apache.myfaces.tobago.component.UISelectManyListbox;
+import org.apache.myfaces.tobago.layout.Measure;
 import org.apache.myfaces.tobago.renderkit.SelectManyRendererBase;
 import org.apache.myfaces.tobago.renderkit.css.Classes;
 import org.apache.myfaces.tobago.renderkit.css.Style;
@@ -61,11 +62,17 @@ public class SelectManyBoxRenderer extends SelectManyRendererBase {
     final Iterable<SelectItem> items = SelectItemUtils.getItemIterator(facesContext, select);
     final boolean readonly = select.isReadonly();
     final boolean disabled = !items.iterator().hasNext() || select.isDisabled() || readonly;
+    final Style style = new Style(facesContext, select);
 
     ComponentUtils.putDataAttribute(select, "tobago-select2", "{}");
 
 
     final String title = HtmlRendererUtils.getTitleFromTipAndMessages(facesContext, select);
+    writer.startElement(HtmlElements.DIV, select);
+    writer.writeStyleAttribute(style);
+    style.setTop(Measure.ZERO);
+    style.setLeft(Measure.ZERO);
+
     writer.startElement(HtmlElements.SELECT, select);
     writer.writeNameAttribute(id);
     writer.writeIdAttribute(id);
@@ -78,7 +85,6 @@ public class SelectManyBoxRenderer extends SelectManyRendererBase {
     if (tabIndex != null) {
       writer.writeAttribute(HtmlAttributes.TABINDEX, tabIndex);
     }
-    final Style style = new Style(facesContext, select);
     writer.writeStyleAttribute(style);
     writer.writeClassAttribute(Classes.create(select));
     writer.writeAttribute(HtmlAttributes.MULTIPLE, HtmlAttributes.MULTIPLE, false);
@@ -91,6 +97,7 @@ public class SelectManyBoxRenderer extends SelectManyRendererBase {
     HtmlRendererUtils.renderSelectItems(select, items, values, submittedValues, writer, facesContext);
 
     writer.endElement(HtmlElements.SELECT);
+    writer.endElement(HtmlElements.DIV);
   }
 
 }
diff --git a/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectOneChoiceRenderer.java b/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectOneChoiceRenderer.java
index 13fab7d..8727d30 100644
--- a/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectOneChoiceRenderer.java
+++ b/tobago-theme/tobago-theme-standard/src/main/java/org/apache/myfaces/tobago/renderkit/html/standard/standard/tag/SelectOneChoiceRenderer.java
@@ -20,6 +20,7 @@
 package org.apache.myfaces.tobago.renderkit.html.standard.standard.tag;
 
 import org.apache.myfaces.tobago.component.UISelectOneChoice;
+import org.apache.myfaces.tobago.layout.Measure;
 import org.apache.myfaces.tobago.renderkit.HtmlUtils;
 import org.apache.myfaces.tobago.renderkit.SelectOneRendererBase;
 import org.apache.myfaces.tobago.renderkit.css.Classes;
@@ -64,6 +65,15 @@ public class SelectOneChoiceRenderer extends SelectOneRendererBase {
     final Iterable<SelectItem> items = SelectItemUtils.getItemIterator(facesContext, select);
     final String title = HtmlRendererUtils.getTitleFromTipAndMessages(facesContext, select);
     final boolean disabled = !items.iterator().hasNext() || select.isDisabled() || select.isReadonly();
+    final Style style = new Style(facesContext, select);
+
+    if (select.isSelect2()) {
+      writer.startElement(HtmlElements.DIV, select);
+      writer.writeStyleAttribute(style);
+      style.setTop(Measure.ZERO);
+      style.setLeft(Measure.ZERO);
+    }
+
 
     writer.startElement(HtmlElements.SELECT, select);
     writer.writeNameAttribute(id);
@@ -74,7 +84,6 @@ public class SelectOneChoiceRenderer extends SelectOneRendererBase {
     if (tabIndex != null) {
       writer.writeAttribute(HtmlAttributes.TABINDEX, tabIndex);
     }
-    final Style style = new Style(facesContext, select);
     writer.writeStyleAttribute(style);
     writer.writeClassAttribute(Classes.create(select));
     if (title != null) {
@@ -91,6 +100,10 @@ public class SelectOneChoiceRenderer extends SelectOneRendererBase {
         facesContext);
 
     writer.endElement(HtmlElements.SELECT);
+    if (select.isSelect2()) {
+      writer.endElement(HtmlElements.DIV);
+    }
+
     super.encodeEnd(facesContext, select);
   }
 }
diff --git a/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-select2.js b/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-select2.js
index fc94170..82f23dd 100644
--- a/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-select2.js
+++ b/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-select2.js
@@ -24,18 +24,10 @@ Tobago.Select2 = {
           var element = jQuery(this);
           var options = element.data("tobago-select2");
           console.info("typeof options: " + typeof options);
-          var value = {
-            minimumResultsForSearch: Infinity,
-            ts: "hallo",
-            tn: 22
-          };
-          console.info("XXXX : " + JSON.stringify(value));
-          options.containerCss = element.data("tobago-style");
-          options.dropdownCss = {
-            left: options.containerCss.left,
-            top: options.containerCss.top,
-            position: "absolute"
-          };
+
+          if (element.hasClass("tobago-selectManyBox")) {
+            options.containerCss = {height: element.data("tobago-style").height};
+          }
           console.info("Select2.init" + element.attr("id") + " with data: " + JSON.stringify(options)); // @DEV_ONLY
           element.select2(options);
         });
diff --git a/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/style/tobago.css b/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/style/tobago.css
index 5dd9a27..6d49612 100644
--- a/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/style/tobago.css
+++ b/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/style/tobago.css
@@ -1,6 +1,6 @@
 /* select2 */
 
-.select2-container {
-  position: absolute;
-}
+/*.select2-container {*/
+  /*position: absolute;*/
+/*}*/