You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by pe...@apache.org on 2018/04/09 20:10:13 UTC
[royale-asjs] branch feature/MXRoyale updated: DragSource.as Added
(#152)
This is an automated email from the ASF dual-hosted git repository.
pent pushed a commit to branch feature/MXRoyale
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
The following commit(s) were added to refs/heads/feature/MXRoyale by this push:
new 0182288 DragSource.as Added (#152)
0182288 is described below
commit 01822884537d4dc7c3e862fe57d8f59af8f2ccbb
Author: Alina <36...@users.noreply.github.com>
AuthorDate: Tue Apr 10 01:10:10 2018 +0500
DragSource.as Added (#152)
* DragSource.as copied FlexSDK->Royale
mx.core.DragSource copied FlexSDK->Royale
* Update DragSource.as
Update DragSource.as
* Update MXRoyaleClasses.as for DragSource
Update MXRoyaleClasses.as for mx.core.DragSource
---
.../MXRoyale/src/main/royale/MXRoyaleClasses.as | 1 +
.../MXRoyale/src/main/royale/mx/core/DragSource.as | 241 +++++++++++++++++++++
2 files changed, 242 insertions(+)
diff --git a/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as b/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
index 2568d4a..3e56f5a 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
@@ -37,6 +37,7 @@ internal class MXRoyaleClasses
import mx.containers.ControlBar; ControlBar;
import mx.controls.ToolTip; ToolTip;
import mx.controls.beads.ToolTipBead; ToolTipBead;
+ import mx.core.DragSource; DragSource;
import mx.events.DividerEvent; DividerEvent;
import mx.events.ScrollEvent; ScrollEvent;
import mx.events.MoveEvent; MoveEvent;
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/core/DragSource.as b/frameworks/projects/MXRoyale/src/main/royale/mx/core/DragSource.as
new file mode 100644
index 0000000..729e864
--- /dev/null
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/core/DragSource.as
@@ -0,0 +1,241 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.core
+{
+
+/**
+ * The DragSource class contains the data being dragged. The data can be in
+ * multiple formats, depending on the type of control that initiated the drag.
+ *
+ * <p>Each format of data is identified with a string. The
+ * <code>hasFormat()</code> method is used to determine if the object has
+ * data in that format. The <code>dataForFormat()</code> method is used
+ * to retrieve the data in the specified format.</p>
+ *
+ * <p>Data can be added directly using the <code>addData()</code> method,
+ * or indirectly using the <code>addHandler()</code> method. The
+ * <code>addHandler()</code> method registers a callback that will be called
+ * if the data is requested. This is useful for adding data in a non-native
+ * format that may require large computations or conversions. For example,
+ * if you have raw sound data you can add an MP3 format handler. The MP3
+ * conversion will only be done if the MP3 data is requested.</p>
+ *
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ * @royalesuppresspublicvarwarning
+ */
+public class DragSource
+{
+ /* include "../core/Version.as"; */
+
+ //--------------------------------------------------------------------------
+ //
+ // Constructor
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ public function DragSource()
+ {
+ super();
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Variables
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ */
+ private var dataHolder:Object = {};
+
+ /**
+ * @private
+ */
+ private var formatHandlers:Object = {};
+
+ //--------------------------------------------------------------------------
+ //
+ // Properties
+ //
+ //--------------------------------------------------------------------------
+
+ //----------------------------------
+ // formats
+ //----------------------------------
+
+ /**
+ * @private
+ * Storage for the formats property.
+ */
+ private var _formats:Array /* of String */ = [];
+
+ /**
+ * Contains the formats of the drag data, as an Array of Strings.
+ * Set this property using the <code>addData()</code>
+ * or <code>addHandler()</code> methods.
+ * The default value depends on data added to the DragSource object.
+ *
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ public function get formats():Array /* of String */
+ {
+ return _formats;
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Methods
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Adds data and a corresponding format String to the drag source.
+ * This method does not return a value.
+ *
+ * @param data Object that specifies the drag data.
+ * This can be any object, such as a String, a DataProvider, and so on.
+ *
+ * @param format String that specifies a label that describes
+ * the format for this data.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ public function addData(data:Object, format:String):void
+ {
+ _formats.push(format);
+
+ dataHolder[format] = data;
+ }
+
+ /**
+ * Adds a handler that is called when data
+ * for the specified format is requested.
+ * This is useful when dragging large amounts of data.
+ * The handler is only called if the data is requested.
+ * This method does not return a value.
+ *
+ * @param handler Function that specifies the handler
+ * called to request the data.
+ * This function must return the data in the specified format.
+ *
+ * @param format String that specifies the format for this data.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ public function addHandler(handler:Function,
+ format:String):void
+ {
+ _formats.push(format);
+
+ formatHandlers[format] = handler;
+ }
+
+ /**
+ * Retrieves the data for the specified format.
+ * If the data was added with the <code>addData()</code> method,
+ * it is returned directly.
+ * If the data was added with the <code>addHandler()</code> method,
+ * the handler function is called to return the data.
+ *
+ * @param format String that specifies a label that describes
+ * the format for the data to return. This string can be a custom value
+ * if you are creating a custom drop target with the <code>addData()</code> method.
+ * <p>List-based controls have predefined values
+ * for the <code>format</code> parameter. If the control that initiated the
+ * drag operation is a Tree, then the format is "treeItems" and the items
+ * implement the ITreeDataProvider interface. For all other List-based
+ * controls that have built-in drag and drop support, the format is "itemsByIndex" and the items
+ * implement the IDataProvider interface.</p>
+ *
+ * @return An Object
+ * containing the data in the requested format.
+ * If you drag multiple items, the returned value is an Array.
+ * For a List-based control, the returned value is always an Array,
+ * even if it contains a single item.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ public function dataForFormat(format:String):Object
+ {
+ var data:Object = dataHolder[format];
+ if (data)
+ return data;
+
+ if (formatHandlers[format])
+ return formatHandlers[format]();
+
+ return null;
+ }
+
+ /**
+ * Returns <code>true</code> if the data source contains
+ * the requested format; otherwise, it returns <code>false</code>.
+ *
+ * @param format String that specifies a label that describes the format
+ * for the data.
+ *
+ * @return <code>true</code> if the data source contains
+ * the requested format.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Royale 0.9.3
+ */
+ public function hasFormat(format:String):Boolean
+ {
+ var n:int = _formats.length;
+ for (var i:int = 0; i < n; i++)
+ {
+ if (_formats[i] == format)
+ return true;
+ }
+
+ return false;
+ }
+}
+
+}
--
To stop receiving notification emails like this one, please contact
pent@apache.org.