code: @Override
      public String executeCommand(int timeout, String componentName, Object... data) throws QTasteException {
  
          Component component = getComponentByName(componentName);
  
          // sanity checks
          if (component == null) {
              throw new QTasteTestFailException("Unable to find the component named '" + componentName + "'");
          }
  
          if (!(component instanceof JTabbedPane)) {
              throw new QTasteTestFailException("The component named '" + componentName + "' is not a JTabbedPane");
          }
  
          // get the requested value
          JTabbedPane tabbedPane = (JTabbedPane) component;
          int currentIndex = tabbedPane.getSelectedIndex();
          String result = null;
  
          switch (mInfoSelector) {
              case GET_INDEX:
                  result = String.valueOf(currentIndex);
                  break;
  
              case GET_TITLE:
                  if (currentIndex >= 0) {
                      result = tabbedPane.getTitleAt(currentIndex);
                  }
                  break;
  
              case GET_COMPONENT_ID:
                  if (currentIndex >= 0) {
                      result = tabbedPane.getComponentAt(currentIndex).getName();
                  }
                  break;
  
              default:
                  throw new QTasteTestFailException("Bad selector identifier");
          }
  
          return result;
      }
docs: Executes the a command on a component.
  
  @param timeout a timeout for the command execution (not used here)
  @param componentName name of the component to execute the command on.
  @param data additional data (not used here)
  @return the selected tab index, title or id, according to the specified info selector.
  @throws QTasteException