You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by pe...@apache.org on 2015/11/18 20:55:18 UTC
[2/2] git commit: [flex-asjs] [refs/heads/core_js_to_as] - Port of
Mobile project.
Port of Mobile project.
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/44a1bb9a
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/44a1bb9a
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/44a1bb9a
Branch: refs/heads/core_js_to_as
Commit: 44a1bb9a092ba100293d087f7cfb482571dd57b4
Parents: 845bc6d
Author: Peter Ent <pe...@apache.org>
Authored: Wed Nov 18 14:55:12 2015 -0500
Committer: Peter Ent <pe...@apache.org>
Committed: Wed Nov 18 14:55:12 2015 -0500
----------------------------------------------------------------------
frameworks/build.xml | 5 +-
frameworks/projects/Mobile/as/defaults.css | 33 +++
.../projects/Mobile/as/src/CordovaClasses.as | 36 +++
.../projects/Mobile/as/src/MobileClasses.as | 13 +-
.../as/src/org/apache/flex/mobile/IView.as | 43 +++
.../src/org/apache/flex/mobile/IViewManager.as | 42 +++
.../src/org/apache/flex/mobile/ManagerBase.as | 35 ++-
.../apache/flex/mobile/StackedViewManager.as | 161 ++++++++++++
.../org/apache/flex/mobile/TabbedViewManager.as | 85 ++++++
.../as/src/org/apache/flex/mobile/View.as | 103 ++++++++
.../org/apache/flex/mobile/ViewManagerBase.as | 236 +++++++++++++++++
.../flex/mobile/beads/StackedViewManagerView.as | 127 +++++++++
.../flex/mobile/beads/TabbedViewManagerView.as | 139 ++++++++++
.../apache/flex/mobile/beads/ViewManagerView.as | 165 ++++++++++++
.../apache/flex/mobile/chrome/NavigationBar.as | 103 ++++++++
.../src/org/apache/flex/mobile/chrome/TabBar.as | 50 ++++
.../org/apache/flex/mobile/chrome/ToolBar.as | 80 ++++++
.../flex/mobile/models/ViewManagerModel.as | 263 +++++++++++++++++++
frameworks/projects/Mobile/asjs/defaults.css | 33 ---
.../asjs/src/org/apache/flex/mobile/IView.as | 43 ---
.../src/org/apache/flex/mobile/IViewManager.as | 42 ---
.../apache/flex/mobile/StackedViewManager.as | 161 ------------
.../org/apache/flex/mobile/TabbedViewManager.as | 85 ------
.../asjs/src/org/apache/flex/mobile/View.as | 96 -------
.../org/apache/flex/mobile/ViewManagerBase.as | 229 ----------------
.../flex/mobile/beads/StackedViewManagerView.as | 127 ---------
.../flex/mobile/beads/TabbedViewManagerView.as | 139 ----------
.../apache/flex/mobile/beads/ViewManagerView.as | 165 ------------
.../apache/flex/mobile/chrome/NavigationBar.as | 103 --------
.../src/org/apache/flex/mobile/chrome/TabBar.as | 50 ----
.../org/apache/flex/mobile/chrome/ToolBar.as | 81 ------
.../flex/mobile/models/ViewManagerModel.as | 263 -------------------
frameworks/projects/Mobile/build.xml | 101 +++----
.../projects/Mobile/compile-asjs-config.xml | 30 ++-
frameworks/projects/Mobile/compile-config.xml | 12 +-
35 files changed, 1782 insertions(+), 1697 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/build.xml b/frameworks/build.xml
index 02e225b..bb0c1c0 100644
--- a/frameworks/build.xml
+++ b/frameworks/build.xml
@@ -100,7 +100,6 @@
<ant dir="${basedir}/projects/GoogleMaps" target="compile-asjs"/>
<ant dir="${basedir}/projects/HTML5" target="compile-asjs"/>
<ant dir="${basedir}/projects/JQuery" target="compile-asjs"/>
- <ant dir="${basedir}/projects/Mobile" target="compile-asjs"/>
</target>
<target name="lint-js" description="Cross-compiles all SWCs">
@@ -110,7 +109,6 @@
<ant dir="${basedir}/projects/GoogleMaps" target="lint-js"/>
<ant dir="${basedir}/projects/HTML5" target="lint-js"/>
<ant dir="${basedir}/projects/JQuery" target="lint-js"/>
- <ant dir="${basedir}/projects/Mobile" target="lint-js"/>
</target>
<target name="re-compile" description="Builds all SWCs which should pick up the JS files from asjs">
@@ -121,7 +119,6 @@
<ant dir="${basedir}/projects/GoogleMaps" target="compile"/>
<ant dir="${basedir}/projects/HTML5" target="compile"/>
<ant dir="${basedir}/projects/JQuery" target="compile"/>
- <ant dir="${basedir}/projects/Mobile" target="compile"/>
</target>
<target name="js" depends="compile-asjs, lint-js" />
@@ -243,7 +240,7 @@
</target>
<target name="Mobile" description="Clean build of Mobile.swc">
- <ant dir="${basedir}/projects/Mobile"/>
+ <ant dir="${basedir}/projects/Mobile" target="all"/>
</target>
<target name="Network" description="Clean build of Network.swc">
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/defaults.css b/frameworks/projects/Mobile/as/defaults.css
new file mode 100644
index 0000000..d529595
--- /dev/null
+++ b/frameworks/projects/Mobile/as/defaults.css
@@ -0,0 +1,33 @@
+/*
+ *
+ * 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.
+ *
+ */
+
+@namespace "library://ns.apache.org/flexjs/basic";
+@namespace svg "library://ns.apache.org/flexjs/svg";
+
+StackedViewManager
+{
+ IBeadModel: ClassReference("org.apache.flex.mobile.models.ViewManagerModel");
+ IBeadView: ClassReference("org.apache.flex.mobile.beads.StackedViewManagerView");
+}
+
+TabbedViewManager
+{
+ IBeadModel: ClassReference("org.apache.flex.mobile.models.ViewManagerModel");
+ IBeadView: ClassReference("org.apache.flex.mobile.beads.TabbedViewManagerView");
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/CordovaClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/CordovaClasses.as b/frameworks/projects/Mobile/as/src/CordovaClasses.as
new file mode 100644
index 0000000..3b9dc98
--- /dev/null
+++ b/frameworks/projects/Mobile/as/src/CordovaClasses.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
+{
+
+/**
+ * @private
+ * This class is used to link additional classes into rpc.swc
+ * beyond those that are found by dependecy analysis starting
+ * from the classes specified in manifest.xml.
+ */
+internal class CordovaClasses
+{
+ import org.apache.cordova.camera.Camera; Camera;
+ import org.apache.cordova.Application; Application;
+ import org.apache.cordova.Weinre; Weinre;
+}
+
+}
+
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/MobileClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/MobileClasses.as b/frameworks/projects/Mobile/as/src/MobileClasses.as
index 75d2960..fc933aa 100644
--- a/frameworks/projects/Mobile/as/src/MobileClasses.as
+++ b/frameworks/projects/Mobile/as/src/MobileClasses.as
@@ -27,11 +27,16 @@ package
*/
internal class MobileClasses
{
- import org.apache.cordova.camera.Camera; Camera;
- import org.apache.cordova.Application; Application;
- import org.apache.cordova.Weinre; Weinre;
-
import org.apache.flex.mobile.ManagerBase; ManagerBase;
+
+ import org.apache.flex.mobile.ViewManagerBase; ViewManagerBase;
+ import org.apache.flex.mobile.beads.StackedViewManagerView; StackedViewManagerView;
+ import org.apache.flex.mobile.beads.TabbedViewManagerView; TabbedViewManagerView;
+ import org.apache.flex.mobile.beads.ViewManagerView; ViewManagerView;
+ import org.apache.flex.mobile.chrome.NavigationBar; NavigationBar;
+ import org.apache.flex.mobile.chrome.TabBar; TabBar;
+ import org.apache.flex.mobile.chrome.ToolBar; ToolBar;
+ import org.apache.flex.mobile.models.ViewManagerModel; ViewManagerModel;
}
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/IView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/IView.as b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/IView.as
new file mode 100644
index 0000000..232d212
--- /dev/null
+++ b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/IView.as
@@ -0,0 +1,43 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.mobile
+{
+ /**
+ * The IView interface is implemented by any class that can be managed by
+ * an IViewManager.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public interface IView
+ {
+ /**
+ * The parent view manager.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function get viewManager():IViewManager;
+ function set viewManager(value:IViewManager):void;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/IViewManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/IViewManager.as b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/IViewManager.as
new file mode 100644
index 0000000..54bb22a
--- /dev/null
+++ b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/IViewManager.as
@@ -0,0 +1,42 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.mobile
+{
+ /**
+ * The IViewManager interface is implemented by classes that manage or control
+ * IViews.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public interface IViewManager extends IView
+ {
+ /**
+ * The view that is currently active in the view manager.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function get selectedView():IView;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/ManagerBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/ManagerBase.as b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/ManagerBase.as
index 8d444a5..5c2e149 100644
--- a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/ManagerBase.as
+++ b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/ManagerBase.as
@@ -21,6 +21,10 @@ package org.apache.flex.mobile
import org.apache.flex.core.IChrome;
import org.apache.flex.core.UIBase;
import org.apache.flex.events.Event;
+ COMPILE::JS
+ {
+ import org.apache.flex.core.WrappedHTMLElement;
+ }
/**
* The ManagerBase is a base class for mobile display managers such as StackedViewManager
@@ -47,17 +51,38 @@ package org.apache.flex.mobile
super();
_contentArea = new UIBase();
+
+ COMPILE::AS3 {
+ addEventListener("initComplete", handleInitComplete);
+ addEventListener("sizeChanged", handleInitComplete);
+ addEventListener("widthChanged", handleInitComplete);
+ addEventListener("heightChanged", handleInitComplete);
+ }
+
+ COMPILE::JS {
+ createElement();
+ }
+
super.addElement(_contentArea,false);
+ }
+
+ /**
+ * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
+ */
+ COMPILE::JS
+ override protected function createElement():WrappedHTMLElement
+ {
+ super.createElement();
+ element.className = 'ManagerBase';
+
+ _contentArea.positioner.style['width'] = '100%';
+ _contentArea.positioner.style['height'] = '100%';
- addEventListener("initComplete", handleInitComplete);
- addEventListener("sizeChanged", handleInitComplete);
- addEventListener("widthChanged", handleInitComplete);
- addEventListener("heightChanged", handleInitComplete);
+ return element;
}
private function handleInitComplete(event:Event):void
{
- trace("Manager base event: "+event.type+"; width="+width+", height="+height);
_contentArea.setWidthAndHeight(width, height, true);
// todo: listen for changes to this item
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/StackedViewManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/StackedViewManager.as b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/StackedViewManager.as
new file mode 100644
index 0000000..4b29d28
--- /dev/null
+++ b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/StackedViewManager.as
@@ -0,0 +1,161 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.mobile
+{
+ import org.apache.flex.events.Event;
+ import org.apache.flex.html.Container;
+ import org.apache.flex.mobile.IView;
+ import org.apache.flex.mobile.IViewManager;
+ import org.apache.flex.mobile.chrome.NavigationBar;
+ import org.apache.flex.mobile.chrome.ToolBar;
+ import org.apache.flex.mobile.models.ViewManagerModel;
+
+ /**
+ * The StackedViewManager displays a single View at a time from a
+ * collection of Views where views[0] is at the bottom and views[n-1]
+ * is at the top and displayed.
+ *
+ * The StackedViewManager has an optional navigation bar at the top
+ * and an optional tool bar at the bottom. The views are displayed
+ * within the StackedViewManager's content area.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class StackedViewManager extends ViewManagerBase implements IViewManager
+ {
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function StackedViewManager()
+ {
+ super();
+
+ className = "StackedViewManager";
+ }
+
+ /**
+ * True if this view manager is displaying a ToolBar.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get hasToolBar():Boolean
+ {
+ return ViewManagerModel(model).toolBarItems != null;
+ }
+
+ /**
+ * The contents of the ToolBar.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get toolBarItems():Array
+ {
+ return ViewManagerModel(model).toolBarItems;
+ }
+ public function set toolBarItems(value:Array):void
+ {
+ ViewManagerModel(model).toolBarItems = value;
+ }
+
+ /**
+ * The ToolBar (or null if not present).
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get toolBar():ToolBar
+ {
+ return ViewManagerModel(model).toolBar;
+ }
+
+
+ private var _topView:IView;
+
+ /**
+ * The top-most (current) view.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ override public function get selectedView():IView
+ {
+ return _topView;
+ }
+
+
+ /**
+ * Pushes the next view onto the navigation stack.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function push(nextView:IView):void
+ {
+ nextView.viewManager = this;
+ ViewManagerModel(model).pushView(nextView);
+
+ removeElement(_topView);
+ _topView = nextView;
+ addElement(_topView);
+
+ dispatchEvent( new Event("viewChanged") );
+ }
+
+ /**
+ * Pops the top-most view from the navigation stack.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function pop():void
+ {
+ if (ViewManagerModel(model).views.length > 1) {
+ var lastView:Object = ViewManagerModel(model).popView();
+ removeElement(_topView);
+ addElement(lastView);
+ _topView = lastView as IView;
+
+ dispatchEvent( new Event("viewChanged") );
+ }
+ }
+
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/TabbedViewManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/TabbedViewManager.as b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/TabbedViewManager.as
new file mode 100644
index 0000000..43fc6a6
--- /dev/null
+++ b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/TabbedViewManager.as
@@ -0,0 +1,85 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.mobile
+{
+ import org.apache.flex.html.Container;
+ import org.apache.flex.mobile.IView;
+ import org.apache.flex.mobile.IViewManager;
+ import org.apache.flex.mobile.chrome.TabBar;
+ import org.apache.flex.mobile.models.ViewManagerModel;
+
+ /**
+ * The TabbedViewManager displays a set of views, only one of which is active at
+ * a time. The other views are reachable via a set of tab buttons at the bottom of
+ * the view manager's space.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class TabbedViewManager extends ViewManagerBase implements IViewManager
+ {
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function TabbedViewManager()
+ {
+ super();
+
+ className = "TabbedViewManager";
+ }
+
+ /**
+ * The TabBar (or null if not present).
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get tabBar():TabBar
+ {
+ return ViewManagerModel(model).tabBar;
+ }
+
+ /**
+ * The index (starting at zero) of the currently visible view.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get selectedIndex():Number
+ {
+ return ViewManagerModel(model).selectedIndex;
+ }
+ public function set selectedIndex(value:Number):void
+ {
+ ViewManagerModel(model).selectedIndex = value;
+ }
+
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/View.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/View.as b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/View.as
new file mode 100644
index 0000000..490d8bf
--- /dev/null
+++ b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/View.as
@@ -0,0 +1,103 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.mobile
+{
+ import org.apache.flex.core.IBead;
+ import org.apache.flex.core.IBeadController;
+ import org.apache.flex.core.IUIBase;
+ import org.apache.flex.core.ValuesManager;
+ import org.apache.flex.html.Container;
+
+ /**
+ * The View class represents the area for a mobile app's primary
+ * interface elements.
+ */
+ public class View extends Container implements IView
+ {
+ public function View()
+ {
+ super();
+
+ // views always take up 100% of their space
+ percentWidth = 100;
+ percentHeight = 100;
+ }
+
+ private var _title:String;
+ public function get title():String
+ {
+ return _title;
+ }
+ public function set title(value:String):void
+ {
+ _title = value;
+ }
+
+ COMPILE::AS3
+ override public function toString():String
+ {
+ return _title;
+ }
+
+ COMPILE::JS
+ public function toString():String
+ {
+ return _title;
+ }
+
+ private var _viewManager:IViewManager;
+ public function get viewManager():IViewManager
+ {
+ return _viewManager;
+ }
+ public function set viewManager(value:IViewManager):void
+ {
+ _viewManager = value;
+ }
+
+ private var _controller:IBeadController;
+
+ /**
+ * Get the controller for the view.
+ *
+ * @flexjsignorecoercion Class
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get controller():IBeadController
+ {
+ if (_controller == null) {
+ _controller = getBeadByType(IBeadController) as IBeadController;
+ if (_controller == null) {
+ var c:Class = ValuesManager.valuesImpl.getValue(this, "iBeadController") as Class;
+ _controller = new c() as IBeadController;
+ addBead(_controller);
+ }
+ }
+ return _controller;
+ }
+ public function set controller(value:IBeadController):void
+ {
+ _controller = value;
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/ViewManagerBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/ViewManagerBase.as b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/ViewManagerBase.as
new file mode 100644
index 0000000..0da3f4d
--- /dev/null
+++ b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/ViewManagerBase.as
@@ -0,0 +1,236 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.mobile
+{
+ import org.apache.flex.core.UIBase;
+ import org.apache.flex.events.Event;
+ import org.apache.flex.html.Container;
+ import org.apache.flex.mobile.IView;
+ import org.apache.flex.mobile.IViewManager;
+ import org.apache.flex.mobile.chrome.NavigationBar;
+ import org.apache.flex.mobile.models.ViewManagerModel;
+
+// import org.apache.flex.html.beads.SolidBackgroundBead;
+// import org.apache.flex.html.beads.SingleLineBorderBead;
+
+ /**
+ * Event dispatched when the current (selected) view changes.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ [Event(name="viewChanged")]
+
+ /**
+ * Base class for mobile navigation controls.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class ViewManagerBase extends UIBase implements IViewManager
+ {
+ /**
+ * Constructor.
+ */
+ public function ViewManagerBase()
+ {
+ super();
+
+ // views always fill their space
+ percentWidth = 100;
+ percentHeight = 100;
+
+ model.addEventListener("selectedIndexChanged", changeView);
+
+// addBead(new SolidBackgroundBead());
+// addBead(new SingleLineBorderBead());
+ }
+
+ /**
+ * A title that can be used in the NavigationBar.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get title():String
+ {
+ return ViewManagerModel(model).title;
+ }
+ public function set title(value:String):void
+ {
+ ViewManagerModel(model).title = value;
+ }
+
+ COMPILE::AS3
+ override public function toString():String
+ {
+ return ViewManagerModel(model).title;
+ }
+
+ /**
+ * @private
+ */
+ COMPILE::JS
+ public function toString():String
+ {
+ return ViewManagerModel(model).title;
+ }
+
+ /**
+ * True if this view manager instance is displaying a NavigationBar.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get hasNavigationBar():Boolean
+ {
+ return ViewManagerModel(model).navigationBarItems != null;
+ }
+
+ /**
+ * The items that make up the NavigationBar.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get navigationBarItems():Array
+ {
+ return ViewManagerModel(model).navigationBarItems;
+ }
+ public function set navigationBarItems(value:Array):void
+ {
+ ViewManagerModel(model).navigationBarItems = value;
+ }
+
+ /**
+ * The NavigationBar (or null if not present).
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get navigationBar():NavigationBar
+ {
+ return ViewManagerModel(model).navigationBar;
+ }
+
+ /**
+ * The current set of views in the stack. The last entry is
+ * the top-most (visible) view.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get views():Array
+ {
+ return ViewManagerModel(model).views;
+ }
+ public function set views(value:Array):void
+ {
+ ViewManagerModel(model).views = value;
+ }
+
+ /**
+ * @private
+ */
+ override public function addedToParent():void
+ {
+ super.addedToParent();
+
+ var n:int = ViewManagerModel(model).views.length;
+ if (n > 0) {
+ for (var i:int = 0; i < n; i++)
+ {
+ var view:IView = ViewManagerModel(model).views[i] as IView;
+ view.viewManager = this;
+ if (i == 0) {
+ addElement(view, true);
+ }
+ }
+ ViewManagerModel(model).selectedIndex = 0;
+ }
+ }
+
+ /**
+ * @private
+ */
+ private function changeView( event:Event ):void
+ {
+ var index:Number = ViewManagerModel(model).selectedIndex;
+ if (_currentView) {
+ removeElement(_currentView);
+ }
+ _currentView = views[index];
+ addElement(_currentView);
+
+ dispatchEvent( new Event("viewChanged") );
+ }
+
+ private var _currentView:IView;
+
+ /**
+ * The currently visible view.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get selectedView():IView
+ {
+ return _currentView;
+ }
+
+ /**
+ * IViewManager
+ */
+
+ private var _viewManager:IViewManager;
+
+ /**
+ * This view manager's parent view manager, if any.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get viewManager():IViewManager
+ {
+ return _viewManager;
+ }
+ public function set viewManager(value:IViewManager):void
+ {
+ _viewManager = value;
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/beads/StackedViewManagerView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/beads/StackedViewManagerView.as b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/beads/StackedViewManagerView.as
new file mode 100644
index 0000000..fd1a58b
--- /dev/null
+++ b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/beads/StackedViewManagerView.as
@@ -0,0 +1,127 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.mobile.beads
+{
+ import org.apache.flex.core.IBeadModel;
+ import org.apache.flex.core.IStrand;
+ import org.apache.flex.core.IViewportModel;
+ import org.apache.flex.core.UIBase;
+ import org.apache.flex.events.IEventDispatcher;
+ import org.apache.flex.events.Event;
+ import org.apache.flex.html.beads.ContainerView;
+ import org.apache.flex.html.beads.layouts.HorizontalLayout;
+ import org.apache.flex.mobile.chrome.NavigationBar;
+ import org.apache.flex.mobile.chrome.ToolBar;
+ import org.apache.flex.mobile.models.ViewManagerModel;
+
+ /**
+ * The StackedViewManagerView creates the visual elements of the StackedViewManager. This
+ * includes a NavigationBar, ToolBar, and contentArea.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class StackedViewManagerView extends ViewManagerView
+ {
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function StackedViewManagerView()
+ {
+ super();
+ }
+
+ private var _toolBar:ToolBar;
+
+ override public function set strand(value:IStrand):void
+ {
+ var model:ViewManagerModel = value.getBeadByType(IBeadModel) as ViewManagerModel;
+
+ if (model.toolBarItems)
+ {
+ _toolBar = new ToolBar();
+ _toolBar.controls = model.toolBarItems;
+ _toolBar.addBead(new HorizontalLayout());
+ UIBase(value).addElement(_toolBar,false);
+ }
+
+ super.strand = value;
+ }
+ override public function get strand():IStrand
+ {
+ return super.strand;
+ }
+
+ /**
+ * @private
+ */
+ override protected function layoutChromeElements():void
+ {
+ var host:UIBase = strand as UIBase;
+ var contentAreaY:Number = 0;
+ var contentAreaHeight:Number = host.height;
+ var toolbarHeight:Number = _toolBar == null ? 0 : _toolBar.height;
+
+ var model:ViewManagerModel = strand.getBeadByType(IBeadModel) as ViewManagerModel;
+
+ if (navigationBar)
+ {
+ navigationBar.x = 0;
+ navigationBar.y = 0;
+ navigationBar.width = host.width;
+
+ contentAreaHeight -= navigationBar.height;
+ contentAreaY = navigationBar.height;
+
+ model.navigationBar = navigationBar;
+ }
+
+ if (_toolBar)
+ {
+ _toolBar.x = 0;
+ _toolBar.y = host.height - toolbarHeight;
+ _toolBar.width = host.width;
+
+ contentAreaHeight -= toolbarHeight;
+
+ model.toolBar = _toolBar;
+ }
+
+ if (contentAreaY < 0) contentAreaY = 0;
+ if (contentAreaHeight < 0) contentAreaHeight = 0;
+
+ model.contentX = 0;
+ model.contentY = contentAreaY;
+ model.contentWidth = host.width;
+ model.contentHeight = contentAreaHeight;
+
+ sizeViewsToFitContentArea();
+
+ // notify the views that the content size has changed
+ IEventDispatcher(strand).dispatchEvent( new Event("contentSizeChanged") );
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/beads/TabbedViewManagerView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/beads/TabbedViewManagerView.as b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/beads/TabbedViewManagerView.as
new file mode 100644
index 0000000..be20d2c
--- /dev/null
+++ b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/beads/TabbedViewManagerView.as
@@ -0,0 +1,139 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.mobile.beads
+{
+ import org.apache.flex.core.IBeadModel;
+ import org.apache.flex.core.IStrand;
+ import org.apache.flex.core.IViewportModel;
+ import org.apache.flex.core.UIBase;
+ import org.apache.flex.events.IEventDispatcher;
+ import org.apache.flex.events.Event;
+ import org.apache.flex.html.beads.ContainerView;
+ import org.apache.flex.html.beads.layouts.HorizontalLayout;
+ import org.apache.flex.mobile.chrome.NavigationBar;
+ import org.apache.flex.mobile.chrome.TabBar;
+ import org.apache.flex.mobile.models.ViewManagerModel;
+
+ /**
+ * The TabbedViewManagerView constructs the visual elements of the TabbedViewManager. The
+ * elements may be a navigation bar, a tab bar, and the contentArea.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class TabbedViewManagerView extends ViewManagerView
+ {
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function TabbedViewManagerView()
+ {
+ super();
+ }
+
+ private var _tabBar:TabBar;
+
+ private var _strand:IStrand;
+ override public function get strand():IStrand
+ {
+ return _strand;
+ }
+ override public function set strand(value:IStrand):void
+ {
+ _strand = value;
+
+ var model:ViewManagerModel = value.getBeadByType(IBeadModel) as ViewManagerModel;
+
+ // TabbedViewManager always has a TabBar
+ _tabBar = new TabBar();
+ _tabBar.dataProvider = model.views;
+ _tabBar.labelField = "title";
+ _tabBar.addEventListener("change",handleButtonBarChange);
+ UIBase(_strand).addElement(_tabBar, false);
+
+ super.strand = value;
+ }
+
+ /**
+ * @private
+ */
+ private function handleButtonBarChange(event:Event):void
+ {
+ var newIndex:Number = _tabBar.selectedIndex;
+ var model:ViewManagerModel = strand.getBeadByType(IBeadModel) as ViewManagerModel;
+
+ // doing this will trigger the selectedIndexChanged event which will
+ // tell the strand to switch views
+ model.selectedIndex = newIndex;
+ }
+
+ /**
+ * @private
+ */
+ override protected function layoutChromeElements():void
+ {
+ var host:UIBase = _strand as UIBase;
+ var contentAreaY:Number = 0;
+ var contentAreaHeight:Number = host.height;
+
+ var model:ViewManagerModel = strand.getBeadByType(IBeadModel) as ViewManagerModel;
+
+ if (navigationBar)
+ {
+ navigationBar.x = 0;
+ navigationBar.y = 0;
+ navigationBar.width = host.width;
+
+ contentAreaHeight -= navigationBar.height;
+ contentAreaY = navigationBar.height;
+
+ model.navigationBar = navigationBar;
+ }
+
+ if (_tabBar)
+ {
+ _tabBar.x = 0;
+ _tabBar.y = host.height - _tabBar.height;
+ _tabBar.width = host.width;
+ _tabBar.dispatchEvent(new Event("layoutNeeded"));
+
+ contentAreaHeight -= _tabBar.height;
+
+ model.tabBar = _tabBar;
+ }
+
+ model.contentX = 0;
+ model.contentY = contentAreaY;
+ model.contentWidth = host.width;
+ model.contentHeight = contentAreaHeight;
+
+ sizeViewsToFitContentArea();
+
+ // notify the views that the content size has changed
+ IEventDispatcher(strand).dispatchEvent( new Event("contentSizeChanged") );
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/beads/ViewManagerView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/beads/ViewManagerView.as b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/beads/ViewManagerView.as
new file mode 100644
index 0000000..59baf94
--- /dev/null
+++ b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/beads/ViewManagerView.as
@@ -0,0 +1,165 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.mobile.beads
+{
+ import org.apache.flex.core.IBeadModel;
+ import org.apache.flex.core.IBeadView;
+ import org.apache.flex.core.IStrand;
+ import org.apache.flex.core.IUIBase;
+ import org.apache.flex.core.IViewportModel;
+ import org.apache.flex.core.UIBase;
+ import org.apache.flex.events.IEventDispatcher;
+ import org.apache.flex.events.Event;
+ import org.apache.flex.html.Container;
+ import org.apache.flex.html.beads.layouts.HorizontalLayout;
+ import org.apache.flex.mobile.IView;
+ import org.apache.flex.mobile.chrome.NavigationBar;
+ import org.apache.flex.mobile.models.ViewManagerModel;
+
+ /**
+ * The ViewManagerView creates the visual elements of the StackedViewManager. This
+ * includes a NavigationBar, ToolBar, and contentArea.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class ViewManagerView implements IBeadView
+ {
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function ViewManagerView()
+ {
+ super();
+ }
+
+ public function get host():IUIBase
+ {
+ return _strand as IUIBase;
+ }
+ public function set host(value:IUIBase):void
+ {
+ // not implemented; getter only.
+ }
+
+ private var _navigationBar:NavigationBar;
+ public function get navigationBar():NavigationBar
+ {
+ return _navigationBar;
+ }
+ public function set navigationBar(value:NavigationBar):void
+ {
+ // not implemented; getter only.
+ }
+
+ private var _strand:IStrand;
+ public function get strand():IStrand
+ {
+ return _strand;
+ }
+ public function set strand(value:IStrand):void
+ {
+ _strand = value;
+ UIBase(_strand).addEventListener("sizeChanged", sizeChangedHandler);
+ UIBase(_strand).addEventListener("widthChanged", sizeChangedHandler);
+ UIBase(_strand).addEventListener("heightChanged", sizeChangedHandler);
+
+ var model:ViewManagerModel = value.getBeadByType(IBeadModel) as ViewManagerModel;
+ model.addEventListener("selectedIndexChanged", viewsChangedHandler);
+
+ if (model.navigationBarItems)
+ {
+ _navigationBar = new NavigationBar();
+ _navigationBar.controls = model.navigationBarItems;
+ _navigationBar.addBead(new HorizontalLayout());
+ UIBase(_strand).addElement(_navigationBar, false);
+ }
+ }
+
+ /**
+ * @private
+ */
+ protected function viewsChangedHandler(event:Event):void
+ {
+ layoutChromeElements();
+ }
+
+ /**
+ * @private
+ */
+ protected function sizeChangedHandler(event:Event):void
+ {
+ layoutChromeElements();
+ }
+
+ /**
+ * @private
+ */
+ protected function layoutChromeElements():void
+ {
+ var host:UIBase = _strand as UIBase;
+ var contentAreaY:Number = 0;
+ var contentAreaHeight:Number = host.height;
+
+ var model:ViewManagerModel = _strand.getBeadByType(IBeadModel) as ViewManagerModel;
+
+ if (_navigationBar)
+ {
+ _navigationBar.x = 0;
+ _navigationBar.y = 0;
+ _navigationBar.width = host.width;
+
+ contentAreaHeight -= _navigationBar.height;
+ contentAreaY = _navigationBar.height;
+
+ model.navigationBar = _navigationBar;
+ }
+
+ model.contentX = 0;
+ model.contentY = contentAreaY;
+ model.contentWidth = host.width;
+ model.contentHeight = contentAreaHeight;
+
+ sizeViewsToFitContentArea();
+ }
+
+ protected function sizeViewsToFitContentArea():void
+ {
+ var model:ViewManagerModel = _strand.getBeadByType(IBeadModel) as ViewManagerModel;
+
+ var n:int = ViewManagerModel(model).views.length;
+ if (n > 0) {
+ for (var i:int = 0; i < n; i++)
+ {
+ var view:IView = ViewManagerModel(model).views[i] as IView;
+ UIBase(view).x = model.contentX;
+ UIBase(view).y = model.contentY;
+ UIBase(view).setWidthAndHeight(model.contentWidth, model.contentHeight, true);
+ }
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/chrome/NavigationBar.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/chrome/NavigationBar.as b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/chrome/NavigationBar.as
new file mode 100644
index 0000000..5e7873e
--- /dev/null
+++ b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/chrome/NavigationBar.as
@@ -0,0 +1,103 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.mobile.chrome
+{
+ import org.apache.flex.core.IChrome;
+ import org.apache.flex.events.Event;
+ import org.apache.flex.events.IEventDispatcher;
+ import org.apache.flex.html.Container;
+
+ /**
+ * The NavigationBar class is part of the mobile view manager's chrome. When present,
+ * it provides a place for content at the top of the view, above the contentArea.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class NavigationBar extends Container implements IChrome
+ {
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function NavigationBar()
+ {
+ super();
+
+ className = "NavigationBar";
+ }
+
+ public function hidesBackButton(value:Boolean):void
+ {
+
+ }
+
+ private var _controls:Array;
+
+ /**
+ * The controls of the NavigationBar (eg, a button to go back and a title).
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function set controls(value:Array):void
+ {
+ _controls = value;
+ }
+ public function get controls():Array
+ {
+ return _controls;
+ }
+
+ /**
+ * @private
+ */
+ override public function addedToParent():void
+ {
+ super.addedToParent();
+
+ for (var i:int=0; i < _controls.length; i++)
+ {
+ addElement( _controls[i], false );
+
+ var ctrl:IEventDispatcher = _controls[i] as IEventDispatcher;
+ ctrl.addEventListener("show", handleVisibilityChange);
+ ctrl.addEventListener("hide", handleVisibilityChange);
+ }
+
+ dispatchEvent(new Event("layoutNeeded"));
+ }
+
+ /**
+ * @private
+ */
+ private function handleVisibilityChange(event:Event):void
+ {
+ dispatchEvent(new Event("layoutNeeded"));
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/chrome/TabBar.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/chrome/TabBar.as b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/chrome/TabBar.as
new file mode 100644
index 0000000..6e54326
--- /dev/null
+++ b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/chrome/TabBar.as
@@ -0,0 +1,50 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.mobile.chrome
+{
+ import org.apache.flex.core.IChrome;
+ import org.apache.flex.html.ButtonBar;
+
+ /**
+ * The TabBar class displays a set of buttons that can be used to
+ * switch between navigation panels.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class TabBar extends ButtonBar implements IChrome
+ {
+ /**
+ * Constructor
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function TabBar()
+ {
+ super();
+
+ className = "TabBar";
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/chrome/ToolBar.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/chrome/ToolBar.as b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/chrome/ToolBar.as
new file mode 100644
index 0000000..af63d49
--- /dev/null
+++ b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/chrome/ToolBar.as
@@ -0,0 +1,80 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.mobile.chrome
+{
+ import org.apache.flex.core.IBeadLayout;
+ import org.apache.flex.core.IChrome;
+ import org.apache.flex.events.Event;
+ import org.apache.flex.html.Container;
+
+ /**
+ * The ToolBar class provides a space below the contentArea of a view manager which can
+ * be used to house controls for the view.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class ToolBar extends Container implements IChrome
+ {
+ public function ToolBar()
+ {
+ super();
+
+ className = "ToolBar";
+ }
+
+ private var _controls:Array;
+
+ /**
+ * The control components of the ToolBar (eg, a settings button).
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function set controls(value:Array):void
+ {
+ _controls = value;
+ }
+ public function get controls():Array
+ {
+ return _controls;
+ }
+
+ /**
+ * @private
+ */
+ override public function addedToParent():void
+ {
+ super.addedToParent();
+
+ var layout:IBeadLayout = this.getBeadByType(IBeadLayout) as IBeadLayout;
+
+ for (var i:int=0; i < _controls.length; i++)
+ {
+ addElement( _controls[i], false );
+ }
+
+ dispatchEvent(new Event("layoutNeeded"));
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/models/ViewManagerModel.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/models/ViewManagerModel.as b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/models/ViewManagerModel.as
new file mode 100644
index 0000000..c57cc61
--- /dev/null
+++ b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/models/ViewManagerModel.as
@@ -0,0 +1,263 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.mobile.models
+{
+ import org.apache.flex.core.IBeadModel;
+ import org.apache.flex.core.IStrand;
+ import org.apache.flex.core.UIBase;
+ import org.apache.flex.events.Event;
+ import org.apache.flex.events.EventDispatcher;
+ import org.apache.flex.mobile.chrome.NavigationBar;
+ import org.apache.flex.mobile.chrome.TabBar;
+ import org.apache.flex.mobile.chrome.ToolBar;
+
+ /**
+ * The ViewManagerModel houses properties and values common to the components
+ * which make up view managers. These properties include the title, which view
+ * is currently active and selected.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class ViewManagerModel extends EventDispatcher implements IBeadModel
+ {
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function ViewManagerModel()
+ {
+ super();
+
+ _views = new Array();
+ }
+
+ private var _strand:IStrand;
+
+ public function set strand(value:IStrand):void
+ {
+ _strand = value;
+ }
+
+ public var contentX:Number = 0;
+ public var contentY:Number = 0;
+ public var contentWidth:Number = 0;
+ public var contentHeight:Number = 0;
+
+ private var _views:Array;
+
+ /**
+ * The array of views displayed in the contentArea of the ViewManager.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get views():Array
+ {
+ return _views;
+ }
+ public function set views(value:Array):void
+ {
+ if (value != _views) {
+ _views = value;
+ _selectedIndex = value.length - 1;
+ dispatchEvent(new Event("viewsChanged"));
+ }
+ }
+
+ /**
+ * Pushes a view onto the top/end of the stack of views. This view becomes
+ * the active view. Mostly used by the StackedViewManager.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function pushView(value:Object):void
+ {
+ _views.push(value);
+ _selectedIndex = _views.length - 1;
+ dispatchEvent(new Event("viewPushed"));
+ }
+
+ /**
+ * Removes the most recently added view. The next view in the stack becomes the
+ * active view. Mostly used by StackedViewManager.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function popView():Object
+ {
+ if (_views.length > 1) {
+ var discard:Object = _views.pop();
+ _selectedIndex = _views.length - 1;
+ dispatchEvent(new Event("viewPopped"));
+ }
+ return _views[_views.length-1];
+ }
+
+ private var _selectedIndex:Number = -1;
+
+ /**
+ * The index into the views array of the currently active view.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get selectedIndex():Number
+ {
+ return _selectedIndex;
+ }
+ public function set selectedIndex(value:Number):void
+ {
+ if (value != _selectedIndex) {
+ _selectedIndex = value;
+ dispatchEvent(new Event("selectedIndexChanged"));
+ }
+ }
+
+ private var _title:String;
+
+ /**
+ * The title of the view..
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get title():String
+ {
+ return _title;
+ }
+ public function set title(value:String):void
+ {
+ _title = value;
+ }
+
+ private var _navigationBarItems:Array;
+
+ /**
+ * The array of controls that make up the NavigationBar.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get navigationBarItems():Array
+ {
+ return _navigationBarItems;
+ }
+ public function set navigationBarItems(value:Array):void
+ {
+ _navigationBarItems = value;
+ }
+
+ private var _navigationBar:NavigationBar;
+
+ /**
+ * The NavigationBar (or null if not present).
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get navigationBar():NavigationBar
+ {
+ return _navigationBar;
+ }
+ public function set navigationBar(value:NavigationBar):void
+ {
+ _navigationBar = value;
+ }
+
+ private var _toolBarItems:Array;
+
+ /**
+ * The array of controls that make up the ToolBar..
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get toolBarItems():Array
+ {
+ return _toolBarItems;
+ }
+ public function set toolBarItems(value:Array):void
+ {
+ _toolBarItems = value;
+ }
+
+ private var _toolBar:ToolBar;
+
+ /**
+ * The ToolBar (or null if not present).
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get toolBar():ToolBar
+ {
+ return _toolBar;
+ }
+ public function set toolBar(value:ToolBar):void
+ {
+ _toolBar = value;
+ }
+
+ private var _tabBar:TabBar;
+
+ /**
+ * The TabBar (or null if not present).
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get tabBar():TabBar
+ {
+ return _tabBar;
+ }
+ public function set tabBar(value:TabBar):void
+ {
+ _tabBar = value;
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/asjs/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/asjs/defaults.css b/frameworks/projects/Mobile/asjs/defaults.css
deleted file mode 100644
index d529595..0000000
--- a/frameworks/projects/Mobile/asjs/defaults.css
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- *
- * 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.
- *
- */
-
-@namespace "library://ns.apache.org/flexjs/basic";
-@namespace svg "library://ns.apache.org/flexjs/svg";
-
-StackedViewManager
-{
- IBeadModel: ClassReference("org.apache.flex.mobile.models.ViewManagerModel");
- IBeadView: ClassReference("org.apache.flex.mobile.beads.StackedViewManagerView");
-}
-
-TabbedViewManager
-{
- IBeadModel: ClassReference("org.apache.flex.mobile.models.ViewManagerModel");
- IBeadView: ClassReference("org.apache.flex.mobile.beads.TabbedViewManagerView");
-}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/IView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/IView.as b/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/IView.as
deleted file mode 100644
index 232d212..0000000
--- a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/IView.as
+++ /dev/null
@@ -1,43 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-// 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.mobile
-{
- /**
- * The IView interface is implemented by any class that can be managed by
- * an IViewManager.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public interface IView
- {
- /**
- * The parent view manager.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- function get viewManager():IViewManager;
- function set viewManager(value:IViewManager):void;
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/IViewManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/IViewManager.as b/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/IViewManager.as
deleted file mode 100644
index 54bb22a..0000000
--- a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/IViewManager.as
+++ /dev/null
@@ -1,42 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-// 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.mobile
-{
- /**
- * The IViewManager interface is implemented by classes that manage or control
- * IViews.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public interface IViewManager extends IView
- {
- /**
- * The view that is currently active in the view manager.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- function get selectedView():IView;
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/StackedViewManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/StackedViewManager.as b/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/StackedViewManager.as
deleted file mode 100644
index 4b29d28..0000000
--- a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/StackedViewManager.as
+++ /dev/null
@@ -1,161 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-// 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.mobile
-{
- import org.apache.flex.events.Event;
- import org.apache.flex.html.Container;
- import org.apache.flex.mobile.IView;
- import org.apache.flex.mobile.IViewManager;
- import org.apache.flex.mobile.chrome.NavigationBar;
- import org.apache.flex.mobile.chrome.ToolBar;
- import org.apache.flex.mobile.models.ViewManagerModel;
-
- /**
- * The StackedViewManager displays a single View at a time from a
- * collection of Views where views[0] is at the bottom and views[n-1]
- * is at the top and displayed.
- *
- * The StackedViewManager has an optional navigation bar at the top
- * and an optional tool bar at the bottom. The views are displayed
- * within the StackedViewManager's content area.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public class StackedViewManager extends ViewManagerBase implements IViewManager
- {
- /**
- * Constructor.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function StackedViewManager()
- {
- super();
-
- className = "StackedViewManager";
- }
-
- /**
- * True if this view manager is displaying a ToolBar.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function get hasToolBar():Boolean
- {
- return ViewManagerModel(model).toolBarItems != null;
- }
-
- /**
- * The contents of the ToolBar.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function get toolBarItems():Array
- {
- return ViewManagerModel(model).toolBarItems;
- }
- public function set toolBarItems(value:Array):void
- {
- ViewManagerModel(model).toolBarItems = value;
- }
-
- /**
- * The ToolBar (or null if not present).
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function get toolBar():ToolBar
- {
- return ViewManagerModel(model).toolBar;
- }
-
-
- private var _topView:IView;
-
- /**
- * The top-most (current) view.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- override public function get selectedView():IView
- {
- return _topView;
- }
-
-
- /**
- * Pushes the next view onto the navigation stack.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function push(nextView:IView):void
- {
- nextView.viewManager = this;
- ViewManagerModel(model).pushView(nextView);
-
- removeElement(_topView);
- _topView = nextView;
- addElement(_topView);
-
- dispatchEvent( new Event("viewChanged") );
- }
-
- /**
- * Pops the top-most view from the navigation stack.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function pop():void
- {
- if (ViewManagerModel(model).views.length > 1) {
- var lastView:Object = ViewManagerModel(model).popView();
- removeElement(_topView);
- addElement(lastView);
- _topView = lastView as IView;
-
- dispatchEvent( new Event("viewChanged") );
- }
- }
-
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/TabbedViewManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/TabbedViewManager.as b/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/TabbedViewManager.as
deleted file mode 100644
index 43fc6a6..0000000
--- a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/TabbedViewManager.as
+++ /dev/null
@@ -1,85 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-// 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.mobile
-{
- import org.apache.flex.html.Container;
- import org.apache.flex.mobile.IView;
- import org.apache.flex.mobile.IViewManager;
- import org.apache.flex.mobile.chrome.TabBar;
- import org.apache.flex.mobile.models.ViewManagerModel;
-
- /**
- * The TabbedViewManager displays a set of views, only one of which is active at
- * a time. The other views are reachable via a set of tab buttons at the bottom of
- * the view manager's space.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public class TabbedViewManager extends ViewManagerBase implements IViewManager
- {
- /**
- * Constructor.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function TabbedViewManager()
- {
- super();
-
- className = "TabbedViewManager";
- }
-
- /**
- * The TabBar (or null if not present).
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function get tabBar():TabBar
- {
- return ViewManagerModel(model).tabBar;
- }
-
- /**
- * The index (starting at zero) of the currently visible view.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function get selectedIndex():Number
- {
- return ViewManagerModel(model).selectedIndex;
- }
- public function set selectedIndex(value:Number):void
- {
- ViewManagerModel(model).selectedIndex = value;
- }
-
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/View.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/View.as b/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/View.as
deleted file mode 100644
index 8b48536..0000000
--- a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/View.as
+++ /dev/null
@@ -1,96 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-// 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.mobile
-{
- import org.apache.flex.core.IBead;
- import org.apache.flex.core.IBeadController;
- import org.apache.flex.core.IUIBase;
- import org.apache.flex.core.ValuesManager;
- import org.apache.flex.html.Container;
-
- /**
- * The View class represents the area for a mobile app's primary
- * interface elements.
- */
- public class View extends Container implements IView
- {
- public function View()
- {
- super();
-
- // views always take up 100% of their space
- percentWidth = 100;
- percentHeight = 100;
- }
-
- private var _title:String;
- public function get title():String
- {
- return _title;
- }
- public function set title(value:String):void
- {
- _title = value;
- }
-
- override public function toString():String
- {
- return _title;
- }
-
- private var _viewManager:IViewManager;
- public function get viewManager():IViewManager
- {
- return _viewManager;
- }
- public function set viewManager(value:IViewManager):void
- {
- _viewManager = value;
- }
-
- private var _controller:IBeadController;
-
- /**
- * Get the controller for the view.
- *
- * @flexjsignorecoercion Class
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function get controller():IBeadController
- {
- if (_controller == null) {
- _controller = getBeadByType(IBeadController) as IBeadController;
- if (_controller == null) {
- var c:Class = ValuesManager.valuesImpl.getValue(this, "iBeadController") as Class;
- _controller = new c() as IBeadController;
- addBead(_controller);
- }
- }
- return _controller;
- }
- public function set controller(value:IBeadController):void
- {
- _controller = value;
- }
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/ViewManagerBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/ViewManagerBase.as b/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/ViewManagerBase.as
deleted file mode 100644
index d435157..0000000
--- a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/ViewManagerBase.as
+++ /dev/null
@@ -1,229 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-// 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.mobile
-{
- import org.apache.flex.core.UIBase;
- import org.apache.flex.events.Event;
- import org.apache.flex.html.Container;
- import org.apache.flex.mobile.IView;
- import org.apache.flex.mobile.IViewManager;
- import org.apache.flex.mobile.chrome.NavigationBar;
- import org.apache.flex.mobile.models.ViewManagerModel;
-
-// import org.apache.flex.html.beads.SolidBackgroundBead;
-// import org.apache.flex.html.beads.SingleLineBorderBead;
-
- /**
- * Event dispatched when the current (selected) view changes.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- [Event(name="viewChanged")]
-
- /**
- * Base class for mobile navigation controls.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public class ViewManagerBase extends UIBase implements IViewManager
- {
- /**
- * Constructor.
- */
- public function ViewManagerBase()
- {
- super();
-
- // views always fill their space
- percentWidth = 100;
- percentHeight = 100;
-
- model.addEventListener("selectedIndexChanged", changeView);
-
-// addBead(new SolidBackgroundBead());
-// addBead(new SingleLineBorderBead());
- }
-
- /**
- * A title that can be used in the NavigationBar.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function get title():String
- {
- return ViewManagerModel(model).title;
- }
- public function set title(value:String):void
- {
- ViewManagerModel(model).title = value;
- }
-
- /**
- * @private
- */
- override public function toString():String
- {
- return ViewManagerModel(model).title;
- }
-
- /**
- * True if this view manager instance is displaying a NavigationBar.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function get hasNavigationBar():Boolean
- {
- return ViewManagerModel(model).navigationBarItems != null;
- }
-
- /**
- * The items that make up the NavigationBar.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function get navigationBarItems():Array
- {
- return ViewManagerModel(model).navigationBarItems;
- }
- public function set navigationBarItems(value:Array):void
- {
- ViewManagerModel(model).navigationBarItems = value;
- }
-
- /**
- * The NavigationBar (or null if not present).
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function get navigationBar():NavigationBar
- {
- return ViewManagerModel(model).navigationBar;
- }
-
- /**
- * The current set of views in the stack. The last entry is
- * the top-most (visible) view.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function get views():Array
- {
- return ViewManagerModel(model).views;
- }
- public function set views(value:Array):void
- {
- ViewManagerModel(model).views = value;
- }
-
- /**
- * @private
- */
- override public function addedToParent():void
- {
- super.addedToParent();
-
- var n:int = ViewManagerModel(model).views.length;
- if (n > 0) {
- for (var i:int = 0; i < n; i++)
- {
- var view:IView = ViewManagerModel(model).views[i] as IView;
- view.viewManager = this;
- if (i == 0) {
- addElement(view, true);
- }
- }
- ViewManagerModel(model).selectedIndex = 0;
- }
- }
-
- /**
- * @private
- */
- private function changeView( event:Event ):void
- {
- var index:Number = ViewManagerModel(model).selectedIndex;
- if (_currentView) {
- removeElement(_currentView);
- }
- _currentView = views[index];
- addElement(_currentView);
-
- dispatchEvent( new Event("viewChanged") );
- }
-
- private var _currentView:IView;
-
- /**
- * The currently visible view.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function get selectedView():IView
- {
- return _currentView;
- }
-
- /**
- * IViewManager
- */
-
- private var _viewManager:IViewManager;
-
- /**
- * This view manager's parent view manager, if any.
- *
- * @langversion 3.0
- * @playerversion Flash 10.2
- * @playerversion AIR 2.6
- * @productversion FlexJS 0.0
- */
- public function get viewManager():IViewManager
- {
- return _viewManager;
- }
- public function set viewManager(value:IViewManager):void
- {
- _viewManager = value;
- }
- }
-}
\ No newline at end of file