You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2016/01/11 23:23:02 UTC
[13/29] git commit: [flex-asjs] [refs/heads/mavenfolders] -
rename/refactor folders to be more maven-friendly
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7853ef15/frameworks/projects/HTML/compile-asjs-config.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/compile-asjs-config.xml b/frameworks/projects/HTML/compile-asjs-config.xml
deleted file mode 100644
index 2139379..0000000
--- a/frameworks/projects/HTML/compile-asjs-config.xml
+++ /dev/null
@@ -1,90 +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.
-
--->
-<flex-config>
-
- <compiler>
- <accessible>false</accessible>
-
- <external-library-path>
- </external-library-path>
-
- <mxml>
- <children-as-data>true</children-as-data>
- </mxml>
- <binding-value-change-event>org.apache.flex.events.ValueChangeEvent</binding-value-change-event>
- <binding-value-change-event-kind>org.apache.flex.events.ValueChangeEvent</binding-value-change-event-kind>
- <binding-value-change-event-type>valueChange</binding-value-change-event-type>
-
- <keep-as3-metadata>
- <name>Bindable</name>
- <name>Managed</name>
- <name>ChangeEvent</name>
- <name>NonCommittingChangeEvent</name>
- <name>Transient</name>
- </keep-as3-metadata>
-
- <locale/>
-
- <library-path>
- <!-- asjscompc won't 'link' these classes in, but will list their requires
- if these swcs are on the external-library-path then their requires
- will not be listed -->
- <path-element>../../externs/Binding.swc</path-element>
- <path-element>../../externs/Core.swc</path-element>
- <path-element>../../externs/Graphics.swc</path-element>
- <path-element>../../externs/Collections.swc</path-element>
- </library-path>
-
- <namespaces>
- <namespace>
- <uri>library://ns.apache.org/flexjs/basic</uri>
- <manifest>basic-manifest.xml</manifest>
- </namespace>
- <namespace>
- <uri>library://ns.apache.org/flexjs/svg</uri>
- <manifest>svg-manifest.xml</manifest>
- </namespace>
- </namespaces>
-
- <source-path>
- <path-element>as/src</path-element>
- </source-path>
-
- <warn-no-constructor>false</warn-no-constructor>
- </compiler>
-
- <include-file>
- </include-file>
-
- <include-sources>
- </include-sources>
-
- <include-classes>
- <class>HTMLClasses</class>
- </include-classes>
-
- <include-namespaces>
- <uri>library://ns.apache.org/flexjs/basic</uri>
- <uri>library://ns.apache.org/flexjs/svg</uri>
- </include-namespaces>
-
- <target-player>${playerglobal.version}</target-player>
-
-
-</flex-config>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7853ef15/frameworks/projects/HTML/compile-config.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/compile-config.xml b/frameworks/projects/HTML/compile-config.xml
deleted file mode 100644
index 7ea999a..0000000
--- a/frameworks/projects/HTML/compile-config.xml
+++ /dev/null
@@ -1,94 +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.
-
--->
-<flex-config>
-
- <compiler>
- <accessible>false</accessible>
-
- <external-library-path>
- <path-element>${env.AIR_HOME}/frameworks/libs/air/airglobal.swc</path-element>
- <path-element>../../libs/Binding.swc</path-element>
- <path-element>../../libs/Core.swc</path-element>
- <path-element>../../libs/Graphics.swc</path-element>
- <path-element>../../libs/Collections.swc</path-element>
- </external-library-path>
-
- <mxml>
- <children-as-data>true</children-as-data>
- </mxml>
- <binding-value-change-event>org.apache.flex.events.ValueChangeEvent</binding-value-change-event>
- <binding-value-change-event-kind>org.apache.flex.events.ValueChangeEvent</binding-value-change-event-kind>
- <binding-value-change-event-type>valueChange</binding-value-change-event-type>
-
- <keep-as3-metadata>
- <name>Bindable</name>
- <name>Managed</name>
- <name>ChangeEvent</name>
- <name>NonCommittingChangeEvent</name>
- <name>Transient</name>
- </keep-as3-metadata>
-
- <locale/>
-
- <library-path/>
-
- <namespaces>
- <namespace>
- <uri>library://ns.apache.org/flexjs/basic</uri>
- <manifest>basic-manifest.xml</manifest>
- </namespace>
- <namespace>
- <uri>library://ns.apache.org/flexjs/basic</uri>
- <manifest>basic-as-manifest.xml</manifest>
- </namespace>
- <namespace>
- <uri>library://ns.apache.org/flexjs/svg</uri>
- <manifest>svg-manifest.xml</manifest>
- </namespace>
- </namespaces>
-
- <source-path>
- <path-element>as/src</path-element>
- </source-path>
-
- <warn-no-constructor>false</warn-no-constructor>
- </compiler>
-
- <include-file>
- <name>defaults.css</name>
- <path>as/defaults.css</path>
- </include-file>
- <include-file>
- <name>js/out/*</name>
- <path>js/out/*</path>
- </include-file>
-
- <include-classes>
- <class>HTMLClasses</class>
- </include-classes>
-
- <include-namespaces>
- <uri>library://ns.apache.org/flexjs/basic</uri>
- <uri>library://ns.apache.org/flexjs/svg</uri>
- </include-namespaces>
-
- <target-player>${playerglobal.version}</target-player>
-
-
-</flex-config>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7853ef15/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/HTMLClasses.as b/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
new file mode 100644
index 0000000..052ab95
--- /dev/null
+++ b/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
@@ -0,0 +1,176 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 HTMLClasses
+{
+
+ import org.apache.flex.html.ToolTip; ToolTip;
+ import org.apache.flex.html.accessories.NumericOnlyTextInputBead; NumericOnlyTextInputBead;
+ import org.apache.flex.html.accessories.PasswordInputBead; PasswordInputBead;
+ import org.apache.flex.html.accessories.TextPromptBead; TextPromptBead;
+ import org.apache.flex.html.beads.AlertView; AlertView;
+ COMPILE::AS3
+ {
+ import org.apache.flex.html.beads.BackgroundImageBead; BackgroundImageBead;
+ }
+ import org.apache.flex.html.beads.ButtonBarView; ButtonBarView;
+ COMPILE::AS3
+ {
+ import org.apache.flex.html.beads.CheckBoxView; CheckBoxView;
+ import org.apache.flex.html.beads.ComboBoxView; ComboBoxView;
+ }
+ import org.apache.flex.html.beads.ContainerView; ContainerView;
+ COMPILE::AS3
+ {
+ import org.apache.flex.html.beads.ControlBarMeasurementBead; ControlBarMeasurementBead;
+ import org.apache.flex.html.beads.CSSButtonView; CSSButtonView;
+ import org.apache.flex.html.beads.CSSImageAndTextButtonView; CSSImageAndTextButtonView;
+ import org.apache.flex.html.beads.CSSTextButtonView; CSSTextButtonView;
+ import org.apache.flex.html.beads.CSSTextToggleButtonView; CSSTextToggleButtonView;
+ import org.apache.flex.html.beads.DropDownListView; DropDownListView;
+ import org.apache.flex.html.beads.CloseButtonView; CloseButtonView;
+ import org.apache.flex.html.beads.ImageAndTextButtonView; ImageAndTextButtonView;
+ import org.apache.flex.html.beads.ImageView; ImageView;
+ }
+ import org.apache.flex.html.beads.ImageButtonView; ImageButtonView;
+ import org.apache.flex.html.beads.ListView; ListView;
+ COMPILE::AS3
+ {
+ import org.apache.flex.html.beads.NumericStepperView; NumericStepperView;
+ }
+ import org.apache.flex.html.beads.PanelView; PanelView;
+ COMPILE::AS3
+ {
+ import org.apache.flex.html.beads.PanelWithControlBarView; PanelWithControlBarView;
+ import org.apache.flex.html.beads.RadioButtonView; RadioButtonView;
+ import org.apache.flex.html.beads.VScrollBarView; VScrollBarView;
+ import org.apache.flex.html.beads.HScrollBarView; HScrollBarView;
+ import org.apache.flex.html.beads.ScrollBarView; ScrollBarView;
+ import org.apache.flex.html.beads.SimpleAlertView; SimpleAlertView;
+ import org.apache.flex.html.beads.SingleLineBorderBead; SingleLineBorderBead;
+ import org.apache.flex.html.beads.SliderView; SliderView;
+ }
+ import org.apache.flex.html.beads.SliderThumbView; SliderThumbView;
+ import org.apache.flex.html.beads.SliderTrackView; SliderTrackView;
+ COMPILE::AS3
+ {
+ import org.apache.flex.html.beads.SolidBackgroundBead; SolidBackgroundBead;
+ import org.apache.flex.html.beads.SpinnerView; SpinnerView;
+ import org.apache.flex.html.beads.TextButtonMeasurementBead; TextButtonMeasurementBead;
+ import org.apache.flex.html.beads.TextFieldLabelMeasurementBead; TextFieldLabelMeasurementBead;
+ import org.apache.flex.html.beads.TextAreaView; TextAreaView;
+ import org.apache.flex.html.beads.TextButtonView; TextButtonView;
+ import org.apache.flex.html.beads.TextFieldView; TextFieldView;
+ import org.apache.flex.html.beads.TextInputView; TextInputView;
+ import org.apache.flex.html.beads.TextInputWithBorderView; TextInputWithBorderView;
+ import org.apache.flex.html.beads.models.AlertModel; AlertModel;
+ }
+ import org.apache.flex.html.beads.models.ArraySelectionModel; ArraySelectionModel;
+ import org.apache.flex.html.beads.models.RangeModel; RangeModel;
+ COMPILE::AS3
+ {
+ import org.apache.flex.html.beads.models.ComboBoxModel; ComboBoxModel;
+ }
+ COMPILE::AS3
+ {
+ import org.apache.flex.html.beads.models.ImageModel; ImageModel;
+ import org.apache.flex.html.beads.models.ImageAndTextModel; ImageAndTextModel;
+ }
+ import org.apache.flex.html.beads.models.PanelModel; PanelModel;
+ COMPILE::AS3
+ {
+ import org.apache.flex.html.beads.models.SingleLineBorderModel; SingleLineBorderModel;
+ }
+ import org.apache.flex.html.beads.models.TextModel; TextModel;
+ import org.apache.flex.html.beads.models.TitleBarModel; TitleBarModel;
+ COMPILE::AS3
+ {
+ import org.apache.flex.html.beads.models.ToggleButtonModel; ToggleButtonModel;
+ import org.apache.flex.html.beads.models.ValueToggleButtonModel; ValueToggleButtonModel;
+ }
+ import org.apache.flex.html.beads.models.ViewportModel; ViewportModel;
+ COMPILE::AS3
+ {
+ import org.apache.flex.html.beads.controllers.AlertController; AlertController;
+ import org.apache.flex.html.beads.controllers.ComboBoxController; ComboBoxController;
+ import org.apache.flex.html.beads.controllers.DropDownListController; DropDownListController;
+ import org.apache.flex.html.beads.controllers.EditableTextKeyboardController; EditableTextKeyboardController;
+ }
+ import org.apache.flex.html.beads.controllers.ItemRendererMouseController; ItemRendererMouseController;
+ import org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController; ListSingleSelectionMouseController;
+ COMPILE::AS3
+ {
+ import org.apache.flex.html.beads.controllers.SliderMouseController; SliderMouseController;
+ import org.apache.flex.html.beads.controllers.SpinnerMouseController; SpinnerMouseController;
+ import org.apache.flex.html.beads.controllers.VScrollBarMouseController; VScrollBarMouseController;
+ import org.apache.flex.html.beads.controllers.HScrollBarMouseController; HScrollBarMouseController;
+ }
+ import org.apache.flex.html.beads.layouts.ButtonBarLayout; ButtonBarLayout;
+ import org.apache.flex.html.beads.layouts.VerticalLayout; VerticalLayout;
+ import org.apache.flex.html.beads.layouts.HorizontalLayout; HorizontalLayout;
+ import org.apache.flex.html.beads.layouts.BasicLayout; BasicLayout;
+ COMPILE::AS3
+ {
+ import org.apache.flex.html.beads.layouts.HScrollBarLayout; HScrollBarLayout;
+ import org.apache.flex.html.beads.layouts.VScrollBarLayout; VScrollBarLayout;
+ }
+ import org.apache.flex.html.beads.layouts.TileLayout; TileLayout;
+ import org.apache.flex.html.beads.TextItemRendererFactoryForArrayData; TextItemRendererFactoryForArrayData;
+ import org.apache.flex.html.beads.DataItemRendererFactoryForArrayData; DataItemRendererFactoryForArrayData;
+ import org.apache.flex.html.beads.DataItemRendererFactoryForArrayList; DataItemRendererFactoryForArrayList;
+ import org.apache.flex.html.supportClasses.DataGroup; DataGroup;
+ import org.apache.flex.html.supportClasses.Viewport; Viewport;
+ import org.apache.flex.html.supportClasses.ScrollingViewport; ScrollingViewport;
+
+ import org.apache.flex.html.beads.DataGridColumnView; DataGridColumnView;
+ import org.apache.flex.html.beads.DataGridView; DataGridView;
+ import org.apache.flex.html.beads.DateChooserView; DateChooserView;
+ import org.apache.flex.html.beads.DateFieldView; DateFieldView;
+ import org.apache.flex.html.beads.layouts.FlexibleFirstChildHorizontalLayout; FlexibleFirstChildHorizontalLayout;
+ import org.apache.flex.html.beads.models.DataGridModel; DataGridModel;
+ import org.apache.flex.html.beads.models.DateChooserModel; DateChooserModel;
+ import org.apache.flex.html.beads.models.DataGridPresentationModel; DataGridPresentationModel;
+ import org.apache.flex.html.beads.controllers.DateChooserMouseController; DateChooserMouseController;
+ import org.apache.flex.html.beads.controllers.DateFieldMouseController; DateFieldMouseController;
+ import org.apache.flex.html.supportClasses.DataGridColumn; DataGridColumn;
+ import org.apache.flex.html.supportClasses.DateChooserButton; DateChooserButton;
+ import org.apache.flex.html.supportClasses.GraphicsItemRenderer; GraphicsItemRenderer;
+
+ import org.apache.flex.html.MXMLBeadViewBase; MXMLBeadViewBase;
+ import org.apache.flex.html.beads.TitleBarView; TitleBarView;
+ import org.apache.flex.html.beads.TitleBarMeasurementBead; TitleBarMeasurementBead;
+
+ COMPILE::AS3
+ {
+ import org.apache.flex.html.beads.HRuleView; HRuleView;
+ import org.apache.flex.html.beads.VRuleView; VRuleView;
+ import org.apache.flex.html.beads.MultilineTextFieldView; MultilineTextFieldView;
+ }
+}
+
+}
+
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7853ef15/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/IScrollingLayoutParent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/IScrollingLayoutParent.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/IScrollingLayoutParent.as
new file mode 100644
index 0000000..5e9768e
--- /dev/null
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/IScrollingLayoutParent.as
@@ -0,0 +1,68 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.core
+{
+ import org.apache.flex.html.supportClasses.Border;
+ import org.apache.flex.html.supportClasses.ScrollBar;
+
+ /**
+ * The IScrollingLayoutParent interface is an ILayoutParent
+ * that has traditional scrollbars. The layout implementation
+ * often needs to know certain things about other objects in
+ * the component.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public interface IScrollingLayoutParent
+ {
+ /**
+ * The border.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function get border():Border;
+
+ /**
+ * The vertical ScrollBar.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function get vScrollBar():ScrollBar;
+
+ /**
+ * The horizontal ScrollBar.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function get hScrollBar():ScrollBar;
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7853ef15/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Alert.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Alert.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Alert.as
new file mode 100644
index 0000000..b7f50dc
--- /dev/null
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Alert.as
@@ -0,0 +1,287 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.html
+{
+ import org.apache.flex.core.IAlertModel;
+ import org.apache.flex.core.IPopUp;
+ import org.apache.flex.core.UIBase;
+
+ COMPILE::JS
+ {
+ import goog.events;
+ import org.apache.flex.core.WrappedHTMLElement;
+ import org.apache.flex.events.Event;
+ }
+
+ /**
+ * The Alert class is a component that displays a message and one or more buttons
+ * in a view that pops up over all other controls and views. The Alert component
+ * uses the AlertView bead to display a modal dialog with a title and a variety
+ * of buttons configured through the flag property of its show() static function.
+ * The Alert component uses the following beads:
+ *
+ * org.apache.flex.core.IBeadModel: the data model for the Alert.
+ * org.apache.flex.core.IBeadView: the bead used to create the parts of the Alert.
+ * org.apache.flex.core.IBeadController: the bead used to handle input events.
+ * org.apache.flex.core.IBorderBead: if present, draws a border around the Alert.
+ * org.apache.flex.core.IBackgroundBead: if present, places a solid color background below the Alert.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class Alert extends UIBase implements IPopUp
+ {
+ /**
+ * The bitmask button flag to show the YES button.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public static const YES:uint = 0x000001;
+
+ /**
+ * The bitmask button flag to show the NO button.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public static const NO:uint = 0x000002;
+
+ /**
+ * The bitmask button flag to show the OK button.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public static const OK:uint = 0x000004;
+
+ /**
+ * The bitmask button flag to show the Cancel button.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public static const CANCEL:uint = 0x000008;
+
+ /**
+ * constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function Alert()
+ {
+ super();
+
+ className = "Alert";
+ }
+
+ COMPILE::JS
+ private var titleBar:TitleBar;
+
+ COMPILE::JS
+ private var label:Label;
+
+ COMPILE::JS
+ private var buttonArea:Container;
+
+ /**
+ * @override
+ */
+ COMPILE::JS
+ override protected function createElement():WrappedHTMLElement
+ {
+ super.createElement();
+
+ element.className = 'Alert';
+
+ // add in a title bar
+ titleBar = new TitleBar();
+ addElement(titleBar);
+ titleBar.element.id = 'titleBar';
+
+ label = new Label();
+ addElement(label);
+ label.element.id = 'message';
+
+ // add a place for the buttons
+ buttonArea = new Container();
+ addElement(buttonArea);
+ buttonArea.element.id = 'buttonArea';
+
+ return element;
+ };
+
+ // note: only passing parent to this function as I don't see a way to identify
+ // the 'application' or top level view without supplying a place to start to
+ // look for it.
+ /**
+ * This static method is a convenience function to quickly create and display an Alert. The
+ * text and parent paramters are required, the others will default.
+ *
+ * @param String text The message content of the Alert.
+ * @param Object parent The object that hosts the pop-up.
+ * @param String title An optional title for the Alert.
+ * @param uint flags Identifies which buttons to display in the alert.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ static public function show( text:String, parent:Object, title:String="", flags:uint=Alert.OK ) : void
+ {
+ var alert:Alert = new Alert();
+ alert.message = text;
+ alert.title = title;
+ alert.flags = flags;
+
+ alert.show(parent);
+
+ COMPILE::JS
+ {
+ alert.positioner.style.position = 'relative';
+ alert.positioner.style.width = '200px';
+ alert.positioner.style.margin = 'auto';
+ alert.positioner.style.top = '100px';
+ }
+ }
+
+ /**
+ * Shows the Alert anchored to the given parent object which is usally a root component such
+ * as a UIView..
+ *
+ * @param Object parent The object that hosts the pop-up.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function show(parent:Object) : void
+ {
+ parent.addElement(this);
+ }
+
+ /**
+ * The tile of the Alert.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get title():String
+ {
+ return IAlertModel(model).title;
+ }
+ public function set title(value:String):void
+ {
+ IAlertModel(model).title = value;
+ }
+
+ /**
+ * The message to display in the Alert body.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get message():String
+ {
+ return IAlertModel(model).message;
+ }
+ public function set message(value:String):void
+ {
+ IAlertModel(model).message = value;
+ }
+
+ /**
+ * The buttons to display on the Alert as bit-mask values.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get flags():uint
+ {
+ return IAlertModel(model).flags;
+ }
+ public function set flags(value:uint):void
+ {
+ IAlertModel(model).flags = value;
+
+ COMPILE::JS
+ {
+ // add buttons based on flags
+ if (flags & Alert.OK) {
+ var ok:TextButton = new TextButton();
+ buttonArea.addElement(ok);
+ ok.text = 'OK';
+ goog.events.listen(ok.element, 'click', dismissAlert);
+ }
+ if (flags & Alert.CANCEL) {
+ var cancel:TextButton = new TextButton();
+ buttonArea.addElement(cancel);
+ cancel.text = 'Cancel';
+ goog.events.listen(cancel.element, 'click', dismissAlert);
+ }
+ if (flags & Alert.YES) {
+ var yes:TextButton = new TextButton();
+ buttonArea.addElement(yes);
+ yes.text = 'YES';
+ goog.events.listen(yes.element, 'click', dismissAlert);
+ }
+ if (flags & Alert.NO) {
+ var nob:TextButton = new TextButton();
+ buttonArea.addElement(nob);
+ nob.text = 'NO';
+ goog.events.listen(nob.element, 'click', dismissAlert);
+ }
+
+ }
+ }
+
+ /**
+ * @param event The event object.
+ * @flexjsignorecoercion HTMLElement
+ */
+ COMPILE::JS
+ private function dismissAlert(event:Event):void
+ {
+ var htmlElement:HTMLElement = element as HTMLElement;
+ htmlElement.parentElement.removeChild(element);
+ };
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7853ef15/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Button.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Button.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Button.as
new file mode 100644
index 0000000..d4c2001
--- /dev/null
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Button.as
@@ -0,0 +1,112 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.html
+{
+ import org.apache.flex.core.IStrand;
+ import org.apache.flex.core.IUIBase;
+ COMPILE::AS3
+ {
+ import org.apache.flex.core.UIButtonBase;
+ }
+ COMPILE::JS
+ {
+ import org.apache.flex.core.UIBase;
+ import org.apache.flex.core.WrappedHTMLElement;
+ }
+ import org.apache.flex.core.ValuesManager;
+ import org.apache.flex.events.IEventDispatcher;
+
+
+ //--------------------------------------
+ // Events
+ //--------------------------------------
+
+ /**
+ * Dispatched when the user clicks on a button.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ [Event(name="click", type="org.apache.flex.events.Event")]
+
+ /**
+ * The Button class is a simple button. Use TextButton for
+ * buttons that should show text. This is the lightest weight
+ * button used for non-text buttons like the arrow buttons
+ * in a Scrollbar or NumericStepper.
+ *
+ * The most common view for this button is CSSButtonView that
+ * allows you to specify a backgroundImage in CSS that defines
+ * the look of the button.
+ *
+ * However, when used in ScrollBar and when composed in many
+ * other components, it is more common to assign a custom view
+ * to the button.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ COMPILE::AS3
+ public class Button extends UIButtonBase implements IStrand, IEventDispatcher, IUIBase
+ {
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function Button()
+ {
+ super();
+ }
+ }
+
+ COMPILE::JS
+ public class Button extends UIBase implements IStrand, IEventDispatcher, IUIBase
+ {
+ /**
+ * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
+ */
+ override protected function createElement():WrappedHTMLElement
+ {
+ element = document.createElement('button') as WrappedHTMLElement;
+ element.setAttribute('type', 'button');
+
+ positioner = element;
+ positioner.style.position = 'relative';
+ element.flexjs_wrapper = this;
+
+ /* AJH comment out until we figure out why it is needed
+ if (org.apache.flex.core.ValuesManager.valuesImpl.getValue) {
+ var impl:Object = org.apache.flex.core.ValuesManager.valuesImpl.
+ getValue(this, 'iStatesImpl');
+ }*/
+
+ return element;
+ }
+
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7853ef15/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ButtonBar.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ButtonBar.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ButtonBar.as
new file mode 100644
index 0000000..e4c58e7
--- /dev/null
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ButtonBar.as
@@ -0,0 +1,76 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.html
+{
+ COMPILE::JS
+ {
+ import org.apache.flex.core.WrappedHTMLElement;
+ }
+
+ /**
+ * The ButtonBar class is a component that displays a set of Buttons. The ButtonBar
+ * is actually a List with a default horizontal layout and an itemRenderer that
+ * produces Buttons. The ButtonBar uses the following beads:
+ *
+ * org.apache.flex.core.IBeadModel: the data model for the ButtonBar, including the dataProvider.
+ * org.apache.flex.core.IBeadView: constructs the parts of the component.
+ * org.apache.flex.core.IBeadController: handles input events.
+ * org.apache.flex.core.IBeadLayout: sizes and positions the component parts.
+ * org.apache.flex.core.IDataProviderItemRendererMapper: produces itemRenderers.
+ * org.apache.flex.core.IItemRenderer: the class or class factory to use.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class ButtonBar extends List
+ {
+ /**
+ * constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function ButtonBar()
+ {
+ super();
+ }
+
+ /**
+ * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
+ */
+ COMPILE::JS
+ override protected function createElement():WrappedHTMLElement
+ {
+ element = document.createElement('div') as WrappedHTMLElement;
+ element.style.overflow = 'auto';
+ positioner = element;
+ positioner.style.position = 'relative';
+
+ className = 'ButtonBar';
+
+ element.flexjs_wrapper = this;
+
+ return element;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7853ef15/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/CheckBox.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/CheckBox.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/CheckBox.as
new file mode 100644
index 0000000..6405ab5
--- /dev/null
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/CheckBox.as
@@ -0,0 +1,180 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.html
+{
+ COMPILE::AS3
+ {
+ import flash.events.MouseEvent;
+ }
+
+ import org.apache.flex.core.IStrand;
+ import org.apache.flex.core.IToggleButtonModel;
+ import org.apache.flex.core.IUIBase;
+ COMPILE::AS3
+ {
+ import org.apache.flex.core.UIButtonBase;
+ }
+ COMPILE::JS
+ {
+ import org.apache.flex.core.UIBase;
+ import org.apache.flex.core.WrappedHTMLElement;
+ }
+ import org.apache.flex.events.Event;
+
+ //--------------------------------------
+ // Events
+ //--------------------------------------
+
+ /**
+ * Dispatched when the user checks or un-checks the CheckBox.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ [Event(name="change", type="org.apache.flex.events.Event")]
+
+ /**
+ * The CheckBox class implements the common user interface
+ * control. The CheckBox includes its text label.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ COMPILE::AS3
+ public class CheckBox extends UIButtonBase implements IStrand
+ {
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function CheckBox()
+ {
+ super();
+
+ addEventListener(MouseEvent.CLICK, internalMouseHandler);
+ }
+
+ /**
+ * The text label for the CheckBox.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get text():String
+ {
+ return IToggleButtonModel(model).text;
+ }
+
+ /**
+ * @private
+ */
+ public function set text(value:String):void
+ {
+ IToggleButtonModel(model).text = value;
+ }
+
+ [Bindable("change")]
+ /**
+ * <code>true</code> if the check mark is displayed.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get selected():Boolean
+ {
+ return IToggleButtonModel(model).selected;
+ }
+
+ /**
+ * @private
+ */
+ public function set selected(value:Boolean):void
+ {
+ IToggleButtonModel(model).selected = value;
+ }
+
+ private function internalMouseHandler(event:Event) : void
+ {
+ selected = !selected;
+ dispatchEvent(new Event("change"));
+ }
+ }
+
+ COMPILE::JS
+ public class CheckBox extends UIBase
+ {
+ /**
+ * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
+ */
+ override protected function createElement():WrappedHTMLElement
+ {
+ var cb:HTMLInputElement;
+
+ element = document.createElement('label') as WrappedHTMLElement;
+
+ cb = document.createElement('input') as HTMLInputElement;
+ cb.type = 'checkbox';
+ element.appendChild(cb);
+ element.appendChild(document.createTextNode(''));
+
+ element.className = 'CheckBox';
+ typeNames = 'CheckBox';
+
+ positioner = element;
+ positioner.style.position = 'relative';
+ (cb as WrappedHTMLElement).flexjs_wrapper = this;
+ element.flexjs_wrapper = this;
+
+ return element;
+ }
+
+ public function get text():String
+ {
+ return element.childNodes.item(1).nodeValue;
+ }
+
+ public function set text(value:String):void
+ {
+ element.childNodes.item(1).nodeValue = value;
+ }
+
+ public function get selected():Boolean
+ {
+ return (element.childNodes.item(0) as HTMLInputElement).checked;
+ }
+
+ public function set selected(value:Boolean):void
+ {
+ (element.childNodes.item(0) as HTMLInputElement).checked = value;
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7853ef15/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/CloseButton.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/CloseButton.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/CloseButton.as
new file mode 100644
index 0000000..8306915
--- /dev/null
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/CloseButton.as
@@ -0,0 +1,66 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.html
+{
+ COMPILE::JS
+ {
+ import org.apache.flex.core.WrappedHTMLElement;
+ }
+
+ /**
+ * The CloseButton class is Button that displays an X
+ * and is commonly used in a Panel's TitleBar.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class CloseButton extends Button
+ {
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function CloseButton()
+ {
+ super();
+ }
+
+ /**
+ * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
+ */
+ COMPILE::JS
+ override protected function createElement():WrappedHTMLElement
+ {
+ super.createElement();
+ element.innerHTML = 'x';
+
+ element.style.padding = 0;
+ height = 11;
+ width = 11;
+ return element;
+ }
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7853ef15/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ComboBox.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ComboBox.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ComboBox.as
new file mode 100644
index 0000000..fa91fec
--- /dev/null
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ComboBox.as
@@ -0,0 +1,277 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.html
+{
+ import org.apache.flex.core.IComboBoxModel;
+ import org.apache.flex.core.UIBase;
+ import org.apache.flex.events.Event;
+
+ COMPILE::JS
+ {
+ import goog.events;
+ import org.apache.flex.core.WrappedHTMLElement;
+ }
+
+ [Event(name="change", type="org.apache.flex.events.Event")]
+
+ /**
+ * The ComboBox class is a component that displays an input field and
+ * pop-up List with selections. Selecting an item from the pop-up List
+ * places that item into the input field of the ComboBox. The ComboBox
+ * uses the following bead types:
+ *
+ * org.apache.flex.core.IBeadModel: the data model, which includes the dataProvider, selectedItem, and
+ * so forth.
+ * org.apache.flex.core.IBeadView: the bead that constructs the visual parts of the component.
+ * org.apache.flex.core.IBeadController: the bead that handles input and output.
+ * org.apache.flex.core.IPopUp: the bead responsible for displaying the selection list.
+ * org.apache.flex.core.IDataProviderItemRendererMapper: the bead responsible for creating the itemRenders.
+ * org.apache.flex.core.IItemRenderer: the class or factory used to display an item in the component.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class ComboBox extends UIBase
+ {
+ /**
+ * constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function ComboBox()
+ {
+ super();
+ }
+
+ /**
+ * The data for display by the ComboBox.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get dataProvider():Object
+ {
+ return IComboBoxModel(model).dataProvider;
+ }
+ public function set dataProvider(value:Object):void
+ {
+ IComboBoxModel(model).dataProvider = value;
+ }
+
+ /**
+ * The index of the currently selected item. Changing this item changes
+ * the selectedItem value.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get selectedIndex():int
+ {
+ return IComboBoxModel(model).selectedIndex;
+ }
+ public function set selectedIndex(value:int):void
+ {
+ IComboBoxModel(model).selectedIndex = value;
+ }
+
+ /**
+ * The item that is currently selected. Changing this item changes
+ * the selectedIndex.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get selectedItem():Object
+ {
+ return IComboBoxModel(model).selectedItem;
+ }
+ public function set selectedItem(value:Object):void
+ {
+ IComboBoxModel(model).selectedItem = value;
+ }
+
+ /**
+ * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
+ */
+ COMPILE::JS
+ override protected function createElement():WrappedHTMLElement
+ {
+ var button:WrappedHTMLElement;
+ var input:WrappedHTMLElement;
+
+ element = document.createElement('div') as WrappedHTMLElement;
+
+ input = document.createElement('input') as WrappedHTMLElement;
+ input.style.position = 'absolute';
+ input.style.width = '80px';
+ element.appendChild(input);
+
+ button = document.createElement('div') as WrappedHTMLElement;
+ button.style.position = 'absolute';
+ button.style.top = '0px';
+ button.style.right = '0px';
+ button.style.background = '#bbb';
+ button.style.width = '16px';
+ button.style.height = '20px';
+ button.style.margin = '0';
+ button.style.border = 'solid #609 1px';
+ goog.events.listen(button, 'click', buttonClicked);
+ element.appendChild(button);
+
+ positioner = element;
+ positioner.style.position = 'relative';
+
+ // add a click handler so that a click outside of the combo box can
+ // dismiss the pop-up should it be visible.
+ goog.events.listen(document, 'click',
+ dismissPopup);
+
+ input.flexjs_wrapper = this;
+
+ return element;
+ }
+
+ COMPILE::JS
+ private var popup:HTMLElement;
+
+ /**
+ * @param event The event.
+ * @flexjsignorecoercion HTMLSelectElement
+ */
+ COMPILE::JS
+ private function selectChanged(event:Event):void
+ {
+ var select:HTMLSelectElement;
+
+ select = event.currentTarget as HTMLSelectElement;
+
+ selectedItem = select.options[select.selectedIndex].value;
+
+ popup.parentNode.removeChild(popup);
+ popup = null;
+
+ dispatchEvent(event);
+ }
+
+
+ /**
+ * @param event The event.
+ */
+ COMPILE::JS
+ private function dismissPopup(event:Event):void
+ {
+ // remove the popup if it already exists
+ if (popup) {
+ popup.parentNode.removeChild(popup);
+ popup = null;
+ }
+ }
+
+
+ /**
+ * @export
+ * @param {Object} event The event.
+ * @flexjsignorecoercion HTMLInputElement
+ * @flexjsignorecoercion HTMLElement
+ * @flexjsignorecoercion HTMLSelectElement
+ * @flexjsignorecoercion HTMLOptionElement
+ * @flexjsignorecoercion Array
+ */
+ COMPILE::JS
+ private function buttonClicked(event:Event):void
+ {
+ var dp:Array;
+ var i:int;
+ var input:HTMLInputElement;
+ var left:Number;
+ var n:int;
+ var opt:HTMLOptionElement;
+ var pn:HTMLElement;
+ var popup:HTMLElement;
+ var select:HTMLSelectElement;
+ var si:int;
+ var top:Number;
+ var width:Number;
+
+ event.stopPropagation();
+
+ if (popup) {
+ dismissPopup(null);
+
+ return;
+ }
+
+ input = element.childNodes.item(0) as HTMLInputElement;
+
+ pn = element;
+ top = pn.offsetTop + input.offsetHeight;
+ left = pn.offsetLeft;
+ width = pn.offsetWidth;
+
+ popup = document.createElement('div') as HTMLElement;
+ popup.className = 'popup';
+ popup.id = 'test';
+ popup.style.position = 'absolute';
+ popup.style.top = top.toString() + 'px';
+ popup.style.left = left.toString() + 'px';
+ popup.style.width = width.toString() + 'px';
+ popup.style.margin = '0px auto';
+ popup.style.padding = '0px';
+ popup.style.zIndex = '10000';
+
+ select = document.createElement('select') as HTMLSelectElement;
+ select.style.width = width.toString() + 'px';
+ goog.events.listen(select, 'change', selectChanged);
+
+ dp = dataProvider as Array;
+ n = dp.length;
+ for (i = 0; i < n; i++) {
+ opt = document.createElement('option') as HTMLOptionElement;
+ opt.text = dp[i];
+ select.add(opt, null);
+ }
+
+ select.size = n;
+
+ si = selectedIndex;
+ if (si < 0) {
+ select.value = null;
+ } else {
+ select.value = dp[si];
+ }
+
+ this.popup = popup;
+
+ popup.appendChild(select);
+ document.body.appendChild(popup);
+ }
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7853ef15/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Container.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Container.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Container.as
new file mode 100644
index 0000000..ee30b7f
--- /dev/null
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Container.as
@@ -0,0 +1,108 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.html
+{
+ import org.apache.flex.core.ContainerBase;
+ import org.apache.flex.core.IChrome;
+ import org.apache.flex.core.IContainer;
+ import org.apache.flex.core.IUIBase;
+ COMPILE::JS
+ {
+ import org.apache.flex.core.WrappedHTMLElement;
+ }
+ import org.apache.flex.events.Event;
+
+ [DefaultProperty("mxmlContent")]
+
+ /**
+ * The Container class implements a basic container for
+ * other controls and containers. The position and size
+ * of the children are determined by a layout while the size of
+ * a Container can either be determined by its children or by
+ * specifying an exact size in pixels or as a percentage of the
+ * parent element.
+ *
+ * This Container does not have a built-in scroll bar or clipping of
+ * its content should the content exceed the Container's boundaries. To
+ * have scroll bars and clipping, add the ScrollingView bead.
+ *
+ * While the container is relatively lightweight, it should
+ * generally not be used as the base class for other controls,
+ * even if those controls are composed of children. That's
+ * because the fundamental API of Container is to support
+ * an arbitrary set of children, and most controls only
+ * support a specific set of children.
+ *
+ * And that's one of the advantages of beads: that functionality
+ * used in a Container can also be used in a Control as long
+ * as that bead doesn't assume that its strand is a Container.
+ *
+ * For example, even though you can use a Panel to create the
+ * equivalent of an Alert control, the Alert is a
+ * control and not a Container because the Alert does not
+ * support an arbitrary set of children.
+ *
+ * @see org.apache.flex.html.beads.layout
+ * @see org.apache.flex.html.supportClasses.ScrollingViewport
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class Container extends ContainerBase
+ {
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function Container()
+ {
+ super();
+ }
+
+ /**
+ * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
+ */
+ COMPILE::JS
+ override protected function createElement():WrappedHTMLElement
+ {
+ element = document.createElement('div') as WrappedHTMLElement;
+
+ positioner = element;
+
+ // absolute positioned children need a non-null
+ // position value in the parent. It might
+ // get set to 'absolute' if the container is
+ // also absolutely positioned
+ positioner.style.position = 'relative';
+ element.flexjs_wrapper = this;
+
+ /*addEventListener('childrenAdded',
+ runLayoutHandler);
+ addEventListener('elementRemoved',
+ runLayoutHandler);*/
+
+ return element;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7853ef15/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ControlBar.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ControlBar.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ControlBar.as
new file mode 100644
index 0000000..da65539
--- /dev/null
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/ControlBar.as
@@ -0,0 +1,99 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.html
+{
+
+ import org.apache.flex.core.IBeadLayout;
+ import org.apache.flex.core.IChrome;
+ import org.apache.flex.core.IContainer;
+ import org.apache.flex.core.ValuesManager;
+ COMPILE::JS
+ {
+ import org.apache.flex.core.WrappedHTMLElement;
+ }
+
+ /**
+ * The ControlBar class is used within a Panel as a place to position
+ * additional controls. The ControlBar appears at the bottom of the
+ * org.apache.flex.html.Panel
+ * and is not part of the Panel's scrollable content area. The ControlBar
+ * is a Container and implements the org.apache.flex.core.IChrome interface, indicating that is
+ * outside of the Container's content area. The ControlBar uses the following
+ * beads:
+ *
+ * org.apache.flex.core.IBeadModel: the data model for the component.
+ * org.apache.flex.core.IMeasurementBead: helps determine the overlay size of the ControlBar for layout.
+ * org.apache.flex.core.IBorderBead: if present, displays a border around the component.
+ * org.apache.flex.core.IBackgroundBead: if present, displays a solid background below the ControlBar.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class ControlBar extends Container implements IContainer, IChrome
+ {
+ /**
+ * constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function ControlBar()
+ {
+ super();
+
+ className = "ControlBar";
+ }
+
+ /**
+ * @private
+ */
+ override public function addedToParent():void
+ {
+ super.addedToParent();
+
+ if( getBeadByType(IBeadLayout) == null ) {
+ var layout:IBeadLayout = new (ValuesManager.valuesImpl.getValue(this, "iBeadLayout")) as IBeadLayout;
+ addBead(layout);
+ }
+ }
+
+ /**
+ * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
+ */
+ COMPILE::JS
+ override protected function createElement():WrappedHTMLElement
+ {
+ element = document.createElement('div') as WrappedHTMLElement;
+ element.className = 'ControlBar';
+ element.style.display = 'inline';
+ typeNames = 'ControlBar';
+
+ positioner = element;
+ positioner.style.position = 'relative';
+ element.flexjs_wrapper = this;
+
+ return element;
+ }
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7853ef15/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DataGrid.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DataGrid.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DataGrid.as
new file mode 100644
index 0000000..8cba078
--- /dev/null
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DataGrid.as
@@ -0,0 +1,164 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.html
+{
+ import org.apache.flex.core.IBead;
+ import org.apache.flex.core.IDataGridModel;
+ import org.apache.flex.core.IDataGridPresentationModel;
+ import org.apache.flex.core.UIBase;
+ import org.apache.flex.html.beads.models.DataGridPresentationModel;
+
+ [Event(name="change", type="org.apache.flex.events.Event")]
+
+ /**
+ * The DataGrid class displays a collection of data using columns and rows. Each
+ * column represents a specific field in the data set; each row represents a specific
+ * datum. The DataGrid is a composite component built with a org.apache.flex.html.ButtonBar
+ * for the column headers and a org.apache.flex.html.List for each column. The DataGrid's
+ * view bead (usually org.apache.flex.html.beads.DataGridView) constructs these parts while
+ * itemRenderer factories contruct the elements to display the data in each cell.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class DataGrid extends UIBase
+ {
+ /**
+ * constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function DataGrid()
+ {
+ super();
+ }
+
+ /**
+ * The array of org.apache.flex.html.supportClasses.DataGridColumns used to
+ * describe each column.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get columns():Array
+ {
+ return IDataGridModel(model).columns;
+ }
+ public function set columns(value:Array):void
+ {
+ IDataGridModel(model).columns = value;
+ }
+
+ /**
+ * The object used to provide data to the org.apache.flex.html.DataGrid.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get dataProvider():Object
+ {
+ return IDataGridModel(model).dataProvider;
+ }
+ public function set dataProvider(value:Object):void
+ {
+ IDataGridModel(model).dataProvider = value;
+ }
+
+ /**
+ * The currently selected row.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get selectedIndex():int
+ {
+ return IDataGridModel(model).selectedIndex;
+ }
+
+ /**
+ * The DataGrid's presentation model
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get presentationModel():IDataGridPresentationModel
+ {
+ var beadMod:IBead = getBeadByType(IDataGridPresentationModel);
+ var presModel:IDataGridPresentationModel;
+
+ if (beadMod == null) {
+ presModel = new DataGridPresentationModel();
+ addBead(presModel);
+ } else {
+ presModel = beadMod as IDataGridPresentationModel;
+ }
+ return presModel;
+ }
+
+ /**
+ * The default height of each cell in every column
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get rowHeight():Number
+ {
+ return presentationModel.rowHeight;
+ }
+ public function set rowHeight(value:Number):void
+ {
+ presentationModel.rowHeight = value;
+ }
+
+ /**
+ * @private
+ * The DataGrid needs to know whenever its size is being changed so the columns can be
+ * be aligned properly, so the noEvent value must always be false.
+ */
+ override public function setWidth(value:Number, noEvent:Boolean=false):void
+ {
+ super.setWidth(value,false);
+ }
+
+ /**
+ * @private
+ * The DataGrid needs to know whenever its size is being changed so the columns can be
+ * be aligned properly, so the noEvent value must always be false.
+ */
+ override public function setHeight(value:Number, noEvent:Boolean=false):void
+ {
+ super.setHeight(value,false);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7853ef15/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DateChooser.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DateChooser.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DateChooser.as
new file mode 100644
index 0000000..33615ea
--- /dev/null
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DateChooser.as
@@ -0,0 +1,74 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.html
+{
+ import org.apache.flex.core.IDateChooserModel;
+ import org.apache.flex.core.UIBase;
+
+ /**
+ * The change event is dispatched when the selectedDate is changed.
+ */
+ [Event(name="change", type="org.apache.flex.events.Event")]
+
+ /**
+ * The DateChooser class is a component that displays a calendar.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class DateChooser extends UIBase
+ {
+ /**
+ * constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function DateChooser()
+ {
+ super();
+ className = "DateChooser";
+
+ // fix the DateChooser's size
+// width = 280;
+// height = 240;
+ }
+
+ /**
+ * The currently selected date (or null if no date has been selected).
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get selectedDate():Date
+ {
+ return IDateChooserModel(model).selectedDate;
+ }
+ public function set selectedDate(value:Date):void
+ {
+ IDateChooserModel(model).selectedDate = value;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7853ef15/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DateField.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DateField.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DateField.as
new file mode 100644
index 0000000..f46e453
--- /dev/null
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DateField.as
@@ -0,0 +1,95 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.html
+{
+ import org.apache.flex.core.IBead;
+ import org.apache.flex.core.IDateChooserModel;
+ import org.apache.flex.core.UIBase;
+ import org.apache.flex.core.ValuesManager;
+
+ /**
+ * The change event is dispatched when the selectedDate is changed.
+ */
+ [Event(name="change", type="org.apache.flex.events.Event")]
+
+ /**
+ * The DateField class provides an input field where a date can be entered
+ * and a pop-up calendar control for picking a date as an alternative to
+ * the text field.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class DateField extends UIBase
+ {
+ /**
+ * constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function DateField()
+ {
+ super();
+
+ className = "DateField";
+ }
+
+ /**
+ * The method called when added to a parent. The DateField class uses
+ * this opportunity to install additional beads.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ override public function addedToParent():void
+ {
+ var klass:* = ValuesManager.valuesImpl.getValue(this,"iFormatBead");
+ var bead:IBead = new klass() as IBead;
+ if (bead) {
+ addBead(bead);
+ }
+
+ super.addedToParent();
+ }
+
+ /**
+ * The currently selected date (or null if no date has been selected).
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get selectedDate():Date
+ {
+ return IDateChooserModel(model).selectedDate;
+ }
+ public function set selectedDate(value:Date):void
+ {
+ IDateChooserModel(model).selectedDate = value;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7853ef15/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DropDownList.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DropDownList.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DropDownList.as
new file mode 100644
index 0000000..dd069b2
--- /dev/null
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DropDownList.as
@@ -0,0 +1,235 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.html
+{
+ import org.apache.flex.core.ISelectionModel;
+
+ COMPILE::JS
+ {
+ import goog.events;
+ import org.apache.flex.core.WrappedHTMLElement;
+ import org.apache.flex.html.beads.models.ArraySelectionModel;
+ }
+
+ //--------------------------------------
+ // Events
+ //--------------------------------------
+
+ /**
+ * Dispatched when the user selects an item.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ [Event(name="change", type="org.apache.flex.events.Event")]
+
+ /**
+ * The DropDownList class implements the basic equivalent of
+ * the <code><select></code> tag in HTML.
+ * The default implementation only lets the user see and
+ * choose from an array of strings. More complex controls
+ * would display icons as well as strings, or colors instead
+ * of strings or just about anything.
+ *
+ * The default behavior only lets the user choose one and
+ * only one item. More complex controls would allow
+ * mutiple selection by not dismissing the dropdown as soon
+ * as a selection is made.
+ *
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class DropDownList extends Button
+ {
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function DropDownList()
+ {
+ COMPILE::JS
+ {
+ model = new ArraySelectionModel();
+ }
+ }
+
+ /**
+ * The data set to be displayed. Usually a simple
+ * array of strings. A more complex component
+ * would allow more complex data and data sets.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get dataProvider():Object
+ {
+ return ISelectionModel(model).dataProvider;
+ }
+
+ /**
+ * @private
+ * @flexjsignorecoercion HTMLOptionElement
+ * @flexjsignorecoercion HTMLSelectElement
+ */
+ public function set dataProvider(value:Object):void
+ {
+ ISelectionModel(model).dataProvider = value;
+ COMPILE::JS
+ {
+ var dp:HTMLOptionsCollection;
+ var i:int;
+ var n:int;
+ var opt:HTMLOptionElement;
+ var dd:HTMLSelectElement = element as HTMLSelectElement;
+
+ model.dataProvider = value;
+ dp = dd.options;
+ n = dp.length;
+ for (i = 0; i < n; i++) {
+ dd.remove(0);
+ }
+
+ var lf:String = labelField;
+ n = value.length;
+ for (i = 0; i < n; i++) {
+ opt = document.createElement('option') as HTMLOptionElement;
+ if (lf)
+ opt.text = value[i][lf];
+ else
+ opt.text = value[i];
+ dd.add(opt, null);
+ }
+
+ }
+ }
+
+ [Bindable("change")]
+ /**
+ * @copy org.apache.flex.core.ISelectionModel#selectedIndex
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get selectedIndex():int
+ {
+ return ISelectionModel(model).selectedIndex;
+ }
+
+ /**
+ * @private
+ * @flexjsignorecoercion HTMLSelectElement
+ */
+ public function set selectedIndex(value:int):void
+ {
+ ISelectionModel(model).selectedIndex = value;
+ COMPILE::JS
+ {
+ (element as HTMLSelectElement).selectedIndex = ISelectionModel(model).selectedIndex;
+ }
+ }
+
+
+ [Bindable("change")]
+ /**
+ * @copy org.apache.flex.core.ISelectionModel#selectedItem
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get selectedItem():Object
+ {
+ return ISelectionModel(model).selectedItem;
+ }
+
+ /**
+ * @private
+ * @flexjsignorecoercion HTMLSelectElement
+ */
+ public function set selectedItem(value:Object):void
+ {
+ ISelectionModel(model).selectedItem = value;
+ COMPILE::JS
+ {
+ (element as HTMLSelectElement).selectedIndex = ISelectionModel(model).selectedIndex;
+ }
+ }
+
+ /**
+ * The name of field within the data used for display. Each item of the
+ * data should have a property with this name.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get labelField():String
+ {
+ return ISelectionModel(model).labelField;
+ }
+ public function set labelField(value:String):void
+ {
+ ISelectionModel(model).labelField = value;
+ }
+
+ /**
+ * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
+ * @flexjsignorecoercion HTMLSelectElement
+ */
+ COMPILE::JS
+ override protected function createElement():WrappedHTMLElement
+ {
+ element = document.createElement('select') as WrappedHTMLElement;
+ (element as HTMLSelectElement).size = 1;
+ goog.events.listen(element, 'change',
+ changeHandler);
+
+ positioner = element;
+ positioner.style.position = 'relative';
+
+ element.flexjs_wrapper = this;
+
+ return element;
+ }
+
+ /**
+ * @flexjsignorecoercion HTMLSelectElement
+ */
+ COMPILE::JS
+ protected function changeHandler(event:Event):void
+ {
+ model.selectedIndex = (element as HTMLSelectElement).selectedIndex;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7853ef15/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/HContainer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/HContainer.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/HContainer.as
new file mode 100644
index 0000000..9f38883
--- /dev/null
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/HContainer.as
@@ -0,0 +1,61 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.html
+{
+ import org.apache.flex.core.ContainerBase;
+ import org.apache.flex.core.IChrome;
+ import org.apache.flex.core.IContainer;
+ import org.apache.flex.core.IUIBase;
+ import org.apache.flex.events.Event;
+
+ [DefaultProperty("mxmlContent")]
+
+ /**
+ * A Container that has a HorizontalLayout.
+ *
+ * This is effectively the same as the pattern
+ * <code>
+ * <basic:Container xmlns:basic="library://ns.apache.org/flexjs/basic">
+ * <basic:layout>
+ * <basic:HorizontalLayout />
+ * </basic:layout>
+ * </basic:Container>
+ * </code>
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class HContainer extends Container implements IContainer
+ {
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function HContainer()
+ {
+ super();
+ }
+ }
+}