You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ah...@apache.org on 2018/07/03 20:45:23 UTC
[royale-asjs] 04/05: fix MXRoyale DateField/DateChooser
This is an automated email from the ASF dual-hosted git repository.
aharui pushed a commit to branch feature/MXRoyale
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit f9d557d45ec10b4ede8bd3a1a1c4d9a77f9ffe97
Author: Alex Harui <ah...@apache.org>
AuthorDate: Tue Jul 3 13:44:47 2018 -0700
fix MXRoyale DateField/DateChooser
---
.../MXRoyale/src/main/resources/defaults.css | 8 +++
.../MXRoyale/src/main/royale/MXRoyaleClasses.as | 2 +
.../src/main/royale/mx/controls/DateChooser.as | 59 +++++++++++---------
.../src/main/royale/mx/controls/DateField.as | 63 +++++++++-------------
.../main/royale/mx/controls/beads/DateFieldView.as | 50 +++++++++++++++++
.../dateFieldClasses/DateFieldDateChooser.as | 37 +++++++++++++
6 files changed, 155 insertions(+), 64 deletions(-)
diff --git a/frameworks/projects/MXRoyale/src/main/resources/defaults.css b/frameworks/projects/MXRoyale/src/main/resources/defaults.css
index 066c398..1cd1ae3 100644
--- a/frameworks/projects/MXRoyale/src/main/resources/defaults.css
+++ b/frameworks/projects/MXRoyale/src/main/resources/defaults.css
@@ -91,6 +91,14 @@ DateChooser
height: 240px;
}
+DateField {
+ IBeadView: ClassReference("mx.controls.beads.DateFieldView");
+ IBeadModel: ClassReference("org.apache.royale.html.beads.models.DateChooserModel");
+ IBeadController: ClassReference("org.apache.royale.html.beads.controllers.DateFieldMouseController");
+ IFormatBead: ClassReference("org.apache.royale.html.accessories.DateFormatYYYYMMDD");
+ IPopUp: ClassReference("mx.controls.dateFieldClasses.DateFieldDateChooser");
+}
+
Image
{
IBeadModel: ClassReference("org.apache.royale.html.beads.models.ImageModel");
diff --git a/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as b/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
index cd5ebba..09a2b75 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
@@ -145,6 +145,8 @@ internal class MXRoyaleClasses
import mx.controls.beads.RadioButtonView; RadioButtonView;
}
import mx.controls.beads.NumericStepperView; NumericStepperView;
+ import mx.controls.beads.DateFieldView; DateFieldView;
+ import mx.controls.dateFieldClasses.DateFieldDateChooser; DateFieldDateChooser;
}
}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/DateChooser.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/DateChooser.as
index 229c6e4..b88f023 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/DateChooser.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/DateChooser.as
@@ -23,32 +23,17 @@ COMPILE::JS {
import goog.DEBUG;
}
+ import mx.core.UIComponent;
+ import mx.core.mx_internal;
+ import mx.events.CalendarLayoutChangeEvent;
+
+ import org.apache.royale.core.IBeadLayout;
+ import org.apache.royale.core.ILayoutHost;
+ import org.apache.royale.core.ILayoutParent;
+ import org.apache.royale.core.ILayoutView;
+ import org.apache.royale.events.Event;
import org.apache.royale.html.beads.models.DateChooserModel;
-
-/*
-import flash.display.DisplayObject;
-import flash.display.GradientType;
-import flash.display.Graphics;
-import flash.display.Sprite;
-import flash.events.Event;
-import flash.events.EventPhase;
-import flash.events.KeyboardEvent;
-import flash.geom.ColorTransform;
-import flash.geom.Matrix;
-import flash.text.TextFormat;
-import flash.ui.Keyboard;
-import flash.utils.getQualifiedClassName;
-
-import mx.core.FlexSprite;
-import mx.core.FlexVersion;
-import mx.core.IFlexModuleFactory;
-import mx.core.IFontContextComponent;
-import mx.core.IUITextField;
-import mx.core.UITextField;
-*/
-import mx.core.UIComponent;
-import mx.core.mx_internal;
-import mx.events.CalendarLayoutChangeEvent;
+ import org.apache.royale.utils.loadBeadFromValuesManager;
/*
import mx.events.DateChooserEvent;
@@ -224,7 +209,7 @@ use namespace mx_internal;
* @playerversion AIR 1.1
* @productversion Flex 3
*/
-public class DateChooser extends UIComponent //implements IFocusManagerComponent, IFontContextComponent
+public class DateChooser extends UIComponent implements ILayoutParent, ILayoutView//implements IFocusManagerComponent, IFontContextComponent
{
//--------------------------------------------------------------------------
@@ -1013,6 +998,28 @@ public class DateChooser extends UIComponent //implements IFocusManagerComponent
//--------------------------------------------------------------------------
+ override public function addedToParent():void
+ {
+ super.addedToParent();
+ // Load the layout bead if it hasn't already been loaded.
+ loadBeadFromValuesManager(IBeadLayout, "iBeadLayout", this);
+
+ dispatchEvent(new Event("initComplete"));
+ }
+
+ /**
+ * Returns the ILayoutHost which is its view. From ILayoutParent.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.8
+ * @royaleignorecoercion org.apache.royale.core.ILayoutHost
+ */
+ public function getLayoutHost():ILayoutHost
+ {
+ return view as ILayoutHost;
+ }
}
}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/DateField.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/DateField.as
index aa633b0..46eefc5 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/DateField.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/DateField.as
@@ -31,35 +31,25 @@ import flash.geom.Rectangle;
import flash.ui.Keyboard; */
//import mx.controls.dataGridClasses.DataGridListData;
+import mx.controls.beads.DateFieldView;
import mx.controls.listClasses.BaseListData;
-//import mx.controls.listClasses.IDropInListItemRenderer;
-//import mx.controls.listClasses.IListItemRenderer;
-//import mx.controls.listClasses.ListData;
import mx.core.ClassFactory;
import mx.core.IDataRenderer;
import mx.core.IFactory;
-//import mx.core.LayoutDirection;
import mx.core.mx_internal;
-//import mx.core.UIComponentGlobals;
import mx.events.CalendarLayoutChangeEvent;
-//import mx.events.DateChooserEvent;
-//import mx.events.DropdownEvent;
import mx.events.FlexEvent;
-//import mx.events.FlexMouseEvent;
-//import mx.events.InterManagerRequest;
import mx.events.SandboxMouseEvent;
import mx.managers.IFocusManagerComponent;
import mx.managers.ISystemManager;
-//import mx.managers.PopUpManager;
-//import mx.resources.Locale;
-//import mx.resources.ResourceManager;
import mx.styles.CSSStyleDeclaration;
-//import mx.styles.StyleManager;
import mx.styles.StyleProxy;
-import mx.utils.ObjectUtil;
+import mx.utils.ObjectUtil;
use namespace mx_internal;
+import org.apache.royale.core.IDateChooserModel;
+
//--------------------------------------
// Events
//--------------------------------------
@@ -267,8 +257,8 @@ include "../styles/metadata/TextStyles.as" */
[RequiresDataBinding(true)]
-[ResourceBundle("controls")]
-[ResourceBundle("SharedResources")]
+//[ResourceBundle("controls")]
+//[ResourceBundle("SharedResources")]
/**
* The DateField control is a text field that shows the date
@@ -745,8 +735,7 @@ public class DateField extends ComboBase
* @productversion Flex 3
*/
public function DateField()
- {
-x=2;
+ {
super();
// addEventListener(Event.REMOVED_FROM_STAGE, removedFromStageHandler);
}
@@ -860,6 +849,7 @@ x=2;
// invalidateProperties();
}
+
//--------------------------------------------------------------------------
//
// Properties
@@ -1239,12 +1229,6 @@ x=2;
//----------------------------------
/**
- * @private
- * Storage for the dropdown property.
- */
- private var _dropdown:DateChooser;
-
- /**
* Contains a reference to the DateChooser control
* contained by the DateField control. The class used
* can be set with <code>dropdownFactory</code> as long as
@@ -1257,7 +1241,7 @@ x=2;
*/
public function get dropdown():DateChooser
{
- return _dropdown;
+ return (view as DateFieldView).popUp as DateChooser;
}
//----------------------------------
@@ -1873,17 +1857,6 @@ x=2;
// selectedDate
//----------------------------------
- /**
- * @private
- * Storage for the selectedDate property.
- */
- private var _selectedDate:Date = null;
-
- /**
- * @private
- */
- private var selectedDateChanged:Boolean = false;
-
[Bindable("change")]
[Bindable("valueCommit")]
[Bindable("selectedDateChanged")]
@@ -1908,7 +1881,7 @@ x=2;
*/
public function get selectedDate():Date
{
- return _selectedDate;
+ return (model as IDateChooserModel).selectedDate;
}
/**
@@ -1916,6 +1889,7 @@ x=2;
*/
public function set selectedDate(value:Date):void
{
+ (model as IDateChooserModel).selectedDate = value;
/* if (ObjectUtil.dateCompare(_selectedDate, value) == 0)
return;
@@ -2889,7 +2863,20 @@ x=2;
return showingDropdown;
} */
-
+ /**
+ * @private
+ */
+ override public function get text():String
+ {
+ var s:String = (view as DateFieldView).textInput.text;
+ return s == null ? "" : s;
+ }
+
+ override public function setFocus():void
+ {
+ return (view as DateFieldView).setFocus();
+
+ }
}
}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DateFieldView.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DateFieldView.as
new file mode 100644
index 0000000..2568bff
--- /dev/null
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/DateFieldView.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 mx.controls.beads
+{
+ COMPILE::SWF
+ {
+ import flash.display.Sprite;
+ }
+ import org.apache.royale.core.IStrand;
+ import org.apache.royale.html.beads.DateFieldView;
+
+ /**
+ * The NumericStepperView class overrides the Basic
+ * NumericStepperView and sets default sizes to better
+ * emulate Flex.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.0
+ */
+ public class DateFieldView extends org.apache.royale.html.beads.DateFieldView
+ {
+ public function setFocus():void
+ {
+ COMPILE::SWF
+ {
+ var host:Sprite = getHost() as Sprite;
+ host.stage.focus = host;
+ }
+ }
+
+ }
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/dateFieldClasses/DateFieldDateChooser.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/dateFieldClasses/DateFieldDateChooser.as
new file mode 100644
index 0000000..51db776
--- /dev/null
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/dateFieldClasses/DateFieldDateChooser.as
@@ -0,0 +1,37 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 mx.controls.dateFieldClasses
+{
+ import mx.controls.DateChooser;
+ import org.apache.royale.core.IStrand;
+ import org.apache.royale.html.supportClasses.IDateChooser;
+
+ /**
+ * The DateFieldDateChooser is the DateChooser dropdown
+ * for a DateField.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.0
+ */
+ public class DateFieldDateChooser extends DateChooser implements IDateChooser
+ {
+ }
+}