Pull request Compare This branch is 1 commit ahead, 27 commits behind ketan:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


The SWTBot generator plugin

1. What is this plugin?

  This plugin contains some sources to generate key parts of the SWTBot 
  source. The `SWTBot' class and two classes named `WidgetMatcherFactory'
  are generated using this plugin.

2. Why would one generate these classes?

  For two reasons:
  * consistency and error-free source - all the methods look exactly the 
    same and are generated by a program
  * no need to keep track of methods on these classes when adding support
    for new widgets or matchers

3. What do I need to do if I want to add a new widget to SWTBot?

  Four things:
  * Create an SWTBotMyWidget class (see SWTBotButton for an example)
  * Add an annotation `@SWTBotWidget' to the new class. This annotation
    describes what prefix and and suffixes should be generated for accessing
    this widget. More on this annotation later.
  * Edit widgets.xml and add the name of your class
  * Run the class `SWTBotGeneratorMain'

4. What do I need to do if I want to add a new accessor method to SWTBot?

  If SWTBot already has support for the widget, but is missing an accessor of
  the form <widget>withSomeproperty(arguments), then change the annotation on
  the SWTBot<widget> class and execute `SWTBotGeneratorMain'.

5. What do I need to do if I want to add support for a new matcher?

  Four things:
  * Create a Matcher class (see WithStyle/WithText for example)
  * Ensure that there is an @Factory method on the class
  * Edit swtbot-matchers.xml or swtbot-eclipse-matchers.xml as the case may be
  * Run the class `MatcherGeneratorMain'

6. What is this @SWTBotWidget annotation about?

  This annotation marks a SWTBot widget so the generator and other tools can
  recognize it. This annotation is primarily used to describe the convinience
  API that should be generated for a class annotated with the specified widget.

  See the javadoc on the annotation for more detail and examples.