incubator-flex-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cframp...@apache.org
Subject svn commit: r1351437 [2/12] - in /incubator/flex/trunk/frameworks/projects: automation_agent/ automation_agent/bundles/ automation_agent/bundles/da_DK/ automation_agent/bundles/de_DE/ automation_agent/bundles/en_US/ automation_agent/bundles/es_ES/ auto...
Date Mon, 18 Jun 2012 18:10:25 GMT
Added: incubator/flex/trunk/frameworks/projects/automation_agent/bundles/ru_RU/automation_agent.properties
URL: http://svn.apache.org/viewvc/incubator/flex/trunk/frameworks/projects/automation_agent/bundles/ru_RU/automation_agent.properties?rev=1351437&view=auto
==============================================================================
--- incubator/flex/trunk/frameworks/projects/automation_agent/bundles/ru_RU/automation_agent.properties (added)
+++ incubator/flex/trunk/frameworks/projects/automation_agent/bundles/ru_RU/automation_agent.properties Mon Jun 18 18:10:20 2012
@@ -0,0 +1,73 @@
+################################################################################
+##
+##  Licensed to the Apache Software Foundation (ASF) under one or more
+##  contributor license agreements.  See the NOTICE file distributed with
+##  this work for additional information regarding copyright ownership.
+##  The ASF licenses this file to You under the Apache License, Version 2.0
+##  (the "License"); you may not use this file except in compliance with
+##  the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+##  Unless required by applicable law or agreed to in writing, software
+##  distributed under the License is distributed on an "AS IS" BASIS,
+##  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+##  See the License for the specific language governing permissions and
+##  limitations under the License.
+##
+################################################################################
+# Developer RTE Section
+
+# AutomationManager
+
+notVisible={0} \u043d\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f.
+unsupportedValues={0} \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 allAutomationValues.
+unsupportedReplay={0} \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435.
+rootApplication=\u041e\u0436\u0438\u0434\u0430\u043d\u0438\u0435 \u043a\u043e\u0440\u043d\u044f \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 ["{0}"] \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.
+notResolved=\u0412 \u0432\u044b\u0448\u0435\u0441\u0442\u043e\u044f\u0449\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0435 "{2}" \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0438\u0436\u0435\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 "{0}": "{1}".
+resolvedTo={0} \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e \u0434\u043b\u044f "{1}".
+idResolved={0} \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u043f\u0440\u0435\u0436\u0434\u0435\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e.
+idNotResolved=\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 "{0}".
+nullReturned=\u0414\u043b\u044f "{0}" \u0438\u0437 "{1}" \u043d\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d \u043d\u0438\u0436\u0435\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0441 "{2}" \u043d\u0438\u0436\u0435\u0441\u0442\u043e\u044f\u0449\u0438\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438.
+matchesMsg={0} \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0439 \u0434\u043b\u044f \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u044f {"{1}"}.
+notDefined=\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u043e "{0}" \u043d\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043e \u0432 "{1}".
+classNotFound=\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043a\u043b\u0430\u0441\u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 "{0}".
+methodNotFound=\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043c\u0435\u0442\u043e\u0434 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 "{0}" \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0430 "{1}".
+missingArgument=\u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430: "{0}".
+
+# TextFieldAutomationHelper
+
+notReplayable=\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043a\u043e\u0434\u0430 \u043a\u043b\u0430\u0432\u0438\u0448\u0438 "{0}".
+
+# codec/AssetPropertyCodec
+
+notSettable=\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441.
+
+# codec/DefaultPropertyCodec
+
+precisionLoss=\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u0430\u044f \u043f\u043e\u0442\u0435\u0440\u044f \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 "{0}".
+
+# codec/ListDataObjectCodec
+
+notSupported=\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 selectedItem \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f.
+
+# qtp/QTPAdapter
+
+invisible=\u041d\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f.
+notActiveX=\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c Adobe Flex 4 \u0434\u043b\u044f HP Quick Test Pro. \u041c\u043e\u0434\u0443\u043b\u044c Adobe Flex 4 \u0434\u043b\u044f HP Quick Test Pro \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e Microsoft Internet Explorer.
+notWindows=\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c Adobe Flex 4 \u0434\u043b\u044f HP Quick Test Pro. \u041c\u043e\u0434\u0443\u043b\u044c Adobe Flex 4 \u0434\u043b\u044f HP Quick Test Pro \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 "{0}".
+noExternalInterface=\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c Adobe Flex 4 \u0434\u043b\u044f HP Quick Test Pro. \u0412 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u0442\u0435\u043b\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d ExternalInterface.
+noPlayerID=\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c Adobe Flex 4 \u0434\u043b\u044f HP Quick Test Pro. \u041d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0434\u043b\u044f \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u0442\u0435\u043b\u044f \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 html.
+invalidPlayerID=\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c Adobe Flex 4 \u0434\u043b\u044f HP Quick Test Pro. \u041d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u043f\u0440\u043e\u0438\u0433\u0440\u044b\u0432\u0430\u0442\u0435\u043b\u044f "{0}".
+unableToLoadPluginGeneric=\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c Adobe Flex 4 \u0434\u043b\u044f HP Quick Test Pro - "{0}".
+notSynchronized=\u041e\u0436\u0438\u0434\u0430\u043d\u0438\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438.
+
+# qtp/QTPEnvironment
+
+autClassNotFound=\u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 AutomationClass \u0434\u043b\u044f "{0}" "{1}".
+
+
+
+# Licence handler messages 
+recordLimitReached=\u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f. \u0412 \u043f\u0440\u043e\u0431\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0437\u0430\u043f\u0438\u0441\u0435\u0439.
+replayLimitReached=\u041e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f. \u0412 \u043f\u0440\u043e\u0431\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0439 \u0447\u0438\u0441\u043b\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0439.

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/bundles/ru_RU/automation_agent.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/bundles/ru_RU/automation_agent.properties
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/flex/trunk/frameworks/projects/automation_agent/bundles/sv_SE/automation_agent.properties
URL: http://svn.apache.org/viewvc/incubator/flex/trunk/frameworks/projects/automation_agent/bundles/sv_SE/automation_agent.properties?rev=1351437&view=auto
==============================================================================
--- incubator/flex/trunk/frameworks/projects/automation_agent/bundles/sv_SE/automation_agent.properties (added)
+++ incubator/flex/trunk/frameworks/projects/automation_agent/bundles/sv_SE/automation_agent.properties Mon Jun 18 18:10:20 2012
@@ -0,0 +1,73 @@
+################################################################################
+##
+##  Licensed to the Apache Software Foundation (ASF) under one or more
+##  contributor license agreements.  See the NOTICE file distributed with
+##  this work for additional information regarding copyright ownership.
+##  The ASF licenses this file to You under the Apache License, Version 2.0
+##  (the "License"); you may not use this file except in compliance with
+##  the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+##  Unless required by applicable law or agreed to in writing, software
+##  distributed under the License is distributed on an "AS IS" BASIS,
+##  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+##  See the License for the specific language governing permissions and
+##  limitations under the License.
+##
+################################################################################
+# Developer RTE Section
+
+# AutomationManager
+
+notVisible="{0}" visas inte.
+unsupportedValues="{0}" har inte st\u00f6d f\u00f6r allAutomationValues.
+unsupportedReplay="{0}" st\u00f6der inte omspelning.
+rootApplication=Roten f\u00f6r reproduceringsbart ID ['{0}'] f\u00f6rv\u00e4ntas vara programmet.
+notResolved=Det g\u00e5r inte att l\u00f6sa underordnad f\u00f6r del "{0}":"{1}" i \u00f6verordnad "{2}".
+resolvedTo="{0}" l\u00f6st till "{1}".
+idResolved="{0}" ID l\u00f6st f\u00f6r tidigt.
+idNotResolved=Det g\u00e5r inte att l\u00f6sa ID "{0}".
+nullReturned=Null underordnade returnerade f\u00f6r "{0}" av "{1}" med "{2}" underordnade.
+matchesMsg="{0}" matchningar f\u00f6r kriterier {"{1}"}.
+notDefined=Egenskapen "{0}" har inte definierats i "{1}".
+classNotFound=Det g\u00e5r inte att hitta automatiseringsklassen "{0}".
+methodNotFound=Det g\u00e5r inte att hitta automatiseringsmetod "{0}" f\u00f6r klass "{1}".
+missingArgument=Argumentv\u00e4rdet: "{0}" saknas.
+
+# TextFieldAutomationHelper
+
+notReplayable=Det g\u00e5r inte att spela upp KeyboardEvent med tangentkod "{0}".
+
+# codec/AssetPropertyCodec
+
+notSettable=Du f\u00e5r inte ange inst\u00e4llningar f\u00f6r en tillg\u00e5ng.
+
+# codec/DefaultPropertyCodec
+
+precisionLoss=Eventuell precisionsf\u00f6rlust vid konvertering av egenskap '{0}'.
+
+# codec/ListDataObjectCodec
+
+notSupported=Inst\u00e4llning av selectedItem st\u00f6ds inte.
+
+# qtp/QTPAdapter
+
+invisible=Visas ej.
+notActiveX=Det g\u00e5r inte att l\u00e4sa in Adobe Flex 4-plugin-programmet f\u00f6r HP Quick Test Pro. Adobe Flex 4-plugin-programmet f\u00f6r HP Quick Test fungerar endast med Microsoft Internet Explorer.
+notWindows=Det g\u00e5r inte att l\u00e4sa in Adobe Flex 4-plugin-programmet f\u00f6r HP Quick Test Pro. Adobe Flex 4-plugin-programmet f\u00f6r HP Quick Test fungerar inte p\u00e5 "{0}".
+noExternalInterface=Det g\u00e5r inte att l\u00e4sa in Adobe Flex 4-plugin-programmet f\u00f6r HP Quick Test Pro. ExternalInterface \u00e4r inte tillg\u00e4ngligt i den h\u00e4r spelaren.
+noPlayerID=Det g\u00e5r inte att l\u00e4sa in Adobe Flex 4-plugin-programmet f\u00f6r HP Quick Test Pro. Inget ID har angetts f\u00f6r spelaren p\u00e5 html-sidan.
+invalidPlayerID=Det g\u00e5r inte att l\u00e4sa in Adobe Flex 4-plugin-programmet f\u00f6r HP Quick Test Pro. Ogiltigt spelar-ID "{0}".
+unableToLoadPluginGeneric=Det g\u00e5r inte att l\u00e4sa in Adobe Flex 4-plugin-programmet f\u00f6r HP Quick Test Pro \u2013 "{0}".
+notSynchronized=V\u00e4ntar p\u00e5 att f\u00f6reg\u00e5ende operation ska slutf\u00f6ras.
+
+# qtp/QTPEnvironment
+
+autClassNotFound=Det g\u00e5r inte att hitta AutomationClass f\u00f6r "{0}" "{1}".
+
+
+
+# Licence handler messages 
+recordLimitReached=Det finns ingen licens. I testversionen \u00e4r endast ett begr\u00e4nsat antal poster till\u00e5tna.
+replayLimitReached=Det finns ingen licens. I testversionen \u00e4r endast ett begr\u00e4nsat antal omspelningar till\u00e5tna.

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/bundles/sv_SE/automation_agent.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/bundles/sv_SE/automation_agent.properties
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/flex/trunk/frameworks/projects/automation_agent/bundles/zh_CN/automation_agent.properties
URL: http://svn.apache.org/viewvc/incubator/flex/trunk/frameworks/projects/automation_agent/bundles/zh_CN/automation_agent.properties?rev=1351437&view=auto
==============================================================================
--- incubator/flex/trunk/frameworks/projects/automation_agent/bundles/zh_CN/automation_agent.properties (added)
+++ incubator/flex/trunk/frameworks/projects/automation_agent/bundles/zh_CN/automation_agent.properties Mon Jun 18 18:10:20 2012
@@ -0,0 +1,73 @@
+################################################################################
+##
+##  Licensed to the Apache Software Foundation (ASF) under one or more
+##  contributor license agreements.  See the NOTICE file distributed with
+##  this work for additional information regarding copyright ownership.
+##  The ASF licenses this file to You under the Apache License, Version 2.0
+##  (the "License"); you may not use this file except in compliance with
+##  the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+##  Unless required by applicable law or agreed to in writing, software
+##  distributed under the License is distributed on an "AS IS" BASIS,
+##  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+##  See the License for the specific language governing permissions and
+##  limitations under the License.
+##
+################################################################################
+# Developer RTE Section
+
+# AutomationManager
+
+notVisible=\u201c{0}\u201d\u4e0d\u53ef\u89c1\u3002
+unsupportedValues=\u201c{0}\u201d\u4e0d\u652f\u6301 allAutomationValues\u3002
+unsupportedReplay=\u201c{0}\u201d\u4e0d\u652f\u6301\u91cd\u6f14\u3002
+rootApplication=\u9700\u8981\u5c06\u53ef\u518d\u751f\u6807\u8bc6 [\u201c{0}\u201d] \u7684\u6839\u4f5c\u4e3a\u5e94\u7528\u7a0b\u5e8f\u3002
+notResolved=\u65e0\u6cd5\u5728\u7236\u201c{2}\u201d\u4e2d\u89e3\u6790\u90e8\u4ef6\u201c{0}\u201d:\u201c{1}\u201d\u7684\u5b50\u4ee3\u3002
+resolvedTo=\u201c{0}\u201d\u88ab\u89e3\u6790\u4e3a\u201c{1}\u201d\u3002
+idResolved=\u8fc7\u65e9\u89e3\u6790\u4e86\u6807\u8bc6\u201c{0}\u201d\u3002
+idNotResolved=\u65e0\u6cd5\u89e3\u6790\u6807\u8bc6\u201c{0}\u201d\u3002
+nullReturned=\u7531\u5e26\u6709\u201c{2}\u201d\u5b50\u4ee3\u7684\u201c{1}\u201d\u5728\u201c{0}\u201d\u5904\u8fd4\u56de\u7684\u7a7a\u5b50\u4ee3\u3002
+matchesMsg=\u7b26\u5408\u6761\u4ef6 {\u201c{1}\u201d} \u7684\u201c{0}\u201d\u4e2a\u5339\u914d\u9879\u3002
+notDefined=\u6ca1\u6709\u5728\u201c{1}\u201d\u4e2d\u5b9a\u4e49\u5c5e\u6027\u201c{0}\u201d\u3002
+classNotFound=\u627e\u4e0d\u5230\u81ea\u52a8\u7c7b\u201c{0}\u201d\u3002
+methodNotFound=\u627e\u4e0d\u5230\u7528\u4e8e\u7c7b\u201c{1}\u201d\u7684\u81ea\u52a8\u65b9\u6cd5\u201c{0}\u201d\u3002
+missingArgument=\u7f3a\u5c11\u81ea\u53d8\u91cf\u503c:\u201c{0}\u201d\u3002
+
+# TextFieldAutomationHelper
+
+notReplayable=\u65e0\u6cd5\u4f7f\u7528\u952e\u4ee3\u7801\u201c{0}\u201d\u91cd\u6f14 KeyboardEvent\u3002
+
+# codec/AssetPropertyCodec
+
+notSettable=\u65e0\u6cd5\u8bbe\u7f6e\u8d44\u4ea7\u3002
+
+# codec/DefaultPropertyCodec
+
+precisionLoss=\u8f6c\u6362\u5c5e\u6027\u201c{0}\u201d\u65f6\u53ef\u80fd\u4f1a\u635f\u5931\u7cbe\u5ea6\u3002
+
+# codec/ListDataObjectCodec
+
+notSupported=\u4e0d\u652f\u6301\u8bbe\u7f6e selectedItem\u3002
+
+# qtp/QTPAdapter
+
+invisible=\u4e0d\u53ef\u89c1\u3002
+notActiveX=\u65e0\u6cd5\u52a0\u8f7d Adobe Flex 4 Plug-in for HP Quick Test Pro\u3002Adobe Flex 4 Plug-in for HP Quick Test Pro \u4ec5\u652f\u6301 Microsoft Internet Explorer\u3002
+notWindows=\u65e0\u6cd5\u52a0\u8f7d Adobe Flex 4 Plug-in for HP Quick Test Pro\u3002Adobe Flex 4 Plug-in for HP Quick Test Pro \u5728\u201c{0}\u201d\u4e0a\u4e0d\u53d7\u652f\u6301\u3002
+noExternalInterface=\u65e0\u6cd5\u52a0\u8f7d Adobe Flex 4 Plug-in for HP Quick Test Pro\u3002ExternalInterface \u5728\u6b64 Player \u4e2d\u4e0d\u53ef\u7528\u3002
+noPlayerID=\u65e0\u6cd5\u52a0\u8f7d Adobe Flex 4 Plug-in for HP Quick Test Pro\u3002\u5728 HTML \u9875\u9762\u4e2d\u6ca1\u6709\u4e3a Player \u6307\u5b9a\u4efb\u4f55 ID\u3002
+invalidPlayerID=\u65e0\u6cd5\u52a0\u8f7d Adobe Flex 4 Plug-in for HP Quick Test Pro\u3002Player ID\u201c{0}\u201d\u65e0\u6548\u3002
+unableToLoadPluginGeneric=\u65e0\u6cd5\u52a0\u8f7d Adobe Flex 4 Plug-in for HP Quick Test Pro -\u201c{0}\u201d\u3002
+notSynchronized=\u7b49\u5f85\u524d\u4e00\u9879\u64cd\u4f5c\u5b8c\u6210\u3002
+
+# qtp/QTPEnvironment
+
+autClassNotFound=\u627e\u4e0d\u5230\u201c{0}\u201d\u201c{1}\u201d\u7684 AutomationClass\u3002
+
+
+
+# Licence handler messages 
+recordLimitReached=\u8bb8\u53ef\u8bc1\u4e0d\u5b58\u5728\u3002\u4f7f\u7528\u8bd5\u7528\u7248\u65f6\u4ec5\u5141\u8bb8\u4f7f\u7528\u6709\u9650\u7684\u8bb0\u5f55\u3002
+replayLimitReached=\u8bb8\u53ef\u8bc1\u4e0d\u5b58\u5728\u3002\u4f7f\u7528\u8bd5\u7528\u7248\u65f6\u4ec5\u5141\u8bb8\u6267\u884c\u6709\u9650\u7684\u91cd\u6f14\u3002

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/bundles/zh_CN/automation_agent.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/bundles/zh_CN/automation_agent.properties
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/flex/trunk/frameworks/projects/automation_agent/bundles/zh_TW/automation_agent.properties
URL: http://svn.apache.org/viewvc/incubator/flex/trunk/frameworks/projects/automation_agent/bundles/zh_TW/automation_agent.properties?rev=1351437&view=auto
==============================================================================
--- incubator/flex/trunk/frameworks/projects/automation_agent/bundles/zh_TW/automation_agent.properties (added)
+++ incubator/flex/trunk/frameworks/projects/automation_agent/bundles/zh_TW/automation_agent.properties Mon Jun 18 18:10:20 2012
@@ -0,0 +1,73 @@
+################################################################################
+##
+##  Licensed to the Apache Software Foundation (ASF) under one or more
+##  contributor license agreements.  See the NOTICE file distributed with
+##  this work for additional information regarding copyright ownership.
+##  The ASF licenses this file to You under the Apache License, Version 2.0
+##  (the "License"); you may not use this file except in compliance with
+##  the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+##  Unless required by applicable law or agreed to in writing, software
+##  distributed under the License is distributed on an "AS IS" BASIS,
+##  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+##  See the License for the specific language governing permissions and
+##  limitations under the License.
+##
+################################################################################
+# Developer RTE Section
+
+# AutomationManager
+
+notVisible=\u300c{0}\u300d\u4e0d\u53ef\u898b\u3002
+unsupportedValues=\u300c{0}\u300d\u4e0d\u652f\u63f4 allAutomationValues\u3002
+unsupportedReplay=\u300c{0}\u300d\u4e0d\u652f\u63f4\u91cd\u65b0\u57f7\u884c\u3002
+rootApplication=\u9700\u8981\u5c07\u53ef\u91cd\u73fe ID [\u300c{0}\u300d] \u7684\u6839\u76ee\u9304\u505a\u70ba\u61c9\u7528\u7a0b\u5f0f\u3002
+notResolved=\u7121\u6cd5\u5728\u7236\u9805\u300c{2}\u300d\u4e2d\u89e3\u6790\u90e8\u4ef6\u300c{0}\u300d:\u300c{1}\u300d\u7684\u5b50\u9805\u3002
+resolvedTo=\u300c{0}\u300d\u88ab\u89e3\u6790\u70ba\u300c{1}\u300d\u3002
+idResolved=\u63d0\u65e9\u89e3\u6790\u4e86 ID\u300c{0}\u300d\u3002
+idNotResolved=\u7121\u6cd5\u89e3\u6790 ID\u300c{0}\u300d\u3002
+nullReturned=\u5177\u6709\u300c{2}\u300d\u5b50\u9805\u7684\u300c{1}\u300d\u5728\u300c{0}\u300d\u8655\u50b3\u56de Null \u5b50\u9805\u3002
+matchesMsg=\u7b26\u5408\u6e96\u5247 {\u300c{1}\u300d} \u7684\u300c{0}\u300d\u500b\u76f8\u7b26\u9805\u3002
+notDefined=\u5728\u300c{1}\u300d\u4e2d\u672a\u5b9a\u7fa9\u5167\u5bb9\u300c{0}\u300d\u3002
+classNotFound=\u627e\u4e0d\u5230\u81ea\u52d5\u985e\u5225\u300c{0}\u300d\u3002
+methodNotFound=\u627e\u4e0d\u5230\u7528\u65bc\u985e\u5225\u300c{1}\u300d\u7684\u81ea\u52d5\u65b9\u6cd5\u300c{0}\u300d\u3002
+missingArgument=\u7f3a\u5c11\u5f15\u6578\u503c:\u300c{0}\u300d\u3002
+
+# TextFieldAutomationHelper
+
+notReplayable=\u7121\u6cd5\u4f7f\u7528\u6309\u9375\u78bc\u300c{0}\u300d\u91cd\u65b0\u57f7\u884c KeyboardEvent\u3002
+
+# codec/AssetPropertyCodec
+
+notSettable=\u7121\u6cd5\u8a2d\u5b9a\u8cc7\u7522\u3002
+
+# codec/DefaultPropertyCodec
+
+precisionLoss=\u8f49\u63db\u5167\u5bb9\u300c{0}\u300d\u6642\u53ef\u80fd\u907a\u5931\u7cbe\u78ba\u5ea6\u3002
+
+# codec/ListDataObjectCodec
+
+notSupported=\u4e0d\u652f\u63f4\u8a2d\u5b9a selectedItem\u3002
+
+# qtp/QTPAdapter
+
+invisible=\u4e0d\u53ef\u898b\u3002
+notActiveX=\u7121\u6cd5\u8f09\u5165 Adobe Flex 4 Plug-in for HP Quick Test Pro\u3002Adobe Flex 4 Plug-in for HP Quick Test Pro \u50c5\u652f\u63f4 Microsoft Internet Explorer\u3002
+notWindows=\u7121\u6cd5\u8f09\u5165 Adobe Flex 4 Plug-in for HP Quick Test Pro\u3002\u300c{0}\u300d\u4e0d\u652f\u63f4 Adobe Flex 4 Plug-in for HP Quick Test Pro\u3002
+noExternalInterface=\u7121\u6cd5\u8f09\u5165 Adobe Flex 4 Plug-in for HP Quick Test Pro\u3002\u6b64\u64ad\u653e\u7a0b\u5f0f\u7121\u6cd5\u4f7f\u7528 ExternalInterface\u3002
+noPlayerID=\u7121\u6cd5\u8f09\u5165 Adobe Flex 4 Plug-in for HP Quick Test Pro\u3002\u5728 html \u9801\u9762\u4e2d\u672a\u6307\u5b9a\u64ad\u653e\u7a0b\u5f0f\u7684 ID\u3002
+invalidPlayerID=\u7121\u6cd5\u8f09\u5165 Adobe Flex 4 Plug-in for HP Quick Test Pro\u3002\u64ad\u653e\u7a0b\u5f0f ID\u300c{0}\u300d\u7121\u6548\u3002
+unableToLoadPluginGeneric=\u7121\u6cd5\u8f09\u5165 Adobe Flex 4 Plug-in for HP Quick Test Pro -\u300c{0}\u300d\u3002
+notSynchronized=\u7b49\u5f85\u5148\u524d\u7684\u4f5c\u696d\u5b8c\u6210\u3002
+
+# qtp/QTPEnvironment
+
+autClassNotFound=\u627e\u4e0d\u5230\u300c{0}\u300d\u300c{1}\u300d\u7684 AutomationClass\u3002
+
+
+
+# Licence handler messages 
+recordLimitReached=\u6388\u6b0a\u4e0d\u5b58\u5728\u3002\u4f7f\u7528\u8a66\u7528\u7248\u6642\u50c5\u5141\u8a31\u6709\u9650\u7684\u8a18\u9304\u3002
+replayLimitReached=\u6388\u6b0a\u4e0d\u5b58\u5728\u3002\u4f7f\u7528\u8a66\u7528\u7248\u6642\u50c5\u5141\u8a31\u6709\u9650\u7684\u91cd\u65b0\u57f7\u884c\u3002

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/bundles/zh_TW/automation_agent.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/bundles/zh_TW/automation_agent.properties
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/flex/trunk/frameworks/projects/automation_agent/src/AutomationAgentClasses.as
URL: http://svn.apache.org/viewvc/incubator/flex/trunk/frameworks/projects/automation_agent/src/AutomationAgentClasses.as?rev=1351437&view=auto
==============================================================================
--- incubator/flex/trunk/frameworks/projects/automation_agent/src/AutomationAgentClasses.as (added)
+++ incubator/flex/trunk/frameworks/projects/automation_agent/src/AutomationAgentClasses.as Mon Jun 18 18:10:20 2012
@@ -0,0 +1,47 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package
+{
+
+/**
+ *  @private
+ *  In some projects, this class is used to link additional classes
+ *  into the SWC beyond those that are found by dependency analysis
+ *  starting from the classes specified in manifest.xml.
+ *  This project has no manifest file (because there are no MXML tags
+ *  corresponding to any classes in it) so all the classes linked into
+ *  the SWC are found by a dependency analysis starting from the classes
+ *  listed here.
+ */
+internal class AutomationAgentClasses
+{
+	import mx.automation.AutomationClass; AutomationClass;
+	import mx.automation.AutomationEventDescriptor; AutomationEventDescriptor;
+	import mx.automation.AutomationMethodDescriptor; AutomationMethodDescriptor;
+	import mx.automation.AutomationPropertyDescriptor; AutomationPropertyDescriptor;
+	import mx.automation.AutomationError; AutomationError;
+	import mx.automation.AutomationManager; AutomationManager;
+	import mx.automation.AutomationID; AutomationID;
+	import mx.automation.AutomationIDPart; AutomationIDPart;
+	import mx.automation.AutomationHelper; AutomationHelper;
+	// Maintain alphabetical order
+}
+
+}

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/AutomationAgentClasses.as
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/AutomationAgentClasses.as
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/Automation.as
URL: http://svn.apache.org/viewvc/incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/Automation.as?rev=1351437&view=auto
==============================================================================
--- incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/Automation.as (added)
+++ incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/Automation.as Mon Jun 18 18:10:20 2012
@@ -0,0 +1,325 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.automation 
+{
+
+import flash.utils.Dictionary;
+
+import mx.core.Application;
+import mx.core.FlexGlobals;
+import mx.core.mx_internal;
+
+use namespace mx_internal;
+
+/**
+ * The Automation class defines the entry point for the Flex Automation framework.
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+
+public class Automation
+{
+    //--------------------------------------------------------------------------
+    //
+    //  Class variables
+    //
+    //--------------------------------------------------------------------------
+    
+    /**
+     *  @private
+     *  Component class to Delegate class map
+     */
+    mx_internal static var delegateDictionary:Dictionary;
+	
+	mx_internal static var priotityDictionary:Dictionary;
+	
+	mx_internal static var DEFAULT_REGISTRATION_PRIORITY:int = 0;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  automationManager
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    private static var _automationManager:IAutomationManager;
+	// For ApacheFlex there are no licenscing restrictions for FlashBuilder.
+    private static const _restrictionNeeded:Boolean = false;  
+    private static var _recordedLinesCount:Number = 0;
+    private static var _errorShown:Boolean = false;  
+    
+    /**
+     *  @private
+     */
+    public static var recordReplayLimit:Number = 30;  
+    /**
+     * The IAutomationManager instance.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static function get automationManager():IAutomationManager
+    {
+        return _automationManager;
+    }
+      public static function get automationManager2():IAutomationManager2
+    {
+        return _automationManager as IAutomationManager2;
+    }
+    /**
+     *  @private
+     */
+    public static function get recordedLinesCount():Number
+    {
+        return _recordedLinesCount;
+    }
+    
+    /**
+     *  @private
+     */
+    public static function set recordedLinesCount(count:Number):void
+    {
+         _recordedLinesCount=count;
+    }
+
+    /**
+     *  @private
+     */
+    public static function set restrictionNeeded(restrictionStatus:Boolean):void
+    {
+		// For ApacheFlex there are no licenscing restrictions for FlashBuilder.
+		//_restrictionNeeded = restrictionStatus;
+    }
+    
+    /**
+     *  @private
+     */
+    public static function incrementRecordedLinesCount():Number
+    {
+        return (++_recordedLinesCount); 
+    }
+    /**
+     *  @private
+     */
+    public static function decrementRecordedLinesCount():Number
+    {
+        // this method is needed, because in some scenearios eventhough
+        // the recordAutomatable method is called, it will not get recorded
+        // so to  reduce the count, this method is used.
+        if(_recordedLinesCount > 0)
+        {
+            _recordedLinesCount--;
+        }
+        return (_recordedLinesCount); 
+    }
+    /**
+     *  @private
+     */
+    public static function isLicensePresent():Boolean
+    {
+        return !(_restrictionNeeded);
+    }
+    
+    /**
+     *  @private
+     */
+    public static function get errorShown():Boolean
+    {
+        return _errorShown;
+    }
+      
+    /**
+     *  @private
+     */
+    public static function set errorShown(errorShownNewVal:Boolean):void
+    {
+         _errorShown = errorShownNewVal;
+    }
+	
+	//----------------------------------
+	//  automationDebugTracer
+	//----------------------------------
+	
+	/**
+	 *  @private
+	 */
+	private static var _automationDebugTracer:IAutomationDebugTracer;
+	
+	/**
+	 * The available IAutomationDebugTracer instance.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 4
+	 */
+	public static function get automationDebugTracer():IAutomationDebugTracer
+	{
+		return _automationDebugTracer;
+	}
+      
+    /**
+     * @private
+     */
+    public static function set automationManager(manager:IAutomationManager):void
+    {
+        _automationManager = manager;
+        _automationObjectHelper = manager as IAutomationObjectHelper;
+		_automationDebugTracer = manager as IAutomationDebugTracer;
+    }
+
+    //----------------------------------
+    //  automationObjectHelper
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    private static var _automationObjectHelper:IAutomationObjectHelper;
+    
+    /**
+     * The available IAutomationObjectHelper instance.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static function get automationObjectHelper():IAutomationObjectHelper
+    {
+        return _automationObjectHelper;
+    }
+
+    //----------------------------------
+    //  initialized
+    //----------------------------------
+
+    /**
+     * Contains <code>true</code> if the automation module has been initialized.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static function get initialized():Boolean
+    {
+        return _automationManager != null;
+    }
+
+    //----------------------------------
+    //  mouseSimulator
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    private static var _mouseSimulator:IAutomationMouseSimulator;
+        
+    /**
+     * The currently active mouse simulator.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static function get mouseSimulator():IAutomationMouseSimulator
+    {
+        return _mouseSimulator;
+    }
+
+    /**
+     * @private
+     */
+    public static function set mouseSimulator(ms:IAutomationMouseSimulator):void
+    {
+        _mouseSimulator = ms;
+    }
+    
+    //--------------------------------------------------------------------------
+    //
+    //  Class methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Registers the component class and delegate class association with Automation.
+     * 
+     *  @param compClass The component class. 
+     * 
+     *  @param delegateClass The delegate class associated with the component.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static function registerDelegateClass(compClass:Class, delegateClass:Class, priority:int=0):void
+    {          
+        if (!delegateDictionary)
+            delegateDictionary = new Dictionary(true);
+				
+		if(!priotityDictionary)
+			priotityDictionary = new Dictionary(true);
+		
+		priotityDictionary[delegateClass] = priority;
+		
+		// check whether we have a delegate for this class alaredy
+		var canBeReplaced:Boolean = true;
+		var existingDelegateClass:Class =  delegateDictionary[compClass];
+		if(existingDelegateClass)
+		{
+			// get the priority of the existing delegate class
+			var existingPriority:int = priotityDictionary[existingDelegateClass];
+			if(existingPriority > priority)
+				canBeReplaced = false;
+		}
+		
+		if(canBeReplaced)
+        	delegateDictionary[compClass] = delegateClass;
+    }
+    
+    public static function getMainApplication():Object
+	{
+		/*
+		var obj:Object = FlexGlobals.topLevelApplication as mx.core.Application;
+		if(obj)
+			return obj;
+		else
+			obj:Object = FlexGlobals.topLevelApplication as mx.spark.Application;
+		return obj;
+		*/
+		return FlexGlobals.topLevelApplication;
+	}
+}
+
+}

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/Automation.as
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/Automation.as
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationClass.as
URL: http://svn.apache.org/viewvc/incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationClass.as?rev=1351437&view=auto
==============================================================================
--- incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationClass.as (added)
+++ incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationClass.as Mon Jun 18 18:10:20 2012
@@ -0,0 +1,599 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.automation
+{
+import flash.display.DisplayObject;
+import flash.events.Event;
+import flash.events.KeyboardEvent;
+import flash.system.ApplicationDomain;
+import flash.utils.describeType;
+import flash.utils.getQualifiedClassName;
+
+import mx.core.mx_internal;
+import mx.managers.ISystemManager;
+import mx.managers.SystemManagerProxy;
+import mx.utils.ObjectUtil;
+
+use namespace mx_internal;
+
+/**
+ * Provides serializable class information for external automation tools.
+ * Some classes are represented as the same AutomationClass (HSlider and VSlider, forinstance).
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+
+public class AutomationClass implements IAutomationClass2
+{
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+    public function AutomationClass(name:String, superClassName:String = null)
+    {
+		super();
+
+        _name = name;
+        _superClassName = superClassName;
+    }
+
+	//--------------------------------------------------------------------------
+	//
+	//  Variables
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+	 *  @private
+	 */
+    private var _implementationClassNames:Array = [];
+    
+    /**
+	 *  @private
+	 */
+	private var _properties:Array = [];
+	
+    /**
+	 *  @private
+	 */
+	private var _verificationProperties:Array = [];
+	
+    /**
+	 *  @private
+	 */
+	private var _descriptionProperties:Array = [];
+	
+    /**
+	 *  @private
+	 */
+	private var _event2descriptor:Object = {};
+    
+    /**
+	 *  @private
+	 */
+	private var _method2descriptor:Object = {};
+    
+    /**
+	 *  @private
+	 */
+	private var _propertyASTypesInitialized:Boolean = false;
+	
+	
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  name
+	//----------------------------------
+
+    /**
+	 *  @private
+	 */
+    private var _name:String;
+
+    /**
+	 * the class name
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+    public function get name():String
+    {
+        return _name;
+    }
+
+	//----------------------------------
+	//  superClassName
+	//----------------------------------
+
+    /**
+	 *  @private
+	 */
+    private var _superClassName:String;
+
+    /**
+	 * The name of the class's superclass.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+    public function get superClassName():String
+    {
+        return _superClassName;
+    }
+    
+    //----------------------------------
+	// previousVersionClassNames
+	//----------------------------------
+    
+    /**
+	 *  @private
+	 */
+	private var _previousVersionClassNames:Array = [];
+	
+	/**
+     * An array of names of the classes that are compatible with current class.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4
+     */
+    public function get previousVersionClassNames():Array
+    {
+    	return _previousVersionClassNames;
+    }
+    
+    /**
+     *  @private
+     */
+    public function set previousVersionClassNames(value:Array):void
+    {
+    	_previousVersionClassNames = value;
+    } 
+    
+    /**
+	 *  @private
+	 */
+	private var _implementationVersion:int = 0;
+	
+	/**
+     * @inheritDoc
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4
+     */
+    public function get implementationVersion():int
+    {
+    	return _implementationVersion;
+    }
+    
+    /**
+     *  @private
+     */
+    public function set implementationVersion(value:int):void
+    {
+    	_implementationVersion = value;
+    } 
+    
+    /**
+	 *  @private
+	 *  A map of property name to property descriptor.
+	 *  Useful in getting the descriptor based on property names.
+	 */
+	private var _propertyNameMap:Object = {};
+ 
+	//--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+	 * Add Flex class names which match this class description.
+	 *
+	 * @param className the name of the Flex class
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+    public function addImplementationClassName(className:String):void
+    {
+        _implementationClassNames.push(className);
+    }
+
+    /**
+	 * @private
+	 * Add a property descriptor to the class object
+	 */
+    public function addPropertyDescriptor(p:IAutomationPropertyDescriptor):void
+    {
+        _properties.push(p);
+        if (p.forVerification)
+	        _verificationProperties.push(p);
+	    
+	    if (p.forDescription)
+	      	_descriptionProperties.push(p);
+	            	
+	    _propertyNameMap[p.name] = p;
+    }
+
+    /**
+	 * @inheritDoc
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+    public function getPropertyDescriptors(objForInitialization:Object = null,
+                                           forVerification:Boolean = true,
+                                           forDescription:Boolean = true):Array
+    {
+        // This is for nested app support. Since a component may not be loaded
+        // until the sub-app is loaded, we need to delay accessing any
+        // Class or describeType info until we have an instance who's loaderInfo
+        // we can use. This assumes that objForInitialization is the type we need
+        if (!_propertyASTypesInitialized && objForInitialization != null)
+        {
+            _propertyASTypesInitialized = true;
+            
+            var dt:XML = describeType(objForInitialization);
+            
+            //dt shouldn't be null when it gets here
+            fillInASTypesFromProperties(dt, _properties);
+		}
+		
+		var result:Array = [];
+        if (forVerification && forDescription)
+        	result = _properties;
+        else if (forVerification)
+        	result = _verificationProperties;
+        else if (forDescription)
+        	result = _descriptionProperties;
+        	
+       	return result;
+    }
+    
+    /**
+	 * @private
+	 */
+	public function addMethod(m:IAutomationMethodDescriptor):void
+    {
+        var hash:String = m.name;
+                            
+        _method2descriptor[hash] = m;
+    }
+
+    /**
+	 * @private
+	 */
+	public function addEvent(m:IAutomationEventDescriptor):void
+    {
+        var hash:String = hash(m.eventClassName, m.eventType);
+                            
+        _event2descriptor[hash] = m;
+    }
+
+    /**
+     *  Translates between component event and Automation method descriptor
+     *
+     *  @param event The event object for which a method descrptor is required.
+	 *
+     *  @return The method descriptor for the event passed if one is available. 
+     *          Otherwise null.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function getDescriptorForEvent(
+						event:Event):IAutomationEventDescriptor
+    {
+        var eventType:String = event.type;
+        if (event is KeyboardEvent)
+            eventType = "keyPress";
+        var eventClassName:String = getClassName(event);
+        var hash:String = hash(eventClassName, eventType);
+        return hash in _event2descriptor ? _event2descriptor[hash] : null;
+    }
+
+     /**
+      * Returns a full methodDescriptor from its name
+      *
+      *  @param methodName The method name for which the descriptor is required.
+      *
+      *  @return The method descriptor for the name passed if one is available. 
+      *          Otherwise null.
+      *  
+      *  @langversion 3.0
+      *  @playerversion Flash 9
+      *  @playerversion AIR 1.1
+      *  @productversion Flex 3
+      */
+    public function getDescriptorForMethodByName(
+						methodName:String):IAutomationMethodDescriptor
+    {
+        for (var i:Object in _method2descriptor)
+        {
+            if (_method2descriptor[i].name == methodName)
+                return _method2descriptor[i];
+        }
+
+        return null;
+    }
+
+    public function getDescriptorForEventByName(
+						eventName:String):IAutomationEventDescriptor
+    {
+        for (var i:Object in _event2descriptor)
+        {
+            if (_event2descriptor[i].name == eventName)
+                return _event2descriptor[i];
+        }
+
+        return null;
+    }
+    
+    /**
+	 * Returns the fully qualified name of the class to which the object belongs.
+	 *  
+	 * @param obj The object whose class name is desired
+	 * 
+	 * @return Fully qualified name of the class
+	 * 
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+    public static function getClassName(obj:Object):String
+    {
+    	return getQualifiedClassName(obj).replace("::", ".");
+    }
+    
+    /**
+     * Returns the major from current version number
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4
+     */
+    public static function getMajorVersion():String
+    {
+    	return AutomationManager.VERSION.charAt(0);
+    }  
+
+	private static function getRootForThePopupObject(obj:DisplayObject):ISystemManager
+	{
+		var requiredSystemManager:ISystemManager = null;
+		
+		if(obj)
+		{
+			var objFound:Boolean = false;
+		 	while((!objFound) && (obj.parent))
+	    	{
+	    		if(obj.parent is SystemManagerProxy)
+	    		{
+	    			requiredSystemManager = obj.parent.hasOwnProperty("systemManager")?obj.parent["systemManager"]:null;
+	    			objFound = true;
+	    		}
+	    		obj = obj.parent;
+	    	}
+  		}
+    	return requiredSystemManager;
+	}
+	
+    /**
+     *  Utility function that returns the class definition from the domain of a
+     *  object instance
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static function getDefinitionFromObjectDomain(obj:Object, className:String):Class
+    {
+		var eventClass:Class ;
+		try
+		{
+			var dispObj:DisplayObject = obj as DisplayObject;
+			
+			// if the object is related to Popup's we need to get the application domain
+			// from where the object is created. the root of the object here will corresponds to
+			// the main application hence we getting the defintion from the main appl will not be correct
+			var systemmanager:ISystemManager = getRootForThePopupObject(dispObj);
+			
+			if(systemmanager != null)
+				eventClass = Class(systemmanager.loaderInfo.applicationDomain.getDefinition(className));
+			else
+				eventClass = Class(dispObj.root.loaderInfo.applicationDomain.getDefinition(className));
+		}
+		catch(e:Error)
+		{
+			// we can get a reference or security exception
+			// in which case we try to access the objects own domain
+			try
+			{
+				eventClass = Class(ApplicationDomain.currentDomain.getDefinition(className));
+			}
+			catch(e:Error)
+			{
+				// we can get a reference or security exception
+
+				// In this case we assume that the class definition is not available
+				// as the class has not been referenced in the app and it has 
+				// not been linked in.
+			}
+		}
+
+		return eventClass;		
+    }
+
+    /**
+     *  Fills in the AS types for the provided propertyDescriptors based
+     *  on the information provided in the describeType XML.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static function fillInASTypesFromProperties(
+								dtForClass:XML, 
+                                propertyDescriptors:Array):void
+    {
+		// If DT was on a Class, we need to go to the factory node instead
+		var isFactory:Boolean = dtForClass.hasOwnProperty("factory");
+		var dtListForClass:XML = isFactory ? dtForClass.factory[0] : dtForClass;
+
+        for (var propNo:int = 0; propNo < propertyDescriptors.length; ++propNo)
+        {
+		    // First try a property.
+		    var propASTypeXML:XMLList = 
+                dtListForClass.variable.(@name == propertyDescriptors[propNo].name);
+		    
+		    // If not there try an accessor.
+		    if (propASTypeXML.length() == 0)
+			    propASTypeXML = dtListForClass.accessor.
+								(@name == propertyDescriptors[propNo].name);
+    		
+		    propertyDescriptors[propNo].asType = propASTypeXML.length() > 0 ?
+												 propASTypeXML[0].@type.toString() :
+												 null;
+        }
+    }
+
+    /**
+     *  Fills in the AS types for the provided propertyDescriptors based
+     *  on the information provided in the describeType XML.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static function fillInASTypesFromMethods(dtForClass:XML, 
+                                                    methodName:String,
+                                                    argDescriptors:Array):void
+    {
+		// If DT was on a Class, we need to go to the factory node instead
+		var isFactory:Boolean = dtForClass.hasOwnProperty("factory");
+		var dtListForClass:XML = isFactory ? dtForClass.factory[0] : dtForClass;
+
+		var propMethodXML:XMLList = 
+            dtListForClass.method.(@name == methodName);
+
+        if (propMethodXML != null)
+        {
+            for (var argNo:int = 0; argNo < argDescriptors.length; ++argNo)
+			{
+		        argDescriptors[argNo].asType =
+					propMethodXML[0].parameter[argNo].@type.toString(); 
+			}
+        }
+    }
+
+    /**
+	 *  @private
+	 */
+	private static function getASTypeForMethodArgument(dtForClass:XML,
+                                                       methodName:String,
+                                                       argName:String):String
+    {
+        var propASType:String = null;
+        
+		// If DT was done a class, we need to go to the factory node instead.
+		var isFactory:Boolean = dtForClass.hasOwnProperty("factory");
+		var dtListForClass:XML = isFactory ? dtForClass.factory[0] : dtForClass;
+		var propASTypeXML:XMLList =  dtListForClass.variable.(@name==argName);
+		if (propASTypeXML.length() == 0)
+			propASTypeXML = dtListForClass.accessor.(@name==argName);
+		
+		propASType = propASTypeXML.length() > 0 ?
+					 propASTypeXML[0].@type.toString() :
+					 null;
+    		
+		return propASType;
+    }
+
+    /**
+     *  Puts an event in string form for hashing
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    private static function hash(eventClassName:String, eventType:String):String
+    {
+        return eventClassName.replace("::", ".") + "|" + eventType;
+    }
+    
+    /**
+     * private
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get propertyNameMap():Object
+    {
+    	return _propertyNameMap;
+    }
+
+    /**
+     *  @return name, superClassName, and event/method mappings.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function toString():String
+    {
+        return "name: " + _name + "\n" +
+               "superClassName: " + _superClassName + "\n" +
+               "event2descriptor: " + ObjectUtil.toString(_event2descriptor);
+    }
+}
+
+}

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationClass.as
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationClass.as
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationConstants.as
URL: http://svn.apache.org/viewvc/incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationConstants.as?rev=1351437&view=auto
==============================================================================
--- incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationConstants.as (added)
+++ incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationConstants.as Mon Jun 18 18:10:20 2012
@@ -0,0 +1,28 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package mx.automation
+{
+	public class AutomationConstants
+	{
+		public static const invalidDelegateMethodCall:String = "This method should not be called on delegate.Should have been called on the component";
+		public static const invalidMethodCall:String = "We should not have this method";
+		public static const invalidInAIR:String = "In Air we are not allowed to do this on the Window object. We need to settle this with AIR team";
+		public static const missingAIRClass:String = "In AIR we are supposed to have class 'mx.automation.air.AirFunctionsHelper'.";
+	}
+}
\ No newline at end of file

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationConstants.as
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationConstants.as
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationError.as
URL: http://svn.apache.org/viewvc/incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationError.as?rev=1351437&view=auto
==============================================================================
--- incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationError.as (added)
+++ incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationError.as Mon Jun 18 18:10:20 2012
@@ -0,0 +1,122 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.automation
+{
+
+
+/**
+ * The AutomationError class defines the error constants used by the Flex Automation mechanism.
+ * These error codes are used by QTP. 
+ * They are used when QTP requests the type of the error that occurred during any operation.
+ *
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class AutomationError extends Error 
+{
+
+/**
+ * Defines the code for the error when an object is not found by the Flex automation mechanism.
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+    public static const OBJECT_NOT_FOUND:Number = 0x80040202;
+
+/**
+ * Defines the code for the error when the Flex automation mechanism detects that an object has the same identification parameters as another object.
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+    public static const OBJECT_NOT_UNIQUE:Number = 0x80040203;
+
+/**
+ * Defines the code for the error when the Flex automation mechanism encounters an illegal operation.
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+    public static const ILLEGAL_OPERATION:Number = 0x80040206;
+
+/**
+ * Defines the code for the error when the Flex automation mechanism encounters an illegal runtime ID.
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+    public static const ILLEGAL_RUNTIME_ID:Number = 0x8004020D;
+
+/**
+ * Defines the code for the error when an object used by the Flex automation mechanism is not visible.
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+    public static const OBJECT_NOT_VISIBLE:Number = 0x80040205; 
+
+    private var _code:Number = 0;
+    
+    /**
+     * Constructor.
+     *
+     *  @param msg An error message.
+     *
+     *  @param code The error code associated with the error message.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function AutomationError(msg:String, code:Number)
+    {
+        super(msg);
+        this._code = code;
+    }
+    
+    
+    /**
+     * The current error code.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get code():Number
+    {
+        return _code;
+    }
+}
+}

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationError.as
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationError.as
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationEventDescriptor.as
URL: http://svn.apache.org/viewvc/incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationEventDescriptor.as?rev=1351437&view=auto
==============================================================================
--- incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationEventDescriptor.as (added)
+++ incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationEventDescriptor.as Mon Jun 18 18:10:20 2012
@@ -0,0 +1,261 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.automation
+{
+
+import flash.events.Event;
+import flash.events.FocusEvent;
+import flash.events.KeyboardEvent;
+import flash.system.ApplicationDomain;
+import flash.utils.describeType;
+import mx.automation.events.AutomationReplayEvent;
+import mx.core.mx_internal;
+
+use namespace mx_internal;
+
+/**
+ * Method descriptor class.
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class AutomationEventDescriptor implements IAutomationEventDescriptor
+{
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  Constructor
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function AutomationEventDescriptor(name:String,
+                                               eventClassName:String,
+                                               eventType:String,
+                                               args:Array)
+    {
+        super();
+
+        _name = name;
+        _eventClassName = eventClassName;
+        _eventType = eventType;
+        _args = args;
+    }
+
+	//--------------------------------------------------------------------------
+	//
+	//  Variables
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    private var _args:Array;
+    
+    /**
+     *  @private
+     */
+	private var _eventArgASTypesInitialized:Boolean = false;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  name
+	//----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _name:String;
+
+	/**
+	 * @private
+	 */
+    public function get name():String
+    {
+        return _name;
+    }
+
+	//----------------------------------
+	//  eventClassName
+	//----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _eventClassName:String;
+
+	/**
+	 * @private
+	 */
+    public function get eventClassName():String
+    {
+        return _eventClassName;
+    }
+    
+	//----------------------------------
+	//  eventType
+	//----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _eventType:String;
+
+	/**
+	 * @private
+	 */
+    public function get eventType():String
+    {
+        return _eventType;
+    }
+    
+	//--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 * @private
+	 */
+    public function record(target:IAutomationObject, event:Event):Array
+    {
+        var propertyDescriptors:Array = getArgDescriptors(target);
+        
+        var result:Array = [];
+        var consecutiveDefaultValueCount:Number = 0;
+        for (var i:int = 0; i < propertyDescriptors.length; i++)
+        {
+            var val:Object = event[propertyDescriptors[i].name];
+            
+            if(val is IAutomationObject)
+            	val = IAutomationObject(val).automationValue
+
+			var isDefaultValueNull:Boolean = propertyDescriptors[i].defaultValue == "null";
+
+            consecutiveDefaultValueCount = (!(val == null && isDefaultValueNull) &&
+            								(propertyDescriptors[i].defaultValue == null || 
+                                             val == null ||
+                                             propertyDescriptors[i].defaultValue != val.toString())
+                                            ? 0
+                                            : consecutiveDefaultValueCount + 1);
+
+            result.push(val);
+        }
+
+        result.splice(result.length - consecutiveDefaultValueCount, 
+                      consecutiveDefaultValueCount);
+
+        return result;
+    }
+    
+    /**
+	 * @inheritDoc
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function replay(target:IAutomationObject, args:Array):Object
+    {
+        var event:Event = createEvent(target);
+        
+        var argDescriptors:Array = getArgDescriptors(target);
+		
+		// set event properties
+		for (var argNo:int = 0; argNo < args.length; ++argNo)
+			event[argDescriptors[argNo].name] = args[argNo];
+        
+        var riEvent:AutomationReplayEvent = new AutomationReplayEvent();
+		riEvent.automationObject = target;
+		riEvent.replayableEvent = event;
+        Automation.automationManager.replayAutomatableEvent(riEvent);
+
+        return null;
+    }
+
+	/**
+	 * @inheritDoc
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+    public function getArgDescriptors(obj:IAutomationObject):Array
+    {
+        if (!_eventArgASTypesInitialized && obj != null)
+        {
+            _eventArgASTypesInitialized = true;
+            
+            var eventClass:Class = 
+            		AutomationClass.getDefinitionFromObjectDomain(obj, _eventClassName);
+            var dt:XML = describeType(eventClass);
+            AutomationClass.fillInASTypesFromProperties(dt, _args);
+        }
+
+        return _args;
+    }
+
+    /**
+     *  Creates an event based on the class and type described in this
+     *  descriptor.
+     *  
+     *  @param Object An object in whose applicationDomain the required event class
+     *                exists. 
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function createEvent(obj:Object):Event
+    {
+		var eventClass:Class = 
+			AutomationClass.getDefinitionFromObjectDomain(obj, _eventClassName);
+		
+		return (eventClass == KeyboardEvent 
+                ? new KeyboardEvent(KeyboardEvent.KEY_DOWN) 
+                : (eventClass == FocusEvent && 
+                   _eventType == FocusEvent.KEY_FOCUS_CHANGE
+                   // this event is not like the other children.  it needs
+                   // to be cancelable.  this should be generalized at some point
+                   // because other children may need this attention too.
+                   ? new eventClass(_eventType, true, true)
+                   : new eventClass(_eventType)));
+    }
+}
+
+}

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationEventDescriptor.as
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationEventDescriptor.as
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationHelper.as
URL: http://svn.apache.org/viewvc/incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationHelper.as?rev=1351437&view=auto
==============================================================================
--- incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationHelper.as (added)
+++ incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationHelper.as Mon Jun 18 18:10:20 2012
@@ -0,0 +1,390 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.automation
+{
+	import flash.geom.Point;
+	import flash.utils.Dictionary;
+	import flash.utils.getDefinitionByName;
+	
+	import mx.core.Application;
+	import mx.core.FlexGlobals;
+	import mx.managers.ISystemManager;
+	
+	/**
+	 *  Helper class used to call appropriate methods based on whether the 
+	 *  current app is an AIR app or a Flex app.
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10
+	 *  @playerversion AIR 1.5
+	 *  @productversion Flex 4
+	 */     
+	public class AutomationHelper
+	{
+		/**
+		 *  @private
+		 *  system manager which will be used to get the definition of the requried class
+		 */
+		private static var sm:ISystemManager;
+		private static var appType:int  = -1;
+		
+		/**
+		 *  @private
+		 *  Dictionary of already found classes
+		 */
+		private static var requiredClasses:Dictionary = new Dictionary(true);   
+		
+		
+		/**
+		 *  Constructor
+		 * 
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10
+		 *  @playerversion AIR 1.5
+		 *  @productversion Flex 4
+		 */     
+		public function AutomationHelper()
+		{
+		}
+		
+		/**
+		 *  Sets the system manager using which the root application is determined.
+		 * 
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10
+		 *  @playerversion AIR 1.5
+		 *  @productversion Flex 4
+		 */     
+		public static function registerSystemManager(sm1:ISystemManager):void
+		{
+			sm = sm1;
+		}
+		
+		/**
+		 *  Returns the top level application.
+		 * 
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10
+		 *  @playerversion AIR 1.5
+		 *  @productversion Flex 4
+		 */     
+		public static function getMainApplication():Object
+		{
+			//return FlexGlobals.topLevelApplication as Application;
+			// change to support the Spark application
+			// http://bugs.adobe.com/jira/browse/FLEXENT-1047
+			return FlexGlobals.topLevelApplication;
+		}
+		
+		/**
+		 *  Returns true if the current application is an AIR app, false otherwise.
+		 * 
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10
+		 *  @playerversion AIR 1.5
+		 *  @productversion Flex 4
+		 */     
+		public static function isCurrentAppAir():Boolean
+		{
+			// appType -1  - type not set
+			// appType 1  - air
+			// appType 2  - flex
+			
+			if(appType == -1)
+				//appType =  Application.application.hasOwnProperty("applicationID")?1:2
+				appType =  getMainApplication().hasOwnProperty("applicationID")?1:2
+			
+			if(appType == 2)
+			{
+				// we are not having applicaitonID, not let us check if we have id. 
+				// if id is null and if the to level applicaiton. Top level flex applicaiton
+				// should have the id.  So if it is top level and if it does not have id, 
+				// this is the case of air applications which does not have an applicationId
+				// so we will still consier it as an AIR app.
+				if(!getMainApplication().id)
+				{
+					if(sm.isTopLevelRoot())
+						appType = 1;    
+				}
+			}
+			
+			return (appType==1)?true:false;
+		}
+		
+		
+		
+		/**
+		 *  Returns the title in case of AIR app, empty string otherwise.
+		 *   
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10
+		 *  @playerversion AIR 1.5
+		 *  @productversion Flex 4
+		 */     
+		public static function getAppTitle():String
+		{
+			var appTitle:String="";
+			var allPropFound:Boolean= false;
+			var am:IAutomationDebugTracer = Automation.automationDebugTracer;
+			
+			// get the type of the application.
+			
+			//if(Application.application.hasOwnProperty("applicationID"))   //air app
+			if(isCurrentAppAir())// air app
+			{
+				var airFunctionHandler:Class = null;
+				try
+				{
+					airFunctionHandler = getAirHelperClass("mx.automation.air.AirFunctionsHelper");
+					if(airFunctionHandler)
+					{
+						var obj:Object = new airFunctionHandler(null);
+						
+						if(obj.hasOwnProperty("appTitle"))
+						{
+							appTitle = obj["appTitle"];
+							allPropFound = true;
+						}
+						
+					}
+					
+				}
+				catch(e:Error)
+				{
+					throw e;
+					
+				}
+				if(allPropFound == false)
+				{
+					am.traceMessage("AutomationHelper", "getAppTitle()","In AIR we are supposed to have class 'mx.automation.air.AirFunctionsHelper' with appTitle property.");
+					// TBD. Converting this as user message and adding this in the locales.
+				}
+			}
+			else // we are in flex app
+			{
+				// get the application start coordinate  from the browsers
+				//appTitle = ExternalInterfaceMethods_AS.getBrowserTitle();
+			}
+			return appTitle;
+		}
+		
+		
+		/**
+		 *  Returns the current active window in case of AIR app, 
+		 *  top level application otherwise.
+		 * 
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10
+		 *  @playerversion AIR 1.5
+		 *  @productversion Flex 4
+		 */     
+		public static function getActiveWindow(windowId:String):Object
+		{
+			var activeWindow:Object = FlexGlobals.topLevelApplication;
+			var allPropFound:Boolean= false;
+			
+			// get the type of the application.
+			
+			//if(Application.application.hasOwnProperty("applicationID"))   //air app
+			if(isCurrentAppAir())// air app
+			{
+				var airFunctionHandler:Class = null;
+				try
+				{
+					airFunctionHandler = getAirHelperClass("mx.automation.air.AirFunctionsHelper");
+					if(airFunctionHandler)
+					{
+						var obj:Object = new airFunctionHandler(windowId);
+						
+						if(obj.hasOwnProperty("activeWindow"))
+						{
+							activeWindow = obj["activeWindow"];
+							allPropFound = true;
+						}				
+					}
+					
+				}
+				catch(e:Error)
+				{
+					throw e;
+					
+				}
+				if(allPropFound == false)
+				{
+					Automation.automationDebugTracer.traceMessage("AutomationHelper", "getActiveWindow()","In AIR we are supposed to have class 'mx.automation.air.AirFunctionsHelper' with activeWindow property.");
+					// TBD. Converting this as user message and adding this in the locales.
+				}
+			}
+			else // we are in flex app
+			{
+				
+			}
+			return activeWindow;
+		}
+		
+		/**
+		 *  Returns the start point in screen coordinates.
+		 * 
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10
+		 *  @playerversion AIR 1.5
+		 *  @productversion Flex 4
+		 */     
+		public static function getStageStartPointInScreenCoords(windowId:String ):Point
+		{
+			
+			var allPropFound:Boolean= false;
+			var stageStartPointInScreenCoordinates:Point;
+			// get the application start cooridnate in screen points
+			//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+			
+			
+			// get the type of the application.
+			//if(getMainApplication().hasOwnProperty("applicationID"))  //air app
+			if(isCurrentAppAir())
+			{
+				var airFunctionHandler:Class = null;
+				try
+				{
+					airFunctionHandler = getAirHelperClass("mx.automation.air.AirFunctionsHelper");
+					if(airFunctionHandler)
+					{
+						var obj:Object = new airFunctionHandler(windowId);
+						
+						if(obj.hasOwnProperty("stageStartCoordinates"))
+						{
+							stageStartPointInScreenCoordinates = obj["stageStartCoordinates"];
+							allPropFound = true;
+						}                    
+					}
+					
+				}
+				catch(e:Error)
+				{                   
+					throw(e);
+				}
+				if(allPropFound == false)
+				{
+					Automation.automationDebugTracer.traceMessage("AutomationHelper", "getStageStartPointInScreenCoords()","In AIR we are supposed to have class 'mx.automation.air.AirFunctionsHelper' with stageStartCoordinates property.");
+					// TBD. Converting this as user message and adding this in the locales.
+				}
+			}
+			else // we are in flex app
+			{
+				stageStartPointInScreenCoordinates = Automation.automationManager2.getStartPointInScreenCoordinates(windowId);
+				//var point:Point = Application.application.localToGlobal(new Point(Application.application.x, Application.application.y));
+				var appObj:Object = getMainApplication();
+				var point:Point = appObj.localToGlobal(new Point(appObj.x, appObj.y));
+				stageStartPointInScreenCoordinates.x = stageStartPointInScreenCoordinates.x + point.x;
+				stageStartPointInScreenCoordinates.y = stageStartPointInScreenCoordinates.y + point.y;
+			}
+			//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
+			
+			return stageStartPointInScreenCoordinates;
+		} 
+		
+		
+		private static var classLoadingFailed:Boolean = false;
+		
+		/**
+		 *  Returns false if AIR helper class (AirFunctionsHelper) is not loaded.
+		 * 
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10
+		 *  @playerversion AIR 1.5
+		 *  @productversion Flex 4
+		 */     
+		public static function isAirClassLoaded():Boolean
+		{
+			return  !classLoadingFailed;
+		}
+		
+		/**
+		 *  Returns the helper class used for AIR automation (AirFunctionsHelper).
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10
+		 *  @playerversion AIR 1.5
+		 *  @productversion Flex 4
+		 */     
+		public static function getAirHelperClass(className:String):Class
+		{
+			try
+			{
+				var requiredClass:Class = requiredClasses[className];
+				if(requiredClass == null)
+				{
+					if(sm)
+						requiredClass = Class(sm.getDefinitionByName(className));
+					else
+						requiredClass =  Class(getDefinitionByName((className)));
+					
+					if(requiredClass)
+						// add to the dictionary so that any further request we dont need to get again.
+						requiredClasses[className] = requiredClass;
+				}
+				return requiredClass;
+			}
+			catch (e:Error)
+			{
+				classLoadingFailed = true;
+			}
+			return null;            
+		}
+		
+		/**
+		 *  Returns false if AIR helper class (mx.automation.air.AirFunctionsHelper) is not found.
+		 * 
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10
+		 *  @playerversion AIR 1.5
+		 *  @productversion Flex 4
+		 */     
+		public static function isRequiredAirClassPresent():Boolean
+		{
+			try
+			{
+				if (getAirHelperClass("mx.automation.air.AirFunctionsHelper") != null)
+					return true;
+			}
+			catch(e:Error)
+			{
+				Automation.automationDebugTracer.traceMessage("AutomationHelper", "isRequiredAirClassPresent()", e.message);
+			}
+			Automation.automationDebugTracer.traceMessage("AutomationHelper", "isRequiredAirClassPresent()", AutomationConstants.missingAIRClass);
+			return false;
+		}		
+		
+		public static function isRequiredSparkClassPresent():Boolean
+		{
+			try
+			{
+				if (getDefinitionByName("spark.components.Application") != null)
+					return true;
+			}
+			catch(e:Error)
+			{
+				Automation.automationDebugTracer.traceMessage("AutomationHelper", "isRequiredSparkClassPresent()", e.message);
+			}
+			Automation.automationDebugTracer.traceMessage("AutomationHelper", "isRequiredSparkClassPresent()", "spark.components.Application class is not found.");
+			return false;
+		}
+	}
+}
\ No newline at end of file

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationHelper.as
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/flex/trunk/frameworks/projects/automation_agent/src/mx/automation/AutomationHelper.as
------------------------------------------------------------------------------
    svn:mime-type = text/plain



Mime
View raw message