Repository: flex-asjs
Updated Branches:
  refs/heads/develop 0eb0ad89e -> 7c71bf441


MDL Menu and MenuItem finished with example


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/7c71bf44
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/7c71bf44
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/7c71bf44

Branch: refs/heads/develop
Commit: 7c71bf4415d9f51ce6827d2e2bd3fc421dcfe251
Parents: 0eb0ad8
Author: Carlos Rovira <carlosrov...@apache.org>
Authored: Thu Nov 17 01:08:28 2016 +0100
Committer: Carlos Rovira <carlosrov...@apache.org>
Committed: Thu Nov 17 01:08:28 2016 +0100

----------------------------------------------------------------------
 .../flexjs/MDLExample/src/main/flex/App.mxml    | 26 ++++---
 .../src/main/flex/org/apache/flex/mdl/Menu.as   | 78 +++++++++++++++++++-
 .../main/flex/org/apache/flex/mdl/MenuItem.as   | 22 ++++++
 .../flex/org/apache/flex/mdl/beads/Disabled.as  | 16 ++--
 4 files changed, 125 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7c71bf44/examples/flexjs/MDLExample/src/main/flex/App.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MDLExample/src/main/flex/App.mxml 
b/examples/flexjs/MDLExample/src/main/flex/App.mxml
index 8d3eea1..6743d44 100644
--- a/examples/flexjs/MDLExample/src/main/flex/App.mxml
+++ b/examples/flexjs/MDLExample/src/main/flex/App.mxml
@@ -119,15 +119,6 @@ limitations under the License.
                         </mdl:CardSupportingText>
                         <mdl:CardActions border="true">
                             <mdl:Button text="Get Started" ripple="true" 
colored="true"/>
-                            <mdl:Spacer/>
-                            <mdl:Button icon="true" id="menu_btn">
-                                <i class="material-icons">more_vert</i>
-                            </mdl:Button>
-                            <mdl:Menu ripple="true" dataMdlFor="menu_btn">
-                                <mdl:MenuItem text="Some Action"/>
-                                <mdl:MenuItem text="Another Action"/>
-                                <mdl:MenuItem text="Another Action 2"/>
-                            </mdl:Menu>
                         </mdl:CardActions>
                         <mdl:CardMenu>
                             <mdl:Button icon="true" ripple="true" 
style="color: #fff;">
@@ -136,6 +127,23 @@ limitations under the License.
                         </mdl:CardMenu>
                     </mdl:Card>
 
+                    <mdl:Spacer/>
+
+                    <mdl:Button id="menu_btn" icon="true">
+                        <i class="material-icons">more_vert</i>
+                    </mdl:Button>
+                    <mdl:Menu dataMdlFor="menu_btn" ripple="true" 
bottom="true" left="false">
+                        <mdl:MenuItem text="Some Action"/>
+                        <mdl:MenuItem text="Another Action"/>
+                        <mdl:MenuItem text="Action Disabled">
+                            <js:beads>
+                                <mdl:Disabled/>
+                            </js:beads>
+                        </mdl:MenuItem>
+                        <mdl:MenuItem text="More Action" divider="true"/>
+                        <mdl:MenuItem text="Separated Action"/>
+                    </mdl:Menu>
+                    
                     <mdl:Slider className="mdlsl_example"/>
                     <mdl:Slider minimum="0" maximum="10" value="2" 
stepSize="2" width="200"/>
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7c71bf44/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/Menu.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/Menu.as
 
b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/Menu.as
index cb3c346..a438316 100644
--- 
a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/Menu.as
+++ 
b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/Menu.as
@@ -56,7 +56,7 @@ package org.apache.flex.mdl
         COMPILE::JS
         override protected function createElement():WrappedHTMLElement
         {
-            typeNames = "mdl-menu mdl-js-menu mdl-menu--top-left";
+            typeNames = "mdl-menu mdl-js-menu";
 
             element = document.createElement('ul') as WrappedHTMLElement;
             
@@ -66,8 +66,82 @@ package org.apache.flex.mdl
             return element;
         }
 
-        private var _dataMdlFor:String;
+        // default position for Menu in MDL is bottom/left (or no class 
selector specified)
+        private var currentPosClazz:String = "";
+        private var _bottom:Boolean = true;
+               /**
+                *  Position the menu relative to the associated button.
+         *  Used in conjunction with "left"
+         *  deafult is true
+                *
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion FlexJS 0.0
+                */
+               public function get bottom():Boolean
+               {
+                       return _bottom;
+               }
+               public function set bottom(value:Boolean):void
+               {
+                       _bottom = value;
+
+            var newPosClazz:String;
+
+            if(currentPosClazz == "")
+            {
+                currentPosClazz = " mdl-menu--" + (_bottom ? "bottom" : "top") 
+ "-" + (_left ? "left" : "right");
+                trace("[bottom] currentPosClazz: " + currentPosClazz);
+                className += currentPosClazz;                
+            } else
+            {
+                newPosClazz = " mdl-menu--" + (_bottom ? "bottom" : "top") + 
"-" + (_left ? "left" : "right");
+                trace("[bottom] newPosClazz: " + newPosClazz);
+                className = className.replace( "/(?:^|\s)" + currentPosClazz + 
"(?!\S)/g" , newPosClazz);
+            }
+
+            currentPosClazz = newPosClazz;
+            
+               }
 
+        private var _left:Boolean = true;
+               /**
+                *  Position the menu relative to the associated button.
+         *  Used in conjunction with "bottom"
+         *  deafult is true
+                *
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion FlexJS 0.0
+                */
+               public function get left():Boolean
+               {
+                       return _left;
+               }
+               public function set left(value:Boolean):void
+               {
+                       _left = value;
+
+            var newPosClazz:String;
+
+            if(currentPosClazz == "")
+            {
+                currentPosClazz = " mdl-menu--" + (_bottom ? "bottom" : "top") 
+ "-" + (_left ? "left" : "right");
+                trace("[left] currentPosClazz: " + currentPosClazz);
+                className += currentPosClazz;                
+            } else
+            {
+                newPosClazz = " mdl-menu--" + (_bottom ? "bottom" : "top") + 
"-" + (_left ? "left" : "right");
+                trace("[left] newPosClazz: " + newPosClazz);
+                className = className.replace( "/(?:^|\s)" + currentPosClazz + 
"(?!\S)/g" , newPosClazz);
+            }
+
+            currentPosClazz = newPosClazz;
+               }
+
+        private var _dataMdlFor:String;
                /**
                 *  The id value of the associated button that opens this menu.
                 *

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7c71bf44/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/MenuItem.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/MenuItem.as
 
b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/MenuItem.as
index 54b4507..105d0db 100644
--- 
a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/MenuItem.as
+++ 
b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/MenuItem.as
@@ -106,6 +106,28 @@ package org.apache.flex.mdl
             return element;
         }
 
+        private var _divider:Boolean;
+
+               /**
+                *  A boolean flag to activate 
"mdl-menu__item--full-bleed-divider" effect selector.
+         *  Modifies an item to have a full bleed divider between it and the 
next list item.
+                *
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion FlexJS 0.0
+                */
+               public function get divider():Boolean
+               {
+                       return _divider;
+               }
+               public function set divider(value:Boolean):void
+               {
+                       _divider = value;
+
+            className += (_divider ? " mdl-menu__item--full-bleed-divider" : 
"");
+               }
+
         protected var _ripple:Boolean = false;
         /**
                 *  A boolean flag to activate "mdl-js-ripple-effect" effect 
selector.

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7c71bf44/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/Disabled.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/Disabled.as
 
b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/Disabled.as
index 72861ba..ee34e27 100644
--- 
a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/Disabled.as
+++ 
b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/Disabled.as
@@ -83,13 +83,17 @@ package org.apache.flex.mdl.beads
                        COMPILE::JS
                        {
                                var host:UIBase = value as UIBase;
-                var input:HTMLInputElement;
-                //if (host.element is HTMLInputElement)
-                //{
-                    input = host.element as HTMLInputElement;
+                               host.element.setAttribute('disabled', '');
+                               /*var host:UIBase = value as UIBase;
+                if (host.element is HTMLInputElement)
+                {
+                                       var input:HTMLInputElement = 
host.element as HTMLInputElement;
                     input.disabled = "disabled";
-                //} else
-                //{
+                } else if (host.element is HTMLElement)
+                {
+                                       var elm:HTMLElement = host.element as 
HTMLElement;
+                    elm.disabled = "disabled";
+                               }*/
                  //   throw new Error("Host element component in not type 
input");
                 //}
                        }

Reply via email to