You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ca...@apache.org on 2016/12/20 07:35:42 UTC
[01/10] git commit: [flex-asjs] [refs/heads/feature/mdl] - Make
tweener pluggable to deal with different implementations for different
layouts. [Forced Update!]
Repository: flex-asjs
Updated Branches:
refs/heads/feature/mdl 2316c20cc -> d84ffb8b3 (forced update)
Make tweener pluggable to deal with different implementations for different layouts.
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/4b95282f
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/4b95282f
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/4b95282f
Branch: refs/heads/feature/mdl
Commit: 4b95282f131ef0b820daa482131f70546a8d3c94
Parents: a873f45
Author: yishayw <yi...@hotmail.com>
Authored: Mon Dec 19 15:20:11 2016 +0200
Committer: yishayw <yi...@hotmail.com>
Committed: Mon Dec 19 15:20:11 2016 +0200
----------------------------------------------------------------------
.../apache/flex/utils/AbsoluteLayoutTweener.as | 14 +++++
.../org/apache/flex/utils/IEffectsGenerator.as | 47 +++++++++++++++
.../flex/org/apache/flex/utils/LayoutTweener.as | 63 +++++++-------------
.../flex/org/apache/flex/utils/MoveGenerator.as | 47 +++++++++++++++
.../org/apache/flex/utils/ResizeGenerator.as | 47 +++++++++++++++
5 files changed, 175 insertions(+), 43 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4b95282f/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/AbsoluteLayoutTweener.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/AbsoluteLayoutTweener.as b/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/AbsoluteLayoutTweener.as
new file mode 100644
index 0000000..2d09eb6
--- /dev/null
+++ b/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/AbsoluteLayoutTweener.as
@@ -0,0 +1,14 @@
+package org.apache.flex.utils
+{
+ import org.apache.flex.core.IBeadLayout;
+ import org.apache.flex.core.ILayoutParent;
+
+ public class AbsoluteLayoutTweener extends LayoutTweener
+ {
+ public function AbsoluteLayoutTweener(sourceLayout:IBeadLayout, sourceLayoutParent:ILayoutParent)
+ {
+ super(sourceLayout, sourceLayoutParent);
+ effectGenerators = Vector.<IEffectsGenerator>([new MoveGenerator(), new ResizeGenerator()]);
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4b95282f/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/IEffectsGenerator.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/IEffectsGenerator.as b/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/IEffectsGenerator.as
new file mode 100644
index 0000000..0ac1db8
--- /dev/null
+++ b/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/IEffectsGenerator.as
@@ -0,0 +1,47 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.flex.utils
+{
+ import org.apache.flex.core.ILayoutChild;
+ import org.apache.flex.effects.IEffect;
+
+ /**
+ * The IEffectsGenerator interface is the basic interface for classes generating tweener
+ * effects.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public interface IEffectsGenerator
+ {
+ /**
+ * Takes a source ILayoutChild and creates an effect that sets the source child
+ * to match the destination child. Returns null if no effect is needed.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function generateEffect(source:ILayoutChild, destination:ILayoutChild):IEffect
+
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4b95282f/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/LayoutTweener.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/LayoutTweener.as b/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/LayoutTweener.as
index 13a8c9f..3ce644f 100644
--- a/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/LayoutTweener.as
+++ b/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/LayoutTweener.as
@@ -23,11 +23,9 @@ package org.apache.flex.utils
import org.apache.flex.core.ILayoutParent;
import org.apache.flex.core.IParentIUIBase;
import org.apache.flex.core.IStrand;
- import org.apache.flex.core.IUIBase;
import org.apache.flex.effects.Effect;
- import org.apache.flex.effects.Move;
+ import org.apache.flex.effects.IEffect;
import org.apache.flex.effects.Parallel;
- import org.apache.flex.effects.Resize;
import org.apache.flex.events.Event;
import org.apache.flex.events.EventDispatcher;
@@ -40,6 +38,7 @@ package org.apache.flex.utils
private var sourceLayout:IBeadLayout;
private var sourceLayoutParent:ILayoutParent;
private var _mockLayoutParent:MockLayoutParent;
+ private var _effectGenerators:Vector.<IEffectsGenerator>;
/**
*
* @param sourceLayout
@@ -51,6 +50,16 @@ package org.apache.flex.utils
this.sourceLayoutParent = sourceLayoutParent;
}
+ public function get effectGenerators():Vector.<IEffectsGenerator>
+ {
+ return _effectGenerators;
+ }
+
+ public function set effectGenerators(value:Vector.<IEffectsGenerator>):void
+ {
+ _effectGenerators = value;
+ }
+
/**
*
* @return
@@ -71,18 +80,6 @@ package org.apache.flex.utils
/**
*
- * @return
- */
- public function layout():Boolean
- {
- setBaseline();
- var result:Boolean = sourceLayout.layout();
- play();
- return result;
- }
-
- /**
- *
*/
public function play():void
{
@@ -117,37 +114,17 @@ package org.apache.flex.utils
{
var originalChild:ILayoutChild = originalContentView.getElementAt(i) as ILayoutChild;
var mockChild:ILayoutChild = mockContentView.getElementAt(i) as ILayoutChild;
- pushMove(originalChild, mockChild, effects);
- pushResize(originalChild, mockChild, effects);
+ for (var j:int = 0; j < effectGenerators.length; j++)
+ {
+ var effect:IEffect = effectGenerators[j].generateEffect(originalChild, mockChild);
+ if (effect)
+ {
+ effects.push(effect);
+ }
+ }
}
return effects;
}
- private function pushResize(originalChild:ILayoutChild, mockChild:ILayoutChild, effects:Array):void
- {
- var widthDiff:Number = mockChild.width - originalChild.width;
- var heightDiff:Number = mockChild.height - originalChild.height;
- if (widthDiff != 0 || heightDiff !=0)
- {
- var resize:Resize = new Resize(originalChild as IUIBase);
- resize.widthBy = widthDiff;
- resize.heightBy = heightDiff;
- effects.push(resize);
- }
- }
-
- private function pushMove(originalChild:ILayoutChild, mockChild:ILayoutChild, effects:Array):void
- {
- var xDiff:Number = mockChild.x - originalChild.x;
- var yDiff:Number = mockChild.y - originalChild.y;
- if (xDiff != 0 || yDiff !=0)
- {
- var move:Move = new Move(originalChild as IUIBase);
- move.xBy = xDiff;
- move.yBy = yDiff;
- effects.push(move);
- }
- }
-
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4b95282f/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/MoveGenerator.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/MoveGenerator.as b/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/MoveGenerator.as
new file mode 100644
index 0000000..d8ff35b
--- /dev/null
+++ b/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/MoveGenerator.as
@@ -0,0 +1,47 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.flex.utils
+{
+ import org.apache.flex.core.ILayoutChild;
+ import org.apache.flex.core.IUIBase;
+ import org.apache.flex.effects.IEffect;
+ import org.apache.flex.effects.Move;
+
+ public class MoveGenerator implements IEffectsGenerator
+ {
+ public function MoveGenerator()
+ {
+ }
+
+ public function generateEffect(source:ILayoutChild, destination:ILayoutChild):IEffect
+ {
+ var xDiff:Number = destination.x - source.x;
+ var yDiff:Number = destination.y - source.y;
+ if (xDiff != 0 || yDiff != 0)
+ {
+ var move:Move = new Move(source as IUIBase);
+ move.xBy = xDiff;
+ move.yBy = yDiff;
+ return move;
+ }
+ return null;
+ }
+
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4b95282f/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/ResizeGenerator.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/ResizeGenerator.as b/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/ResizeGenerator.as
new file mode 100644
index 0000000..f4728ba
--- /dev/null
+++ b/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/ResizeGenerator.as
@@ -0,0 +1,47 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.flex.utils
+{
+ import org.apache.flex.core.ILayoutChild;
+ import org.apache.flex.core.IUIBase;
+ import org.apache.flex.effects.IEffect;
+ import org.apache.flex.effects.Resize;
+
+ public class ResizeGenerator implements IEffectsGenerator
+ {
+ public function ResizeGenerator()
+ {
+ }
+
+ public function generateEffect(source:ILayoutChild, destination:ILayoutChild):IEffect
+ {
+ var widthDiff:Number = destination.width - source.width;
+ var heightDiff:Number = destination.height - source.height;
+ if (widthDiff != 0 || heightDiff != 0)
+ {
+ var resize:Resize = new Resize(source as IUIBase);
+ resize.widthBy = widthDiff;
+ resize.heightBy = heightDiff;
+ return resize;
+ }
+ return null;
+ }
+
+ }
+}
\ No newline at end of file
[05/10] git commit: [flex-asjs] [refs/heads/feature/mdl] - Check for
index out of bounds.
Posted by ca...@apache.org.
Check for index out of bounds.
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/6c03ee3d
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/6c03ee3d
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/6c03ee3d
Branch: refs/heads/feature/mdl
Commit: 6c03ee3dd6c2002f263e711e4d3bf7cd733f14e7
Parents: bd8d9a8
Author: yishayw <yi...@hotmail.com>
Authored: Mon Dec 19 16:41:28 2016 +0200
Committer: yishayw <yi...@hotmail.com>
Committed: Mon Dec 19 16:41:28 2016 +0200
----------------------------------------------------------------------
.../src/main/flex/org/apache/flex/html/beads/AccordionView.as | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/6c03ee3d/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/AccordionView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/AccordionView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/AccordionView.as
index c4f7da0..282eb67 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/AccordionView.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/AccordionView.as
@@ -67,7 +67,10 @@ package org.apache.flex.html.beads
if (!layout.flexibleChild)
{
var model:ISelectionModel = StrandUtils.loadBead(ISelectionModel, "iBeadModel", host) as ISelectionModel;
- layout.flexibleChild = (dataGroup.getItemRendererForIndex(model.selectedIndex) as IStyleableObject).id;
+ if (model.selectedIndex > -1)
+ {
+ layout.flexibleChild = (dataGroup.getItemRendererForIndex(model.selectedIndex) as IStyleableObject).id;
+ }
}
super.performLayout(event);
}
[03/10] git commit: [flex-asjs] [refs/heads/feature/mdl] - License
Posted by ca...@apache.org.
License
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/3a6c20bf
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/3a6c20bf
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/3a6c20bf
Branch: refs/heads/feature/mdl
Commit: 3a6c20bfda373cdee0ea15c6e805a1b7d8aff12a
Parents: b6f0907
Author: yishayw <yi...@hotmail.com>
Authored: Mon Dec 19 16:15:11 2016 +0200
Committer: yishayw <yi...@hotmail.com>
Committed: Mon Dec 19 16:15:11 2016 +0200
----------------------------------------------------------------------
.../apache/flex/utils/AbsoluteLayoutTweener.as | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/3a6c20bf/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/AbsoluteLayoutTweener.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/AbsoluteLayoutTweener.as b/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/AbsoluteLayoutTweener.as
index 2d09eb6..451bcf9 100644
--- a/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/AbsoluteLayoutTweener.as
+++ b/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/AbsoluteLayoutTweener.as
@@ -1,3 +1,21 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.flex.utils
{
import org.apache.flex.core.IBeadLayout;
[10/10] git commit: [flex-asjs] [refs/heads/feature/mdl] - Fix
compilation
Posted by ca...@apache.org.
Fix compilation
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/d84ffb8b
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/d84ffb8b
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/d84ffb8b
Branch: refs/heads/feature/mdl
Commit: d84ffb8b3a532661f955c2360547e1215129a5d8
Parents: 00659d7
Author: Carlos Rovira <ca...@apache.org>
Authored: Mon Dec 19 10:34:04 2016 +0100
Committer: Carlos Rovira <ca...@apache.org>
Committed: Tue Dec 20 08:35:14 2016 +0100
----------------------------------------------------------------------
.../MaterialDesignLite/src/main/flex/MDLClasses.as | 4 +++-
.../org/apache/flex/mdl/beads/SliderThumbView.as | 5 ++---
.../org/apache/flex/mdl/beads/SliderTrackView.as | 3 +--
.../mdl/beads/controllers/SliderMouseController.as | 4 +---
.../src/main/resources/defaults.css | 15 +++++++++------
.../src/main/resources/mdl-manifest.xml | 2 --
6 files changed, 16 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d84ffb8b/frameworks/projects/MaterialDesignLite/src/main/flex/MDLClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MaterialDesignLite/src/main/flex/MDLClasses.as b/frameworks/projects/MaterialDesignLite/src/main/flex/MDLClasses.as
index 7a8d043..a11f639 100644
--- a/frameworks/projects/MaterialDesignLite/src/main/flex/MDLClasses.as
+++ b/frameworks/projects/MaterialDesignLite/src/main/flex/MDLClasses.as
@@ -27,9 +27,11 @@ package
*/
internal class MDLClasses
{
+
COMPILE::SWF
{
- //import org.apache.flex.mdl.beads.TextPromptBead; TextPromptBead;
+ import org.apache.flex.mdl.beads.SliderThumbView; SliderThumbView;
+ import org.apache.flex.mdl.beads.SliderTrackView; SliderTrackView;
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d84ffb8b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/SliderThumbView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/SliderThumbView.as b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/SliderThumbView.as
index 5113b5a..11ad3c3 100644
--- a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/SliderThumbView.as
+++ b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/SliderThumbView.as
@@ -25,12 +25,11 @@ package org.apache.flex.mdl.beads
import org.apache.flex.core.BeadViewBase;
import org.apache.flex.core.IBeadView;
import org.apache.flex.core.IStrand;
- import org.apache.flex.events.Event;
+ import org.apache.flex.html.Button;
+ import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
import org.apache.flex.core.IChild;
- import org.apache.flex.mdl.Button;
-
/**
* The SliderThumbView class creates the draggable input element for the
* org.apache.flex.html.Slider component.
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d84ffb8b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/SliderTrackView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/SliderTrackView.as b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/SliderTrackView.as
index 603a4fb..dc63e1d 100644
--- a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/SliderTrackView.as
+++ b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/SliderTrackView.as
@@ -26,11 +26,10 @@ package org.apache.flex.mdl.beads
import org.apache.flex.core.IBeadView;
import org.apache.flex.core.IStrand;
import org.apache.flex.core.UIBase;
+ import org.apache.flex.html.Button;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
import org.apache.flex.core.IChild;
-
- import org.apache.flex.mdl.Button;
/**
* The SliderTrackView class creates the track area for the org.apache.flex.html.Slider
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d84ffb8b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/controllers/SliderMouseController.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/controllers/SliderMouseController.as b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/controllers/SliderMouseController.as
index 8cbc8db..3f06299 100644
--- a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/controllers/SliderMouseController.as
+++ b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/controllers/SliderMouseController.as
@@ -27,7 +27,6 @@ package org.apache.flex.mdl.beads.controllers
import org.apache.flex.events.IEventDispatcher;
import org.apache.flex.events.MouseEvent;
import org.apache.flex.geom.Point;
-
import org.apache.flex.html.beads.ISliderView;
import org.apache.flex.mdl.beads.SliderTrackView;
@@ -36,7 +35,6 @@ package org.apache.flex.mdl.beads.controllers
import goog.events;
import goog.events.EventType;
import org.apache.flex.events.BrowserEvent;
-
import org.apache.flex.mdl.Slider;
import org.apache.flex.mdl.beads.SliderThumbView;
import org.apache.flex.mdl.beads.SliderTrackView;
@@ -44,7 +42,7 @@ package org.apache.flex.mdl.beads.controllers
/**
* The SliderMouseController class bead handles mouse events on the
- * org.apache.flex.html.Slider's component parts (thumb and track) and
+ * org.apache.flex.mdl.Slider's component parts (thumb and track) and
* dispatches change events on behalf of the Slider (as well as co-ordinating visual
* changes (such as moving the thumb when the track has been tapped or clicked).
*
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d84ffb8b/frameworks/projects/MaterialDesignLite/src/main/resources/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/projects/MaterialDesignLite/src/main/resources/defaults.css b/frameworks/projects/MaterialDesignLite/src/main/resources/defaults.css
index 810be12..14efca5 100644
--- a/frameworks/projects/MaterialDesignLite/src/main/resources/defaults.css
+++ b/frameworks/projects/MaterialDesignLite/src/main/resources/defaults.css
@@ -32,12 +32,6 @@ Slider
iBeadController: ClassReference("org.apache.flex.mdl.beads.controllers.SliderMouseController");
}
-Slider
-{
- iThumbView: ClassReference("org.apache.flex.mdl.beads.SliderThumbView");
- iTrackView: ClassReference("org.apache.flex.mdl.beads.SliderTrackView");
-}
-
List
{
IBeadView: ClassReference("org.apache.flex.mdl.beads.views.ListView");
@@ -48,3 +42,12 @@ List
IItemRenderer: ClassReference("org.apache.flex.mdl.itemRenderers.ListItemRenderer");
}
+
+@media -flex-flash
+{
+ Slider
+ {
+ iThumbView: ClassReference("org.apache.flex.mdl.beads.SliderThumbView");
+ iTrackView: ClassReference("org.apache.flex.mdl.beads.SliderTrackView");
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d84ffb8b/frameworks/projects/MaterialDesignLite/src/main/resources/mdl-manifest.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/MaterialDesignLite/src/main/resources/mdl-manifest.xml b/frameworks/projects/MaterialDesignLite/src/main/resources/mdl-manifest.xml
index 4ad2ebd..d13f49c 100644
--- a/frameworks/projects/MaterialDesignLite/src/main/resources/mdl-manifest.xml
+++ b/frameworks/projects/MaterialDesignLite/src/main/resources/mdl-manifest.xml
@@ -31,8 +31,6 @@
<component id="Disabled" class="org.apache.flex.mdl.beads.Disabled"/>
<component id="Slider" class="org.apache.flex.mdl.Slider"/>
<component id="SliderView" class="org.apache.flex.mdl.beads.views.SliderView"/>
- <component id="SliderTrackView" class="org.apache.flex.mdl.beads.SliderTrackView"/>
- <component id="SliderThumbView" class="org.apache.flex.mdl.beads.SliderThumbView"/>
<component id="SliderMouseController" class="org.apache.flex.mdl.beads.controllers.SliderMouseController"/>
<component id="Badge" class="org.apache.flex.mdl.beads.Badge"/>
<component id="Menu" class="org.apache.flex.mdl.Menu"/>
[08/10] git commit: [flex-asjs] [refs/heads/feature/mdl] - make SWF
scrolling a bit better
Posted by ca...@apache.org.
make SWF scrolling a bit better
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/7d4477ec
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/7d4477ec
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/7d4477ec
Branch: refs/heads/feature/mdl
Commit: 7d4477ec7593f9b0e1a3088773446084b57b57fa
Parents: 11a4d48
Author: Alex Harui <ah...@apache.org>
Authored: Mon Dec 19 14:53:33 2016 -0800
Committer: Alex Harui <ah...@apache.org>
Committed: Mon Dec 19 14:53:45 2016 -0800
----------------------------------------------------------------------
.../flex/html/beads/VScrollBarThumbView.as | 6 +-----
.../flex/html/beads/VScrollBarTrackView.as | 7 +++----
.../apache/flex/html/beads/VScrollBarView.as | 21 ++++++++++++++++++++
.../apache/flex/html/beads/models/RangeModel.as | 4 ++--
4 files changed, 27 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7d4477ec/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/VScrollBarThumbView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/VScrollBarThumbView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/VScrollBarThumbView.as
index c119de7..5b719d8 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/VScrollBarThumbView.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/VScrollBarThumbView.as
@@ -100,11 +100,7 @@ package org.apache.flex.html.beads
private function heightChangedHandler(event:Event):void
{
- var button:SimpleButton = IChild(_strand).$displayObject as SimpleButton;
- button.scaleY = 1.0;
- button.scaleX = 1.0;
-
- var hh:Number = button.height;
+ var hh:Number = IUIBase(_strand).height;
drawView(upView.graphics, 0xc8c8c8);
drawView(downView.graphics, 0xc8c8c8);
drawView(overView.graphics, 0xb8b8b8);
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7d4477ec/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/VScrollBarTrackView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/VScrollBarTrackView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/VScrollBarTrackView.as
index e08944a..f6235a7 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/VScrollBarTrackView.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/VScrollBarTrackView.as
@@ -27,6 +27,7 @@ package org.apache.flex.html.beads
import org.apache.flex.core.IBeadView;
import org.apache.flex.core.IChild;
import org.apache.flex.core.IStrand;
+ import org.apache.flex.core.IUIBase;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
@@ -55,7 +56,7 @@ package org.apache.flex.html.beads
private function drawView(g:Graphics, bgColor:uint):void
{
- var button:SimpleButton = IChild(_strand).$displayObject as SimpleButton;
+ var button:IUIBase = _strand as IUIBase;
var h:Number = button.height;
g.clear();
@@ -68,9 +69,7 @@ package org.apache.flex.html.beads
private function heightChangeHandler(event:Event):void
{
- var button:SimpleButton = IChild(_strand).$displayObject as SimpleButton;
- button.scaleY = 1.0;
- button.scaleX = 1.0;
+ var button:IUIBase = _strand as IUIBase;
var h:Number = button.height;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7d4477ec/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/VScrollBarView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/VScrollBarView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/VScrollBarView.as
index dc7181b..8f56ba9 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/VScrollBarView.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/VScrollBarView.as
@@ -61,6 +61,19 @@ package org.apache.flex.html.beads
}
/**
+ * The default step size for up and down arrows as a divisor
+ * to the height of the scroll bar. In other words, if
+ * STEP_RATE is set to 20, then it will take 20 clicks on
+ * the thumb to move the bottom of the screen to the top.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public static var STEP_RATE:int = 20;
+
+ /**
* @copy org.apache.flex.core.IBead#strand
*
* @langversion 3.0
@@ -97,5 +110,13 @@ package org.apache.flex.html.beads
layout.layout();
}
+
+ override protected function changeHandler(event:Event):void
+ {
+ layout.layout();
+ sbModel = host.getBeadByType(IScrollBarModel) as IScrollBarModel;
+ sbModel.stepSize = Math.max(Math.round(host.height / STEP_RATE), 1);
+ }
+
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7d4477ec/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/models/RangeModel.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/models/RangeModel.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/models/RangeModel.as
index 5e46e41..c06d3fe 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/models/RangeModel.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/models/RangeModel.as
@@ -192,8 +192,8 @@ package org.apache.flex.html.beads.models
// value must lie within the boundaries of minimum & maximum
// and be on a step interval, so the value is adjusted to
// what is coming in.
- newValue = Math.max(minimum, newValue - stepSize);
- newValue = Math.min(maximum, newValue + stepSize);
+ newValue = Math.max(minimum, newValue);
+ newValue = Math.min(maximum, newValue);
_value = snap(newValue);
dispatchEvent(new Event("valueChange"));
}
[07/10] git commit: [flex-asjs] [refs/heads/feature/mdl] - Use
interface IMaterialIcon and "as" to check null
Posted by ca...@apache.org.
Use interface IMaterialIcon and "as" to check null
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/11a4d483
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/11a4d483
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/11a4d483
Branch: refs/heads/feature/mdl
Commit: 11a4d483b197985783a4791f9196fb1c906938c8
Parents: 5ce980f
Author: piotrz <pi...@apache.org>
Authored: Mon Dec 19 22:30:18 2016 +0100
Committer: piotrz <pi...@apache.org>
Committed: Mon Dec 19 22:30:18 2016 +0100
----------------------------------------------------------------------
.../src/main/flex/org/apache/flex/mdl/beads/DeletableChip.as | 5 ++---
.../main/flex/org/apache/flex/mdl/beads/DeletableLinkChip.as | 8 ++------
2 files changed, 4 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/11a4d483/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/DeletableChip.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/DeletableChip.as b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/DeletableChip.as
index d839e14..9f523c8 100644
--- a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/DeletableChip.as
+++ b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/DeletableChip.as
@@ -23,7 +23,6 @@ package org.apache.flex.mdl.beads
import org.apache.flex.core.UIBase;
import org.apache.flex.mdl.Button;
import org.apache.flex.mdl.materialIcons.IMaterialIcon;
- import org.apache.flex.mdl.supportClasses.MaterialIconBase;
/**
* The DeletableChip bead class is a specialty bead that can be used to add additional
@@ -92,7 +91,7 @@ package org.apache.flex.mdl.beads
COMPILE::JS
private function createDeleteButton():Button
{
- var materialIcon:MaterialIconBase = IMaterialIcon(_strand).materialIcon;
+ var materialIcon:IMaterialIcon = _strand as IMaterialIcon;
if (materialIcon == null)
{
@@ -100,7 +99,7 @@ package org.apache.flex.mdl.beads
}
var delButton:Button = new Button();
- delButton.materialIcon = materialIcon;
+ delButton.materialIcon = materialIcon.materialIcon;
var htmlButton:HTMLElement = (delButton.element as HTMLElement);
htmlButton.classList.remove("mdl-button", "mdl-js-button");
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/11a4d483/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/DeletableLinkChip.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/DeletableLinkChip.as b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/DeletableLinkChip.as
index cbf79a7..17e413c 100644
--- a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/DeletableLinkChip.as
+++ b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/DeletableLinkChip.as
@@ -23,10 +23,6 @@ package org.apache.flex.mdl.beads
import org.apache.flex.core.UIBase;
import org.apache.flex.mdl.NavigationLink;
import org.apache.flex.mdl.materialIcons.IMaterialIcon;
- import org.apache.flex.mdl.supportClasses.MaterialIconBase;
- import org.apache.flex.utils.StrandUtils;
-
- import org.apache.flex.mdl.Button;
/**
* The DeletableLinkChip bead class is a specialty bead that can be used to add additional
@@ -102,7 +98,7 @@ package org.apache.flex.mdl.beads
COMPILE::JS
private function createLinkElement():NavigationLink
{
- var materialIcon:MaterialIconBase = IMaterialIcon(_strand).materialIcon;
+ var materialIcon:IMaterialIcon = _strand as IMaterialIcon;
if (materialIcon == null)
{
@@ -110,7 +106,7 @@ package org.apache.flex.mdl.beads
}
var link:NavigationLink = new NavigationLink();
- link.addElement(materialIcon);
+ link.addElement(materialIcon.materialIcon);
var linkElement:HTMLElement = (link.element as HTMLElement);
linkElement.classList.remove("mdl-navigation__link");
[04/10] git commit: [flex-asjs] [refs/heads/feature/mdl] - Use new
AbsoluteLayoutTweener
Posted by ca...@apache.org.
Use new AbsoluteLayoutTweener
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/bd8d9a88
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/bd8d9a88
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/bd8d9a88
Branch: refs/heads/feature/mdl
Commit: bd8d9a88ae610f2a0e3a97d1561af81327c0fbc2
Parents: 3a6c20b
Author: yishayw <yi...@hotmail.com>
Authored: Mon Dec 19 16:40:30 2016 +0200
Committer: yishayw <yi...@hotmail.com>
Committed: Mon Dec 19 16:40:30 2016 +0200
----------------------------------------------------------------------
.../apache/flex/effects/beads/EasyAccordionCollapseBead.as | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/bd8d9a88/frameworks/projects/Effects/src/main/flex/org/apache/flex/effects/beads/EasyAccordionCollapseBead.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Effects/src/main/flex/org/apache/flex/effects/beads/EasyAccordionCollapseBead.as b/frameworks/projects/Effects/src/main/flex/org/apache/flex/effects/beads/EasyAccordionCollapseBead.as
index df7a163..fd2bc07 100644
--- a/frameworks/projects/Effects/src/main/flex/org/apache/flex/effects/beads/EasyAccordionCollapseBead.as
+++ b/frameworks/projects/Effects/src/main/flex/org/apache/flex/effects/beads/EasyAccordionCollapseBead.as
@@ -23,12 +23,10 @@ package org.apache.flex.effects.beads
import org.apache.flex.core.ILayoutParent;
import org.apache.flex.core.UIBase;
import org.apache.flex.events.Event;
- import org.apache.flex.html.beads.layouts.IOneFlexibleChildLayout;
- import org.apache.flex.html.supportClasses.ICollapsible;
- import org.apache.flex.utils.LayoutTweener;
import org.apache.flex.html.beads.AccordionCollapseBead;
- import org.apache.flex.html.beads.AccordionView;
import org.apache.flex.html.beads.IListView;
+ import org.apache.flex.html.supportClasses.ICollapsible;
+ import org.apache.flex.utils.AbsoluteLayoutTweener;
public class EasyAccordionCollapseBead extends AccordionCollapseBead
{
@@ -66,7 +64,7 @@ package org.apache.flex.effects.beads
return;
}
var collapseHeight:Number = oldCollapsible.collapsedHeight;
- var tweener:LayoutTweener = new LayoutTweener(layout, host as ILayoutParent);
+ var tweener:AbsoluteLayoutTweener = new AbsoluteLayoutTweener(layout, host as ILayoutParent);
tweener.setBaseline();
var oldLayoutChild:ILayoutChild = tweener.mockLayoutParent.contentView.getElementAt(oldChildIndex) as ILayoutChild;
oldLayoutChild.height = collapseHeight;
[02/10] git commit: [flex-asjs] [refs/heads/feature/mdl] - Merge
branch 'develop' of https://git-wip-us.apache.org/repos/asf/flex-asjs into
develop
Posted by ca...@apache.org.
Merge branch 'develop' of https://git-wip-us.apache.org/repos/asf/flex-asjs into develop
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/b6f0907f
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/b6f0907f
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/b6f0907f
Branch: refs/heads/feature/mdl
Commit: b6f0907fa4babb38c86acf01f4db53cde5baa8b6
Parents: 4b95282 35c4620
Author: yishayw <yi...@hotmail.com>
Authored: Mon Dec 19 15:20:56 2016 +0200
Committer: yishayw <yi...@hotmail.com>
Committed: Mon Dec 19 15:20:56 2016 +0200
----------------------------------------------------------------------
.../MDLExample/src/main/flex/Buttons.mxml | 8 ++-
.../flexjs/MDLExample/src/main/flex/Cards.mxml | 10 ++-
.../flexjs/MDLExample/src/main/flex/Chips.mxml | 18 ++++--
.../src/main/flex/MainNavigation.mxml | 6 +-
.../ActorNameAndIconListItemRenderer.mxml | 2 +-
.../AvatarAndActionListItemRenderer.mxml | 5 +-
...vatarAndActionThreeLineListItemRenderer.mxml | 4 +-
.../AvatarAndActionTwoLineListItemRenderer.mxml | 7 +-
.../src/main/resources/mdl-styles.css | 5 +-
.../src/main/flex/org/apache/flex/html/A.as | 41 +++++-------
.../src/main/flex/org/apache/flex/html/Span.as | 4 +-
.../src/main/flex/org/apache/flex/mdl/Button.as | 26 +++++++-
.../main/flex/org/apache/flex/mdl/ButtonChip.as | 68 ++++++++++++--------
.../src/main/flex/org/apache/flex/mdl/Chip.as | 67 ++++++++++---------
.../org/apache/flex/mdl/beads/DeletableChip.as | 11 ++--
.../apache/flex/mdl/beads/DeletableLinkChip.as | 11 ++--
.../mdl/beads/materialIcons/MaterialIconAdd.as | 52 ---------------
.../beads/materialIcons/MaterialIconCancel.as | 52 ---------------
.../beads/materialIcons/MaterialIconEvent.as | 52 ---------------
.../beads/materialIcons/MaterialIconPerson.as | 52 ---------------
.../beads/materialIcons/MaterialIconShare.as | 52 ---------------
.../mdl/beads/materialIcons/MaterialIconStar.as | 52 ---------------
.../beads/materialIcons/MaterialIconsType.as | 30 ---------
.../flex/mdl/materialIcons/MaterialIconAdd.as | 52 +++++++++++++++
.../mdl/materialIcons/MaterialIconCancel.as | 52 +++++++++++++++
.../flex/mdl/materialIcons/MaterialIconEvent.as | 52 +++++++++++++++
.../flex/mdl/materialIcons/MaterialIconFace.as | 52 +++++++++++++++
.../mdl/materialIcons/MaterialIconMoreVert.as | 52 +++++++++++++++
.../mdl/materialIcons/MaterialIconPerson.as | 52 +++++++++++++++
.../flex/mdl/materialIcons/MaterialIconShare.as | 52 +++++++++++++++
.../flex/mdl/materialIcons/MaterialIconStar.as | 52 +++++++++++++++
.../flex/mdl/materialIcons/MaterialIconsType.as | 32 +++++++++
.../flex/mdl/supportClasses/MaterialIconBase.as | 62 ++++++++----------
.../src/main/resources/mdl-manifest.xml | 14 ++--
34 files changed, 655 insertions(+), 504 deletions(-)
----------------------------------------------------------------------
[06/10] git commit: [flex-asjs] [refs/heads/feature/mdl] - Add
IMaterialIcon interface - implement when material icon is needed in component
Posted by ca...@apache.org.
Add IMaterialIcon interface - implement when material icon is needed in component
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/5ce980fb
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/5ce980fb
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/5ce980fb
Branch: refs/heads/feature/mdl
Commit: 5ce980fb190b0cc8b41bebf44e6579ae54fe622a
Parents: 6c03ee3
Author: piotrz <pi...@apache.org>
Authored: Mon Dec 19 20:54:47 2016 +0100
Committer: piotrz <pi...@apache.org>
Committed: Mon Dec 19 20:54:47 2016 +0100
----------------------------------------------------------------------
.../src/main/flex/org/apache/flex/mdl/Button.as | 3 +-
.../main/flex/org/apache/flex/mdl/ButtonChip.as | 2 --
.../org/apache/flex/mdl/beads/DeletableChip.as | 8 ++---
.../apache/flex/mdl/beads/DeletableLinkChip.as | 5 +--
.../flex/mdl/materialIcons/IMaterialIcon.as | 36 ++++++++++++++++++++
5 files changed, 44 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5ce980fb/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/Button.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/Button.as b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/Button.as
index 6935531..4ad120e 100644
--- a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/Button.as
+++ b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/Button.as
@@ -19,6 +19,7 @@
package org.apache.flex.mdl
{
import org.apache.flex.html.TextButton;
+ import org.apache.flex.mdl.materialIcons.IMaterialIcon;
import org.apache.flex.mdl.supportClasses.MaterialIconBase;
COMPILE::JS
@@ -35,7 +36,7 @@ package org.apache.flex.mdl
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- public class Button extends TextButton
+ public class Button extends TextButton implements IMaterialIcon
{
/**
* Constructor.
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5ce980fb/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/ButtonChip.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/ButtonChip.as b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/ButtonChip.as
index df0574b..8ef1ea2 100644
--- a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/ButtonChip.as
+++ b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/ButtonChip.as
@@ -18,8 +18,6 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.flex.mdl
{
- import org.apache.flex.mdl.supportClasses.MaterialIconBase;
-
COMPILE::JS
{
import org.apache.flex.core.WrappedHTMLElement;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5ce980fb/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/DeletableChip.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/DeletableChip.as b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/DeletableChip.as
index 5b153d6..d839e14 100644
--- a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/DeletableChip.as
+++ b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/DeletableChip.as
@@ -22,10 +22,8 @@ package org.apache.flex.mdl.beads
import org.apache.flex.core.IStrand;
import org.apache.flex.core.UIBase;
import org.apache.flex.mdl.Button;
+ import org.apache.flex.mdl.materialIcons.IMaterialIcon;
import org.apache.flex.mdl.supportClasses.MaterialIconBase;
- import org.apache.flex.utils.StrandUtils;
-
- //import org.apache.flex.mdl.Chip;
/**
* The DeletableChip bead class is a specialty bead that can be used to add additional
@@ -94,8 +92,8 @@ package org.apache.flex.mdl.beads
COMPILE::JS
private function createDeleteButton():Button
{
- var materialIcon:MaterialIconBase = Button(_strand).materialIcon; //this could be Chip or ButtonChip,
- //maybe add an Interface for both since is not really a Button
+ var materialIcon:MaterialIconBase = IMaterialIcon(_strand).materialIcon;
+
if (materialIcon == null)
{
throw new Error("Missing material icon");
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5ce980fb/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/DeletableLinkChip.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/DeletableLinkChip.as b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/DeletableLinkChip.as
index 6f7d2fb..cbf79a7 100644
--- a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/DeletableLinkChip.as
+++ b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/DeletableLinkChip.as
@@ -22,6 +22,7 @@ package org.apache.flex.mdl.beads
import org.apache.flex.core.IStrand;
import org.apache.flex.core.UIBase;
import org.apache.flex.mdl.NavigationLink;
+ import org.apache.flex.mdl.materialIcons.IMaterialIcon;
import org.apache.flex.mdl.supportClasses.MaterialIconBase;
import org.apache.flex.utils.StrandUtils;
@@ -101,8 +102,8 @@ package org.apache.flex.mdl.beads
COMPILE::JS
private function createLinkElement():NavigationLink
{
- var materialIcon:MaterialIconBase = Button(_strand).materialIcon; //this could be Chip or ButtonChip,
- //maybe add an Interface for both since is not really a Button
+ var materialIcon:MaterialIconBase = IMaterialIcon(_strand).materialIcon;
+
if (materialIcon == null)
{
throw new Error("Missing material icon");
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5ce980fb/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/materialIcons/IMaterialIcon.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/materialIcons/IMaterialIcon.as b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/materialIcons/IMaterialIcon.as
new file mode 100644
index 0000000..71d689d
--- /dev/null
+++ b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/materialIcons/IMaterialIcon.as
@@ -0,0 +1,36 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.flex.mdl.materialIcons
+{
+ import org.apache.flex.mdl.supportClasses.MaterialIconBase;
+
+ /**
+ * Implement if class will need ability to display Material icon
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public interface IMaterialIcon
+ {
+ function get materialIcon():MaterialIconBase;
+ function set materialIcon(value:MaterialIconBase):void;
+ }
+}
[09/10] git commit: [flex-asjs] [refs/heads/feature/mdl] - Changes to
MDL Slider to get valueChange working but maven build is failing
Posted by ca...@apache.org.
Changes to MDL Slider to get valueChange working but maven build is failing
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/00659d79
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/00659d79
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/00659d79
Branch: refs/heads/feature/mdl
Commit: 00659d79012f84442f9f5f9b63052fd2e75036e8
Parents: 7d4477e
Author: Carlos Rovira <ca...@apache.org>
Authored: Mon Dec 19 03:18:52 2016 +0100
Committer: Carlos Rovira <ca...@apache.org>
Committed: Tue Dec 20 08:35:14 2016 +0100
----------------------------------------------------------------------
.../flexjs/MDLExample/src/main/flex/Cards.mxml | 14 +-
frameworks/projects/MaterialDesignLite/pom.xml | 21 ++
.../src/main/flex/org/apache/flex/mdl/Slider.as | 54 +---
.../apache/flex/mdl/beads/SliderThumbView.as | 121 ++++++++
.../apache/flex/mdl/beads/SliderTrackView.as | 121 ++++++++
.../beads/controllers/SliderMouseController.as | 287 +++++++++++++++++++
.../apache/flex/mdl/beads/views/SliderView.as | 188 ++++++++++++
.../src/main/resources/defaults.css | 12 +-
.../src/main/resources/mdl-manifest.xml | 4 +
9 files changed, 773 insertions(+), 49 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/00659d79/examples/flexjs/MDLExample/src/main/flex/Cards.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MDLExample/src/main/flex/Cards.mxml b/examples/flexjs/MDLExample/src/main/flex/Cards.mxml
index 6369d42..e81715d 100644
--- a/examples/flexjs/MDLExample/src/main/flex/Cards.mxml
+++ b/examples/flexjs/MDLExample/src/main/flex/Cards.mxml
@@ -22,9 +22,19 @@ limitations under the License.
xmlns:mdl="library://ns.apache.org/flexjs/mdl"
xmlns="http://www.w3.org/1999/xhtml">
+ <fx:Script>
+ <![CDATA[
+ private function onValueChange(event:Event):void
+ {
+ trace("value change:", slider.value);
+ mycard.shadow = slider.value
+ }
+ ]]>
+</fx:Script>
+
<mdl:Grid className="center-items">
- <mdl:Card className="demo-card-wide" shadow="2">
+ <mdl:Card id="mycard" className="demo-card-wide" shadow="2">
<mdl:CardTitle>
<mdl:CardTitleText text="Welcome"/>
</mdl:CardTitle>
@@ -37,6 +47,8 @@ limitations under the License.
</mdl:CardSupportingText>
<mdl:CardActions border="true">
<mdl:Button text="Get Started" ripple="true" colored="true"/>
+ <mdl:Slider id="slider" minimum="0" maximum="16" value="2" stepSize="1" width="200"
+ valueChange="onValueChange(event)"/>
</mdl:CardActions>
<mdl:CardMenu>
<mdl:Button icon="true" ripple="true">
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/00659d79/frameworks/projects/MaterialDesignLite/pom.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/MaterialDesignLite/pom.xml b/frameworks/projects/MaterialDesignLite/pom.xml
index d5fde11..ca2ca23 100644
--- a/frameworks/projects/MaterialDesignLite/pom.xml
+++ b/frameworks/projects/MaterialDesignLite/pom.xml
@@ -89,15 +89,36 @@
</dependency>
<dependency>
<groupId>org.apache.flex.flexjs.framework</groupId>
+ <artifactId>Binding</artifactId>
+ <version>0.8.0-SNAPSHOT</version>
+ <type>swc</type>
+ <classifier>typedefs</classifier>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.flex.flexjs.framework</groupId>
<artifactId>Graphics</artifactId>
<version>0.8.0-SNAPSHOT</version>
<type>swc</type>
</dependency>
<dependency>
<groupId>org.apache.flex.flexjs.framework</groupId>
+ <artifactId>Graphics</artifactId>
+ <version>0.8.0-SNAPSHOT</version>
+ <type>swc</type>
+ <classifier>typedefs</classifier>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.flex.flexjs.framework</groupId>
+ <artifactId>Collections</artifactId>
+ <version>0.8.0-SNAPSHOT</version>
+ <type>swc</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.flex.flexjs.framework</groupId>
<artifactId>Collections</artifactId>
<version>0.8.0-SNAPSHOT</version>
<type>swc</type>
+ <classifier>typedefs</classifier>
</dependency>
<dependency>
<groupId>org.apache.flex.flexjs.framework</groupId>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/00659d79/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/Slider.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/Slider.as b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/Slider.as
index 18a077b..bcbef9b 100644
--- a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/Slider.as
+++ b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/Slider.as
@@ -24,6 +24,7 @@ package org.apache.flex.mdl
COMPILE::JS
{
+ import org.apache.flex.html.beads.controllers.SliderMouseController;
import org.apache.flex.core.WrappedHTMLElement;
}
@@ -35,6 +36,8 @@ package org.apache.flex.mdl
* The Slider uses the following bead types:
*
* org.apache.flex.core.IBeadModel: the data model, typically an IRangeModel, that holds the Slider values.
+ * org.apache.flex.core.IBeadView: the bead that constructs the visual parts of the Slider.
+ * org.apache.flex.core.IBeadController: the bead that handles input.
*
* @langversion 3.0
* @playerversion Flash 10.2
@@ -80,10 +83,10 @@ package org.apache.flex.mdl
{
IRangeModel(model).value = newValue;
- COMPILE::JS
+ /*COMPILE::JS
{
(element as HTMLInputElement).value = IRangeModel(model).value.toString();
- }
+ }*/
}
/**
@@ -102,10 +105,10 @@ package org.apache.flex.mdl
{
IRangeModel(model).minimum = value;
- COMPILE::JS
+ /*COMPILE::JS
{
(element as HTMLInputElement).min = IRangeModel(model).minimum.toString();
- }
+ }*/
}
/**
@@ -124,11 +127,10 @@ package org.apache.flex.mdl
{
IRangeModel(model).maximum = value;
- COMPILE::JS
+ /*COMPILE::JS
{
(element as HTMLInputElement).max = IRangeModel(model).maximum.toString();
- }
-
+ }*/
}
/**
@@ -166,20 +168,11 @@ package org.apache.flex.mdl
{
IRangeModel(model).stepSize = value;
- COMPILE::JS
+ /*COMPILE::JS
{
(element as HTMLInputElement).step = IRangeModel(model).stepSize.toString();
- }
+ }*/
}
-
- //COMPILE::JS
- //private var track:SliderTrackView;
-
- //COMPILE::JS
- //private var thumb:SliderThumbView;
-
- //COMPILE::JS
- //private var controller:SliderMouseController;
COMPILE::JS
private var input:HTMLInputElement;
@@ -209,12 +202,6 @@ package org.apache.flex.mdl
element = input as WrappedHTMLElement;
- //track = new SliderTrackView();
- //addBead(track);
- //thumb = new SliderThumbView();
- //addBead(thumb);
- //controller = new SliderMouseController();
- //addBead(controller);
positioner = p as WrappedHTMLElement;
(input as WrappedHTMLElement).flexjs_wrapper = this;
@@ -243,6 +230,7 @@ package org.apache.flex.mdl
}
/**
+ * @private
*/
COMPILE::JS
public function snap(value:Number):Number
@@ -260,23 +248,5 @@ package org.apache.flex.mdl
return n + si;
return n;
}
-
-
- /**
- * @param {number} value The value used to calculate new position of the thumb.
- * @return {void} Moves the thumb to the corresponding position.
- *
- COMPILE::JS
- public function setThumbFromValue(value:Number):void
- {
- var min:Number = model.minimum;
- var max:Number = model.maximum;
- var p:Number = (value - min) / (max - min);
- var xloc:Number = p * (parseInt(track.element.style.width, 10) -
- parseInt(thumb.element.style.width, 10));
-
- thumb.element.style.left = "" + xloc + 'px';
- } */
-
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/00659d79/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/SliderThumbView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/SliderThumbView.as b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/SliderThumbView.as
new file mode 100644
index 0000000..5113b5a
--- /dev/null
+++ b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/SliderThumbView.as
@@ -0,0 +1,121 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.flex.mdl.beads
+{
+ import flash.display.Graphics;
+ import flash.display.Shape;
+ import flash.display.SimpleButton;
+
+ import org.apache.flex.core.BeadViewBase;
+ import org.apache.flex.core.IBeadView;
+ import org.apache.flex.core.IStrand;
+ import org.apache.flex.events.Event;
+ import org.apache.flex.events.IEventDispatcher;
+ import org.apache.flex.core.IChild;
+
+ import org.apache.flex.mdl.Button;
+
+ /**
+ * The SliderThumbView class creates the draggable input element for the
+ * org.apache.flex.html.Slider component.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class SliderThumbView extends BeadViewBase implements IBeadView
+ {
+ /**
+ * constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function SliderThumbView()
+ {
+ hitArea = new Shape();
+ upView = new Shape();
+ downView = new Shape();
+ overView = new Shape();
+ }
+
+ /**
+ * @private
+ */
+ private function drawView(g:Graphics, bgColor:uint):void
+ {
+ var host:Button = Button(_strand);
+ var button:SimpleButton = IChild(_strand).$displayObject as SimpleButton;
+ g.clear();
+ g.lineStyle(1,0x000000);
+ g.beginFill(bgColor,1.0);
+ g.drawCircle(host.width/2, host.height/2, 10);
+ g.endFill();
+ }
+
+ private var hitArea:Shape;
+
+ /**
+ * @copy org.apache.flex.core.IBead#strand
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ * @flexjsignoreimport org.apache.flex.core.WrappedHTMLElement
+ * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
+ */
+ override public function set strand(value:IStrand):void
+ {
+ super.strand = value;
+
+ drawView(hitArea.graphics, 0xDD0000);
+ drawView(upView.graphics, 0xFFFFFF);
+ drawView(downView.graphics, 0x999999);
+ drawView(overView.graphics, 0xDDDDDD);
+
+ var button:SimpleButton = IChild(value).$displayObject as SimpleButton;
+ button.upState = upView;
+ button.downState = downView;
+ button.overState = overView;
+ button.hitTestState = hitArea;
+
+ IEventDispatcher(value).addEventListener("widthChanged",sizeChangeHandler);
+ IEventDispatcher(value).addEventListener("heightChanged",sizeChangeHandler);
+ }
+
+ private var upView:Shape;
+ private var downView:Shape;
+ private var overView:Shape;
+
+ /**
+ * @private
+ */
+ private function sizeChangeHandler( event:Event ) : void
+ {
+ drawView(hitArea.graphics, 0xDD0000);
+ drawView(upView.graphics, 0xFFFFFF);
+ drawView(downView.graphics, 0x999999);
+ drawView(overView.graphics, 0xDDDDDD);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/00659d79/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/SliderTrackView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/SliderTrackView.as b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/SliderTrackView.as
new file mode 100644
index 0000000..603a4fb
--- /dev/null
+++ b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/SliderTrackView.as
@@ -0,0 +1,121 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.flex.mdl.beads
+{
+ import flash.display.Graphics;
+ import flash.display.Shape;
+ import flash.display.SimpleButton;
+
+ import org.apache.flex.core.BeadViewBase;
+ import org.apache.flex.core.IBeadView;
+ import org.apache.flex.core.IStrand;
+ import org.apache.flex.core.UIBase;
+ import org.apache.flex.events.Event;
+ import org.apache.flex.events.IEventDispatcher;
+ import org.apache.flex.core.IChild;
+
+ import org.apache.flex.mdl.Button;
+
+ /**
+ * The SliderTrackView class creates the track area for the org.apache.flex.html.Slider
+ * component.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class SliderTrackView extends BeadViewBase implements IBeadView
+ {
+ /**
+ * constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function SliderTrackView()
+ {
+ hitArea = new Shape();
+ upView = new Shape();
+ downView = new Shape();
+ overView = new Shape();
+ }
+
+ /**
+ * @private
+ */
+ private function drawView(g:Graphics, bgColor:uint):void
+ {
+ var host:Button = Button(_strand);
+ var button:SimpleButton = IChild(_strand).$displayObject as SimpleButton;
+ g.clear();
+ g.lineStyle(1,0x000000);
+ g.beginFill(bgColor);
+ g.drawRect(0, 0, host.width, host.height);
+ g.endFill();
+ }
+
+ private var hitArea:Shape;
+
+ /**
+ * @copy org.apache.flex.core.IBead#strand
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
+ */
+ override public function set strand(value:IStrand):void
+ {
+ super.strand = value;
+
+ drawView(hitArea.graphics, 0xDD0000);
+ drawView(upView.graphics, 0xCCCCCC);
+ drawView(downView.graphics, 0x808080);
+ drawView(overView.graphics, 0xEEEEEE);
+
+ var button:SimpleButton = IChild(value).$displayObject as SimpleButton;
+ button.upState = upView;
+ button.downState = downView;
+ button.overState = overView;
+ button.hitTestState = hitArea;
+
+ IEventDispatcher(value).addEventListener("widthChanged",sizeChangeHandler);
+ IEventDispatcher(value).addEventListener("heightChanged",sizeChangeHandler);
+ }
+
+ private var upView:Shape;
+ private var downView:Shape;
+ private var overView:Shape;
+
+ /**
+ * @private
+ */
+ private function sizeChangeHandler( event:Event ) : void
+ {
+ drawView(hitArea.graphics, 0xDD0000);
+ drawView(upView.graphics, 0xCCCCCC);
+ drawView(downView.graphics, 0x808080);
+ drawView(overView.graphics, 0xEEEEEE);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/00659d79/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/controllers/SliderMouseController.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/controllers/SliderMouseController.as b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/controllers/SliderMouseController.as
new file mode 100644
index 0000000..8cbc8db
--- /dev/null
+++ b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/controllers/SliderMouseController.as
@@ -0,0 +1,287 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.flex.mdl.beads.controllers
+{
+ import org.apache.flex.core.IBead;
+ import org.apache.flex.core.IBeadController;
+ import org.apache.flex.core.IRangeModel;
+ import org.apache.flex.core.IStrand;
+ import org.apache.flex.core.UIBase;
+ import org.apache.flex.events.Event;
+ import org.apache.flex.events.IEventDispatcher;
+ import org.apache.flex.events.MouseEvent;
+ import org.apache.flex.geom.Point;
+
+ import org.apache.flex.html.beads.ISliderView;
+ import org.apache.flex.mdl.beads.SliderTrackView;
+
+ COMPILE::JS
+ {
+ import goog.events;
+ import goog.events.EventType;
+ import org.apache.flex.events.BrowserEvent;
+
+ import org.apache.flex.mdl.Slider;
+ import org.apache.flex.mdl.beads.SliderThumbView;
+ import org.apache.flex.mdl.beads.SliderTrackView;
+ }
+
+ /**
+ * The SliderMouseController class bead handles mouse events on the
+ * org.apache.flex.html.Slider's component parts (thumb and track) and
+ * dispatches change events on behalf of the Slider (as well as co-ordinating visual
+ * changes (such as moving the thumb when the track has been tapped or clicked).
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class SliderMouseController implements IBead, IBeadController
+ {
+ /**
+ * constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function SliderMouseController()
+ {
+ }
+
+ private var rangeModel:IRangeModel;
+
+ private var _strand:IStrand;
+
+ /**
+ * @copy org.apache.flex.core.IBead#strand
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function set strand(value:IStrand):void
+ {
+ _strand = value;
+
+ rangeModel = UIBase(value).model as IRangeModel;
+
+ COMPILE::SWF
+ {
+ var sliderView:ISliderView = value.getBeadByType(ISliderView) as ISliderView;
+ sliderView.thumb.addEventListener(MouseEvent.MOUSE_DOWN, thumbDownHandler);
+
+ // add handler to detect click on track
+ sliderView.track.addEventListener(MouseEvent.CLICK, trackClickHandler, false, 99999);
+
+ }
+ COMPILE::JS
+ {
+ var sliderView:ISliderView = value.getBeadByType(ISliderView) as ISliderView;
+ track = sliderView.track as UIBase;
+ thumb = sliderView.thumb as UIBase;
+
+ goog.events.listen(track.element, goog.events.EventType.CLICK,
+ handleTrackClick, false, this);
+
+ goog.events.listen(thumb.element, goog.events.EventType.MOUSEDOWN,
+ handleThumbDown, false, this);
+
+ }
+ }
+
+ COMPILE::JS
+ private var track:UIBase;
+
+ COMPILE::JS
+ private var thumb:UIBase;
+
+ /**
+ * @private
+ */
+ COMPILE::SWF
+ private function thumbDownHandler( event:MouseEvent ) : void
+ {
+ UIBase(_strand).topMostEventDispatcher.addEventListener(MouseEvent.MOUSE_MOVE, thumbMoveHandler);
+ UIBase(_strand).topMostEventDispatcher.addEventListener(MouseEvent.MOUSE_UP, thumbUpHandler);
+
+ var sliderView:ISliderView = _strand.getBeadByType(ISliderView) as ISliderView;
+
+ origin = new Point(event.screenX, event.screenY);
+ thumb = new Point(sliderView.thumb.x,sliderView.thumb.y);
+ }
+
+ /**
+ * @private
+ */
+ COMPILE::SWF
+ private function thumbUpHandler( event:MouseEvent ) : void
+ {
+ UIBase(_strand).topMostEventDispatcher.removeEventListener(MouseEvent.MOUSE_MOVE, thumbMoveHandler);
+ UIBase(_strand).topMostEventDispatcher.removeEventListener(MouseEvent.MOUSE_UP, thumbUpHandler);
+
+ IEventDispatcher(_strand).dispatchEvent(new Event("valueChange"));
+ }
+
+ COMPILE::SWF
+ private var origin:Point;
+ COMPILE::SWF
+ private var thumb:Point;
+
+ /**
+ * @private
+ */
+ COMPILE::SWF
+ private function thumbMoveHandler( event:MouseEvent ) : void
+ {
+ var sliderView:ISliderView = _strand.getBeadByType(ISliderView) as ISliderView;
+
+ var deltaX:Number = event.screenX - origin.x;
+ var thumbW:Number = sliderView.thumb.width/2;
+ var newX:Number = thumb.x + deltaX;
+
+ var p:Number = newX/sliderView.track.width;
+ var n:Number = p*(rangeModel.maximum - rangeModel.minimum) + rangeModel.minimum;
+
+ rangeModel.value = n;
+
+ IEventDispatcher(_strand).dispatchEvent(new Event("valueChange"));
+ }
+
+ /**
+ * @private
+ */
+ COMPILE::SWF
+ private function trackClickHandler( event:MouseEvent ) : void
+ {
+ event.stopImmediatePropagation();
+
+ var sliderView:ISliderView = _strand.getBeadByType(ISliderView) as ISliderView;
+
+ var xloc:Number = event.localX;
+ var p:Number = xloc/sliderView.track.width;
+ var n:Number = p*(rangeModel.maximum - rangeModel.minimum) + rangeModel.minimum;
+
+ rangeModel.value = n;
+
+ IEventDispatcher(_strand).dispatchEvent(new Event("valueChange"));
+ }
+
+ /**
+ */
+ COMPILE::JS
+ private function handleTrackClick(event:BrowserEvent):void
+ {
+ var host:Slider = _strand as Slider;
+ var xloc:Number = event.clientX;
+ var p:Number = Math.min(1, xloc / parseInt(track.element.style.width, 10));
+ var n:Number = p * (host.maximum - host.minimum) +
+ host.minimum;
+
+ host.value = n;
+
+ origin = parseInt(thumb.element.style.left, 10);
+ position = parseInt(thumb.element.style.left, 10);
+
+ calcValFromMousePosition(event, true);
+
+ host.dispatchEvent(new org.apache.flex.events.Event('valueChange'));
+ }
+
+
+ /**
+ */
+ COMPILE::JS
+ private function handleThumbDown(event:BrowserEvent):void
+ {
+ var host:Slider = _strand as Slider;
+ goog.events.listen(host.element, goog.events.EventType.MOUSEUP,
+ handleThumbUp, false, this);
+ goog.events.listen(host.element, goog.events.EventType.MOUSEMOVE,
+ handleThumbMove, false, this);
+
+ origin = event.clientX;
+ position = parseInt(thumb.element.style.left, 10);
+ }
+
+ COMPILE::JS
+ private var origin:Number;
+ COMPILE::JS
+ private var position:int;
+
+ /**
+ */
+ COMPILE::JS
+ private function handleThumbUp(event:BrowserEvent):void
+ {
+ var host:Slider = _strand as Slider;
+ goog.events.unlisten(host.element, goog.events.EventType.MOUSEUP,
+ handleThumbUp, false, this);
+ goog.events.unlisten(host.element, goog.events.EventType.MOUSEMOVE,
+ handleThumbMove, false, this);
+
+ calcValFromMousePosition(event, false);
+
+ host.dispatchEvent(new org.apache.flex.events.Event('valueChange'));
+ }
+
+
+ /**
+ */
+ COMPILE::JS
+ private function handleThumbMove(event:BrowserEvent):void
+ {
+ var host:Slider = _strand as Slider;
+ calcValFromMousePosition(event, false);
+
+ host.dispatchEvent(new org.apache.flex.events.Event('valueChange'));
+ }
+
+
+ /**
+ */
+ COMPILE::JS
+ private function calcValFromMousePosition(event:BrowserEvent, useOffset:Boolean):void
+ {
+ var host:Slider = _strand as Slider;
+ var deltaX:Number = (useOffset ? event.offsetX : event.clientX) - origin;
+ var thumbW:int = parseInt(thumb.element.style.width, 10) / 2;
+ var newX:Number = position + deltaX;
+
+ var p:Number = newX / parseInt(track.element.style.width, 10);
+ var n:Number = p * (host.maximum - host.minimum) +
+ host.minimum;
+ n = host.snap(n);
+ if (n < host.minimum) n = host.minimum;
+ else if (n > host.maximum) n = host.maximum;
+
+ p = (n - host.minimum) / (host.maximum -
+ host.minimum);
+ newX = p * parseInt(track.element.style.width, 10);
+
+ thumb.element.style.left = String(newX -
+ parseInt(thumb.element.style.width, 10) / 2) + 'px';
+
+ host.value = n;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/00659d79/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/views/SliderView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/views/SliderView.as b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/views/SliderView.as
new file mode 100644
index 0000000..d578b70
--- /dev/null
+++ b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/mdl/beads/views/SliderView.as
@@ -0,0 +1,188 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.flex.mdl.beads.views
+{
+ COMPILE::SWF {
+ import flash.display.DisplayObject;
+ import flash.display.Sprite;
+ }
+
+ import org.apache.flex.core.BeadViewBase;
+ import org.apache.flex.core.IBead;
+ import org.apache.flex.core.IBeadModel;
+ import org.apache.flex.core.IBeadView;
+ import org.apache.flex.core.IRangeModel;
+ import org.apache.flex.core.IStrand;
+ import org.apache.flex.core.UIBase;
+ import org.apache.flex.core.IUIBase;
+ import org.apache.flex.core.ValuesManager;
+ import org.apache.flex.events.Event;
+ import org.apache.flex.events.IEventDispatcher;
+
+ import org.apache.flex.mdl.Button;
+ import org.apache.flex.html.beads.ISliderView;
+
+ /**
+ * The SliderView class creates the visual elements of the org.apache.flex.html.Slider
+ * component. The Slider has a track and a thumb control which are also created with view beads.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class SliderView extends BeadViewBase implements ISliderView, IBeadView
+ {
+ /**
+ * constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function SliderView()
+ {
+ }
+
+ private var rangeModel:IRangeModel;
+
+ /**
+ * @copy org.apache.flex.core.IBead#strand
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ override public function set strand(value:IStrand):void
+ {
+ super.strand = value;
+
+ COMPILE::SWF {
+ var s:UIBase = UIBase(_strand);
+
+ _track = new Button();
+ _track.addBead(new (ValuesManager.valuesImpl.getValue(_strand, "iTrackView")) as IBead);
+ _track.className = "SliderTrack";
+ s.addElement(_track);
+
+ _thumb = new Button();
+ _thumb.addBead(new (ValuesManager.valuesImpl.getValue(_strand, "iThumbView")) as IBead);
+ _thumb.className = "SliderThumb";
+ s.addElement(_thumb);
+
+ }
+ COMPILE::JS {
+ _track = new Button();
+ //_track.className = "SliderTrack";
+ UIBase(_strand).addElement(_track);
+
+ _thumb = new Button();
+ //_thumb.className = "SliderThumb";
+ UIBase(_strand).addElement(_thumb);
+ }
+
+ IEventDispatcher(value).addEventListener("widthChanged",sizeChangeHandler);
+ IEventDispatcher(value).addEventListener("heightChanged",sizeChangeHandler);
+
+ rangeModel = _strand.getBeadByType(IBeadModel) as IRangeModel;
+
+ // listen for changes to the model and adjust the UI accordingly.
+ IEventDispatcher(rangeModel).addEventListener("valueChange",modelChangeHandler);
+ IEventDispatcher(rangeModel).addEventListener("minimumChange",modelChangeHandler);
+ IEventDispatcher(rangeModel).addEventListener("maximumChange",modelChangeHandler);
+ IEventDispatcher(rangeModel).addEventListener("stepSizeChange",modelChangeHandler);
+ IEventDispatcher(rangeModel).addEventListener("snapIntervalChange",modelChangeHandler);
+
+ sizeChangeHandler(null);
+ }
+
+ private var _track:Button;
+ private var _thumb:Button;
+
+
+ /**
+ * The track component.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get track():IUIBase
+ {
+ return _track;
+ }
+
+ /**
+ * The thumb component.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get thumb():IUIBase
+ {
+ return _thumb;
+ }
+
+ /**
+ * @private
+ */
+ private function sizeChangeHandler( event:Event ) : void
+ {
+ var host:UIBase = UIBase(_strand);
+ var w:Number = host.width;
+ var h:Number = host.height;
+
+ _thumb.width = 20;
+ _thumb.height = host.height;
+
+ // the track is inset 1/2 of the thumbwidth so the thumb can
+ // overlay the track on either end with the thumb center being
+ // on the track's edge
+ _track.width = host.width - _thumb.width;
+ _track.height = 5;
+ _track.x = _thumb.width/2;
+ _track.y = (host.height - _track.height)/2;
+
+ setThumbPositionFromValue(rangeModel.value);
+ }
+
+ /**
+ * @private
+ */
+ private function modelChangeHandler( event:Event ) : void
+ {
+ setThumbPositionFromValue(rangeModel.value);
+ }
+
+ /**
+ * @private
+ */
+ private function setThumbPositionFromValue( value:Number ) : void
+ {
+ var p:Number = (value-rangeModel.minimum)/(rangeModel.maximum-rangeModel.minimum);
+ var xloc:Number = (p*_track.width);
+ _thumb.x = xloc;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/00659d79/frameworks/projects/MaterialDesignLite/src/main/resources/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/projects/MaterialDesignLite/src/main/resources/defaults.css b/frameworks/projects/MaterialDesignLite/src/main/resources/defaults.css
index 2894c29..810be12 100644
--- a/frameworks/projects/MaterialDesignLite/src/main/resources/defaults.css
+++ b/frameworks/projects/MaterialDesignLite/src/main/resources/defaults.css
@@ -28,15 +28,15 @@ CheckBox
Slider
{
IBeadModel: ClassReference("org.apache.flex.html.beads.models.RangeModel");
+ iBeadView: ClassReference("org.apache.flex.mdl.beads.views.SliderView");
+ iBeadController: ClassReference("org.apache.flex.mdl.beads.controllers.SliderMouseController");
}
-/*Slider
+Slider
{
- iBeadView: ClassReference("org.apache.flex.html.beads.SliderView");
- iBeadController: ClassReference("org.apache.flex.html.beads.controllers.SliderMouseController");
- iThumbView: ClassReference("org.apache.flex.html.beads.SliderThumbView");
- iTrackView: ClassReference("org.apache.flex.html.beads.SliderTrackView");
-}*/
+ iThumbView: ClassReference("org.apache.flex.mdl.beads.SliderThumbView");
+ iTrackView: ClassReference("org.apache.flex.mdl.beads.SliderTrackView");
+}
List
{
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/00659d79/frameworks/projects/MaterialDesignLite/src/main/resources/mdl-manifest.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/MaterialDesignLite/src/main/resources/mdl-manifest.xml b/frameworks/projects/MaterialDesignLite/src/main/resources/mdl-manifest.xml
index 69059bd..4ad2ebd 100644
--- a/frameworks/projects/MaterialDesignLite/src/main/resources/mdl-manifest.xml
+++ b/frameworks/projects/MaterialDesignLite/src/main/resources/mdl-manifest.xml
@@ -30,6 +30,10 @@
<component id="Restrict" class="org.apache.flex.mdl.beads.Restrict"/>
<component id="Disabled" class="org.apache.flex.mdl.beads.Disabled"/>
<component id="Slider" class="org.apache.flex.mdl.Slider"/>
+ <component id="SliderView" class="org.apache.flex.mdl.beads.views.SliderView"/>
+ <component id="SliderTrackView" class="org.apache.flex.mdl.beads.SliderTrackView"/>
+ <component id="SliderThumbView" class="org.apache.flex.mdl.beads.SliderThumbView"/>
+ <component id="SliderMouseController" class="org.apache.flex.mdl.beads.controllers.SliderMouseController"/>
<component id="Badge" class="org.apache.flex.mdl.beads.Badge"/>
<component id="Menu" class="org.apache.flex.mdl.Menu"/>
<component id="MenuItem" class="org.apache.flex.mdl.MenuItem"/>