Transferred from the Adobe Open Source Subversion Repository

Revision: 1643
Author:   jimurphy@adobe.com
Date:     2008-05-09T18:33:13.556782Z

Log Message:
-----------
Merged 3.0.x revisions [1587,1601,1607] -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/lib/batik-LICENSE.txt</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/lib/commons-logging-NOTICE.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/lib/commons-logging-LICENSE.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/lib/commons-discovery-LICENSE.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/lib/xalan-NOTICE.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/lib/xalan-LICENSE.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/lib/mm-velocity-NOTICE.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/DragSource.as</path>
<path kind="file" action="M">/flex/sdk/trunk/lib/mm-velocity-LICENSE.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/lib/commons-collections-LICENSE.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/lib/batik-NOTICE.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/lib/xerces-LICENSE.txt</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1259103 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/core/DragSource.as
+++ frameworks/projects/framework/src/mx/core/DragSource.as
@@ -14,8 +14,7 @@

 /**
  *  The DragSource class contains the data being dragged. The data can be in
- *  multiple formats. For example, a Text component may have plain text,
- *  rich text and HTML data.
+ *  multiple formats, depending on the type of control that initiated the drag.
  *
  *
Each format of data is identified with a string. The
  *  hasFormat() method is used to determine if the object has
@@ -145,12 +144,19 @@
 	 *  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.
+	 *  the format for the data to return. This string can be a custom value
+	 *  if you are creating a custom drop target with the addData() method.
+	 *
List-based controls have predefined values
+	 *  for the format 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 "items" and the items
+	 *  implement the IDataProvider interface.

 	 *
 	 *  @return An Object
 	 *  containing the data in the requested format.
 	 *  If you drag multiple items, the returned value is an Array.
-	 *  For a list control, the returned value is always an Array,
+	 *  For a List-based control, the returned value is always an Array,
 	 *  even if it contains a single item.
 	 */
 	public function dataForFormat(format:String):Object
@@ -170,7 +176,7 @@
 	 *  the requested format; otherwise, it returns false.
 	 *
 	 *  @param format String that specifies a label that describes the format
-	 *  for the data.
+	 *  for the data.
 	 *
 	 *  @return true if the data source contains
 	 *  the requested format.


Transferred from the Adobe Open Source Subversion Repository

Revision: 5098
Author:   gauravj@adobe.com
Date:     2009-02-27T02:21:27.489350Z

Log Message:
-----------
Update action script files with asdoc version tags.

QE Notes: None.
Doc Notes: Please review and update as necessary.
tests: checkintests

Modified Paths:
--------------
151 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1262334 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/states/AddItems.as
+++ frameworks/projects/framework/src/mx/states/AddItems.as
@@ -25,6 +25,11 @@

 /**
  *  Documentation is not currently available.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
  */
 public class AddItems extends OverrideBase implements IOverride
 {
@@ -38,21 +43,41 @@

 	/**
 	 *  Documentation is not currently available.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10
+	 *  @playerversion AIR 1.5
+	 *  @productversion Flex 4
 	 */
     public static const FIRST:String = "first";

 	/**
 	 *  Documentation is not currently available.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10
+	 *  @playerversion AIR 1.5
+	 *  @productversion Flex 4
 	 */
     public static const LAST:String = "last";

 	/**
 	 *  Documentation is not currently available.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10
+	 *  @playerversion AIR 1.5
+	 *  @productversion Flex 4
 	 */
     public static const BEFORE:String = "before";

 	/**
 	 *  Documentation is not currently available.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10
+	 *  @playerversion AIR 1.5
+	 *  @productversion Flex 4
 	 */
     public static const AFTER:String = "after";

@@ -64,6 +89,11 @@

     /**
 	 *  Constructor.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10
+	 *  @playerversion AIR 1.5
+	 *  @productversion Flex 4
 	 */
 	public function AddItems()
     {
@@ -135,6 +165,11 @@
      *

      *
      *  @default "auto"
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get creationPolicy():String
     {
@@ -164,6 +199,11 @@
      *  object, that is, the component that has the states
      *  property, or <mx:states>tag that specifies the State
      *  object.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public var destination:Object;

@@ -188,6 +228,11 @@
      *
      *
Do not set this property if you set the itemsFactory
      *  property.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get items():*
     {
@@ -229,6 +274,11 @@
      *  This propety is the AddItems class default property.
      *  Setting this property with a creationPolicy of "all"
      *  is equivalent to setting a items property.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get itemsFactory():IDeferredInstance
     {
@@ -257,6 +307,11 @@
      *  object specified by the relativeTo property.
      *
      *  @default AddItems.LAST
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public var position:String = AddItems.LAST;

@@ -271,6 +326,11 @@
      *  target property is a style.
      *
      *  @default false
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public var isStyle:Boolean = false;

@@ -286,6 +346,11 @@
      *  instead of a collection of items (the default).
      *
      *  @default false
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public var isArray:Boolean = false;

@@ -299,6 +364,11 @@
      *  The name of the Array property that is being modified. If the destination
      *  property is a Group or Container, this property is optional. If not defined, the
      *  items will be added as children of the Group/Container.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public var propertyName:String;

@@ -312,6 +382,11 @@
      *  The object relative to which the child is added. This property is only
      *  used when the position property is AddItems.BEFORE
      *  or AddItems.AFTER.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public var relativeTo:Object;

@@ -329,6 +404,11 @@
      *  property value is "auto" or "all".
      *  If you call this method multiple times, the items instance is
      *  created only on the first call.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function createInstance():void
     {
@@ -341,6 +421,11 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function initialize():void
     {
@@ -350,6 +435,11 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function apply(parent:UIComponent):void
     {
@@ -402,6 +492,11 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function remove(parent:UIComponent):void
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 11602
Author:   klin@adobe.com
Date:     2009-11-10T06:35:11.564043Z

Log Message:
-----------
Fix for Button tooltips. TextBase dispatches an event when _isTruncated is set through the setIsTruncated() function. This allows ButtonBase to listen for the event and set the tooltip as necessary. If an explicit tooltip is set, then ButtonBase will not set a tooltip.

QE notes: No
Doc notes: No
Bugs: SDK-22260, SDK-23474, SDK-23657
Reviewer: Evtim
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RichText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1279506 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/components/Label.as
+++ frameworks/projects/spark/src/spark/components/Label.as
@@ -1266,7 +1266,7 @@
         }

         // The text was truncated.
-        _isTruncated = true;
+        setIsTruncated(true);
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 8031
Author:   egeorgie@adobe.com
Date:     2009-06-20T01:10:03.288554Z

Log Message:
-----------
Scrub the TODOs in the framework, convert to FIXMEs in the new convention and assigning an owner.

Doc Notes: N/A
Bugs: N/A
Reviewer: Deepa
tests: build, checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/StrokedElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/layouts/WheelLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateChooser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/FadeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/Timeline.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AddAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Scale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Rotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/mediaClasses/VolumeBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/DropDownController.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ModifiedCollectionView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/spark/ErrorSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Move.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/MoveInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SequenceInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectTargetFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/RemoveAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/utils/BitmapUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/spark/FocusSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/CompositeEffect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/MotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/MatrixUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/supportClasses/LayoutElementHelper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/mediaClasses/StreamingVideoSource.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/PropertyChanges.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ToggleButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/RemoveActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/pathSegments/LineSegment.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateTransitionShaderInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/Transform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/ObjectUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AddActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/Rect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/SimpleText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1287927 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/utils/BitmapUtil.as
+++ frameworks/projects/spark/src/spark/utils/BitmapUtil.as
@@ -56,7 +56,7 @@
         var m:Matrix = target.transform.concatenatedMatrix;
         // truncate position because the fractional offset will already be figured
         // into the filter placement onto the target.
-        // TODO (chaase): There are still some offset
+        // FIXME (chaase): There are still some offset
         // problems with objects inside of rotated parents, depending on the angle.
         if (m)
             m.translate(-(Math.floor(rectBounds.x)), -(Math.floor(rectBounds.y)));


Change 20080925-maxcarlson-d by maxcarlson@Bank on 2008-09-25 11:34:23 PDT
    in /Users/maxcarlson/openlaszlo/trunk-clean
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: swf9: prevent loaders from sending mouse events

New Features:

Bugs Fixed: LPP-7022 - SWF9: onmouseover and onmouseout events sent constantly

Technical Reviewer: hminsky
QA Reviewer: jcrowley

Details: Remove unused resourceLoaded property, set mouseEnabled to false on the loader object to prevent it from grabbing mouse events.

Tests: See LPP-7022

git-svn-id: d62bde4b5aa582fdf07c8d403e53e0399a7ed285@11247 fa20e4f9-1d0a-0410-b5f3-dc9c16b8b17c

--- WEB-INF/lps/lfc/kernel/swf9/LzSprite.as
+++ WEB-INF/lps/lfc/kernel/swf9/LzSprite.as
@@ -63,8 +63,6 @@
       // Cache for instantiated assets in a multiframe resource set
       var resourceCache:Array = null;

-      public var resourceLoaded:Boolean = false;
-
       /* private */ static const soundLoaderContext:SoundLoaderContext = new SoundLoaderContext(1000, true);
       /* private */ static const MP3_FPS:Number = 30;
       /* private */ var sound:Sound = null;
@@ -265,6 +263,7 @@
                       this.unload();
                   }
                   imgLoader = new Loader();
+                  imgLoader.mouseEnabled = false;// @devnote: see LPP-7022
                   this.resourceObj = imgLoader;
                   this.addChildAt(imgLoader, IMGDEPTH);
                   var info:LoaderInfo = imgLoader.contentLoaderInfo;
@@ -326,7 +325,6 @@
                       this.resourceheight = loader.height;
                   } catch (e) {
                   }
-                  this.resourceLoaded = true;
                   // Apply stretch if needed, now that we know the asset dimensions.
                   this.applyStretchResource();
                   // send events, including onload


Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

Modified Paths:
--------------
2361 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1258470 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/automation/Automation.as
+++ frameworks/projects/framework/src/mx/automation/Automation.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////

 package mx.automation
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 11095
Author:   eitan@ascender.com
Date:     2009-10-22T23:34:03.596935Z

Log Message:
-----------
Added changes in spark components to use AccImpl.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/CheckBox.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1279934 13f79535-47bb-0310-9956-ffa450edef68


F Fix minor bug in GeometrySanitizer

F Fix minor bug in GeometrySanitizer


removing last call from queue in fault handler

--- collect-flex/collect-flex-client/src/main/flex/org/openforis/collect/client/RemoteCallQueueProcessor.as
+++ collect-flex/collect-flex-client/src/main/flex/org/openforis/collect/client/RemoteCallQueueProcessor.as
@@ -54,13 +54,14 @@

 		protected function responderFaultHandler(event:FaultEvent, token:Object = null):void {
 			//after it fails 3 times, the system has to be stopped.
-			var remoteCall:RemoteCallWrapper = getHeadElement();
-			if(remoteCall.attempts >= _maxAttempts){
+			var call:RemoteCallWrapper = getHeadElement();
+			if(call.attempts >= _maxAttempts){
 				if(_faultHandler != null) {
 					_faultHandler(event);
-				}
+				}
+				_queue.pop();
 			} else {
-				remoteCall.reset();
+				call.reset();
 				sendHeadRemoteCall();
 			}
 		}


Float tests; utility functions for saner Date tests.

--- test/src/org/postgresql/pegasus/functional/SimpleQueryTest.as
+++ test/src/org/postgresql/pegasus/functional/SimpleQueryTest.as
@@ -1,7 +1,11 @@
 package org.postgresql.pegasus.functional {

-    import org.flexunit.Assert;
-    import flexunit.framework.Assert;
+    import org.flexunit.asserts.assertTrue;
+    import org.flexunit.asserts.assertNull;
+    import org.hamcrest.assertThatBoolean;
+    import org.flexunit.asserts.fail;
+    import org.postgresql.util.Assert;
+    import org.postgresql.util.NumberUtil;
     import org.postgresql.util.DateUtil;
     import org.postgresql.db.IColumn;
     import org.postgresql.db.event.QueryCompletionEvent;
@@ -74,6 +78,57 @@
         }

         [Test(async,timeout=1000)]
+        public function testSelectFloat():void {
+            var verifyFn:Function = function(e:QueryResultEvent) : void {
+                assertEquals(2, e.columns.length);
+                assertEquals('float', IColumn(e.columns[0]).name);
+                assertEquals('double', IColumn(e.columns[1]).name);
+
+                assertEquals(11, e.data.length);
+
+                assertWithin(-Infinity, e.data[0]['float'], 0);
+                assertWithin(-Infinity, e.data[0]['double'], 0);
+                assertWithin(-NumberUtil.FLOAT_MAX_VALUE, e.data[1]['float'], 1e34);
+                assertWithin(-Number.MAX_VALUE, e.data[1]['double'], 1e300);
+                assertWithin(-1, e.data[2]['float']);
+                assertWithin(-1, e.data[2]['double']);
+                assertWithin(-NumberUtil.FLOAT_MIN_NORMAL, e.data[3]['float'], NumberUtil.FLOAT_MIN_NORMAL);
+                assertWithin(-NumberUtil.DOUBLE_MIN_NORMAL, e.data[3]['double'], NumberUtil.DOUBLE_MIN_NORMAL);
+                // N.B.: We don't technically get a negative zero here, but 0 == -0 for as3; we leave
+                // the test regardless since this should also work
+                assertWithin(-0, e.data[4]['float'], 0);
+                assertWithin(-0, e.data[4]['double'], 0);
+                assertWithin(0, e.data[5]['float'], 0);
+                assertWithin(0, e.data[5]['double'], 0);
+                assertWithin(NumberUtil.FLOAT_MIN_NORMAL, e.data[6]['float'], NumberUtil.FLOAT_MIN_NORMAL);
+                assertWithin(NumberUtil.DOUBLE_MIN_NORMAL, e.data[6]['double'], NumberUtil.DOUBLE_MIN_NORMAL);
+                assertWithin(1, e.data[7]['float']);
+                assertWithin(1, e.data[7]['double']);
+                assertWithin(NumberUtil.FLOAT_MAX_VALUE, e.data[8]['float'], 1e34);
+                assertWithin(Number.MAX_VALUE, e.data[8]['double'], 1e300);
+                assertWithin(Infinity, e.data[9]['float'], 0);
+                assertWithin(Infinity, e.data[9]['double'], 0);
+                assertWithin(NaN, e.data[10]['float'], 0);
+                assertWithin(NaN, e.data[10]['double'], 0);
+            };
+
+            var sql:String = "select float, double from (values" +
+                    "('-infinity'::float4, '-infinity'::float8)," +
+                    "((-" + NumberUtil.FLOAT_MAX_VALUE.toPrecision(20) + ")::float4, (-" + Number.MAX_VALUE.toPrecision(20) + ")::float8)," +
+                    "((-1)::float4, (-1)::float8)," +
+                    "((-" + NumberUtil.FLOAT_MIN_NORMAL.toPrecision(20) + ")::float4, (-" + NumberUtil.DOUBLE_MIN_NORMAL.toPrecision(20) + ")::float8)," +
+                    "((-0)::float4, (-0)::float8)," +
+                    "(0::float4, 0::float8)," +
+                    "((" + NumberUtil.FLOAT_MIN_NORMAL.toPrecision(20) + ")::float4, (" + NumberUtil.DOUBLE_MIN_NORMAL.toPrecision(20) + ")::float8)," +
+                    "(1::float4, 1::float8)," +
+                    "((" + NumberUtil.FLOAT_MAX_VALUE.toPrecision(20) + ")::float4, (" + Number.MAX_VALUE.toPrecision(20) + ")::float8)," +
+                    "('infinity'::float4, 'infinity'::float8)," +
+                    "('NaN'::float4, 'NaN'::float8)" +
+                ") as vals(float, double)";
+            runQuery(sql, verifyFn);
+        }
+
+        [Test(async,timeout=1000)]
         public function testSelectDate():void {
             var verifyFn:Function = function(e:QueryResultEvent) : void {
                 assertEquals(3, e.columns.length);
@@ -83,14 +138,35 @@

                 assertEquals(1, e.data.length);

-                assertEquals(new Date(DateUtil.MIN_DATE_TICKS).time, e.data[0]['neg_inf'].time);
-                assertEquals(new Date(1970, 0, 1).time, e.data[0]['epoch'].time);
-                assertEquals(new Date(DateUtil.MAX_DATE_TICKS).time, e.data[0]['inf'].time);
+                assertDatesEqual(new Date(DateUtil.MIN_DATE_TICKS), e.data[0]['neg_inf']);
+                assertDatesEqual(new Date(1970, 0, 1), e.data[0]['epoch']);
+                assertDatesEqual(new Date(DateUtil.MAX_DATE_TICKS), e.data[0]['inf']);
             };

             // TODO: more dates
             var sql:String = "select '-infinity'::timestamptz as neg_inf, '1970-01-01 00:00:00'::timestamptz as epoch, 'infinity'::timestamptz as inf";
             runQuery(sql, verifyFn);
         }
+
+        // TODO: these should be pulled out as more general, but the way asserts work
+        // in flexunit, this is a little tricky
+        private static function assertDatesEqual(expected:Date, actual:Date):void {
+            if (expected == null) {
+                assertNull("Expected null; got " + actual, false);
+            } else {
+                assertEquals("Expected " + expected + "; got " + actual, expected.time, actual.time);
+            }
+        }
+
+        private static function assertWithin(expected:Number, actual:Number, tolerance:Number=1e-10):void {
+            if (isFinite(expected)) {
+                assertTrue("Expected " + expected.toPrecision(20) + " +/-" + tolerance + "; got " + actual.toPrecision(20) +
+                    " (an error of " + Math.abs(expected - actual) + ")", Math.abs(expected - actual) <= tolerance);
+            } else {
+                assertTrue("Expected " + expected.toPrecision(20) + "; got " + actual.toPrecision(20),
+                    !isFinite(actual) && isNaN(expected) == isNaN(actual) && expected > 0 == actual > 0);
+
+            }
+        }
     }
 }


Added missing import.

Added missing import.

git-svn-id: a3e1eb16dde062992de22c830ed8045c8013209a@972 c613c5cb-e716-0410-b11b-feb51c14d237


Transferred from the Adobe Open Source Subversion Repository

Revision: 19722
Author:   egeorgie@adobe.com
Date:     2011-01-12T00:53:24.336848Z

Log Message:
-----------
Fix popups/tooltips and scaling bugs:
Slider tooltip renders far above under 2.0 scaling - http://bugs.adobe.com/jira/browse/SDK-28833
Mobile HSliderSkin dataTip sometimes stops following the thumb all the way to the right edge - http://bugs.adobe.com/jira/browse/SDK-28762
When the app is scaled, DropDownList shows the list at wrong place - http://bugs.adobe.com/jira/browse/SDK-28818

In this change:
- update popup/tooltip positioning code to work with scaling.

QE notes:  make another test pass on tooltips/pop-ups
Doc notes:
Bugs: SDK-28833, SDK-28762, SDK-28818
Reviewer: Alex
Tests run: full mustella cyclone
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/treeClasses/TreeItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/VSlider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/listClasses/TileListItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/ISystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/DragManagerImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/utils/BitmapUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/DataGridEditor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/HSlider.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/PopUpUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/MatrixUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/listClasses/ListItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/mx/controls/dataGridClasses/FTEDataGridItemRenderer.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1279887 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/components/PopUpAnchor.as
+++ frameworks/projects/spark/src/spark/components/PopUpAnchor.as
@@ -357,7 +357,7 @@
     protected function calculatePopUpPosition():Point
     {
         // This implementation doesn't handle rotation
-        var matrix:Matrix = MatrixUtil.getConcatenatedMatrix(this);
+        var matrix:Matrix = MatrixUtil.getConcatenatedMatrix(this, true /*excludingRootSprite*/);

         var regPoint:Point = new Point();

@@ -462,7 +462,7 @@

         if (layoutDirection == LayoutDirection.RTL)
             regPoint.x += popUpBounds.width;
-        return MatrixUtil.getConcatenatedComputedMatrix(this).transformPoint(regPoint);
+        return MatrixUtil.getConcatenatedComputedMatrix(this, true /*excludingRootSprite*/).transformPoint(regPoint);
     }

     //--------------------------------------------------------------------------
@@ -547,20 +547,13 @@
         }

         var popUpAsDisplayObject:DisplayObject = popUp as DisplayObject;
-
-        var globalTL:Point = matrix.transformPoint(registrationPoint);
-        registrationPoint.y += popUpAsDisplayObject.height;
-        var globalBL:Point = matrix.transformPoint(registrationPoint);
-        registrationPoint.x += popUpAsDisplayObject.width;
-        var globalBR:Point = matrix.transformPoint(registrationPoint);
-        registrationPoint.y -= popUpAsDisplayObject.height;
-        var globalTR:Point = matrix.transformPoint(registrationPoint);
-        registrationPoint.x -= popUpAsDisplayObject.width;
-
-        bounds.left = Math.min(globalTL.x, globalBL.x, globalBR.x, globalTR.x);
-        bounds.right = Math.max(globalTL.x, globalBL.x, globalBR.x, globalTR.x);
-        bounds.top = Math.min(globalTL.y, globalBL.y, globalBR.y, globalTR.y);
-        bounds.bottom = Math.max(globalTL.y, globalBL.y, globalBR.y, globalTR.y);
+
+        var topLeft:Point = registrationPoint.clone();
+        var size:Point = MatrixUtil.transformBounds(popUpAsDisplayObject.width, popUpAsDisplayObject.height, matrix, topLeft);
+        bounds.left = topLeft.x;
+        bounds.top = topLeft.y;
+        bounds.width = size.x;
+        bounds.height = size.y;
     }

     /**
@@ -571,7 +564,7 @@
         if (!popUpIsDisplayed)
             return;

-        var m:Matrix = MatrixUtil.getConcatenatedMatrix(this);
+        var m:Matrix = MatrixUtil.getConcatenatedMatrix(this, true /*excludingRootSprite*/);

         // Set the dimensions explicitly because UIComponents always set themselves to their
         // measured / explicit dimensions if they are parented by the SystemManager.


- bugfix: TooltipManager now ignores children of nested elements

git-svn-id: e38e7cdd6ace00d8230583a2d3b43e9a55f5c011@810 bc4816be-ef27-423a-9c4d-fc420be121a2

--- src/reprise/core/TooltipManager.as
+++ src/reprise/core/TooltipManager.as
@@ -77,8 +77,12 @@

 		protected function updateTooltipForElement(mousedElement:DisplayObject):void
 		{
-			var element:UIObject =
-				findTooltipDataProviderForElement(mousedElement);
+			var element:UIObject = findTooltipDataProviderForElement(mousedElement);
+			//ignore children of nested documents
+			if (element.document != m_rootView)
+			{
+				return;
+			}

 			var currentTooltipData:Object = m_tooltip ? m_tooltip.data() : null;
 			var newTooltipData:Object = element ? element.tooltipData() : null;


- bugfix: URL parsing regexp was broken for urls containing no path behind the host. Example: For the URL "xmlsocket://localhost", "localhost" was treated as a path, not a host

git-svn-id: e38e7cdd6ace00d8230583a2d3b43e9a55f5c011@795 bc4816be-ef27-423a-9c4d-fc420be121a2

--- src/reprise/data/URL.as
+++ src/reprise/data/URL.as
@@ -21,7 +21,7 @@
 														//protocol is given
 				'(?P<protocol>[a-z]*(?=[:]//))' +		//match protocol
 				'[:]//(?P<credentials>[^@]*(?=@))?@?' + //match user credentials
-				'(?P<host>[^/:]*(?=[:/]))?' + 			//match host
+				'(?P<host>[^/:]*(?=[:/]|$))?' + 			//match host
 				'[:]?(?P<port>(?<=[:])[0-9]*)?' + 		//match port
 			'|)' + 										//end absolute path stuff
 			'(?P<path>[^?]+)?' +						//match relative path on server


Fix problem in last change.  Not sure why it didn't blow up on every SWF.

git-svn-id: 7d913817b0a978d84de757191e4bce372605a781@1389624 13f79535-47bb-0310-9956-ffa450edef68

--- mustella/as3/src/mustella/UnitTester.as
+++ mustella/as3/src/mustella/UnitTester.as
@@ -1212,13 +1212,22 @@
 	}

 	public static var pendingOutput:int = 0;
+	public static var frameWaitCount:int = 0;

-	private static function waitForOutput(event:Event):void
+	private static function waitForOutput():void
 	{
 		if (pendingOutput > 0)
 		{
-			trace("waiting on pending output", pendingOutput);
-			callback = waitForOutput;
+			if (frameWaitCount > 3) // wait about 3 frames to see if results come back
+			{
+				setTimeout(exit, UnitTester.coverageTimeout);
+			}
+			else
+			{
+				trace("waiting on pending output", pendingOutput);
+				callback = waitForOutput;
+				frameWaitCount++;
+			}
 		}
 		else
 			setTimeout(exit, UnitTester.coverageTimeout);


indent

indent

--- AS-Spray.as
+++ AS-Spray.as
@@ -1,40 +1,41 @@
-package
-{
-	import flash.display.*;
-	import flash.text.*;
-	import flash.system.*;
-	import flash.geom.*;
-	import flash.external.*;
-	import flash.events.*;
-
-	public class Main extends Sprite
-	{
-		private var spray:Array
-		public function AsSpray():void
-		{
-			var block:Vector.<Object> = null;
-			var size:uint = 100000;
-			var alignment:uint = 0x1000;
-			var index:uint = 0;
-			spray = new Array();
-			for(index = 0; index < size; index++)
-			{
-				spray[index] = new Vector.<uint>((alignment-0x8)/0x4);
-				spray[index][0]=0xAAAAAAAA;
-				spray[index][1]=0xBBBBBBBB;
-				spray[index][2]=0xCCCCCCCC;
-				spray[index][3]=0xDDDDDDDD;
-			}
-		}
-		public function Leak():void
-		{
-			//perform ASLR bypass with 1 object's length modified
-		}
-		public function Main():void
-		{
-			AsSpray();
-			ExternalInterface.call("check","Vector Spray done");
-			ExternalInterface.addCallback("Corruption",Leak);
-		}
-	}
-}
+package
+{
+	import flash.display.*;
+	import flash.text.*;
+	import flash.system.*;
+	import flash.geom.*;
+	import flash.external.*;
+	import flash.events.*;
+	public class Main extends Sprite
+  	{
+  		private var spray:Array;
+		private var size:uint;
+		private var alignment:uint;
+		public function AsSpray():void
+    		{
+			var block:Vector.<Object> = null;
+			var index:uint = 0;
+			size = 100000;
+			alignment = 0x1000;
+			spray = new Array();
+			for(index = 0; index < size; index++)
+			{
+				spray[index] = new Vector.<uint>((alignment-0x8)/0x4);
+				spray[index][0]=0xAAAAAAAA;
+				spray[index][1]=0xBBBBBBBB;
+				spray[index][2]=0xCCCCCCCC;
+				spray[index][3]=0xDDDDDDDD;
+			}
+		}
+		public function Leak():void
+		{
+			//perform ASLR bypass with 1 object's length modified
+		}
+		public function Main():void
+		{
+			AsSpray();
+			ExternalInterface.call("check","Vector Spray done");
+			ExternalInterface.addCallback("Corruption",Leak);
+		}
+  	}
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

Modified Paths:
--------------
2361 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1253189 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/charts/src/mx/charts/renderers/CandlestickItemRenderer.as
+++ frameworks/projects/charts/src/mx/charts/renderers/CandlestickItemRenderer.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////

 package mx.charts.renderers
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 6378
Author:   chaase@adobe.com
Date:     2009-04-29T14:48:38.319514Z

Log Message:
-----------
Fixed problem found by Mustella Transition tests after replacing Move effect by transform effect version. We were incorrectly trying to animate constraints (%width/%height) whose state values were NaNs. one-liner fix to avoid creating animations on NaN-valued constraints.

QE Notes: tests/mx/states/Transition now passes
Doc Notes: None
Bugs: sdk-20824
Reviewer: Glenn
tests: checkintests, tests/mx/states/Transition

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1284262 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/effects/supportClasses/AnimateInstance.as
+++ frameworks/projects/spark/src/spark/effects/supportClasses/AnimateInstance.as
@@ -626,6 +626,7 @@
         var endVal:* = propertyChanges.end[constraintName];
         if (startVal !== undefined && endVal !== undefined &&
             startVal !== null && endVal !== null &&
+            !isNaN(startVal) && !isNaN(endVal) &&
             startVal != endVal)
         {
             motionPaths.push(new SimpleMotionPath(constraintName, startVal, endVal));


switched fp10 code back to fp9 player compliant code.  We should make a fp10 branch at some point.

--- src/as3isolib/display/renderers/DefaultSceneLayoutRenderer.as
+++ src/as3isolib/display/renderers/DefaultSceneLayoutRenderer.as
@@ -32,7 +32,6 @@
 	import as3isolib.bounds.IBounds;
 	import as3isolib.core.IIsoDisplayObject;
 	import as3isolib.core.as3isolib_internal;
-	import as3isolib.core.IsoDisplayObject;
 	import as3isolib.display.scene.IIsoScene;

 	import flash.utils.getTimer;
@@ -59,10 +58,10 @@

 			// NOTE - Flash player 10 only
 			// Using scene.children because they are in last display order, scene.displayListChildren are unordered and fully resorted every time!
-			var sortedChildren:Vector.<IIsoDisplayObject> = Vector.<IIsoDisplayObject>(scene.children);
+			//var sortedChildren:Vector.<IIsoDisplayObject> = Vector.<IIsoDisplayObject>(scene.children);

 			// Flash player 9
-			//var sortedChildren:Array = scene.children.slice();
+			var sortedChildren:Array = scene.children.slice();

 			// Ocean sort, from http://cadaver.homeftp.net/rants/sprite.htm
 			// Starting from offset 1, make sure [N] >= [N-1].  If not, keep pushing N back in the list until it's >= the new [N-1]


fix missing ; at eol

fix missing ; at eol

--- src/aerys/minko/render/shader/Shader.as
+++ src/aerys/minko/render/shader/Shader.as
@@ -40,7 +40,7 @@
 		private var _enabled				: Boolean						= true;
 		private var _defaultSettings		: ShaderSettings				= new ShaderSettings(null);

-		private var _instances				: Vector.<ShaderInstance>		= new <ShaderInstance>[]
+		private var _instances				: Vector.<ShaderInstance>		= new <ShaderInstance>[];
 		private var _numActiveInstances		: uint							= 0;
 		private var _numRenderedInstances	: uint							= 0;
 		private var _settings				: Vector.<ShaderSettings>		= new <ShaderSettings>[];


Invalidate function on Context3DResource

--- src/aerys/minko/render/resource/Context3DResource.as
+++ src/aerys/minko/render/resource/Context3DResource.as
@@ -387,5 +387,38 @@
 			return this;
 		}

+		public function invalidate() : void
+		{
+			_depthMask = !_depthMask;
+			_passCompareMode = null;
+
+			_triangleCulling = null;
+
+			_blendingSource = null;
+			_blendingDestination = null;
+
+			_colorMaskRed = !_colorMaskRed;
+			_colorMaskGreen = !_colorMaskGreen;
+			_colorMaskBlue = !_colorMaskBlue;
+			_colorMaskAlpha = !_colorMaskAlpha;
+
+			_rectangle = null;
+
+			for (var i : int = 0; i < _textures.length; ++i)
+				_textures[i] = null;
+
+			for (i = 0; i < _vertexBuffers.length; ++i)
+				_vertexBuffers[i] = null;
+
+			_stencilRefNum = 0;
+			_stencilReadMask = 0;
+			_stencilWriteMask = 0;
+
+			_stencilTriangleFace = null;
+			_stencilCompareMode = null;
+			_stencilActionOnBothPass = null;
+			_stencilActionOnDepthFail = null;
+			_stencilActionOnDepthPassStencilFail = null;
+		}
 	}
 }


Fixing whitespace

Fixing whitespace

--- src/org/robotlegs/utilities/undoablecommand/CommandHistory.as
+++ src/org/robotlegs/utilities/undoablecommand/CommandHistory.as
@@ -1,7 +1,5 @@
 package org.robotlegs.utilities.undoablecommand
 {
-
-
 	import org.robotlegs.utilities.undoablecommand.interfaces.*;

 	public class CommandHistory
@@ -105,7 +103,6 @@
 			return _historyStack.length;
 		}

-
 		/**
 		 * Push a command onto the history stack
 		 * @return position in history stack after this operation


Add missing hasDefinition call.

Add missing hasDefinition call.

git-svn-id: 7d913817b0a978d84de757191e4bce372605a781@1375290 13f79535-47bb-0310-9956-ffa450edef68

--- mustella/as3/src/mustella/UnitTester.as
+++ mustella/as3/src/mustella/UnitTester.as
@@ -307,13 +307,15 @@
 			_root.addEventListener("activate", activateBlockingHandler, true);
 		}

-		g = Class(appdom.getDefinition("spark.components.supportClasses.RichEditableTextContainerManager"));
-		if (g)
-		{
-			var q:QName = new QName(mx_internal, "hideCursor");
-			g[q] = true;
-		}
-
+		if (appdom.hasDefinition("spark.components.supportClasses.RichEditableTextContainerManager"))
+		{
+			g = Class(appdom.getDefinition("spark.components.supportClasses.RichEditableTextContainerManager"));
+			if (g)
+			{
+				var q:QName = new QName(mx_internal, "hideCursor");
+				g[q] = true;
+			}
+		}
 	}

 	/**


Transferred from the Adobe Open Source Subversion Repository

Revision: 22857
Author:   deeptika@adobe.com
Date:     2011-10-04T12:33:07.150663Z

Log Message:
-----------
Fixing build warnings by removing duplicate variable definitions.

QE notes:
Doc notes:
Bugs: FLEXDMV-2664 (Fix build warnings in trunk)
Reviewer:
Tests run: Checkintests
Is noteworthy for integration:

Modified Paths:
--------------
/private/flex/sdk/branches/4.y/frameworks/projects/automation_dmv/src/mx/automation/delegates/advancedDataGrid/AdvancedDataGridAutomationImpl.as

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1251821 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/automation_dmv/src/mx/automation/delegates/advancedDataGrid/AdvancedDataGridAutomationImpl.as
+++ frameworks/projects/automation_dmv/src/mx/automation/delegates/advancedDataGrid/AdvancedDataGridAutomationImpl.as
@@ -532,10 +532,12 @@
 				{
 					// inedx is valid
 					var listItems:Array = grid1.rendererArray;
+					var item:IListItemRenderer;
+					var itemDelegate:IAutomationObject;
 					if ((listItems[newRowIndex] as Array).length > columIndex)
 					{
-						var item:IListItemRenderer = listItems[newRowIndex][columIndex];
-						var itemDelegate:IAutomationObject = item as IAutomationObject;
+						item = listItems[newRowIndex][columIndex];
+						itemDelegate = item as IAutomationObject;
 						val= (itemDelegate.automationName);
 					}
 					else
@@ -544,11 +546,11 @@
 						posChanged = true;
 						var currentHScrollpos:Number = grid1.horizontalScrollPosition;
 						var newColIndex:int = columIndex-currentHScrollpos;
-						var listItems:Array = grid1.rendererArray;
+						listItems = grid1.rendererArray;
 						if ((listItems[newRowIndex] as Array).length > newColIndex)
 						{
-							var item:IListItemRenderer = listItems[newRowIndex][newColIndex];
-							var itemDelegate:IAutomationObject = item as IAutomationObject;
+							item = listItems[newRowIndex][newColIndex];
+							itemDelegate = item as IAutomationObject;
 							val= (itemDelegate.automationName);
 						}
 					}


Transferred from the Adobe Open Source Subversion Repository

Revision: 22748
Author:   smgilson@adobe.com
Date:     2011-09-27T18:42:22.924602Z

Log Message:
-----------
ASDoc fixes for watson bug #2983829

QE notes:
Doc notes:
Bugs:
Reviewer:
Tests run: checkintests
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/automation_flashflexkit/src/mx/automation/delegates/flashflexkit/ContainerMovieClipAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/automation_flashflexkit/src/mx/automation/delegates/flashflexkit/UIMovieClipAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/automation_flashflexkit/src/mx/automation/delegates/flashflexkit/FlexContentHolderAutomationImpl.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1251962 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/automation_flashflexkit/src/mx/automation/delegates/flashflexkit/UIMovieClipAutomationImpl.as
+++ frameworks/projects/automation_flashflexkit/src/mx/automation/delegates/flashflexkit/UIMovieClipAutomationImpl.as
@@ -12,545 +12,541 @@

 package mx.automation.delegates.flashflexkit
 {
-	import flash.display.DisplayObject;
-	import flash.display.DisplayObjectContainer;
-	import flash.events.Event;
-	import flash.events.EventDispatcher;
-	import flash.events.FocusEvent;
-	import flash.events.KeyboardEvent;
-	import flash.events.MouseEvent;
-	import flash.geom.Point;
-	import flash.ui.Keyboard;
-
-	import mx.automation.Automation;
-	import mx.automation.IAutomationManager;
-	import mx.automation.IAutomationObject;
-	import mx.automation.IAutomationObjectHelper;
-	import mx.automation.delegates.DragManagerAutomationImpl;
-	import mx.automation.events.AutomationDragEvent;
-	import mx.core.EventPriority;
-	import mx.core.IUIComponent;
-	import mx.core.UIComponent;
-	import mx.core.UIComponentGlobals;
-	import mx.core.mx_internal;
-	import mx.events.EffectEvent;
-	import mx.events.FlexEvent;
-	import mx.resources.IResourceManager;
-	import mx.resources.ResourceManager;
-	import mx.flash.UIMovieClip;
-	use namespace mx_internal;
-
-	[Mixin]
-	/**
-	 *
-	 *  Defines methods and properties required to perform instrumentation for the
-	 *  UIMovieclip control.
-	 *
-	 *  @see mx.flash.UIMovieClip;
-	 *
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-
-
-
-	public class UIMovieClipAutomationImpl extends EventDispatcher
-		implements IAutomationObject
-	{
-		include "../../../core/Version.as";
-
-		//--------------------------------------------------------------------------
-		//
-		//  Class methods
-		//
-		//--------------------------------------------------------------------------
-
-		/**
-		 *  Registers the delegate class for a component class with automation manager.
-		 *  @param root DisplayObject object representing the application root.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 9
-		 *  @playerversion AIR 1.1
-		 *  @productversion Flex 3
-		 */
-		public static function init(root:DisplayObject):void
-		{
-			Automation.registerDelegateClass(UIMovieClip, UIMovieClipAutomationImpl);
-		}
-
-		//--------------------------------------------------------------------------
-		//
-		//  Constructor
-		//
-		//--------------------------------------------------------------------------
-
-		/**
-		 *  Constructor.
-		 *
-		 *  @param obj UIComponent object to be automated.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 9
-		 *  @playerversion AIR 1.1
-		 *  @productversion Flex 3
-		 */
-		public function UIMovieClipAutomationImpl(obj:UIMovieClip)
-		{
-			super();
-
-			movieClip = obj;
-
-
-			obj.addEventListener(MouseEvent.CLICK, mouseClickHandler, false, EventPriority.DEFAULT+1, true);
-
-			recordClick = true;
-		}
-
-		//--------------------------------------------------------------------------
-		//
-		//  Variables
-		//
-		//--------------------------------------------------------------------------
-
-		/**
-		 *  A reference to the object which manages all of the application's localized resources.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 9
-		 *  @playerversion AIR 1.1
-		 *  @productversion Flex 3
-		 */
-		protected var resourceManager:IResourceManager =
-			ResourceManager.getInstance();
-
-		/**
-		 *  @private
-		 */
-		private var effectsPlaying:Boolean = false;
-
-		/**
-		 *  @private
-		 */
-		private var layoutPending:Boolean = false;
-
-		//--------------------------------------------------------------------------
-		//
-		//  Properties
-		//
-		//--------------------------------------------------------------------------
-
-		//---------------------------------
-		//  automationEnabled
-		//---------------------------------
-		public function get automationEnabled():Boolean
-		{
-			trace("Reading should not be done here");
-			return false;
-		}
-
-		//---------------------------------
-		//  automationOwner
-		//---------------------------------
-		public function get automationOwner():DisplayObjectContainer
-		{
-			return null;
-		}
-
-		//---------------------------------
-		//  automationParent
-		//---------------------------------
-		public function get automationParent():DisplayObjectContainer
-		{
-			return null;
-		}
-
-		//---------------------------------
-		//  automationVisible
-		//---------------------------------
-		public function get automationVisible():Boolean
-		{
-			trace("Reading should not be done here");
-			return false;
-		}
-
-		//----------------------------------
-		//  automationName
-		//----------------------------------
-
-		/**
-		 *  @inheritDoc
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 9
-		 *  @playerversion AIR 1.1
-		 *  @productversion Flex 3
-		 */
-		public function get automationName():String
-		{
-			if (movieClip is DisplayObject)
-				if(DisplayObject(movieClip).name) return (DisplayObject(movieClip).name);
-
-			return movieClip.id;
-		}
-
-		/**
-		 *  @private
-		 */
-		public function set automationName(value:String):void
-		{
-			uiAutomationObject.automationName = value;
-		}
-
-		//----------------------------------
-		//  automationValue
-		//----------------------------------
-
-		/**
-		 *  @inheritDoc
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 9
-		 *  @playerversion AIR 1.1
-		 *  @productversion Flex 3
-		 */
-		public function get automationValue():Array
-		{
-			return [ automationName ];
-		}
-
-
-		//------------- ---------------------
-		//  recordClick
-		//----------------------------------
-
-		/**
-		 *  @private
-		 *  Storage for the recordClick property.
-		 */
-		private var _recordClick:Boolean = false;
-
-		/**
-		 *  @private
-		 *  Indicates whether this component should dispatch all click
-		 *  events as replayable interaction
-		 */
-		public function get recordClick():Boolean
-		{
-			return _recordClick;
-		}
-
-		/**
-		 *  @private
-		 */
-		public function set recordClick(val:Boolean):void
-		{
-			// we don't want to add/remove the event listeners multiple times
-			if (_recordClick != val)
-			{
-				_recordClick = val;
-				if (val)
-					movieClip.addEventListener(MouseEvent.CLICK, mouseClickHandler);
-				else
-					movieClip.removeEventListener(MouseEvent.CLICK, mouseClickHandler);
-			}
-		}
-
-		/**
-		 *  @private
-		 */
-		public function get showInAutomationHierarchy():Boolean
-		{
-			trace("Reading should not be done here");
-			return true;
-		}
-
-		/**
-		 *  @private
-		 */
-		public function set showInAutomationHierarchy(value:Boolean):void
-		{
-			trace("Setting should not be done here");
-			IAutomationObject(movieClip).showInAutomationHierarchy = value;
-		}
-
-		/**
-		 *  @private
-		 */
-		protected var _movieClip:UIMovieClip;
-
-		/**
-		 *  Returns the component instance associated with this delegate instance.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 9
-		 *  @playerversion AIR 1.1
-		 *  @productversion Flex 3
-		 */
-		public function get movieClip():UIMovieClip
-		{
-			return _movieClip;
-		}
-
-		/**
-		 *  @private
-		 */
-		public function set movieClip(obj:UIMovieClip):void
-		{
-			_movieClip = obj as UIMovieClip;
-		}
-
-
-		/**
-		 *  @private
-		 */
-		protected function get uiAutomationObject():IAutomationObject
-		{
-			return _movieClip as IAutomationObject;
-		}
-
-
-		/**
-		 *  @private
-		 *  Dispatch a replayable interaction.
-		 *
-		 *  Usually a developer would intend to dispatch the event
-		 *  as a normal event at the same time, so this function
-		 *  will do a regular dispatchEvent() along with dispatching
-		 *  to the AutomationManager.
-		 *  If you wish to not dispatch the regular event,
-		 *  set the second parameter to false.
-		 *
-		 *  This method will also test to make sure that the event
-		 *  really should be dispatched by checking
-		 *  shouldDispatchReplayableInteraction.
-		 *  Component authors can override that method to ensure correct behavior.
-		 *
-		 *  @param event The Event to dispatch
-		 *
-		 *  @param doRegular If true (default) dispatch the regular event using
-		 *  dispatchEvent(event)
-		 *
-		 *  @param cacheable
-		 *
-		 */
-		public function recordAutomatableEvent(event:Event,
-											   cacheable:Boolean = false):void
-		{
-			var am:IAutomationManager = Automation.automationManager;
-			if (am && am.recording)
-			{
-				am.recordAutomatableEvent(movieClip as IAutomationObject, event, cacheable);
-			}
-		}
-
-		/**
-		 *  @private
-		 *  Replay the specified interaction.
-		 *  Returns whether or not a replay was successful.
-		 *  A component author should probably call super.replayInteraction()
-		 *  in case default replay behavior has been defined in a superclass.
-		 *  UIComponent returns false since it does not know
-		 *  how to replay any events.
-		 *
-		 *  @param event The event to replay
-		 */
-		public function replayAutomatableEvent(event:Event):Boolean
-		{
-			var help:IAutomationObjectHelper = Automation.automationObjectHelper;
-			if (event is MouseEvent && event.type == MouseEvent.CLICK)
-				return help.replayClick(movieClip, event as MouseEvent);
-			else if (event is KeyboardEvent)
-				return movieClip.dispatchEvent(event);
-			else if (event is FocusEvent &&
-				event.type == FocusEvent.KEY_FOCUS_CHANGE)
-			{
-				var ke:KeyboardEvent = new KeyboardEvent(KeyboardEvent.KEY_DOWN);
-				ke.keyCode = Keyboard.TAB;
-				ke.shiftKey = FocusEvent(event).shiftKey;
-				movieClip.dispatchEvent(ke);
-
-				movieClip.dispatchEvent(event);
-
-				ke = new KeyboardEvent(KeyboardEvent.KEY_UP);
-				ke.keyCode = Keyboard.TAB;
-				return UIComponent(movieClip).getFocus().dispatchEvent(ke);
-			}
-			else if (event is AutomationDragEvent)
-				return DragManagerAutomationImpl.replayAutomatableEvent(uiAutomationObject, event);
-			else
-				return false;
-		}
-
-		/**
-		 *  Sets up a automation synchronization with layout manager update complete event.
-		 *  When certain actions are being replayed automation needs to wait before it can
-		 *  replay the next event. This wait is required to allow the framework to complete
-		 *  actions requested by the component. Normally a layout manager update complte event
-		 *  signals end of all updates. This method adds syncrhonization which gets signaled as
-		 *  complete when update_complete event is received.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 9
-		 *  @playerversion AIR 1.1
-		 *  @productversion Flex 3
-		 */
-		protected function addLayoutCompleteSynchronization():void
-		{
-			UIComponentGlobals.layoutManager.addEventListener(FlexEvent.UPDATE_COMPLETE, layoutHandler);
-			var help:IAutomationObjectHelper = Automation.automationObjectHelper;
-			if (help && help.replaying)
-			{
-				layoutPending = true;
-				help.addSynchronization(function():Boolean
-				{
-					return layoutPending == false;
-				}, movieClip);
-			}
-		}
-
-
-
-
-
-
-		/**
-		 *  @private
-		 */
-		private function mouseClickHandler(event:MouseEvent):void
-		{
-			var am:IAutomationManager = Automation.automationManager;
-			if (recordClick && am && am.recording)
-			{
-				var ao:IAutomationObject = null;
-				var o:Object = event.target;
-				while (o)
-				{
-					ao = o as IAutomationObject;
-					if (ao)
-						break;
-					o = o.parent;
-				}
-				if (ao == movieClip)
-					recordAutomatableEvent(event, false);
-			}
-		}
-
-
-		/**
-		 *  @private
-		 */
-		protected function layoutHandler(event:FlexEvent):void
-		{
-			layoutPending = false;
-			UIComponentGlobals.layoutManager.removeEventListener(FlexEvent.UPDATE_COMPLETE, layoutHandler);
-		}
-
-		/**
-		 *  @private
-		 */
-		public function createAutomationIDPart(child:IAutomationObject):Object
-		{
-			return null;
-		}
-
-		/**
-		 *  @private
-		 */
-		public function createAutomationIDPartWithRequiredProperties(child:IAutomationObject, properties:Array):Object
-		{
-			return null;
-		}
-
-		/**
-		 *  @private
-		 */
-		public function resolveAutomationIDPart(criteria:Object):Array
-		{
-			return [];
-		}
-
-		/**
-		 *  @private
-		 */
-		public function get numAutomationChildren():int
-		{
-			return 0;
-		}
-
-		/**
-		 *  @private
-		 */
-		public function getAutomationChildAt(index:int):IAutomationObject
-		{
-			return null;
-		}
-
-		/**
-		 *  @private
-		 */
-		public function getAutomationChildren():Array
-		{
-			return null;
-		}
-
-		/**
-		 *  @private
-		 */
-		public function get automationTabularData():Object
-		{
-			return null;
-		}
-
-		/**
-		 *  @private
-		 */
-		public function get owner():DisplayObjectContainer
-		{
-			return (movieClip as IUIComponent).owner;
-		}
-
-		/**
-		 *  @private
-		 */
-		public function set automationDelegate(val:Object):void
-		{
-			trace("Invalid setter function call. Should have been called on the component");
-		}
-
-		/**
-		 *  @private
-		 */
-		public function get automationDelegate():Object
-		{
-			trace("Invalid getter function call. Should have been called on the component");
-			return this;
-		}
-
-		/**
-		 *  @private
-		 */
-		public function getLocalPoint(po1:Point, targetObj:DisplayObject):Point
-		{
-			//var p:Point = new Point(event.localX, event.localY);
-			// when the dragevent base object on which the coordinate is recorded
-			// then the delegate of that componet needs to override the method.
-			// refer for details in Chartbase
-			return po1;
-		}
-		/**
-		 *  @private
-		 */
-		public function isDragEventPositionBased():Boolean
-		{
-			// for almost all components it is not.
-			// however for compoents like chart it is coordinate based
-			return false;
-		}
-	}
+    import flash.display.DisplayObject;
+    import flash.display.DisplayObjectContainer;
+    import flash.events.Event;
+    import flash.events.EventDispatcher;
+    import flash.events.FocusEvent;
+    import flash.events.KeyboardEvent;
+    import flash.events.MouseEvent;
+    import flash.geom.Point;
+    import flash.ui.Keyboard;
+
+    import mx.automation.Automation;
+    import mx.automation.IAutomationManager;
+    import mx.automation.IAutomationObject;
+    import mx.automation.IAutomationObjectHelper;
+    import mx.automation.delegates.DragManagerAutomationImpl;
+    import mx.automation.events.AutomationDragEvent;
+    import mx.core.EventPriority;
+    import mx.core.IUIComponent;
+    import mx.core.UIComponent;
+    import mx.core.UIComponentGlobals;
+    import mx.core.mx_internal;
+    import mx.events.EffectEvent;
+    import mx.events.FlexEvent;
+    import mx.resources.IResourceManager;
+    import mx.resources.ResourceManager;
+    import mx.flash.UIMovieClip;
+    use namespace mx_internal;
+
+    [Mixin]
+    /**
+     *
+     *  Defines methods and properties required to perform instrumentation for the
+     *  UIMovieclip control.
+     *
+     *  @see mx.flash.UIMovieClip
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public class UIMovieClipAutomationImpl extends EventDispatcher
+        implements IAutomationObject
+    {
+        include "../../../core/Version.as";
+
+        //--------------------------------------------------------------------------
+        //
+        //  Class methods
+        //
+        //--------------------------------------------------------------------------
+
+        /**
+         *  Registers the delegate class for a component class with automation manager.
+         *  @param root DisplayObject object representing the application root.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 9
+         *  @playerversion AIR 1.1
+         *  @productversion Flex 3
+         */
+        public static function init(root:DisplayObject):void
+        {
+            Automation.registerDelegateClass(UIMovieClip, UIMovieClipAutomationImpl);
+        }
+
+        //--------------------------------------------------------------------------
+        //
+        //  Constructor
+        //
+        //--------------------------------------------------------------------------
+
+        /**
+         *  Constructor.
+         *
+         *  @param obj UIComponent object to be automated.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 9
+         *  @playerversion AIR 1.1
+         *  @productversion Flex 3
+         */
+        public function UIMovieClipAutomationImpl(obj:UIMovieClip)
+        {
+            super();
+
+            movieClip = obj;
+
+
+            obj.addEventListener(MouseEvent.CLICK, mouseClickHandler, false, EventPriority.DEFAULT+1, true);
+
+            recordClick = true;
+        }
+
+        //--------------------------------------------------------------------------
+        //
+        //  Variables
+        //
+        //--------------------------------------------------------------------------
+
+        /**
+         *  A reference to the object which manages all of the application's localized resources.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 9
+         *  @playerversion AIR 1.1
+         *  @productversion Flex 3
+         */
+        protected var resourceManager:IResourceManager =
+            ResourceManager.getInstance();
+
+        /**
+         *  @private
+         */
+        private var effectsPlaying:Boolean = false;
+
+        /**
+         *  @private
+         */
+        private var layoutPending:Boolean = false;
+
+        //--------------------------------------------------------------------------
+        //
+        //  Properties
+        //
+        //--------------------------------------------------------------------------
+
+        //---------------------------------
+        //  automationEnabled
+        //---------------------------------
+        public function get automationEnabled():Boolean
+        {
+            trace("Reading should not be done here");
+            return false;
+        }
+
+        //---------------------------------
+        //  automationOwner
+        //---------------------------------
+        public function get automationOwner():DisplayObjectContainer
+        {
+            return null;
+        }
+
+        //---------------------------------
+        //  automationParent
+        //---------------------------------
+        public function get automationParent():DisplayObjectContainer
+        {
+            return null;
+        }
+
+        //---------------------------------
+        //  automationVisible
+        //---------------------------------
+        public function get automationVisible():Boolean
+        {
+            trace("Reading should not be done here");
+            return false;
+        }
+
+        //----------------------------------
+        //  automationName
+        //----------------------------------
+
+        /**
+         *  @inheritDoc
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 9
+         *  @playerversion AIR 1.1
+         *  @productversion Flex 3
+         */
+        public function get automationName():String
+        {
+            if (movieClip is DisplayObject)
+                if(DisplayObject(movieClip).name) return (DisplayObject(movieClip).name);
+
+            return movieClip.id;
+        }
+
+        /**
+         *  @private
+         */
+        public function set automationName(value:String):void
+        {
+            uiAutomationObject.automationName = value;
+        }
+
+        //----------------------------------
+        //  automationValue
+        //----------------------------------
+
+        /**
+         *  @inheritDoc
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 9
+         *  @playerversion AIR 1.1
+         *  @productversion Flex 3
+         */
+        public function get automationValue():Array
+        {
+            return [ automationName ];
+        }
+
+
+        //------------- ---------------------
+        //  recordClick
+        //----------------------------------
+
+        /**
+         *  @private
+         *  Storage for the recordClick property.
+         */
+        private var _recordClick:Boolean = false;
+
+        /**
+         *  @private
+         *  Indicates whether this component should dispatch all click
+         *  events as replayable interaction
+         */
+        public function get recordClick():Boolean
+        {
+            return _recordClick;
+        }
+
+        /**
+         *  @private
+         */
+        public function set recordClick(val:Boolean):void
+        {
+            // we don't want to add/remove the event listeners multiple times
+            if (_recordClick != val)
+            {
+                _recordClick = val;
+                if (val)
+                    movieClip.addEventListener(MouseEvent.CLICK, mouseClickHandler);
+                else
+                    movieClip.removeEventListener(MouseEvent.CLICK, mouseClickHandler);
+            }
+        }
+
+        /**
+         *  @private
+         */
+        public function get showInAutomationHierarchy():Boolean
+        {
+            trace("Reading should not be done here");
+            return true;
+        }
+
+        /**
+         *  @private
+         */
+        public function set showInAutomationHierarchy(value:Boolean):void
+        {
+            trace("Setting should not be done here");
+            IAutomationObject(movieClip).showInAutomationHierarchy = value;
+        }
+
+        /**
+         *  @private
+         */
+        protected var _movieClip:UIMovieClip;
+
+        /**
+         *  Returns the component instance associated with this delegate instance.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 9
+         *  @playerversion AIR 1.1
+         *  @productversion Flex 3
+         */
+        public function get movieClip():UIMovieClip
+        {
+            return _movieClip;
+        }
+
+        /**
+         *  @private
+         */
+        public function set movieClip(obj:UIMovieClip):void
+        {
+            _movieClip = obj as UIMovieClip;
+        }
+
+
+        /**
+         *  @private
+         */
+        protected function get uiAutomationObject():IAutomationObject
+        {
+            return _movieClip as IAutomationObject;
+        }
+
+
+        /**
+         *  @private
+         *  Dispatch a replayable interaction.
+         *
+         *  Usually a developer would intend to dispatch the event
+         *  as a normal event at the same time, so this function
+         *  will do a regular dispatchEvent() along with dispatching
+         *  to the AutomationManager.
+         *  If you wish to not dispatch the regular event,
+         *  set the second parameter to false.
+         *
+         *  This method will also test to make sure that the event
+         *  really should be dispatched by checking
+         *  shouldDispatchReplayableInteraction.
+         *  Component authors can override that method to ensure correct behavior.
+         *
+         *  @param event The Event to dispatch
+         *
+         *  @param doRegular If true (default) dispatch the regular event using
+         *  dispatchEvent(event)
+         *
+         *  @param cacheable
+         *
+         */
+        public function recordAutomatableEvent(event:Event,
+                                               cacheable:Boolean = false):void
+        {
+            var am:IAutomationManager = Automation.automationManager;
+            if (am && am.recording)
+            {
+                am.recordAutomatableEvent(movieClip as IAutomationObject, event, cacheable);
+            }
+        }
+
+        /**
+         *  @private
+         *  Replay the specified interaction.
+         *  Returns whether or not a replay was successful.
+         *  A component author should probably call super.replayInteraction()
+         *  in case default replay behavior has been defined in a superclass.
+         *  UIComponent returns false since it does not know
+         *  how to replay any events.
+         *
+         *  @param event The event to replay
+         */
+        public function replayAutomatableEvent(event:Event):Boolean
+        {
+            var help:IAutomationObjectHelper = Automation.automationObjectHelper;
+            if (event is MouseEvent && event.type == MouseEvent.CLICK)
+                return help.replayClick(movieClip, event as MouseEvent);
+            else if (event is KeyboardEvent)
+                return movieClip.dispatchEvent(event);
+            else if (event is FocusEvent &&
+                event.type == FocusEvent.KEY_FOCUS_CHANGE)
+            {
+                var ke:KeyboardEvent = new KeyboardEvent(KeyboardEvent.KEY_DOWN);
+                ke.keyCode = Keyboard.TAB;
+                ke.shiftKey = FocusEvent(event).shiftKey;
+                movieClip.dispatchEvent(ke);
+
+                movieClip.dispatchEvent(event);
+
+                ke = new KeyboardEvent(KeyboardEvent.KEY_UP);
+                ke.keyCode = Keyboard.TAB;
+                return UIComponent(movieClip).getFocus().dispatchEvent(ke);
+            }
+            else if (event is AutomationDragEvent)
+                return DragManagerAutomationImpl.replayAutomatableEvent(uiAutomationObject, event);
+            else
+                return false;
+        }
+
+        /**
+         *  Sets up a automation synchronization with layout manager update complete event.
+         *  When certain actions are being replayed automation needs to wait before it can
+         *  replay the next event. This wait is required to allow the framework to complete
+         *  actions requested by the component. Normally a layout manager update complte event
+         *  signals end of all updates. This method adds syncrhonization which gets signaled as
+         *  complete when update_complete event is received.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 9
+         *  @playerversion AIR 1.1
+         *  @productversion Flex 3
+         */
+        protected function addLayoutCompleteSynchronization():void
+        {
+            UIComponentGlobals.layoutManager.addEventListener(FlexEvent.UPDATE_COMPLETE, layoutHandler);
+            var help:IAutomationObjectHelper = Automation.automationObjectHelper;
+            if (help && help.replaying)
+            {
+                layoutPending = true;
+                help.addSynchronization(function():Boolean
+                {
+                    return layoutPending == false;
+                }, movieClip);
+            }
+        }
+
+
+
+
+
+
+        /**
+         *  @private
+         */
+        private function mouseClickHandler(event:MouseEvent):void
+        {
+            var am:IAutomationManager = Automation.automationManager;
+            if (recordClick && am && am.recording)
+            {
+                var ao:IAutomationObject = null;
+                var o:Object = event.target;
+                while (o)
+                {
+                    ao = o as IAutomationObject;
+                    if (ao)
+                        break;
+                    o = o.parent;
+                }
+                if (ao == movieClip)
+                    recordAutomatableEvent(event, false);
+            }
+        }
+
+
+        /**
+         *  @private
+         */
+        protected function layoutHandler(event:FlexEvent):void
+        {
+            layoutPending = false;
+            UIComponentGlobals.layoutManager.removeEventListener(FlexEvent.UPDATE_COMPLETE, layoutHandler);
+        }
+
+        /**
+         *  @private
+         */
+        public function createAutomationIDPart(child:IAutomationObject):Object
+        {
+            return null;
+        }
+
+        /**
+         *  @private
+         */
+        public function createAutomationIDPartWithRequiredProperties(child:IAutomationObject, properties:Array):Object
+        {
+            return null;
+        }
+
+        /**
+         *  @private
+         */
+        public function resolveAutomationIDPart(criteria:Object):Array
+        {
+            return [];
+        }
+
+        /**
+         *  @private
+         */
+        public function get numAutomationChildren():int
+        {
+            return 0;
+        }
+
+        /**
+         *  @private
+         */
+        public function getAutomationChildAt(index:int):IAutomationObject
+        {
+            return null;
+        }
+
+        /**
+         *  @private
+         */
+        public function getAutomationChildren():Array
+        {
+            return null;
+        }
+
+        /**
+         *  @private
+         */
+        public function get automationTabularData():Object
+        {
+            return null;
+        }
+
+        /**
+         *  @private
+         */
+        public function get owner():DisplayObjectContainer
+        {
+            return (movieClip as IUIComponent).owner;
+        }
+
+        /**
+         *  @private
+         */
+        public function set automationDelegate(val:Object):void
+        {
+            trace("Invalid setter function call. Should have been called on the component");
+        }
+
+        /**
+         *  @private
+         */
+        public function get automationDelegate():Object
+        {
+            trace("Invalid getter function call. Should have been called on the component");
+            return this;
+        }
+
+        /**
+         *  @private
+         */
+        public function getLocalPoint(po1:Point, targetObj:DisplayObject):Point
+        {
+            //var p:Point = new Point(event.localX, event.localY);
+            // when the dragevent base object on which the coordinate is recorded
+            // then the delegate of that componet needs to override the method.
+            // refer for details in Chartbase
+            return po1;
+        }
+        /**
+         *  @private
+         */
+        public function isDragEventPositionBased():Boolean
+        {
+            // for almost all components it is not.
+            // however for compoents like chart it is coordinate based
+            return false;
+        }
+    }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 22564
Author:   tkraikit@adobe.com
Date:     2011-09-14T19:50:07.656843Z

Log Message:
-----------
Update ASDoc "@productversion Flex 4.5.2" => "@productversion Flex 4.6"

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/LabelItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/collections/OnDemandDataProvider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DateSpinnerSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/graphics/BitmapScaleMode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/ContentBackgroundAppearance.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/core/FlexVersion.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/ArrowDirection.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/globalization/supportClasses/FormatPattern.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultTransparentNavigationButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/supportClasses/DropDownController.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/core/ISoftKeyboardHintClient.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/CalloutArrow.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/CalloutButton.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/YearProvider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/calendarClasses/DateSelectorDisplayMode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/ToggleSwitch.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultBeveledBackButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListScrollerSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/ScrollSnappingMode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/StageTextSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultTransparentActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/StageTextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerListContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/ToggleSwitchSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/DateAndTimeProvider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListContainerSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/CalloutPosition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/preloaders/SplashScreenImageSource.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/SkinnablePopUpContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SplitViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/Callout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/StageTextInputSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/collections/NumericDataProvider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableStageText.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/preloaders/SplashScreenImage.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/DateSpinnerItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerList.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/DateSpinner.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/globalization/supportClasses/CalendarDate.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultBeveledActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerListItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/globalization/supportClasses/DateTimeFormatterEx.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1283246 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/core/ISoftKeyboardHintClient.as
+++ frameworks/projects/spark/src/spark/core/ISoftKeyboardHintClient.as
@@ -49,7 +49,7 @@
          *
          *  @langversion 3.0
          *  @playerversion AIR 3.0
-         *  @productversion Flex 4.5.2
+         *  @productversion Flex 4.6
          */
         function set autoCapitalize(value:String):void;
         function get autoCapitalize():String;
@@ -64,7 +64,7 @@
          *
          *  @langversion 3.0
          *  @playerversion AIR 3.0
-         *  @productversion Flex 4.5.2
+         *  @productversion Flex 4.6
          */
         function get autoCorrect():Boolean;
         function set autoCorrect(value:Boolean):void;
@@ -96,7 +96,7 @@
          *
          *  @langversion 3.0
          *  @playerversion AIR 3.0
-         *  @productversion Flex 4.5.2
+         *  @productversion Flex 4.6
          */
         function get returnKeyLabel():String;
         function set returnKeyLabel(value:String):void;
@@ -131,7 +131,7 @@
          *
          *  @langversion 3.0
          *  @playerversion AIR 3.0
-         *  @productversion Flex 4.5.2
+         *  @productversion Flex 4.6
          */
         function get softKeyboardType():String;
         function set softKeyboardType(value:String):void;


Исправление ошибки

Исправление ошибки

--- src/main/org/shypl/common/collection/AbstractList.as
+++ src/main/org/shypl/common/collection/AbstractList.as
@@ -93,13 +93,13 @@
 		}

 		protected function checkIndexForAdd(index:int):void {
-			if (index < 0 || index >= size()) {
+			if (index < 0 || index > size()) {
 				throw new IndexOutOfBoundsException(getOutOfBoundsMessage(index));
 			}
 		}

 		protected function checkIndex(index:int):void {
-			if (index < 0 && index > size()) {
+			if (index < 0 && index >= size()) {
 				throw new IndexOutOfBoundsException(getOutOfBoundsMessage(index));
 			}
 		}


ArgAnd added to MPWhenever

ArgAnd added to MPWhenever

--- Arguments/src/logic/ModusPonens.as
+++ Arguments/src/logic/ModusPonens.as
@@ -137,8 +137,8 @@
 					output += Language.lookup("ArgWhenever");
 					for(i=0;i<reason.length-1;i++)
 					{
-						output += reason[i].stmt + " and ";
-						reasonStr += reason[i].stmt + " and ";
+						output += reason[i].stmt + Language.lookup("ArgAnd");
+						reasonStr += reason[i].stmt + Language.lookup("ArgAnd");
 					}
 					output += reason[i].stmt + ", "+ claim.stmt;
 					reasonStr = reasonStr + reason[i].stmt;


Allow print layout to be toggled an embedded param but have it be off by default.

--- asn_visualization/asn_visualization.as
+++ asn_visualization/asn_visualization.as
@@ -54,6 +54,18 @@
             addChild(_bar=new ProgressBar());
             _bar.bar.filters=[new DropShadowFilter(1)];

+ 			var print_mode_setting:Boolean=root.loaderInfo.parameters.print_mode;
+
+ 			if (print_mode_setting)
+ 			{
+ 				_printing_mode = print_mode_setting;
+ 			}
+ 			else
+ 			{
+ 				_printing_mode = _printing_mode_default_setting;
+ 			}
+
+
             // load data file
             var ldr:URLLoader=new URLLoader(new URLRequest(get_json_url()));
             _bar.loadURL(ldr, function():void
@@ -113,8 +125,9 @@

         private var country_level_info:Object; // Country stats such as network complexity, PoC, etc.

-		private static const _printing_mode:Boolean=true;  // Set to true to enable hiding instruction so graphs look better printed
-
+		private static const _printing_mode_default_setting:Boolean=false;  // Set to true to enable hiding instruction so graphs look better printed
+		private static var _printing_mode:Boolean=false;
+
         public function visualize(data:Data):void
         {
             vis=new Visualization(data);