You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2014/10/06 23:29:25 UTC
[06/17] git commit: [flex-asjs] [refs/heads/develop] - handle initial
state
handle initial state
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/50bee95c
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/50bee95c
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/50bee95c
Branch: refs/heads/develop
Commit: 50bee95c20801090502008a1c51bd97866ba9efa
Parents: f7c45b8
Author: Alex Harui <ah...@apache.org>
Authored: Mon Oct 6 13:08:58 2014 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Mon Oct 6 13:08:58 2014 -0700
----------------------------------------------------------------------
.../src/org/apache/flex/core/IStatesObject.as | 56 ++++++++++++++++++++
.../org/apache/flex/core/SimpleStatesImpl.as | 10 +++-
2 files changed, 65 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/50bee95c/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IStatesObject.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IStatesObject.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IStatesObject.as
new file mode 100644
index 0000000..bc2f716
--- /dev/null
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IStatesObject.as
@@ -0,0 +1,56 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.core
+{
+ import org.apache.flex.events.IEventDispatcher;
+
+ /**
+ * The IStatesObject interface is the interface for an
+ * object that supports states.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public interface IStatesObject extends IEventDispatcher
+ {
+ /**
+ * The array of view states. These should
+ * be instances of mx.states.State.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function get states():Array;
+
+ /**
+ * The current state name
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function get currentState():String;
+
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/50bee95c/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/SimpleStatesImpl.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/SimpleStatesImpl.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/SimpleStatesImpl.as
index 7b291b2..d932703 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/SimpleStatesImpl.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/SimpleStatesImpl.as
@@ -25,6 +25,7 @@ package org.apache.flex.core
import mx.states.State;
import org.apache.flex.core.IParent;
+ import org.apache.flex.core.IStatesObject;
import org.apache.flex.events.Event;
import org.apache.flex.events.EventDispatcher;
import org.apache.flex.events.IEventDispatcher;
@@ -70,11 +71,18 @@ package org.apache.flex.core
{
_strand = value;
IEventDispatcher(_strand).addEventListener("currentStateChange", stateChangeHandler);
+ IEventDispatcher(_strand).addEventListener("initComplete", initialStateHandler);
+ }
+
+ private function initialStateHandler(event:org.apache.flex.events.Event):void
+ {
+ stateChangeHandler(new ValueChangeEvent("currentStateChange", false, false, null,
+ IStatesObject(_strand).currentState));
}
private function stateChangeHandler(event:ValueChangeEvent):void
{
- var doc:Object = event.target;
+ var doc:IStatesObject = _strand as IStatesObject;
var arr:Array = doc.states;
for each (var s:State in arr)
{