Hello Daniele,
      
      the extends keyword you are using is not working well with
      concrete components like "guidancer.concrete.TabbedPane". The
      problem with extending this component all components which are
      realizing this component must have this action in its tester
      class. Even you have extended the toolkit component
      "org.eclipse.swt.widgets.TabFolder" this does not work correctly.
      If you had only one component you could have extended it and add a
      new action to it. But this should only be done to toolkit specific
      components and not to concrete components.
      
      I advice you to use the realize keyword instead. This creates a
      new Component Type e.g. "ch.ucc.uwb.TabFolderTitle". You can now
      use this type and create a test step which is using your action.
      Important thing is that using the realize keyword you must define
      the componentClass.
      If you change the ComponentConfiguration to the following, it
      should work. Realizing the "guidancer.abstract.SwtTabFolder" leads
      to a similar type hierarchy as our TabFolder component but in the
      end there is your component type. So all other actions on the
      TabFolder will be available and work.
      
      
      Best regards
      Marvin Mueller
      
      
ComponentConfiguration.xml
      ---------------------------------
       <toolkitComponent type="ch.ucc.uwb.TabbedPanTitle">
  <realizes>guidancer.abstract.SwtTabFolder</realizes>
                <action name="MyCompSystem.StoreTitleOfTabByIndex"
        changed="2.0.0">
           <method>rcStoreTitleOfTabByIndex</method>
           <param name="CompSystem.Variable">
                       
        <type>guidancer.datatype.Variable</type>
                    </param>
           <param name="MyCompSystem.TabIndex">
            <type>java.lang.Integer</type>
           </param>
           <param name="MyCompSystem.Direction">
            <type>java.lang.String</type>
            <defaultValue>l2r</defaultValue>
            <valueSet>
             <element name="MyCompSystem.Left2Right" value="l2r"
        />
             <element name="MyCompSystem.Right2Left" value="r2l"
        />
            </valueSet>
           </param>
           <param name="MyCompSystem.BeginIndex">
            <type>java.lang.Integer</type>
            <defaultValue>0</defaultValue>
           </param>
           <param name="MyCompSystem.EndIndex">
            <type>java.lang.Integer</type>
           </param>
                   
<postExecutionCommand>org.eclipse.jubula.client.core.businessprocess.TestExecution$VariableStorerCmd</postExecutionCommand>
          </action>
         </toolkitComponent>
      
       <toolkitComponent type="ch.ucc.uwb.TabFolderTitle"
        visible="false">
          <realizes>ch.ucc.uwb.TabbedPanTitle</realizes>
  <testerClass>org.eclipse.jubula.rc.swt.tester.TabbedPaneCustTester</testerClass>
           <componentClass name="org.eclipse.swt.widgets.TabFolder"
        />
         </toolkitComponent>
       
       <toolkitComponent type="ch.ucc.uwb.CTabFolderTitle"
        visible="false">
          <realizes>ch.ucc.uwb.TabbedPanTitler</realizes>
  <testerClass>org.eclipse.jubula.rc.swt.tester.TabbedPaneCustTester</testerClass>
          <componentClass name="org.eclipse.swt.widgets.CTabFolder"
        />
         </toolkitComponent>
      
      
      On 11.03.2014 10:17, Fochetti Daniele wrote:
    
 
    
      
      
      Hi all
       
      I'm trying to extend the "guidancer.concrete.TabbedPane" to
        read the title of a tab. (And do some substring on the title)
      What I got/did sofar:
       
      Created update site and built toolkit with it. Installed
        extended toolkit into Jubula thru Help - Install New Software
        ...
      Exported the tester class fragment with Eclipse Export Wizard
        and placed it into the plugins directory of my application under
        test which is based on the Eclipse Scout framework.
       
      TestStep for component type "Tabbed Component" offers me my
        action type "Store tab title into variable" including the
        needed/declared parameters.
      Running the test results in an action error "Operation not
        supported by the selected toolkit".
      Stacktrace:
      ERROR o.e.j.r.c.c.AbstractCapTestCommand - implementation
        class method not found
        java.lang.NoSuchMethodException: No such accessible method:
        rcStoreTitleOfTabByIndex() on object:
        org.eclipse.jubula.rc.common.tester.TabbedPaneTester
         at
        org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:278)
        ~[org.apache.commons.beanutils.jar:na]
         at
        org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:225)
        ~[org.apache.commons.beanutils.jar:na]
         at
        org.eclipse.jubula.rc.common.commands.MethodInvoker.invoke(MethodInvoker.java:64)
        ~[org.eclipse.jubula.rc.common.jar:na]
         at
        org.eclipse.jubula.rc.common.commands.AbstractCapTestCommand.execute(AbstractCapTestCommand.java:240)
        ~[org.eclipse.jubula.rc.common.jar:na]
         at
        org.eclipse.jubula.communication.Communicator$ConnectionListener.received(Communicator.java:844)
        [org.eclipse.jubula.communication.jar:na]
         at
        org.eclipse.jubula.communication.connection.Connection.fireMessageReceived(Connection.java:402)
        [org.eclipse.jubula.communication.jar:na]
         at
        org.eclipse.jubula.communication.connection.Connection.access$2(Connection.java:391)
        [org.eclipse.jubula.communication.jar:na]
         at
        org.eclipse.jubula.communication.connection.Connection$ReaderThread.run(Connection.java:454)
        [org.eclipse.jubula.communication.jar:na]
       
       
      ===================================================
       
      Toolkit:
      =====
       
      ComponentConfiguration.xml
      ---------------------------------
       <toolkitComponent type="ch.ucc.uwb.TabbedPanTitle">
          <extends>guidancer.concrete.TabbedPane</extends>
                <action
        name="MyCompSystem.StoreTitleOfTabByIndex">
           <method>rcStoreTitleOfTabByIndex</method>
           <param name="CompSystem.Variable">
                       
        <type>guidancer.datatype.Variable</type>
                    </param>
           <param name="MyCompSystem.TabIndex">
            <type>java.lang.Integer</type>
           </param>
           <param name="MyCompSystem.Direction">
            <type>java.lang.String</type>
            <defaultValue>l2r</defaultValue>
            <valueSet>
             <element name="MyCompSystem.Left2Right" value="l2r"
        />
             <element name="MyCompSystem.Right2Left" value="r2l"
        />
            </valueSet>
           </param>
           <param name="MyCompSystem.BeginIndex">
            <type>java.lang.Integer</type>
            <defaultValue>0</defaultValue>
           </param>
           <param name="MyCompSystem.EndIndex">
            <type>java.lang.Integer</type>
           </param>
                   
<postExecutionCommand>org.eclipse.jubula.client.core.businessprocess.TestExecution$VariableStorerCmd</postExecutionCommand>
          </action>
         </toolkitComponent>
       
       
       
       <toolkitComponent type="ch.ucc.uwb.TabFolderTitle"
        visible="false">
  <extends>org.eclipse.swt.widgets.TabFolder</extends>
  <testerClass>org.eclipse.jubula.rc.swt.tester.TabbedPaneCustTester</testerClass>
          <!-- <componentClass
        name="org.eclipse.swt.widgets.TabFolder" />-->
         </toolkitComponent>
       
       <toolkitComponent type="ch.ucc.uwb.CTabFolderTitle"
        visible="false">
  <extends>org.eclipse.swt.custom.CTabFolder</extends>
  <testerClass>org.eclipse.jubula.rc.swt.tester.TabbedPaneCustTester</testerClass>
          <!-- <componentClass
        name="org.eclipse.swt.widgets.CTabFolder" />-->
         </toolkitComponent>
       
      plugin.xml
      <plugin>
           <extension
                
        point="org.eclipse.jubula.toolkit.common.toolkitsupport">
              <toolkit
                   
IToolkitProvider="ch.ucc.uwb.jubula.extension.rcp.toolkit.provider.RcpExtensionProvider"
                    depends="com.bredexsw.guidancer.RcpToolkitPlugin"
                    includes="null"
                    isUserToolkit="true"
                    level="toolkit"
                    name="exampleRcpToolkitExtension"
                    order="11"
                   
        toolkitID="com.bredexsw.guidancer.exampleRcpToolkitExtension">
              </toolkit>
           </extension>
      </plugin>
       
      MANIFEST.MF
      ----------------
      Manifest-Version: 1.0
        Bundle-ManifestVersion: 2
        Bundle-Name: %Bundle-Name.0
        Bundle-SymbolicName:
        ch.ucc.uwb.jubula.extension.rcp.toolkit;singleton:=true
        Bundle-Version: 2.2.0.qualifier
        Bundle-Activator:
        ch.ucc.uwb.jubula.extension.rcp.toolkit.Activator
        Bundle-Vendor: %Bundle-Provider.0
        Require-Bundle: 
        org.eclipse.core.runtime;bundle-version="[3.6.0,4.0.0)",
         org.eclipse.jubula.tools;bundle-version="[2.2.0,2.3.0)",
 org.eclipse.jubula.toolkit.common;bundle-version="[2.2.0,2.3.0)",
 org.eclipse.jubula.toolkit.provider.rcp;bundle-version="[2.2.0,2.3.0)",
 org.eclipse.swt;bundle-version="[3.6.1,4.0.0)";resolution:=optional
        Bundle-RequiredExecutionEnvironment: J2SE-1.5
        Bundle-ActivationPolicy: lazy
        Bundle-ClassPath: .
       
      And the provider class and i18n properties
      ===================================================
       
      Feature:
      ======
       
      feature.xml
      -------------
      <?xml version="1.0" encoding="UTF-8"?>
        <feature
              id="ch.ucc.uwb.jubula.extension.rcp.feature"
              label="Jubula Example - Toolkit Extension - RCP"
              version="2.2.0.qualifier"
              provider-name="Eclipse Jubula">
       
         <description url=""true"
          href="http://www.eclipse.org/jubula">http://www.eclipse.org/jubula">
              Example Jubula Toolkit Extension - RCP
           </description>
       
         <copyright url=""true"
          href="http://www.eclipse.org/jubula">http://www.eclipse.org/jubula">
              Copyright (c) 2004, 2012 BREDEX GmbH.
        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:
        BREDEX GmbH - initial API and implementation and/or initial
        documentation
           </copyright>
 
       
         <license url=""true"
          href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html">
              %license
           </license>
       
         <plugin
                 id="ch.ucc.uwb.jubula.extension.rcp.toolkit"
                 download-size="0"
                 install-size="0"
                 version="0.0.0"
                 unpack="false"/>
       
      </feature>
      ===================================================
       
      Tester/Remote Control fragment:
      =====================
       
      Class TabbedPaneCustTester
      ---------------------------------
      package org.eclipse.jubula.rc.swt.tester;
      public class TabbedPaneCustTester extends TabbedPaneTester {
       
       public static final String LEFT_2_RIGHT = "l2r";
         public static final String RIGHT_2_LEFT = "r2l";
       
       public String rcStoreTitleOfTabByIndex(int index, String
        direction,
           int beginIndex, int endIndex) throws StepExecutionException {
          int tabIndex = IndexConverter.toImplementationIndex(index);
          String tabTitle = getTabPane().getTitleofTab(tabIndex);
       
        if (null == direction) {
           direction = LEFT_2_RIGHT;
          }
          if (LEFT_2_RIGHT.equalsIgnoreCase(direction)) {
           return tabTitle.substring(beginIndex, endIndex);
       
        } else if (RIGHT_2_LEFT.equalsIgnoreCase(direction)) {
           int length = tabTitle.length();
           return tabTitle.substring(length - endIndex, length -
        beginIndex);
          } else {
           throw new StepExecutionException(
             "Invalid direction. Valid values are 'l2r' left to right or
        'r2l' right to left.",
             new TestErrorEvent(
               TestErrorEvent.ID.IMPL_CLASS_ACTION_ERROR));
          }
         }
       
      }
       
      Class UwbExtensionAdapterFactory
      ----------------------------------------
      package org.eclipse.jubula.rc.common.adapter;
      public class UwbExtensionAdapterFactory extends
        SWTAdapterFactory {
       
       @Override
         public Object getAdapter(Class class1, Object obj) {
          return super.getAdapter(class1, obj);
         }
       
       @Override
         public Class[] getSupportedClasses() {
          return super.getSupportedClasses();
         }
       
      }
       
      MANIFEST.MF
      ----------------
      Manifest-Version: 1.0
        Bundle-ManifestVersion: 2
        Bundle-Name: Extension
        Bundle-SymbolicName: ch.ucc.uwb.jubula.rc.common
        Bundle-Version: 1.0.0.qualifier
        Bundle-Vendor: Card Center AG
        Fragment-Host:
        org.eclipse.jubula.rc.rcp.swt;bundle-version="2.2.0.201310100933"
        Bundle-RequiredExecutionEnvironment: JavaSE-1.6
        Bundle-ClassPath:
        lib/org.eclipse.jubula.rc.common_2.2.0.201310100933.jar,
         lib/org.eclipse.jubula.rc.swt_2.2.0.201310100933.jar,
         lib/org.eclipse.jubula.tools_2.2.0.201310100933.jar,
         .,
         lib/org.eclipse.jubula.rc.rcp.swt_2.2.0.201310100933.jar,
         lib/org.eclipse.jubula.rc.swt.jar
        Import-Package: org.eclipse.swt.widgets
       
      ===================================================
       
      Update site:
      ========
       
      site.xml
      ---------
      <site>
           <feature
        url=""
        id="ch.ucc.uwb.jubula.extension.rcp.feature"
        version="2.2.0.201403110920">
              <category name="ch.ucc.uwb.jubula.extensions"/>
           </feature>
           <category-def name="ch.ucc.uwb.jubula.extensions"
        label="UWB Jubula extensions"/>
        </site>
      ===================================================
       
       
      Thanks for any help, solving this problem.
      Daniele
       
      Based on previous
          e-mail correspondence with you and/or an agreement reached
          with you, we
          consider ourselves authorized to contact you via unsecured
          e-mail. 
      Warning: 
      (a) E-mails can
          involve SUBSTANTIAL RISKS, e.g. lack of confidentiality,
          potential manipulation
          of contents and/or sender's address, incorrect recipient
          (misdirection),
          viruses etc. We assume no responsi-bility
          for any
          loss or damage resulting from the use of e-mails. We recommend
          in particular
          that you do NOT SEND ANY SENSITIVE INFORMATION, that you do
          not include details
          of the previous message in any reply, and that you enter
          e-mail address(es) manually every time
          you write an e-mail. 
      (b) As a matter of
          principle, we do NOT accept any ORDERS, revocations of orders
          or
          authorizations, blocking of credit cards, etc., sent by
          e-mail. Should such an
          e-mail nevertheless be received, we are not obliged to act on
          or respond to the
          e-mail. 
      Please notify us
          immediately if you received this e-mail by mistake or if you
          do not wish to
          receive any further e-mail correspondence. If you have
          received this e-mail by
          mistake, please completely delete it (and any attachments) and
          do not forward
          it or inform any other person of its contents. 
       
      
      
      
      _______________________________________________
jubula-rc-dev mailing list
jubula-rc-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/jubula-rc-dev