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

carlosrovira pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git


The following commit(s) were added to refs/heads/develop by this push:
     new f6fc0e1  form & formitem changes
f6fc0e1 is described below

commit f6fc0e18c5307d6f0a0edb09b33ee4a8c0f675c3
Author: Carlos Rovira <[email protected]>
AuthorDate: Sat Feb 23 16:57:29 2019 +0100

    form & formitem changes
---
 .../projects/Jewel/src/main/resources/defaults.css |  15 ++-
 .../Jewel/src/main/resources/jewel-manifest.xml    |   2 +
 .../royale/jewel/beads/layouts/FormItemLayout.as   | 113 ++++++++++++++++++++
 .../royale/jewel/beads/layouts/FormLayout.as       | 115 +++++++++++++++++++++
 .../royale/jewel/beads/views/FormHeadingView.as    |   1 +
 .../royale/jewel/beads/views/FormItemView.as       |  24 +++--
 .../projects/Jewel/src/main/sass/_global.sass      |   2 +-
 .../src/main/sass/components/_formheading.sass     |   4 +
 .../Jewel/src/main/sass/components/_formitem.sass  |   6 +-
 .../Jewel/src/main/sass/components/_layout.sass    |  15 +++
 .../JewelTheme/src/main/resources/defaults.css     |  13 ++-
 .../main/sass/components-primary/_formitem.sass    |  15 ++-
 12 files changed, 303 insertions(+), 22 deletions(-)

diff --git a/frameworks/projects/Jewel/src/main/resources/defaults.css 
b/frameworks/projects/Jewel/src/main/resources/defaults.css
index cc1a21a..37e47c9 100644
--- a/frameworks/projects/Jewel/src/main/resources/defaults.css
+++ b/frameworks/projects/Jewel/src/main/resources/defaults.css
@@ -116,7 +116,7 @@ j|DataContainer {
 }
 
 j|Form {
-  IBeadLayout: 
ClassReference("org.apache.royale.jewel.beads.layouts.VerticalLayout");
+  IBeadLayout: 
ClassReference("org.apache.royale.jewel.beads.layouts.FormLayout");
 }
 
 @media -royale-swf {
@@ -812,6 +812,10 @@ j|FooterBar {
 .jewel.formheading {
   line-height: 2em;
 }
+.jewel.formheading .jewel.label.headingLabel {
+  white-space: initial;
+  flex: 1 1 auto;
+}
 
 j|FormHeading {
   IBeadLayout: 
ClassReference("org.apache.royale.jewel.beads.layouts.HorizontalLayout");
@@ -820,7 +824,7 @@ j|FormHeading {
 }
 
 j|FormItem {
-  IBeadLayout: 
ClassReference("org.apache.royale.jewel.beads.layouts.HorizontalLayout");
+  IBeadLayout: 
ClassReference("org.apache.royale.jewel.beads.layouts.FormItemLayout");
   IBeadView: 
ClassReference("org.apache.royale.jewel.beads.views.FormItemView");
   IBeadModel: 
ClassReference("org.apache.royale.jewel.beads.models.FormItemModel");
   IFormItemContentArea: ClassReference("org.apache.royale.jewel.Group");
@@ -927,6 +931,10 @@ j|Label {
 .layout.horizontal.centered > * {
   flex: 0 0 auto;
 }
+.layout.horizontal.formitem {
+  width: 100%;
+  align-items: flex-start;
+}
 .layout.horizontal.gap-1x3px > *:first-child {
   margin: 0px;
 }
@@ -1005,6 +1013,9 @@ j|Label {
   flex-direction: column;
   height: 100%;
 }
+.layout.vertical.form {
+  width: 100%;
+}
 .layout.vertical.gap-1x3px > *:first-child {
   margin: 0px;
 }
diff --git a/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml 
b/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
index bb7c340..265c2b6 100644
--- a/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
+++ b/frameworks/projects/Jewel/src/main/resources/jewel-manifest.xml
@@ -147,6 +147,8 @@
     <component id="SimpleVerticalLayout" 
class="org.apache.royale.jewel.beads.layouts.SimpleVerticalLayout"/>
     <component id="HorizontalLayout" 
class="org.apache.royale.jewel.beads.layouts.HorizontalLayout"/>
     <component id="VerticalLayout" 
class="org.apache.royale.jewel.beads.layouts.VerticalLayout"/>
+    <component id="FormLayout" 
class="org.apache.royale.jewel.beads.layouts.FormLayout"/>
+    <component id="FormItemLayout" 
class="org.apache.royale.jewel.beads.layouts.FormItemLayout"/>
     <component id="HorizontalCenteredLayout" 
class="org.apache.royale.jewel.beads.layouts.HorizontalCenteredLayout"/>
     <component id="VerticalCenteredLayout" 
class="org.apache.royale.jewel.beads.layouts.VerticalCenteredLayout"/>
     <component id="HorizontalFlowLayout" 
class="org.apache.royale.jewel.beads.layouts.HorizontalFlowLayout"/>
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/layouts/FormItemLayout.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/layouts/FormItemLayout.as
new file mode 100644
index 0000000..8f58321
--- /dev/null
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/layouts/FormItemLayout.as
@@ -0,0 +1,113 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.royale.jewel.beads.layouts
+{
+       COMPILE::JS {
+       import org.apache.royale.core.UIBase;
+    }
+       import org.apache.royale.core.ILayoutChild;
+       import org.apache.royale.core.ILayoutView;
+       import org.apache.royale.core.IUIBase;
+       import org.apache.royale.events.Event;
+
+    /**
+     *  The BasicLayout class is a simple layout
+     *  bead.  It takes the set of children and lays them out
+     *  as specified by CSS properties like left, right, top
+     *  and bottom.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion Royale 0.9.4
+     */
+       public class FormItemLayout extends HorizontalLayout
+       {
+        /**
+         *  Constructor.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.9.4
+         */
+               public function FormItemLayout()
+               {
+                       super();
+               }
+
+               /**
+                * @royalesuppresspublicvarwarning
+                */
+               public static const LAYOUT_TYPE_NAMES:String = "layout 
formitem";
+
+               /**
+                *  Add class selectors when the component is addedToParent
+                *  Otherwise component will not get the class selectors when 
+                *  perform "removeElement" and then "addElement"
+                * 
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion Royale 0.9.4
+                */
+               override public function beadsAddedHandler(event:Event = 
null):void
+               {
+                       super.beadsAddedHandler();
+                       
+                       COMPILE::JS
+                       {
+                               if(hostClassList.contains("formitem"))
+                                       hostClassList.remove("formitem");
+                               hostClassList.add("formitem");
+                       }
+               }
+
+        /**
+         * @copy org.apache.royale.core.IBeadLayout#layout
+                * @royaleignorecoercion org.apache.royale.core.UIBase
+         */
+               override public function layout():Boolean
+               {
+            COMPILE::SWF
+            {
+                return true;
+            }
+
+            COMPILE::JS
+            {
+                               /** 
+                                *  This Layout uses the following CSS rules
+                                *  no code needed in JS for layout
+                                * 
+                                *  .layout {
+                                *              display: flex;
+                                *      }
+                                *
+                                *      .layout.formitem {
+                                *              width: 100%;
+                                *              flex-wrap: wrap;
+                                *      }
+                                */
+
+                return true;
+            }
+               }
+       }
+}
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/layouts/FormLayout.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/layouts/FormLayout.as
new file mode 100644
index 0000000..00ae316
--- /dev/null
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/layouts/FormLayout.as
@@ -0,0 +1,115 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.royale.jewel.beads.layouts
+{
+       COMPILE::JS {
+       import org.apache.royale.core.UIBase;
+    }
+       import org.apache.royale.core.ILayoutChild;
+       import org.apache.royale.core.ILayoutView;
+       import org.apache.royale.core.IUIBase;
+       import org.apache.royale.events.Event;
+
+    /**
+     *  The BasicLayout class is a simple layout
+     *  bead.  It takes the set of children and lays them out
+     *  as specified by CSS properties like left, right, top
+     *  and bottom.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion Royale 0.9.4
+     */
+       public class FormLayout extends VerticalLayout
+       {
+        /**
+         *  Constructor.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.9.4
+         */
+               public function FormLayout()
+               {
+                       super();
+               }
+
+               /**
+                * @royalesuppresspublicvarwarning
+                */
+               public static const LAYOUT_TYPE_NAMES:String = "layout form";
+
+               /**
+                *  Add class selectors when the component is addedToParent
+                *  Otherwise component will not get the class selectors when 
+                *  perform "removeElement" and then "addElement"
+                * 
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion Royale 0.9.4
+                */
+               override public function beadsAddedHandler(event:Event = 
null):void
+               {
+                       super.beadsAddedHandler();
+                       
+                       COMPILE::JS
+                       {
+                               if(hostClassList.contains("form"))
+                                       hostClassList.remove("form");
+                               hostClassList.add("form");
+                       }
+               }
+
+        /**
+         * @copy org.apache.royale.core.IBeadLayout#layout
+                * @royaleignorecoercion org.apache.royale.core.UIBase
+         */
+               override public function layout():Boolean
+               {
+                       COMPILE::SWF
+                       {
+                               // TO DO
+                               return true;
+                       }
+            
+            COMPILE::JS
+            {
+                               /** 
+                                *  This Layout uses the following CSS rules
+                                *  no code needed in JS for layout
+                                * 
+                                *  .layout {
+                                *              display: flex;
+                                *      }
+                                *
+                                *      .layout.form {
+                                *              width: 100%;
+                                *      }
+                                *  
+                                *      
+                                */
+
+                return true;
+            }
+               }
+       }
+}
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/FormHeadingView.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/FormHeadingView.as
index 4a871e6..da79e42 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/FormHeadingView.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/FormHeadingView.as
@@ -108,6 +108,7 @@ package org.apache.royale.jewel.beads.views
                        
                        if (headingLabel == null) {
                                headingLabel = createLabel(model.text);
+                               headingLabel.className="headingLabel";
                        }
                        if (headingLabel != null && headingLabel.parent == 
null) {
                                formHeading.addElement(headingLabel);
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/FormItemView.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/FormItemView.as
index 8cfaecb..ac2b9c0 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/FormItemView.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/FormItemView.as
@@ -37,6 +37,7 @@ package org.apache.royale.jewel.beads.views
     import org.apache.royale.jewel.beads.layouts.VerticalLayout;
     import org.apache.royale.jewel.beads.models.FormItemModel;
     import org.apache.royale.jewel.supportClasses.formitem.FormItemLayoutProxy;
+    import org.apache.royale.jewel.HGroup;
 
 
     /**
@@ -77,7 +78,7 @@ package org.apache.royale.jewel.beads.views
 
         private var _contentArea:UIBase;
                /**
-                * The content area of the formItem.
+                *  The content area of the formItem.
                 *
                 *  @langversion 3.0
                 *  @playerversion Flash 10.2
@@ -124,9 +125,8 @@ package org.apache.royale.jewel.beads.views
                        model.addEventListener("htmlChange", textChangeHandler);
             model.addEventListener("requiredChange", requiredChangeHandler);
 
-            // Look for a layout and/or viewport bead on the formItem's beads 
list. If one
-                       // is found, pull it off so it will not be added 
permanently
-                       // to the strand.
+            // Look for a layout and/or viewport bead on the formItem's beads 
list delcared in MXML.
+                       // If one is found, pull it off so it will not be added 
permanently to the strand.
             var beads:Array = formItem.beads;
             var transferLayoutBead:IBeadLayout;
             var transferViewportBead:IViewport;
@@ -146,7 +146,7 @@ package org.apache.royale.jewel.beads.views
             if (!_contentArea) {
                 var cls:Class = ValuesManager.valuesImpl.getValue(_strand, 
"iFormItemContentArea");
                                _contentArea = new cls() as UIBase;
-                               // _contentArea.id = "content";
+                               _contentArea.className = "content";
 
                                // add the layout bead to the content area.
                                if (transferLayoutBead)
@@ -168,6 +168,14 @@ package org.apache.royale.jewel.beads.views
                        }
 
             // super.strand = value;
+                       var labelGroup:HGroup;
+                       if (labelGroup == null) {
+                               labelGroup = new HGroup();
+                               labelGroup.gap = 2;
+                       }
+                       if (labelGroup != null && labelGroup.parent == null) {
+                               (_strand as 
IContainerBaseStrandChildrenHost).$addElement(labelGroup);
+                       }
 
             if (textLabel == null) {
                                textLabel = createLabel(model.text);
@@ -175,7 +183,7 @@ package org.apache.royale.jewel.beads.views
                                textLabel.className = "formlabel";
                        }
                        if (textLabel != null && textLabel.parent == null) {
-                               (_strand as 
IContainerBaseStrandChildrenHost).$addElement(textLabel);
+                               labelGroup.addElement(textLabel);
                                textLabelAlign = new TextAlign();
                                textLabelAlign.align = model.labelAlign;
                                textLabel.addBead(textLabelAlign);
@@ -187,7 +195,7 @@ package org.apache.royale.jewel.beads.views
                                requiredLabel.className = "required";
                        }
                        if (requiredLabel != null && requiredLabel.parent == 
null) {
-                               (_strand as 
IContainerBaseStrandChildrenHost).$addElement(requiredLabel);
+                               labelGroup.addElement(requiredLabel);
                        }
 
                        if (contentArea.parent == null) {
@@ -225,7 +233,7 @@ package org.apache.royale.jewel.beads.views
         {
                        var defaultContentAreaLayout:VerticalLayout = new 
VerticalLayout();
                        defaultContentAreaLayout.gap = 3;
-                       defaultContentAreaLayout.itemsHorizontalAlign = 
"itemsCenter";
+                       // defaultContentAreaLayout.itemsHorizontalAlign = 
"itemsCenter";
             contentArea.addBead(defaultContentAreaLayout);
         }
 
diff --git a/frameworks/projects/Jewel/src/main/sass/_global.sass 
b/frameworks/projects/Jewel/src/main/sass/_global.sass
index a30c0f1..a0f154a 100644
--- a/frameworks/projects/Jewel/src/main/sass/_global.sass
+++ b/frameworks/projects/Jewel/src/main/sass/_global.sass
@@ -115,7 +115,7 @@ j|DataContainer
        IViewportModel: 
ClassReference("org.apache.royale.html.beads.models.ViewportModel")
 
 j|Form
-       IBeadLayout: 
ClassReference("org.apache.royale.jewel.beads.layouts.VerticalLayout")
+       IBeadLayout: 
ClassReference("org.apache.royale.jewel.beads.layouts.FormLayout")
 
 @media -royale-swf
        j|View
diff --git 
a/frameworks/projects/Jewel/src/main/sass/components/_formheading.sass 
b/frameworks/projects/Jewel/src/main/sass/components/_formheading.sass
index d1a6fef..3ad6f9e 100644
--- a/frameworks/projects/Jewel/src/main/sass/components/_formheading.sass
+++ b/frameworks/projects/Jewel/src/main/sass/components/_formheading.sass
@@ -27,6 +27,10 @@
     .jewel.label.spacerLabel
 
     .jewel.label.requiredSpacerLabel
+        
+    .jewel.label.headingLabel
+        white-space: initial
+        flex: 1 1 auto
 
 j|FormHeading
     IBeadLayout: 
ClassReference("org.apache.royale.jewel.beads.layouts.HorizontalLayout")
diff --git a/frameworks/projects/Jewel/src/main/sass/components/_formitem.sass 
b/frameworks/projects/Jewel/src/main/sass/components/_formitem.sass
index 5d390b6..d71b327 100644
--- a/frameworks/projects/Jewel/src/main/sass/components/_formitem.sass
+++ b/frameworks/projects/Jewel/src/main/sass/components/_formitem.sass
@@ -27,9 +27,13 @@
         
     .jewel.label.required
 
+    .content
+        // border: 1px solid red
+    
+
 
 j|FormItem
-    IBeadLayout: 
ClassReference("org.apache.royale.jewel.beads.layouts.HorizontalLayout")
+    IBeadLayout: 
ClassReference("org.apache.royale.jewel.beads.layouts.FormItemLayout")
     IBeadView: 
ClassReference("org.apache.royale.jewel.beads.views.FormItemView")
     IBeadModel: 
ClassReference("org.apache.royale.jewel.beads.models.FormItemModel")
     IFormItemContentArea: ClassReference("org.apache.royale.jewel.Group")
diff --git a/frameworks/projects/Jewel/src/main/sass/components/_layout.sass 
b/frameworks/projects/Jewel/src/main/sass/components/_layout.sass
index 4856561..e6d19ac 100644
--- a/frameworks/projects/Jewel/src/main/sass/components/_layout.sass
+++ b/frameworks/projects/Jewel/src/main/sass/components/_layout.sass
@@ -66,6 +66,13 @@ $gap-size: 10px !default
                        > *
                                flex: 0 0 auto
 
+               // FormItemLayout
+               &.formitem
+                       width: 100%
+                       // flex-wrap: wrap
+                       align-items: flex-start
+                       // justify-content: center
+
                @for $i from 1 through $gaps
                        &.gap-#{$i}x#{$gap-step}px
                                > *:first-child
@@ -92,6 +99,14 @@ $gap-size: 10px !default
                        flex-direction: column
                        height: 100%
 
+               // FormLayout (consider for now Forms are always vertical)
+               &.form
+                       width: 100%
+               
+               // FormItemLayout
+               // &.formitem
+               //      width: 100%
+
                @for $i from 1 through $gaps
                        &.gap-#{$i}x#{$gap-step}px
                                > *:first-child
diff --git a/frameworks/themes/JewelTheme/src/main/resources/defaults.css 
b/frameworks/themes/JewelTheme/src/main/resources/defaults.css
index dcc71d5..262fe16 100644
--- a/frameworks/themes/JewelTheme/src/main/resources/defaults.css
+++ b/frameworks/themes/JewelTheme/src/main/resources/defaults.css
@@ -524,17 +524,20 @@ j|FormHeading {
 }
 
 .jewel.formitem .jewel.label.formlabel {
-  width: 160px;
+  width: 120px;
+  line-height: 2.75em;
 }
 .jewel.formitem .jewel.label.required {
   color: #EC1C24;
-  font-size: 1.6em !important;
-  width: 10px;
+  font-size: 2.1em !important;
+  width: 14px;
+}
+.jewel.formitem .content {
+  width: 200px;
 }
 
 j|FormItem {
-  gap: 3;
-  itemsVerticalAlign: itemsCentered;
+  gap: 2;
 }
 
 .fonticon.dark {
diff --git 
a/frameworks/themes/JewelTheme/src/main/sass/components-primary/_formitem.sass 
b/frameworks/themes/JewelTheme/src/main/sass/components-primary/_formitem.sass
index d0f8209..5fedab8 100644
--- 
a/frameworks/themes/JewelTheme/src/main/sass/components-primary/_formitem.sass
+++ 
b/frameworks/themes/JewelTheme/src/main/sass/components-primary/_formitem.sass
@@ -24,13 +24,18 @@
 .jewel.formitem
 
     .jewel.label.formlabel
-        width: 160px
+        width: 120px
+        line-height: 2.75em
+        // border: 1px solid
         
     .jewel.label.required
         color: $error-color
-        font-size: 1.6em !important
-        width: 10px
+        font-size: 2.1em !important
+        width: 14px
+        // border: 1px solid
+    .content
+        width: 200px
 
 j|FormItem
-    gap: 3
-    itemsVerticalAlign: itemsCentered
\ No newline at end of file
+    gap: 2
+    //itemsVerticalAlign: itemsCentered
\ No newline at end of file

Reply via email to