You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ha...@apache.org on 2020/02/10 08:09:31 UTC
[royale-asjs] branch feature/router updated (5eeaab3 -> 7f72ead)
This is an automated email from the ASF dual-hosted git repository.
harbs pushed a change to branch feature/router
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git.
from 5eeaab3 Merge branch 'develop' into feature/router
add 20a1356 Swap to Collection renderer as default for Express DataGrid, aligning with Model dataProvider default (remove related temporary 'fix' from a Crux example)
add 31f5200 Merge branch 'develop' of https://github.com/apache/royale-asjs into develop
add 0795dbb rudimentary support for lineargradient
add 6e9d3b5 support 'justify' in VerticalLayout
add d8aeacf support custom skins in Spark Containers
add a122377 refactor disabledChangeCheck to its own interface
add 08768b9 - Implemented a js-only distribution
add 87f454b Merge pull request #707 from chrisdutz/feature/js-only-distribution
add 18a5a14 maven-distribution: make js-only maven sdk to work on IDEs too
add 550a049 jewel: little fixes and clenaning
add 1bb1cdc jewel-listcontroller: simplify all code to extend the basic one and left just jewel unique code
add aefb576 frameworks: all libraries are checked for tests to run
add e14fd19 maven-distribution: fix compilation for Moonshine IDE (and still works for VSCode)
add 7cb2203 maven-distribution: remove commented execution
add 0ce729f maven-distribution: with a clean repo distribution was still trying to download Adobe AIR, seems latest two profiles was causing the bind and are not needed anymore
add 1e3b815 Adding another model to network, can be convenient for displaying thumbnails before uploading.
add 2ff66f3 jewel: Add VirtualList for performant lists that need to recycle renderers
add 7dcc0f8 jewel: Add VirtualComboBox for combos that need performance in the popup list recycling renderers
add 67dc91e jewel-virtualcombox: fix popup reference
add 1c4b9d8 tour-de-jewel: add virtual lists pane with VirtualList and VirtualComboBox
add 4a0a652 some missing imports
add 04f7abf jewel.virtual: some fixes
add 64dc10f jewel: add combobox presentation model that brings "rowCount" to combobox to manage how many items should show popup list (defaults to 5)
add 82c143b jewel-combobox: use rowCount and rowHeight in popup list
add 277ac4f jewel-itemrenderer: default rowHeight to 34px (as $item-min-height in sass), and return to flex layout now that we have more control of rowCount/rowHeight
add 4c36170 jewel-combobox: fix list size not updating to match the component's width when combo's width resize
add 19d6627 jewel-combobox: make possible item renderers in combobox popup list
add d465081 jewel-label: refactor styles to be more flexible
add 8ce359c tour-de-jewel: add icons to the virtual combobox example
add f734def add missing import
new 9c77576 Merge branch 'develop' into feature/router
new 7f72ead Router changes
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
distribution/jars/compiler-compjsc/pom.xml | 2 +-
distribution/jars/compiler-mxmljsc/pom.xml | 2 +-
distribution/pom.xml | 435 ++++++++++---------
.../main/assembly/{bin.xml => bin-with-swf.xml} | 3 +-
distribution/src/main/assembly/bin.xml | 2 +-
.../{dir.xml => component-royale-with-swf.xml} | 30 +-
.../{component.xml => component-royale.xml} | 61 ++-
.../src/main/assembly/component-swfobject.xml | 47 +++
.../main/assembly/{dir.xml => dir-with-swf.xml} | 4 +-
distribution/src/main/assembly/dir.xml | 5 +-
...ion.xml => royale-sdk-description-with-swf.xml} | 58 +--
.../src/main/resources/royale-sdk-description.xml | 1 -
.../beads/DataItemRendererFactoryForArrayData.as | 216 ----------
.../src/main/resources/jewel-example-styles.css | 12 +
.../TourDeJewel/src/main/royale/MainContent.mxml | 10 +-
.../src/main/royale/VirtualListsPlayGround.mxml | 152 +++++++
.../itemRenderers/SimpleIconListItemRenderer.mxml | 47 +++
.../src/main/royale/models/ListsModel.as | 46 ++
.../src/main/royale/models/MainNavigationModel.as | 1 +
frameworks/build.xml | 160 ++++++-
.../projects/Basic/src/main/resources/defaults.css | 5 +
.../apache/royale/core/StyledMXMLItemRenderer.as | 2 +-
.../org/apache/royale/html/beads/DateFieldView.as | 3 +-
.../royale/html/beads/models/DateChooserModel.as | 4 +-
.../org/apache/royale/routing/IPathRouteBead.as} | 19 +-
.../{RouteToComponent.as => PathRouteBead.as} | 91 +---
.../org/apache/royale/routing/RouteToComponent.as | 58 +--
.../org/apache/royale/routing/RouteToState.as | 34 +-
.../royale/org/apache/royale/routing/Router.as | 2 +
.../projects/Core/src/main/royale/CoreClasses.as | 2 +-
.../org/apache/royale/core/IDateChooserModel.as | 13 -
.../core/IDateChooserModelWithChangeCheck.as} | 37 +-
.../Express/src/main/resources/defaults.css | 2 +-
.../src/main/resources/express-manifest.xml | 1 +
.../projects/Jewel/src/main/resources/defaults.css | 28 +-
.../Jewel/src/main/resources/jewel-manifest.xml | 6 +
.../projects/Jewel/src/main/royale/JewelClasses.as | 1 +
.../royale/org/apache/royale/jewel/ComboBox.as | 49 ++-
.../org/apache/royale/jewel/VirtualComboBox.as | 56 +++
.../royale/org/apache/royale/jewel/VirtualList.as | 53 +++
.../ListSingleSelectionMouseController.as | 115 +----
...tualDataItemRendererFactoryForCollectionView.as | 253 +++++++++++
.../jewel/beads/layouts/SimpleHorizontalLayout.as | 5 +-
.../jewel/beads/layouts/SimpleVerticalLayout.as | 5 +-
.../beads/layouts/VirtualListVerticalLayout.as | 465 +++++++++++++++++++++
.../beads/models/ComboBoxPresentationModel.as | 71 ++++
.../royale/jewel/beads/models/DateChooserModel.as | 19 -
.../jewel/beads/models/ListPresentationModel.as | 2 +-
.../royale/jewel/beads/views/ComboBoxPopUpView.as | 62 ++-
.../royale/jewel/beads/views/ComboBoxView.as | 24 +-
.../apache/royale/jewel/beads/views/ListView.as | 6 +-
.../jewel/beads/views/VirtualComboBoxPopUpView.as} | 47 ++-
.../royale/jewel/beads/views/VirtualListView.as | 137 ++++++
.../jewel/supportClasses/combobox/ComboBoxPopUp.as | 65 +++
.../combobox/IComboBoxPresentationModel.as} | 56 ++-
.../combobox/VirtualComboBoxPopUp.as} | 36 +-
.../projects/Jewel/src/main/sass/_global.sass | 6 -
.../Jewel/src/main/sass/components/_combobox.sass | 10 +-
.../src/main/sass/components/_itemRenderer.sass | 3 +-
.../Jewel/src/main/sass/components/_label.sass | 5 +
.../Jewel/src/main/sass/components/_list.sass | 8 +-
.../src/main/royale/mx/display/Graphics.as | 156 ++++++-
.../src/main/royale/mx/graphics/LinearGradient.as | 8 +-
.../Network/src/main/resources/basic-manifest.xml | 1 +
.../beads/FileModelWithParamsAndFileContent.as | 58 +++
.../SparkRoyale/src/main/resources/defaults.css | 9 +-
.../src/main/royale/SparkRoyaleClasses.as | 1 +
.../src/main/royale/spark/components/Panel.as | 156 +++----
.../components/beads/SkinnableContainerView.as | 14 +
.../spark/components/beads/SparkContainerView.as | 5 +
.../components/beads/SparkSkinScrollingViewport.as | 102 ++++-
.../main/royale/spark/layouts/VerticalLayout.as | 1 -
.../spark/layouts/supportClasses/LayoutBase.as | 32 +-
.../layouts/supportClasses/SparkLayoutBead.as | 10 +-
.../main/royale/spark/skins/spark/PanelSkin.mxml | 302 +++++++++++++
.../JewelTheme/src/main/resources/defaults.css | 6 +-
.../src/main/sass/components-primary/_label.sass | 19 +-
pom.xml | 2 +
src/main/script/prerequisiteCheckFramework.groovy | 4 +-
79 files changed, 2994 insertions(+), 1052 deletions(-)
copy distribution/src/main/assembly/{bin.xml => bin-with-swf.xml} (86%)
copy distribution/src/main/assembly/{dir.xml => component-royale-with-swf.xml} (50%)
rename distribution/src/main/assembly/{component.xml => component-royale.xml} (94%)
create mode 100644 distribution/src/main/assembly/component-swfobject.xml
copy distribution/src/main/assembly/{dir.xml => dir-with-swf.xml} (81%)
copy distribution/src/main/resources/{royale-sdk-description.xml => royale-sdk-description-with-swf.xml} (91%)
delete mode 100644 examples/crux/CruxGitHubCommitLogViewer/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForArrayData.as
create mode 100644 examples/royale/TourDeJewel/src/main/royale/VirtualListsPlayGround.mxml
create mode 100644 examples/royale/TourDeJewel/src/main/royale/itemRenderers/SimpleIconListItemRenderer.mxml
copy frameworks/{themes/JewelTheme/src/main/sass/components-primary/_label.sass => projects/Basic/src/main/royale/org/apache/royale/routing/IPathRouteBead.as} (80%)
copy frameworks/projects/Basic/src/main/royale/org/apache/royale/routing/{RouteToComponent.as => PathRouteBead.as} (59%)
copy frameworks/{themes/JewelTheme/src/main/sass/components-primary/_label.sass => projects/Core/src/main/royale/org/apache/royale/core/IDateChooserModelWithChangeCheck.as} (52%)
create mode 100644 frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/VirtualComboBox.as
create mode 100644 frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/VirtualList.as
create mode 100644 frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/itemRenderers/VirtualDataItemRendererFactoryForCollectionView.as
create mode 100644 frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/layouts/VirtualListVerticalLayout.as
create mode 100644 frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/ComboBoxPresentationModel.as
copy frameworks/projects/Jewel/src/main/{sass/components/_label.sass => royale/org/apache/royale/jewel/beads/views/VirtualComboBoxPopUpView.as} (51%)
create mode 100644 frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/views/VirtualListView.as
copy frameworks/projects/Jewel/src/main/{sass/components/_itemRenderer.sass => royale/org/apache/royale/jewel/supportClasses/combobox/IComboBoxPresentationModel.as} (52%)
copy frameworks/{themes/JewelTheme/src/main/sass/components-primary/_label.sass => projects/Jewel/src/main/royale/org/apache/royale/jewel/supportClasses/combobox/VirtualComboBoxPopUp.as} (61%)
create mode 100644 frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileModelWithParamsAndFileContent.as
create mode 100644 frameworks/projects/SparkRoyale/src/main/royale/spark/skins/spark/PanelSkin.mxml
[royale-asjs] 01/02: Merge branch 'develop' into feature/router
Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
harbs pushed a commit to branch feature/router
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit 9c77576b1dd2f925b15a95f9fb0626eb798109a2
Merge: 5eeaab3 f734def
Author: Harbs <ha...@in-tools.com>
AuthorDate: Sun Feb 9 23:02:17 2020 +0200
Merge branch 'develop' into feature/router
distribution/jars/compiler-compjsc/pom.xml | 2 +-
distribution/jars/compiler-mxmljsc/pom.xml | 2 +-
distribution/pom.xml | 435 ++++++++++---------
.../main/assembly/{bin.xml => bin-with-swf.xml} | 3 +-
distribution/src/main/assembly/bin.xml | 2 +-
.../{dir.xml => component-royale-with-swf.xml} | 30 +-
.../{component.xml => component-royale.xml} | 61 ++-
.../src/main/assembly/component-swfobject.xml | 47 +++
.../main/assembly/{dir.xml => dir-with-swf.xml} | 4 +-
distribution/src/main/assembly/dir.xml | 5 +-
...ion.xml => royale-sdk-description-with-swf.xml} | 58 +--
.../src/main/resources/royale-sdk-description.xml | 1 -
.../beads/DataItemRendererFactoryForArrayData.as | 216 ----------
.../src/main/resources/jewel-example-styles.css | 12 +
.../TourDeJewel/src/main/royale/MainContent.mxml | 1 +
.../src/main/royale/VirtualListsPlayGround.mxml | 152 +++++++
.../itemRenderers/SimpleIconListItemRenderer.mxml | 47 +++
.../src/main/royale/models/ListsModel.as | 46 ++
.../src/main/royale/models/MainNavigationModel.as | 1 +
frameworks/build.xml | 160 ++++++-
.../apache/royale/core/StyledMXMLItemRenderer.as | 2 +-
.../org/apache/royale/html/beads/DateFieldView.as | 3 +-
.../royale/html/beads/models/DateChooserModel.as | 4 +-
.../projects/Core/src/main/royale/CoreClasses.as | 2 +-
.../org/apache/royale/core/IDateChooserModel.as | 13 -
.../core/IDateChooserModelWithChangeCheck.as} | 37 +-
.../Express/src/main/resources/defaults.css | 2 +-
.../src/main/resources/express-manifest.xml | 1 +
.../projects/Jewel/src/main/resources/defaults.css | 28 +-
.../Jewel/src/main/resources/jewel-manifest.xml | 6 +
.../projects/Jewel/src/main/royale/JewelClasses.as | 1 +
.../royale/org/apache/royale/jewel/ComboBox.as | 49 ++-
.../org/apache/royale/jewel/VirtualComboBox.as | 56 +++
.../royale/org/apache/royale/jewel/VirtualList.as | 53 +++
.../ListSingleSelectionMouseController.as | 115 +----
...tualDataItemRendererFactoryForCollectionView.as | 253 +++++++++++
.../jewel/beads/layouts/SimpleHorizontalLayout.as | 5 +-
.../jewel/beads/layouts/SimpleVerticalLayout.as | 5 +-
.../beads/layouts/VirtualListVerticalLayout.as | 465 +++++++++++++++++++++
.../beads/models/ComboBoxPresentationModel.as | 71 ++++
.../royale/jewel/beads/models/DateChooserModel.as | 19 -
.../jewel/beads/models/ListPresentationModel.as | 2 +-
.../royale/jewel/beads/views/ComboBoxPopUpView.as | 62 ++-
.../royale/jewel/beads/views/ComboBoxView.as | 24 +-
.../apache/royale/jewel/beads/views/ListView.as | 6 +-
.../jewel/beads/views/VirtualComboBoxPopUpView.as} | 47 ++-
.../royale/jewel/beads/views/VirtualListView.as | 137 ++++++
.../jewel/supportClasses/combobox/ComboBoxPopUp.as | 65 +++
.../combobox/IComboBoxPresentationModel.as} | 56 ++-
.../combobox/VirtualComboBoxPopUp.as} | 36 +-
.../projects/Jewel/src/main/sass/_global.sass | 6 -
.../Jewel/src/main/sass/components/_combobox.sass | 10 +-
.../src/main/sass/components/_itemRenderer.sass | 3 +-
.../Jewel/src/main/sass/components/_label.sass | 5 +
.../Jewel/src/main/sass/components/_list.sass | 8 +-
.../src/main/royale/mx/display/Graphics.as | 156 ++++++-
.../src/main/royale/mx/graphics/LinearGradient.as | 8 +-
.../Network/src/main/resources/basic-manifest.xml | 1 +
.../beads/FileModelWithParamsAndFileContent.as | 58 +++
.../SparkRoyale/src/main/resources/defaults.css | 9 +-
.../src/main/royale/SparkRoyaleClasses.as | 1 +
.../src/main/royale/spark/components/Panel.as | 156 +++----
.../components/beads/SkinnableContainerView.as | 14 +
.../spark/components/beads/SparkContainerView.as | 5 +
.../components/beads/SparkSkinScrollingViewport.as | 102 ++++-
.../main/royale/spark/layouts/VerticalLayout.as | 1 -
.../spark/layouts/supportClasses/LayoutBase.as | 32 +-
.../layouts/supportClasses/SparkLayoutBead.as | 10 +-
.../main/royale/spark/skins/spark/PanelSkin.mxml | 302 +++++++++++++
.../JewelTheme/src/main/resources/defaults.css | 6 +-
.../src/main/sass/components-primary/_label.sass | 19 +-
pom.xml | 2 +
src/main/script/prerequisiteCheckFramework.groovy | 4 +-
73 files changed, 2941 insertions(+), 887 deletions(-)
[royale-asjs] 02/02: Router changes
Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
harbs pushed a commit to branch feature/router
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit 7f72ead004090c986f50f13ae31d667acbc08124
Author: Harbs <ha...@in-tools.com>
AuthorDate: Mon Feb 10 10:09:15 2020 +0200
Router changes
---
.../TourDeJewel/src/main/royale/MainContent.mxml | 9 ++-
.../projects/Basic/src/main/resources/defaults.css | 5 ++
.../org/apache/royale/routing/IPathRouteBead.as | 28 +++++++
.../{RouteToComponent.as => PathRouteBead.as} | 91 ++++++----------------
.../org/apache/royale/routing/RouteToComponent.as | 58 +-------------
.../org/apache/royale/routing/RouteToState.as | 34 ++------
.../royale/org/apache/royale/routing/Router.as | 2 +
7 files changed, 71 insertions(+), 156 deletions(-)
diff --git a/examples/royale/TourDeJewel/src/main/royale/MainContent.mxml b/examples/royale/TourDeJewel/src/main/royale/MainContent.mxml
index 04e5c32..85d4167 100644
--- a/examples/royale/TourDeJewel/src/main/royale/MainContent.mxml
+++ b/examples/royale/TourDeJewel/src/main/royale/MainContent.mxml
@@ -39,8 +39,9 @@ limitations under the License.
private function setNavSelection():void {
var routeState:RouteState = router.routeState;
- if(routeState.state){
- setNavFromHash(routeState.state);
+ var baseName:String = routeState.getBaseName();
+ if(baseName){
+ setNavFromHash(baseName);
} else {
goToHome();
}
@@ -89,7 +90,7 @@ limitations under the License.
currentNavOption = (event.target as Navigation).selectedItem as NavigationLinkVO;
router.routeState.title = currentNavOption.label;
- router.routeState.state = currentNavOption.hash;
+ router.routeState.path = currentNavOption.hash;
router.setState();
navigateTo();
@@ -108,7 +109,7 @@ limitations under the License.
currentNavOption = currentNavOption.selectedChild;
router.routeState.title = currentNavOption.label;
- router.routeState.state = currentNavOption.hash;
+ router.routeState.path = currentNavOption.hash;
router.setState();
navigateTo();
diff --git a/frameworks/projects/Basic/src/main/resources/defaults.css b/frameworks/projects/Basic/src/main/resources/defaults.css
index ae835f4..02804fb 100644
--- a/frameworks/projects/Basic/src/main/resources/defaults.css
+++ b/frameworks/projects/Basic/src/main/resources/defaults.css
@@ -733,6 +733,11 @@ CascadingMenuItemRenderer
flex-grow: 1;
}
+Router
+{
+ IPathRouteBead: ClassReference("org.apache.royale.routing.PathRouteBead");
+}
+
TextInput
{
border: 1px solid #808080;
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/routing/IPathRouteBead.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/routing/IPathRouteBead.as
new file mode 100644
index 0000000..07ea0fa
--- /dev/null
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/routing/IPathRouteBead.as
@@ -0,0 +1,28 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.routing
+{
+ /**
+ * Marker interface for a bead which parses the path part of path part of a route
+ */
+ public interface IPathRouteBead
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/routing/RouteToComponent.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/routing/PathRouteBead.as
similarity index 59%
copy from frameworks/projects/Basic/src/main/royale/org/apache/royale/routing/RouteToComponent.as
copy to frameworks/projects/Basic/src/main/royale/org/apache/royale/routing/PathRouteBead.as
index 0c1c8ba..0eb84ec 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/routing/RouteToComponent.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/routing/PathRouteBead.as
@@ -19,28 +19,20 @@
package org.apache.royale.routing
{
import org.apache.royale.core.Bead;
- import org.apache.royale.core.IStrand;
import org.apache.royale.events.ValueEvent;
- import org.apache.royale.core.IParent;
- import org.apache.royale.core.IChild;
- [DefaultProperty("routes")]
- /**
- * RouteToComponent is a bead designed for Router
- * One or more routes should be assigned to the bead
- */
- public class RouteToComponent extends Bead
+ import org.apache.royale.core.IStrand;
+
+ public class PathRouteBead extends Bead implements IPathRouteBead
{
- public function RouteToComponent()
+ public function PathRouteBead()
{
}
- public var routes:Array;
-
/**
* @royaleignorecoercion org.apache.royale.routing.Router
*/
- private function get host():Router{
+ protected function get host():Router{
return _strand as Router
}
override public function set strand(value:IStrand):void
@@ -48,9 +40,24 @@ package org.apache.royale.routing
_strand = value;
listenOnStrand("hashNeeded",hashNeeded);
listenOnStrand("hashReceived",hashReceived);
- listenOnStrand("stateChange",stateChanged)
}
- private function hashNeeded(ev:ValueEvent):void
+
+ protected function hashReceived(ev:ValueEvent):void
+ {
+ var hash:String = ev.value;
+ // if we have parameters, we don't care if we also have an anchor
+ var delim:String = ""
+ var index:int = hash.indexOf("?")
+ if(index == -1)
+ index = hash.indexOf("#");
+
+ if(index != -1)
+ hash = hash.slice(0,index);
+
+ host.routeState.path = hash;
+ }
+
+ protected function hashNeeded(ev:ValueEvent):void
{
var hash:String = ev.value;
var trailing:String = "";
@@ -75,59 +82,5 @@ package org.apache.royale.routing
}
- private function hashReceived(ev:ValueEvent):void
- {
- var hash:String = ev.value;
- var trailing:String = "";
- // if we have parameters, we don't care if we also have an anchor
- var delim:String = ""
- var index:int = hash.indexOf("?")
- if(index == -1)
- index = hash.indexOf("#");
-
- if(index != -1)
- hash = hash.slice(0,index);
-
- host.routeState.path = hash;
- }
-
- /**
- * @royaleignorecoercion org.apache.royale.core.IParent
- */
- private function stateChanged():void
- {
- var default:ComponentRoute;
- // apply routes
- if(routes)
- {
- var baseName:String = host.routeState.getBaseName();
-
- for(var i:int=0;i<routes.length;i++){
- var route:ComponentRoute = routes[i];
- if(route.defaultRoute)
- default = route;
- if(route.baseName == baseName)
- {
- addComponent(route);
- return;
- }
- }
- if(default)
- {
- addComponent(default);
- }
- }
- }
- private function addComponent(route:ComponentRoute):void{
- var parent:IParent = route.parent || host.host as IParent;
- while(parent.numElements > 0)
- parent.removeElement(parent.getElementAt(0));
-
- var comp:IChild = new route.component();
- parent.addElement(comp);
- if(route.title)
- host.routeState.title = route.title;
-
- }
}
}
\ No newline at end of file
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/routing/RouteToComponent.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/routing/RouteToComponent.as
index 0c1c8ba..2c52c13 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/routing/RouteToComponent.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/routing/RouteToComponent.as
@@ -18,17 +18,15 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.royale.routing
{
- import org.apache.royale.core.Bead;
- import org.apache.royale.core.IStrand;
- import org.apache.royale.events.ValueEvent;
- import org.apache.royale.core.IParent;
import org.apache.royale.core.IChild;
+ import org.apache.royale.core.IParent;
+ import org.apache.royale.core.IStrand;
[DefaultProperty("routes")]
/**
* RouteToComponent is a bead designed for Router
* One or more routes should be assigned to the bead
*/
- public class RouteToComponent extends Bead
+ public class RouteToComponent extends PathRouteBead
{
public function RouteToComponent()
{
@@ -37,59 +35,11 @@ package org.apache.royale.routing
public var routes:Array;
- /**
- * @royaleignorecoercion org.apache.royale.routing.Router
- */
- private function get host():Router{
- return _strand as Router
- }
override public function set strand(value:IStrand):void
{
- _strand = value;
- listenOnStrand("hashNeeded",hashNeeded);
- listenOnStrand("hashReceived",hashReceived);
+ super.strand = value;
listenOnStrand("stateChange",stateChanged)
}
- private function hashNeeded(ev:ValueEvent):void
- {
- var hash:String = ev.value;
- var trailing:String = "";
- var delim:String = ""
- if(hash.indexOf("?") != -1)
- delim = "?"
-
- else if(hash.indexOf("#") != -1)
- delim = "#"
- if(delim)
- {
- trailing = hash.slice(hash.indexOf(delim));
- hash = hash.slice(0,hash.indexOf(delim));
- }
- // no bead added the path yet
- if(!hash)
- {
- hash = host.routeState.path;
- }
-
- ev.value = hash + trailing;
-
- }
-
- private function hashReceived(ev:ValueEvent):void
- {
- var hash:String = ev.value;
- var trailing:String = "";
- // if we have parameters, we don't care if we also have an anchor
- var delim:String = ""
- var index:int = hash.indexOf("?")
- if(index == -1)
- index = hash.indexOf("#");
-
- if(index != -1)
- hash = hash.slice(0,index);
-
- host.routeState.path = hash;
- }
/**
* @royaleignorecoercion org.apache.royale.core.IParent
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/routing/RouteToState.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/routing/RouteToState.as
index 6a6fcd3..334da2f 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/routing/RouteToState.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/routing/RouteToState.as
@@ -18,31 +18,22 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.royale.routing
{
- import org.apache.royale.core.Bead;
+ import org.apache.royale.core.IStatesObject;
import org.apache.royale.core.IStrand;
+ import org.apache.royale.debugging.assert;
import org.apache.royale.events.ValueEvent;
- import org.apache.royale.core.IStatesObject;
import org.apache.royale.utils.callLater;
- import org.apache.royale.debugging.assert;
- public class RouteToState extends Bead
+ public class RouteToState extends PathRouteBead
{
public function RouteToState()
{
}
- /**
- * @royaleignorecoercion org.apache.royale.routing.Router
- */
- private function get host():Router{
- return _strand as Router
- }
override public function set strand(value:IStrand):void
{
- _strand = value;
- listenOnStrand("hashNeeded",hashNeeded);
- listenOnStrand("hashReceived",hashReceived);
+ super.strand = value;
listenOnStrand("stateChange",stateChanged)
// attach state change event async to allow adding the parent strand after this is added.
callLater(attachStateEvent);
@@ -63,7 +54,7 @@ package org.apache.royale.routing
host.routeState.path = getStateComponent().currentState;
host.setState();
}
- private function hashNeeded(ev:ValueEvent):void
+ override protected function hashNeeded(ev:ValueEvent):void
{
var hash:String = ev.value;
// don't overwrite path, parameters and anchor
@@ -85,21 +76,6 @@ package org.apache.royale.routing
ev.value = parentPath + getStateComponent().currentState + trailing;
}
- private function hashReceived(ev:ValueEvent):void
- {
- var hash:String = ev.value;
- var trailing:String = "";
- // if we have parameters, we don't care if we also have an anchor
- var delim:String = ""
- var index:int = hash.indexOf("?")
- if(index == -1)
- index = hash.indexOf("#");
-
- if(index != -1)
- hash = hash.slice(0,index);
-
- host.routeState.path = hash;
- }
private var settingState:Boolean;
/**
* @royaleignorecoercion org.apache.royale.core.IStatesObject
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/routing/Router.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/routing/Router.as
index 05ad347..e6f713d 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/routing/Router.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/routing/Router.as
@@ -28,6 +28,7 @@ package org.apache.royale.routing
import org.apache.royale.core.IMXMLDocument;
import org.apache.royale.utils.MXMLDataInterpreter;
import org.apache.royale.utils.sendStrandEvent;
+ import org.apache.royale.utils.loadBeadFromValuesManager;
[DefaultProperty("beads")]
/**
* Dispatched when the state is changed.
@@ -63,6 +64,7 @@ package org.apache.royale.routing
public function set strand(value:IStrand):void
{
_strand = value;
+ loadBeadFromValuesManager(IPathRouteBead, "iPathRouteBead", this);
COMPILE::JS
{
window.addEventListener("hashchange", hashChangeHandler);