Merge changes I8e5f02c8,I03503c57
* changes:
Bug 442693 - Added tests
Bug 442693 - Added decorators to "Advanced Information" when dumping UI tree
diff --git a/rcpttTests/contexts/projectWithFailedTests.ctx b/rcpttTests/contexts/projectWithFailedTests.ctx
new file mode 100644
index 0000000..d3f1eda
--- /dev/null
+++ b/rcpttTests/contexts/projectWithFailedTests.ctx
@@ -0,0 +1,141 @@
+--- RCPTT testcase ---
+Format-Version: 1.0
+Context-Type: org.eclipse.rcptt.ctx.workspace
+Element-Name: projectWithFailedTests
+Element-Type: context
+Element-Version: 2.0
+Id: _SrzGMC9CEeS6jLApChUV4Q
+Runtime-Version: 1.5.0.201406020630
+Save-Time: 8/29/14 1:20 PM
+
+------=_contents/q7project/defaultWB.ctx-5870615a-f089-338e-916f-277f01fea96d
+Content-Type: q7/binary
+Entry-Name: contents/q7project/defaultWB.ctx
+
+UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAAALmNvbnRlbnSdU02TojAUvPMruFtoAiJi1RyCoiKI
+fCgily2EoIx8CQHUX7/ozFqze9x3Svq9dLrTwDAMbQo0wRUJ/ArTDMNQ87xMfcI4uKziPJvQsA8oU2Aa
+nIV5OaHbtu3f8hKH/SBPB1eBmuYZwTfCbO8FntAd+N2+Cv067oZe3X6bl5cjzoIzJSc4xRlhdD/t5kMc
++XVC9tIb/8PzOvdG33LYTo4STuhfw4cion1xkvH0oYRwkV3CSkRPqVadkTjFPy1w/XGfBZCDAEDIgzFl
++w1mtvFTAgQDdgA5Gk44QBtrimJe9fHraeGlo7ufC1kMRiJgAjwcM9wIiMyYw91WAMNwKEYQ+9HXU7wt
+XIXBMc788k7JGSnv34Z/kFLUTq5mkmSiKUIK6kox0b/1wrVUb46ZlRwzW784otY+0O4WDjh1p+Gt1yrB
+yCXpQlco05UNM2O3KbnBag/r5GoNWDXgnMST5oY3etS9YLkQYhjOdgUyyvnmKj/IBa58NLevrnbWvF7E
+OUund6nmJG4pZEMlTNp2BZDrpItdPuIw4oRDbhxaPFOAWpTqsRRUs4TsLkRb3MywtXpwUdBrVSvzL+W4
+5+2jy+OG091yxlMjQ/s8FWIoxSsl2cTx6WCprBQSIdIFu7DWI70hqlPXAdTrg2uovHGTHFEhkLcP1bqH
+xup1pi2ls1XHReIuEbWvdtVmcScnHRhWuPYUd5Hly6jQYO5mdq598keiLYdyNKsPm/R+X0eDdADYjXJu
+mqKBjxFbJ8NAM+3e4mr13DF1XkfjqhZXHi+adhsoZ65O8nYoITRrUBdQF5qEziaav8I5PfM5IyUUCn+9
+efaFVkbf+Kuov/Kc8p9Hlgfengcd0Vz6muvIZaQ/17IpfQ1+fPz3h9j9xb8BUEsHCCCsA3mbAgAA2gMA
+AFBLAQIUABQACAgIAAAAIQAgrAN5mwIAANoDAAAIAAAAAAAAAAAAAAAAAAAAAAAuY29udGVudFBLBQYA
+AAAAAQABADYAAADRAgAAAAA=
+------=_contents/q7project/defaultWB.ctx-5870615a-f089-338e-916f-277f01fea96d--
+------=_contents/q7project/.defaultWSctx/content1.test-fad4dd51-e91c-3fc7-80f7-c5de32215b57
+Content-Type: q7/binary
+Entry-Name: contents/q7project/.defaultWSctx/content1.test
+
+UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAAALmNvbnRlbnRtj8sKwjAQRfeC/xBmb6IWqZTGIuJC
+ULoQwZ3UdKyBJukj2vbvTcXqxt1wH2e4YdSqnDyxqqXRHGZ0CgS1MKnUGYeHvU2WEK3Go1AYRVtTYUpL
+n9YCdVJJExw/B2mVDL6UeU9xXF0HTudwt7YIGGuahhqVUVNl7HzYDZG/5G/JueztstJng0tROAmIThRy
+sFhb+G3w+u8y5XDxTnEnkmu8xY1n/Nhb7Jt4nQGxXeFqKHJgbtoLUEsHCDd6xiu1AAAAAwEAAFBLAQIU
+ABQACAgIAAAAIQA3esYrtQAAAAMBAAAIAAAAAAAAAAAAAAAAAAAAAAAuY29udGVudFBLBQYAAAAAAQAB
+ADYAAADrAAAAAAA=
+------=_contents/q7project/.defaultWSctx/content1.test-fad4dd51-e91c-3fc7-80f7-c5de32215b57--
+------=_contents/q7project/.defaultWSctx/content1.project-815ee12c-3ff3-364a-b7f0-ed0764506944
+Content-Type: q7/binary
+Entry-Name: contents/q7project/.defaultWSctx/content1.project
+
+UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAAALmNvbnRlbnRtkEEOwiAQRdeaeIeGvaCrusA2UeMF
+1ANUmDSYAi1Q0+MLlNrUuJv358/8AVoOssneYKzQ6oj2eIcyUExzoeojetyv2wMqi82atka/gLkLWGZE
+67zbqyuqKglFl6cuJZFDg2kpQbmCkqkKavLZCGRBz140/NYCC5Tw7EcrxaOSsvw2PGgDHHc5Zr7A0QnG
+82ms5iv8UGXqPsTbxGQpUPIblJTpEp/qegPJPcKfI7p8bIXsaImb5tnvY5cf+AFQSwcIz2bKQ70AAAB/
+AQAAUEsBAhQAFAAICAgAAAAhAM9mykO9AAAAfwEAAAgAAAAAAAAAAAAAAAAAAAAAAC5jb250ZW50UEsF
+BgAAAAABAAEANgAAAPMAAAAAAA==
+------=_contents/q7project/.defaultWSctx/content1.project-815ee12c-3ff3-364a-b7f0-ed0764506944--
+------=_contents/q7project/rcptt.properties-fd5d5747-330f-3b05-9be7-47bcf072cf18
+Content-Type: q7/binary
+Entry-Name: contents/q7project/rcptt.properties
+
+UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAAALmNvbnRlbnRNzk1uwjAQQOG9TzEXGMdOQEm9rajo
+gp8U2kU3yHJGKKi2gz0k7e0LqhR1/S3eQ0Roa2DK7GwmQETxEpO3jB+Uch+DAS2VaGscKXQxGZimSX7H
+RJ100RfXWqy+yFNg3FpPBvYpXsgxHIi5D+c88/FnuPPwxxti21m2s8618l577Qycluu4eH/OaUW7zzaN
+28Y9De78OHm7Be49/T+sZCNLpSutlNZL1YiDHQmP/eNIq6IsdAXalA3sN0L8AlBLBwguxza0vAAAAPUA
+AABQSwECFAAUAAgICAAAACEALsc2tLwAAAD1AAAACAAAAAAAAAAAAAAAAAAAAAAALmNvbnRlbnRQSwUG
+AAAAAAEAAQA2AAAA8gAAAAAA
+------=_contents/q7project/rcptt.properties-fd5d5747-330f-3b05-9be7-47bcf072cf18--
+------=_contents/q7project/failedWithDecorators.test-10c82563-54dd-3114-bcb3-353948d5f13b
+Content-Type: q7/binary
+Entry-Name: contents/q7project/failedWithDecorators.test
+
+UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAAALmNvbnRlbnSdk01vGjEQhu/+FSPOHdgFFlikHlJK
+Kpo0IYQUoapCxjsbHHZt4jXhI+l/r833sapPluedmWfe2UVEGHT6wyFYKqzgBQEismttcm7xJ5lCatWG
+sBywjlaW1rZow6S+7cVXo8VzlzrbXhJ+U/OkiK8+TVoZjus303v33p/Xx0/FrQobD6ybUU7K4h3PqQ0p
+lxklI2lnX0low602xUky3Cyc5Mhyej6B1BxId23JKJ7hgFIypITLYL3EcS2jsX66qUauf/LSb4y+r6Jt
+8MAGS2VlTpfjROVq+XXJM5lKMuyRvxEOpadrVapxJaxD2A4b0P/BhgeUAxmJjDHcnc+TsvCWOLyAN6v1
+Gg+wGSU1rCVRinEzDjGqxQkFFE2bXOz9uxhxbSu+WldZszlYcyzI2DNZfJO0glLf6BcSFrrrRaYNmRJ8
+gI9aQ+SuBWU++tpcHHT7qHNtCaU7WlX8ANBxE/hEkUkxZyvnPfzyspVUiV7thHAW/oZ3Bu54BSXSTvUa
+kKfO9X1WxqeUuSTP7MQewvG4gc6LO6ZPl9ZqBddSyWJ2AvhzgeAbaHP+/D7+se0R8tgb9064/QLqNHXP
+0AIsLDf2ViqCAJBUcnG934uCXZU5bdC6xcAXLuaPCy7IQZ6MlLmdUc7FTOdc/d/63U/1F1BLBwh/GPnU
+7gEAAGwDAABQSwECFAAUAAgICAAAACEAfxj51O4BAABsAwAACAAAAAAAAAAAAAAAAAAAAAAALmNvbnRl
+bnRQSwUGAAAAAAEAAQA2AAAAJAIAAAAA
+------=_contents/q7project/failedWithDecorators.test-10c82563-54dd-3114-bcb3-353948d5f13b--
+------=_contents/q7project/defaultWS.ctx-f62894c1-f639-3a4d-8b93-315b441db9df
+Content-Type: q7/binary
+Entry-Name: contents/q7project/defaultWS.ctx
+
+UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAAALmNvbnRlbnStlMuSolgQhvc8hXvjyE1uFVELQEAU
+EVS0ZNNxwAMqN7kIwtM3VJU9NdMTE9Mdnas8yR9/JhlfJABgZHOjCpWVD0s0AgBgNgdqlJ6y4mXUNM3k
+kRXoNPGzBM85TM2KBFZgj4rykqUvI3JCYEqMEpRWwIQJehmdUADvcXXY/qj/EFO9eAtrBHaXQUkSOEXg
+JDmiXxh6ZK0w/fQy+sbH4DhdemsFyVY0PTqlkZKsjWHgPV6/+Vla9a5lP82tyK7Ir/Bh+kn1qIAvCPTJ
+E0jA0TQJaH4qAEgFENCEd4LcifchojH5wwDs2ls/RM7h3iWFRYspaVW0nz/xH00wzFHKmSTZoiyGutiH
+bov/jPe6kZi1l25iL7VnoioZUhN+fA2fMsneNoqMqaLo9FVdHmqy8tXjPeSf/D/irwab3sjRPqqKiIm2
+SA3p+lP4x5bX0/G0muTc5NMO0CcKEaxAAB9NeUCzhAB4GvVPjpiepkJAIhj8r71/Mf2dPW/NaKZaTSfa
+5yDg5bLivGOWO9F+sY7tFSZLYnhWslRdPIyVTlcPY7rF6dZ3kiBv5u6Yxk3OHfte0RWtKLiLrLmzroqc
+UIJJXGQVK2new73d24v9trmqNWaYm3Jrxhm3mpPxUSpVFlWEHaLL3m8TYX2/cVu7IImDoC/GenB0mfFq
+uspN6CadQT/wOrvv28dba0g8Y6Uif8PSLpopu83ytDzI1RQm6xROEbtXyPBNOMyRgaNizI+jQ1WO52TA
+mRa6xp1dVgphyBFvLLXcZ9L5ragjLVw3vomx+yQMumaqVbH0kB/b4Kxc19ouc5mu0+ZCzqQWaVpcceTr
+SCUHRi9Q28wgNyx2mUlPRp+IYk9Gk3NkU/dmeOQ9br/M6BNRTA+VvzP6q2B9YfJf8J58JsAnSBb5AQUI
+kuuhRh4NPAEOGcWzBGRZViB/9zY8m/wOs5sqUpR1cxHtzQlBpCOthnJxL0XKQSsVI0XTSWbbo3ghbWK8
+MmKzcO6LmmZ4nBf32bosU3RcdjabXSmk+62jPLoM9dNUbU01q/zCU7CKIB4akXHQXAVjuc7L23u+DGM1
+Zv37wlVnIRXdbC+RozxawtpwZW0jdeSUwM2jLDO7hlP84gHX27JuKEsLZ/O5z7gFJxJ2qmE8lZTMpeYd
+7S23yp330OybY+levNjdlBueo9BaWP4y0Lkb7+lvJdQTj6nS+sj4wVhUeyp8vaO8pc0Rw0nEh+sl9nuU
+xLMt9tz1Z/H9YJ7FlZC00VoYHkEzUBP+tNz3kJmrRzGEe2CI3kfFpA+dNHBnDrm1+lS+vv4xdnoMvwNQ
+SwcIC2F3Z9UDAABNBwAAUEsBAhQAFAAICAgAAAAhAAthd2fVAwAATQcAAAgAAAAAAAAAAAAAAAAAAAAA
+AC5jb250ZW50UEsFBgAAAAABAAEANgAAAAsEAAAAAA==
+------=_contents/q7project/defaultWS.ctx-f62894c1-f639-3a4d-8b93-315b441db9df--
+------=_.q7.content-3d2e0690-ce48-3609-83e0-c704d49f1eaf
+Content-Type: q7/binary
+Entry-Name: .q7.content
+
+UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAAALmNvbnRlbnSdU8tOwzAQvCPxD5bv2BQhHlFCBeEh
+JHpAAcoNBWfTuiSxsTck4utx2jhICFTaW7yemfXsTsJxWxbkA4yVqoroiO1TApVQmaxmEa0x3zuh47Pd
+nVCZGQNRSG2BGaERmcCWNcq8WZ0KCKb+K1YVQoukLWUw6B50uq5TZQNXj+gcUQecN03DVDljTpw/T249
+ZE2vge4xHX2J4w7HBxwlVVo6tDZqAQKnEufXqSwgewCLlhKZRfQlMZ83k/g0voLkaHF3ruP549PhPXWW
+CQlF56XC5cEdeyHb674f9wXaAxwkd/r+nvlrAi2IGtPXwlXR1ED574wM8rQucHrRGd6clmxGy5fD6MZy
+CUKZFJWxDN1stpFQNW6tstqxm5YGgxLsGqYqMpcrP+TBfOd9QP3o0C9y9K+V/MVdb4r3b/OB4T4xqzjx
+7zyFfNMfypG+AFBLBwifcAkiTAEAAK0DAABQSwECFAAUAAgICAAAACEAn3AJIkwBAACtAwAACAAAAAAA
+AAAAAAAAAAAAAAAALmNvbnRlbnRQSwUGAAAAAAEAAQA2AAAAggEAAAAA
+------=_.q7.content-3d2e0690-ce48-3609-83e0-c704d49f1eaf--
+------=_contents/q7project/.project-c016ecf2-017a-3eb3-b9aa-3e2860a66691
+Content-Type: q7/binary
+Entry-Name: contents/q7project/.project
+
+UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAAALmNvbnRlbnS1kUEOwiAQRdeaeIeme0FXdYE1UeMF
+1ANUOmkwLeBATY8vUGrTmC7dzfvzmT8Z2KFr6uQNaISS+3RLNmkCkqtSyGqf3m+X9S495Ksl06iewO0Z
+DEehrXM7dcFk0UD+ymKX0cC+wVXTgLQ5o0Pl1egzAeiEHq2oy6sG7iniyT0tZBmUmOWmkU4hlOSVEe4K
+EpyAjo99NW7hHhVYtT7eRKZTgdGfoNlohRUBXgttgCDX1v4lPyrDJVy0bRGiu4e5TULZW/wOwRomjjO+
+R59+5AdQSwcIDhq3cM8AAAAHAgAAUEsBAhQAFAAICAgAAAAhAA4at3DPAAAABwIAAAgAAAAAAAAAAAAA
+AAAAAAAAAC5jb250ZW50UEsFBgAAAAABAAEANgAAAAUBAAAAAA==
+------=_contents/q7project/.project-c016ecf2-017a-3eb3-b9aa-3e2860a66691--
+------=_contents/q7project/failedWithoutDecorators.test-8e8ededf-fdae-3a72-b376-fd89125c7a9a
+Content-Type: q7/binary
+Entry-Name: contents/q7project/failedWithoutDecorators.test
+
+UEsDBBQACAgIAAAAIQAAAAAAAAAAAAAAAAAIAAAALmNvbnRlbnSdklFv2jAUhd/9K654noEQGA3SHhhN
+J7StY5StqqYJOfENeDg2dS5N2m3/fXaBtM/zk+V7jvWdY3POYTlbrFZAWFEuKgTOObuyrhTEv6OrlDUT
+iLp9NrOGsKFqAuvh0zyZ3u43Kc6e5jL6YHaySqZv1hea3w0/Zl/8+WI3vPtWfTLR268s1ViiIX4tSpxA
+IZRGeatoaw90ibl1gqyrWtXqce9VZ5z2uGWJPUvaEDojNF9igQ5N7h1sLj3atKy3m1mSpnhDdn2ZFKmc
+vt+w5cGQKvF1olF30L0/CK0KhY7diAfkKxUAL3qDpBcNIZoM+rD4zFYnlBMZ5pox/rzerbt5aMXj9cV4
+MIxFn49HMuaxHBU8GScRH8WJxD6OsrHIjxW+ithQL9yWGnKPp3bOFzK2QeIPCmvoLJz9hTlB2uy1deg6
+8AfClByi31aow/R+vD/pjlPf2gE611j3QgCY+QTBmGuV71jt64cfQVYrI239LIQX4U/4zcCvoECpKLMN
+cFH41o8uLTLU3hSYvThAeB4f6OXhzvbsQGQNXCmjqm0L8Je1jKqkLZYi39pSmP9r1n/Zf1BLBwh+g9d3
+sgEAAMoCAABQSwECFAAUAAgICAAAACEAfoPXd7IBAADKAgAACAAAAAAAAAAAAAAAAAAAAAAALmNvbnRl
+bnRQSwUGAAAAAAEAAQA2AAAA6AEAAAAA
+------=_contents/q7project/failedWithoutDecorators.test-8e8ededf-fdae-3a72-b376-fd89125c7a9a--
diff --git a/rcpttTests/platform_tests/selfAUTTests/executionView/DisplayingDetailsCheckDecorators.test b/rcpttTests/platform_tests/selfAUTTests/executionView/DisplayingDetailsCheckDecorators.test
new file mode 100644
index 0000000..ac9fba4
--- /dev/null
+++ b/rcpttTests/platform_tests/selfAUTTests/executionView/DisplayingDetailsCheckDecorators.test
@@ -0,0 +1,54 @@
+--- RCPTT testcase ---
+Format-Version: 1.0
+Contexts: _ymiyse5IEeCU6db9MgIBkA,_ZQYygK2sEeCqBbDEJWufvQ,_SrzGMC9CEeS6jLApChUV4Q
+Element-Name: DisplayingDetailsCheckDecorators
+Element-Type: testcase
+Element-Version: 3.0
+External-Reference:
+Id: _xofzcC84EeS6jLApChUV4Q
+Runtime-Version: 1.5.0.201406020630
+Save-Time: 8/29/14 1:20 PM
+Testcase-Type: ecl
+
+------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa
+Content-Type: text/plain
+Entry-Name: .description
+
+Copyright (c) 2009, 2014 Xored Software Inc and others.
+All rights reserved. This program and the accompanying materials
+are made available under the terms of the Eclipse Public License v1.0
+which accompanies this distribution, and is available at
+http://www.eclipse.org/legal/epl-v10.html
+
+Contributors:
+ Xored Software Inc - initial creation and/or initial documentation
+--------------------------------------------------------------------------------
+
+1. Run failed test
+2. After execution this test, press "Details..." button in Execution View
+3. Make sure that "Description" tab contains "ControlDecoration"
+------=_.description-216f885c-d591-38ce-8ea2-e4f8cb4d6ffa--
+------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac
+Content-Type: text/ecl
+Entry-Name: .content
+
+with [get-view "Test Explorer" | get-tree] {
+ select q7project | double-click
+}
+
+// Decorator exists
+get-view "Test Explorer" | get-tree | select "q7project/failedWithDecorators" | double-click
+get-editor failedWithDecorators | get-button Replay | click
+get-view "Execution View" | get-button "Details..." | click
+get-window "Execution details" | get-tab-folder | get-tab-item Description | click
+get-window "Execution details" | get-editbox | get-property text | contains "ControlDecoration(Name must be non-blank string.)" | verify-true
+get-window "Execution details" | get-button OK | click
+
+// No decorators
+get-view "Test Explorer" | get-tree | select "q7project/failedWithoutDecorators" | double-click
+get-editor failedWithoutDecorators | get-button Replay | click
+get-view "Execution View" | get-button "Details..." | click
+get-window "Execution details" | get-tab-folder | get-tab-item Description | click
+get-window "Execution details" | get-editbox | get-property text | contains "ControlDecoration(Name must be non-blank string.)" | verify-false
+
+------=_.content-0a7243a0-75d3-3d5f-9791-539de0e5b7ac--
diff --git a/runtime/org.eclipse.rcptt.expandbar.runtime/src/org/eclipse/rcptt/expandbar/runtime/internal/ExpandBarUIProcessor.java b/runtime/org.eclipse.rcptt.expandbar.runtime/src/org/eclipse/rcptt/expandbar/runtime/internal/ExpandBarUIProcessor.java
index be14821..1059b68 100644
--- a/runtime/org.eclipse.rcptt.expandbar.runtime/src/org/eclipse/rcptt/expandbar/runtime/internal/ExpandBarUIProcessor.java
+++ b/runtime/org.eclipse.rcptt.expandbar.runtime/src/org/eclipse/rcptt/expandbar/runtime/internal/ExpandBarUIProcessor.java
@@ -12,13 +12,10 @@
import java.util.Arrays;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.ExpandBar;
-import org.eclipse.swt.widgets.ExpandItem;
-
import org.eclipse.rcptt.expandbar.ExpandBarConstants;
import org.eclipse.rcptt.expandbar.widgets.WidgetsFactory;
import org.eclipse.rcptt.tesla.core.context.ContextManagement.Context;
+import org.eclipse.rcptt.tesla.core.info.AdvancedInformation;
import org.eclipse.rcptt.tesla.core.info.Q7WaitInfoRoot;
import org.eclipse.rcptt.tesla.core.protocol.Collapse;
import org.eclipse.rcptt.tesla.core.protocol.Expand;
@@ -35,6 +32,9 @@
import org.eclipse.rcptt.tesla.internal.ui.player.SWTUIElement;
import org.eclipse.rcptt.tesla.internal.ui.player.SWTUIPlayer;
import org.eclipse.rcptt.tesla.internal.ui.processors.SWTUIProcessor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.ExpandBar;
+import org.eclipse.swt.widgets.ExpandItem;
public class ExpandBarUIProcessor extends SWTUIProcessor implements ISWTModelMapperExtension {
private final ExpandBarPlayerExtension ext = new ExpandBarPlayerExtension();
@@ -44,6 +44,11 @@
}
@Override
+ public void collectInformation(AdvancedInformation information, Command lastCommand) {
+ // No information
+ }
+
+ @Override
public void terminate() {
SWTUIPlayer.removeExtension(ext);
super.terminate();
diff --git a/runtime/tesla/org.eclipse.rcptt.tesla.swt/src/org/eclipse/rcptt/tesla/internal/ui/player/SWTUIElement.java b/runtime/tesla/org.eclipse.rcptt.tesla.swt/src/org/eclipse/rcptt/tesla/internal/ui/player/SWTUIElement.java
index c7f5aac..3bdaeff 100644
--- a/runtime/tesla/org.eclipse.rcptt.tesla.swt/src/org/eclipse/rcptt/tesla/internal/ui/player/SWTUIElement.java
+++ b/runtime/tesla/org.eclipse.rcptt.tesla.swt/src/org/eclipse/rcptt/tesla/internal/ui/player/SWTUIElement.java
@@ -10,7 +10,21 @@
*******************************************************************************/
package org.eclipse.rcptt.tesla.internal.ui.player;
+import java.util.ArrayList;
+
+import org.eclipse.jface.fieldassist.ControlDecoration;
import org.eclipse.osgi.util.NLS;
+import org.eclipse.rcptt.logging.IQ7ActivityLogs;
+import org.eclipse.rcptt.logging.Q7LoggingManager;
+import org.eclipse.rcptt.tesla.core.TeslaFeatures;
+import org.eclipse.rcptt.tesla.core.protocol.ElementKind;
+import org.eclipse.rcptt.tesla.core.protocol.GenericElementKind;
+import org.eclipse.rcptt.tesla.core.protocol.UIColor;
+import org.eclipse.rcptt.tesla.internal.ui.IBasicMappingNode;
+import org.eclipse.rcptt.tesla.internal.ui.player.viewers.Viewers;
+import org.eclipse.rcptt.tesla.jface.ControlDecoratorRecordingHolder;
+import org.eclipse.rcptt.tesla.swt.TeslaSWTMessages;
+import org.eclipse.rcptt.util.swt.TableTreeUtil;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
@@ -23,17 +37,6 @@
import org.eclipse.swt.widgets.Widget;
import org.eclipse.ui.PlatformUI;
-import org.eclipse.rcptt.logging.IQ7ActivityLogs;
-import org.eclipse.rcptt.logging.Q7LoggingManager;
-import org.eclipse.rcptt.util.swt.TableTreeUtil;
-import org.eclipse.rcptt.tesla.core.TeslaFeatures;
-import org.eclipse.rcptt.tesla.core.protocol.ElementKind;
-import org.eclipse.rcptt.tesla.core.protocol.GenericElementKind;
-import org.eclipse.rcptt.tesla.core.protocol.UIColor;
-import org.eclipse.rcptt.tesla.internal.ui.IBasicMappingNode;
-import org.eclipse.rcptt.tesla.internal.ui.player.viewers.Viewers;
-import org.eclipse.rcptt.tesla.swt.TeslaSWTMessages;
-
/**
* Instances of this class are used mainly as convenience wraps for SWT widgets
* (and not only widgets, but UI elements of other kinds as well) to do some
@@ -289,4 +292,15 @@
}
return new Rectangle(0, 0, 0, 0);
}
+
+ public java.util.List<ControlDecoration> getDecorators() {
+ java.util.List<ControlDecoration> result = new ArrayList<ControlDecoration>();
+
+ if (widget instanceof Control) {
+ result = ControlDecoratorRecordingHolder.getDecorators((Control) widget);
+ }
+
+ return result;
+ }
+
}
diff --git a/runtime/tesla/org.eclipse.rcptt.tesla.swt/src/org/eclipse/rcptt/tesla/internal/ui/processors/SWTUIProcessor.java b/runtime/tesla/org.eclipse.rcptt.tesla.swt/src/org/eclipse/rcptt/tesla/internal/ui/processors/SWTUIProcessor.java
index 87c0bb9..e9b1c94 100644
--- a/runtime/tesla/org.eclipse.rcptt.tesla.swt/src/org/eclipse/rcptt/tesla/internal/ui/processors/SWTUIProcessor.java
+++ b/runtime/tesla/org.eclipse.rcptt.tesla.swt/src/org/eclipse/rcptt/tesla/internal/ui/processors/SWTUIProcessor.java
@@ -10,8 +10,6 @@
*******************************************************************************/
package org.eclipse.rcptt.tesla.internal.ui.processors;
-import static org.eclipse.rcptt.util.swt.Bounds.centerAbs;
-import static org.eclipse.rcptt.util.swt.Bounds.centerRel;
import static org.eclipse.rcptt.tesla.internal.ui.player.PlayerTextUtils.replaceMultilines;
import static org.eclipse.rcptt.tesla.internal.ui.player.PlayerTextUtils.safeMatches;
import static org.eclipse.rcptt.tesla.internal.ui.player.PlayerTextUtils.unifyMultilines;
@@ -22,6 +20,8 @@
import static org.eclipse.rcptt.tesla.internal.ui.player.PlayerWidgetUtils.isDisabled;
import static org.eclipse.rcptt.tesla.internal.ui.player.PlayerWrapUtils.unwrap;
import static org.eclipse.rcptt.tesla.internal.ui.player.PlayerWrapUtils.unwrapWidget;
+import static org.eclipse.rcptt.util.swt.Bounds.centerAbs;
+import static org.eclipse.rcptt.util.swt.Bounds.centerRel;
import java.io.IOException;
import java.net.MalformedURLException;
@@ -49,49 +49,11 @@
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.jface.fieldassist.ControlDecoration;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.ColumnViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Slider;
-import org.eclipse.swt.widgets.Spinner;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPartReference;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.handlers.IHandlerService;
-
-import org.eclipse.rcptt.util.StringUtils;
-import org.eclipse.rcptt.util.swt.StringLines;
-import org.eclipse.rcptt.util.swt.TableTreeUtil;
import org.eclipse.rcptt.tesla.core.Q7WaitUtils;
import org.eclipse.rcptt.tesla.core.TeslaFeatures;
import org.eclipse.rcptt.tesla.core.context.ContextManagement.Context;
@@ -214,13 +176,51 @@
import org.eclipse.rcptt.tesla.swt.dialogs.SWTDialogManager;
import org.eclipse.rcptt.tesla.swt.dnd.LocalClipboard;
import org.eclipse.rcptt.tesla.swt.events.TeslaEventManager;
-import org.eclipse.rcptt.tesla.swt.events.TeslaTimerExecManager;
import org.eclipse.rcptt.tesla.swt.events.TeslaEventManager.IUnhandledNativeDialogHandler;
+import org.eclipse.rcptt.tesla.swt.events.TeslaTimerExecManager;
import org.eclipse.rcptt.tesla.swt.workbench.EclipseWorkbenchProvider;
import org.eclipse.rcptt.tesla.ui.IImageAssertSupport;
import org.eclipse.rcptt.tesla.ui.SWTTeslaActivator;
import org.eclipse.rcptt.tesla.ui.describers.IWidgetDescriber;
import org.eclipse.rcptt.tesla.ui.describers.WidgetDescriber;
+import org.eclipse.rcptt.util.StringUtils;
+import org.eclipse.rcptt.util.swt.StringLines;
+import org.eclipse.rcptt.util.swt.TableTreeUtil;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CCombo;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.RGB;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Item;
+import org.eclipse.swt.widgets.Link;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Slider;
+import org.eclipse.swt.widgets.Spinner;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorReference;
+import org.eclipse.ui.IViewReference;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchPartReference;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.actions.ActionFactory;
+import org.eclipse.ui.handlers.IHandlerService;
public class SWTUIProcessor implements ITeslaCommandProcessor,
IScreenshotFactory, IModelMapperHelper {
@@ -2814,6 +2814,11 @@
if (!uiElement.getKind().is(ElementKind.Unknown)) {
nde = root.child(uiElement.getKind().name() + "("
+ (text != null ? text.trim() : "") + ")");
+ // Adds decorators
+ for (ControlDecoration decorator : uiElement.getDecorators()) {
+ if (decorator.isVisible())
+ nde.child("ControlDecoration(" + decorator.getDescriptionText() + ")");
+ }
}
try {
SWTUIElement[] children = getPlayer().children.collectFor(