SWT/Swing/GWT Designer/WindowBuilder FAQ

The following are frequently asked questions about SWT Designer, Swing Designer, GWT Designer & WindowBuilder

What should I do if I'm getting errors running the installer or the installer hangs?

1. If you're using Java 1.3, our installer currently does not support Java 1.3. You may use the -vm command line argument to specify a differenct JVM to be used by the installer.

    Example:   Product_v1.0.1_win32_x86.exe -vm "C:\Program Files\java\jdk1.5.0_05\jre\bin\java.exe"

2. In cases where the installer can not find your TEMP or TMP environment variable, you can also specify a different Temp directory by adding the -tmp option. You have to create the c:\mytemp folder first before running the installer.

    Example:   Product_v1.0.1_win32_x86.exe -tmp c:\Temp

3. In some cases where the splash screen won't come up, run the installer with the -nosplash option.

    Example:   Product_v1.0.1_win32_x86.exe -nosplash

4. If none of the above help, run the installer with -out option to generate a log file. This will run the installer in verbose mode and redirect output to the file installer.log in the directory where the installer is located. Examine the log file to determine the cause or send the log file to support and we'll take a look.

    Example: Product_v1.0.1_win32_x86.exe -out installer.log --verbose 

Can Designer edit windows created with JBuilder, VA Java, NetBeans, VisualCafe, etc.?

Yes. Most GUI builders in the world will only read and write the code that they themselves create. Designer is an exception to that rule. It can read and edit not only the code it creates, but also a great deal of code generated by other GUI builders (>95%). We have had very good success with code generated by JBuilder, NetBeans, Visual Cafe, VA Java, the Eclipse VE, etc. If you come across a case that does not work, send it to us for analysis. The more broken examples that we can "fix", the better Designer will get in the long run (and the better chance you will have of salvaging your old code as-is). Note that Designer will edit any existing code in place without changing its formatting. Any new widgets will be created using Designer's own code generation preferences.

Can Designer edit windows that have been created by hand?

Yes. Most GUI builders in the world will only read and write the code that they themselves create. Designer is an exception to that rule. It can read and write not only the code it creates, but also a great deal of code written by hand(>90%). If you come across a case that does not work, send it to us for analysis. The more broken examples that we can "fix", the better Designer will get in the long run (and the better chance you will have of salvaging your old code as-is).

Note that dynamic GUI code can not be rendered or edited. The problem with dynamic code is that it generally relies on runtime calculations that have no meaning at runtime. Widgets created in a loop (where the loop parameters are passed in externally) are a good example. Widgets created in conditionals where the value of the conditional is not known until runtime are another example. Dynamic GUI code constructed from the results of complex database queries is yet another example.

Can I refactor or otherwise modify the Designer generated code?

Yes. The Designer parser has a good understanding of basic Java code and various Swing, SWT and GWT patterns. As a result, it is very refactoring friendly and very resilient in the face of hand made changes. You can make changes or add code anywhere you like and Designer will reverse engineer it when possible. You can also refactor the code in almost any conceivable way and Designer will still be able to parse it and render it in the design view. For example, use the tool to create a new Swing JFrame, add some widgets, and then use the Eclipse refactoring tools to extract some of the widgets into their own methods.

Why doesn't Designer surround generate code with special tags or mark it as read-only?

Using special tags or marking code read-only would go against several of Designer's major design goals. Designer does not make any distinction between generated code and user-written code. Designer is designed to generated the same code that you would write by hand and to make minimal changes to the source when you make a change to the design view. Designer never regenerates the entire source for a file. If you change a single property, it will change only a single line of code. That line of code could theoretically be anywhere in the source file (including within lines originally created by Designer or within lines that you wrote by hand).

Are there any specific constructs that Designer can't parse?

Yes. Here are some examples of constructs that Designer does not yet handle:

  • Re-use of GridBagConstraint objects across multiple widgets (we support reusing the same variable but not the same objects)
  • UI construction through the use of instance-based factory classes or parameterized helper methods
  • Multiple aliases (fields or local variables) referring to the same component
  • Multiple references to the same widget definition through multiple invocations of the same helper method

Why does Designer generate widgets in the constructor?

Designer can generate code into any method that you like. One of the key features of Designer is its refactoring friendliness. You can actually use any template that you want for creating a new window (e.g., you don't need to use the wizards supplied with Designer). Alternatively, you can use the Eclipse refactoring commands to extract the components into a new method (like createComponents()) and the tool will continue to work. Try the following template for example:

import javax.swing.JFrame;
public class MyFrame extends JFrame {
    public static void main(String args[]) {
        try {
            MyFrame frame = new MyFrame();
            frame.setVisible(true);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public MyFrame() {
        super();
        createComponents();
    }
    private void createComponents() {
        setBounds(100, 100, 400, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

If you start adding new widgets, they will be added to the createComponents() method.

Can Designer use custom widgets?

Yes., with a few restrictions.

For Swing, any public JComponent subclass that has a public, zero-argument constructor can be used (as required by the Java Bean spec). Custom properties are derived through reflection by looking for getter/setter pairs of known types. If a matching JavaBean class is defined and available, it will be used for any custom properties. Custom JPanel subclasses will show their subcomponents when placed in Designer

For SWT, any public Control subclass that has a public, two-argument constructor can be used (as is standard for all base SWT widgets). Custom properties are derived through reflection by looking for getter/setter pairs of known types. SWT does not yet define any kind of JavaBean interface, so no further customization is available. Custom Composite subclasses will show their subcomponents when placed in Designer.

For GWT, any public Widget subclass that has a public, zero-argument constructor can be used (as is standard for all base GWT widgets). Custom properties are derived through reflection by looking for getter/setter pairs of known types. Custom Composite subclasses will show their subcomponents when placed in Designer. For a good example of a custom widgets that works with GWT Designer, click here.

Note: the Java Bean conventions (slightly modified for SWT) are important from a GUI builder point of view as they establish a common, expected, and, for the most part, self documenting API. If you create your own unique constructors, your are, in effect, creating your own personal API which makes it difficult for a GUI builder to reflectively interact with your components. Generating code to a custom constructor API requires knowledge of the API that generally is not provided by the component. That requires hard coding knowledge of the component into the GUI builder itself.

Note: A component may rely on some runtime behavior that is not possible at design time (such as accessing an application database or some other file). Runtime specific behavior should be isolated (and stubbed out as necessary) by wrappering the runtime specific code with a call to Beans.isDesignTime() which will answer true when the component is loaded within Designer and false at runtime. For GWT, implement an isDesignTime() method as described here.

What should I do if Designer does not appear after installation?

First, make sure that the Designer plugins (com.swtdesigner*) have been installed properly. If you used the Designer installer, there should be a com.instantiations.designer.link file in your Eclipse /links or /dropins directory that points to your Designer installation location. If you used the ZIP installation, make sure that the Designer plugins (com.swtdesigner*) were unzipped to your eclipse/plugins directory. 

If you are installing Designer into an Eclipse 3.0 environment, delete your Eclipse "configuration" directory before restarting Eclipse. This is to avoid a common Eclipse 3.x plugin cache bug (see bugs 52525, 66120, 67461). 

If you are installing into Eclipse 3.1, 3.2 or 3.3, delete the "org.eclipse.*" subdirectories in the "configuration" directory (they are recreated at startup). 

If you are installing into Eclipse 3.4, there is a bug in the new p2 update manager that does not uninstall bundles (see bug 232094). To workaround this  try deleting the bundles.info file from the /configuration/org.eclipse.equinox.simpleconfigurator directory and restore the file from the Eclipse ZIP file. If deleting the bundles.info was not sufficient, delete the entire /configuration and /p2 directories from your eclipse directory and restore those directories from the Eclipse ZIP file.

After restarting Eclipse, open the Eclipse preference dialog and confirm that you see a Designer preference page. If Designer still does not appear, check your Eclipse ".log" file (found in your <workspace>/.metadata directory) for any recorded exceptions and then contact support at wb-support@instantiations.com.If no exceptions are present and Designer is still not present, make sure that you are using a properly configured Eclipse-based IDE. Designer requires the complete Eclipse SDK to be present, and will not load into an Eclipse subset (like EasyEclipse or the MyEclipse All-in-one edition). The most important piece missing from some Eclipse distributions is the Eclipse PDE (Plug-in Development Environment). You can correct this problem by launching Eclipse and selecting Help > Software Updates > Find and Install. In the dialog select "Search for new features to install". Select The Eclipse Project updates from the list of sites and select the "Eclipse Plug-in Development Environment" to install. You may need to shutdown Eclipse and clean your configuration directory as described above.

What should I do if Designer does not work after installation?

If Designer fails to work properly (indicated by throwing a random exception or showing a blank design view) after installation when creating or editing a new window (or performing any simple editing activity), you are likely experiencing an installation problem. Try the following:

  1. Check that you have the correct version of Designer installed for your Eclipse environment. If you are using Eclipse 3.2, use the latest Designer build targeted at Eclipse 3.2. Likewise, if you are using Eclipse 3.3, use the latest Designer build targeted at Eclipse 3.3.

  2. Clean your Eclipse "configuration" directory. If you are installing Designer into an Eclipse 3.0 environment, delete your Eclipse "configuration" directory before restarting Eclipse. This is to avoid a common Eclipse 3.x plugin cache bug (see bugs 52525, 66120, 67461). If you are installing into Eclipse 3.1, 3.2 or 3.3, delete everything in the "configuration" directory except the config.ini file and the org.eclipse.update/platform.xml file (Eclipse 3.2 and above). You should also keep your org.eclipse.update/bookmarks.xml file (Eclipse 3.1 and above) in order to preserve your update site bookmarks..

  3. Check that only one version of Designer (one set of *designer* plugins and features) is installed. If you have an older version also installed (indicated by an earlier version number), delete those plugins and features and repeat step number two above. Make sure that you don't have Designer installed both locally within your Eclipse /plugins directory and remotely through a .link file (check your Eclipse /links directory).

  4. Check your project for classpath problems and your code for compilation problems. If your file  or your project shows a red X, Designer may not be able to edit the file. Resolve the problem and open the file again.

  5. Try refreshing and rebuilding your project using the Project > Clean command.

  6. If the problem persists, check your Eclipse ".log" file (found in your <workspace>/.metadata directory) for any recorded exceptions and then contact support at wb-support@instantiations.com.

  7. If Eclipse locks up repeatedly, you might try running Eclipse with the -debug command line option. You can then press Ctrl+Break in the console to look at the thread dump which may show where the system is locking up. Send that thread dump to us at wb-support@instantiations.com.

  8. If you are having problems with GWT Designer not working, review this additional FAQ entry.

What can I do if I don't see the Design tab when I edit a window?

Eclipse remembers the last editor type used with a file. If you don't see the Design tab, that means that you are using the standard Eclipse Java Editor rather than the Designer Editor. Open the file with the Designer Editor and you will see both the Source and Design tabs. Note that Eclipse will only let you have a file open with one editor at a time, so you may need to close any existing editor before opening it with the Designer Editor.

What should I do if I encounter an exception using Designer?

If a newer Designer build is available than the one you are using, please download the newer build and try and reproduce the problem. If the problem has been reported in the past, there is a good chance that it has already been fixed. If the problem still exists, you should send your Eclipse ".log" file (found in your <workspace>/.metadata directory) as well as any relevant test cases to wb-support@instantiations.com. Including a test case that will help us reproduce the problem is very important. The faster we can reproduce the problem, the faster we can get you a fix. If we can't reproduce a problem, there is little we can do to help you.

Ideally, the test case you send should be the same window you were editing when the problem occurred (along with any supporting files needed to compile it). If that is not possible (possibly because you aren't allowed to send any code to a 3rd party), then you should try to create a new, standalone test case that illustrates the same problem. The best approach is to create a standalone test case by removing all of the code that isn't relevant to the problem at hand (e.g., keep deleting code until the problem goes away and then restore that last code that was last deleted).

What should I do if I encounter "Unknown Window Type (Parsing Error)"?

As suggested by the message, this is error is caused by a parsing problem. It has nothing to do with licensing. Your Eclipse ".log" file (found in your <workspace>/.metadata directory) should provide a hint as to the cause of the parsing error. Send the log file as well as a test case to wb-support@instantiations.com (ideally the window you are trying to edit). Including a test case that will help us reproduce the problem is very important. The faster we can reproduce the problem, the faster we can get you a fix. If we can't reproduce a problem, there is little we can do to help you.

Ideally, the test case you send should be the same window you were editing when the problem occurred (along with any supporting files needed to compile it). If that is not possible (possibly because you aren't allowed to send any code to a 3rd party), then you should try to create a new, standalone test case that illustrates the same problem. The best approach is to create a standalone test case by removing all of the code that isn't relevant to the problem at hand (e.g., keep deleting code until the problem goes away and then restore that last code that was last deleted).

Parsing problems can also be a side effect of the other problems described in the earlier FAQ entry here so check each of the suggestions there. Refreshing and rebuilding your project using the Project > Clean command can often help as can cleaning your Eclipse "configuration" directory. If you are having problems with GWT Designer not working, review this additional FAQ entry.

What should I do if I encounter an OutOfMemoryError using Designer?

Make sure that you have Eclipse configured to use enough memory. Begin by specifying the starting amount of memory (-vmargs -Xms###m) in your Eclipse startup command line (e.g., the target field within a Windows shortcut) or eclipse.ini file (in your Eclipse root directory). If this is not specified, Eclipse's starting amount of memory is quite small (only 40 MB). You should also specify the maximum amount of memory that Eclipse can use (-vmargs -Xmx###m) and the maximum amount of perm space available (-vmargs -XX:MaxPermSize=###m).

We typically recommend something like this (these setting are independent of any of the startup settings that you might have in place):

-vmargs -XX:MaxPermSize=128m -Xms256m -Xmx512m

An OutOfMemoryError is usually a side effect of something else, so you should send your Eclipse ".log" file (found in your <workspace>/.metadata directory) as well as any relevant test cases to wb-support@instantiations.com.

You might try running Eclipse with the -debug command line option. You can then press Ctrl+Break in the console to look at the thread dump which may show where the system is locking up and where the memory is going. Send that thread dump to us at wb-support@instantiations.com.

What should I do if I encounter an NoSuchMethodError or NoClassDefFoundError using Designer?

Start by checking your Eclipse ".log" file (found in your <workspace>/.metadata directory). If the error references one of your classes or methods, check that your classpath properly references the class you are trying to use. Also check that your class is properly compiled (no red X's) and that a .class file exists in your projects /bin directory. A mismatch between the JDK used to compile your code and the JVM used to run Eclipse can also manifest itself as a NoClassDefFoundError problem. For example, if you compile your code using JDK 1.5 or 1.6 and then run your Eclipse using a 1.4 or 1.5 JVM, you can have this problem. If the error refers to a custom widget, you should also check that your component does not trigger an exception during its initialization (which can manifest itself as a NoClassDefFoundError). Try refreshing and cleaning your project using the Project > Clean... or Project > Build Project commands. If that does not help, send a test case to wb-support@instantiations.com

If the error references a base Eclipse method or class, this means that you have the wrong version of Designer loaded for the version of Eclipse you are using. Designer is trying to access a method or class that simply does not exist in your Eclipse distribution. Delete the Designer feature and plugin directories and then download and install the correct version of  Designer for the version of Eclipse you are using.

If the error refers to a method or class in a Designer class (either in a com.swtdesigner or com.instantiations package or with "Designer" in the class name), this means that you have a serious Eclipse configuration problem, and that one or more of the Designer plugins are not being loaded properly. If a plugin does not load, all of its methods will be unreachable, and any attempts to access them will trigger a NoSuchMethodError or NoClassDefFoundError. This problem can usually be fixed by cleaning your Eclipse "configuration" directory as described in this earlier FAQ entry.

What should I do if I encounter an UnsupportedClassVersionError using Designer?

An UnsupportedClassVersionError is usually caused by attempting to run code compiled against a later JRE with an IDE using an earlier JRE. Typically, you will see this when trying to use a class (such as a custom widget) that has been compiled against JDK 1.5 within a version of Eclipse launched with JDK 1.4.

Two solutions are possible: you may either recompile the class using JDK 1.4, or you can tell Eclipse to run using JDK 1.5 by modifying its startup parameters as follows (use your path to JDK 1.5 on your system):

-vm C:\jdk1.5.0_04\bin\java.exe

What should I do if I encounter an UnsatisfiedLinkError when launching my SWT application?

As stated in the product docs and tutorial, the Eclipse SWT DLL (which can be found in the $ECLIPSE$\plugins\org.eclipse.swt.win32_x.x.x\os\win32\x86\ directory or in the org.eclipse.swt.win32.win32.x86_3.x.x.jar file) needs to be on your path. Placing it into your windows/system32 directory is the easiest thing to do.

For Linux, you need to locate the corresponding Eclipse SWT *.so files contained in the SWT GTK plugin.

What should I do if I encounter an InstantiationException or other error using a custom widget?

An InstantiationException means that Designer could not create an instance of a particular class. The most common reason for this is that the component is not a valid custom widget. In order to be a valid Swing or GWT widget, a class must be a valid Java Bean and have a public, zero-argument constructor. SWT widgets must have a public two-argument constructor with parent and style bits as the two arguments. To fix the problem, add the missing constructor. Note: the Java Bean conventions (slightly modified for SWT) are important from a GUI builder point of view as they establish a common, expected, and, for the most part, self documenting API. If you create your own unique constructors, your are, in effect, creating your own personal API which makes it difficult for a GUI builder to reflectively interact with your components. Generating code to a custom constructor API requires knowledge of the API that generally is not provided by the component. That requires hard coding knowledge of the component into the GUI builder itself.

Another possible cause for this exception is some other failure in the initialization code of the component. A component may rely on some runtime behavior that is not possible at design time (such as accessing an application database or some other file). Runtime specific behavior should be isolated (and stubbed out as necessary) by wrappering the runtime specific code with a call to Beans.isDesignTime() which will answer true when the component is loaded within Designer and false at runtime. For GWT, implement an isDesignTime() method as described here.

More detail about the use of custom widgets is available in this FAQ entry.

What should I do if I encounter an exception referencing DOMImpl using GWT Designer?

This is a low-level exception thrown by GWT indicating that there is some sort of configuration problem (this is a Windows-only issue). It can manifest itself as an Unknown Window Type problem.

What should I do if I encounter problems using GWT Designer under Windows?

Try the following as possible solutions:
  1. Make sure that your Designer > GWT > Path preference points to your GWT installation directory.

  2. Make sure that your project's .classpath file includes the following entry (and no other references to gwt-user.jar)...

    <classpathentry kind="var" path="GWT_HOME/gwt-user.jar"/>

  3. Make sure that gwt-user.jar appears before gwt-servelt.jar, gwt-dev-windows.jar or any other Google-supplied GWT jar (gwt-servlet.jar in particular includes many overlapping classes with gwt-user.jar, so it is important that gwt-user.jar is listed first).

  4. Try deleting the following directory in case there is a problem with cached GWT bytecodes...

    <workspace>\.metadata\.plugins\com.swtdesigner.gwt\bytesCache

  5. Make sure that anything that might interfere with local communications is disabled (like any proxy configured in your IE settings or any overly aggressive anti-virus or firewall software). If you have a proxy server configured in your IE LAN Settings, make sure that the Bypass proxy server for local addresses option is enabled. As a test, you can also try disabling the proxy / firewall / anti-virus software completely.

  6. Make sure that your browser is in "on-line" mode. In IE, make sure that the File > Work Offline menu is unchecked.

  7. If you are using FireFox, try disabling or removing any installed extensions.

  8. Re-boot your PC and try it again. This should rule out any temporary problems with memory, communications, etc.

  9. Re-install Designer (using the latest build) into a clean Eclipse environment (new workspace). This should rule out any installation problems or issues with other plugins.

  10. Do a full reset of you browser settings (see your IE preferences). This is to rule out any unknown IE-related configuration issues.

Does GWT Designer support GWT-EXT or MyGWT?

GWT Designer has some limited support for gwt-ext. All standard GWT widgets work with GWT Designer as do any widgets that are JavaBean compliant (e.g., they include a public default constructor and expose properties via getter/setter pairs). Widgets that define their own API and don't conform to the JavaBean spec likely will not work as-is (which is the case with most of the gwt-ext and MyGWT widgets). You can wrapper the gwt-ext or MyGWT widgets in a Composite subclass in order to see them in GWT Designer (see the ImageViewer example in this project which shows a TabPanel within a Composite).

We do plan to eventually provide full support for the gwt-ext widgets, but it won't happen right away. GWT itself has only just come out of beta, and the gwt-ext and MyGWT widgets are still very much in their early stages. Until those widgets have been finalized and their API stablized, any support we added for them would be premature and likely a waste of our engineering resources.

Is Designer supported on Mac OSX?

As of Eclipse 3.3 and Apple's  JDK 1.5 Release 5 Developer Preview 2, yes.

Note that OSX 10.5 requires the use of Eclipse 3.3.2 or 3.4 and Designer v6.5.0 or higher.

The SWT portion of the product (SWT Designer) has worked under OSX for quite some time. Prior to Eclipse 3.3, the Swing portion of the product (Swing Designer) did not work on the Mac at all due to critical limitations in Eclipse for the Mac (Eclipse did not support Swing/AWT interoperability, for example). See the following Eclipse Bugzilla entries for more background

How should Designer be configured to work on Linux?

To use Designer in Linux, we recommend that you use an official JDK from Sun, not the (buggy) GPL version of Java that most vendors ship. Here are some setup instructions for using Sun's java with Fedora Core and Debian. Note that use of a non-Sun JDK can result in Eclipse locking up.

Using Sun's Java with Fedora Core:

  1. Download and Unpack Sun's JDK .bin format.
     
  2. If you wish to use java on the command line or with other programs besides eclipse add the following to your /etc/profile

    JAVA_HOME = <path_to_jdk>
    PATH= $PATH:$JAVA_HOME/bin
    Export JAVA_HOME PATH
     
  3. Install Sun's java as alternative
    #/usr/sbin/alternatives -install /usr/bin/java java <path_to_jdk> 2
     
  4. Switch to the new alternative
    #/usr/sbin/alternatives -config java
    Select option 2
     
  5. Test
    #/usr/sbin/alternatives -display java

You should see java pointing to the Sun JDK.

Using Sun's Java with Debian:

  1. Download Sun JDK in .bin format
     
  2. fakeroot make-jpkg <jdk>.bin
    This creates a .deb package.
     
  3. sudo dpkg -i <jdk>.deb
     
  4. Test
    #java -version.

What should I do if I have problems running under SuSE Linux?

If you have a problem running Designer on Linux SuSE 10.3 such as Eclipse crashing and/or working incorrectly, or your my log files contains something like "xcb_xlib.c:42: xcb_xlib_lock: Assertion `!c->xlib.lock'" and/or "/usr/lib/Eclipse: No such file or directory", please try to add the following into you profile:

LIBXCB_ALLOW_SLOPPY_LOCK=1
export LIBXCB_ALLOW_SLOPPY_LOCK.

How can I prevent the preview window from flashing under Linux using Metacity

In order to create the graphics that you see in the design view, Designer creates an off screen window containing the various widgets and they takes a screen snapshot of them. This works very well under Windows, OSX and some versions of Linux. Recent versions of the Metacity window manager (more recent than 2.1.4), however, have been modified/"fixed" to disallow windows to be opened off screen. This forces the preview window to appear on screen leading to an annoying flashing effect any time you make a change. The solution is to disable the Metacity "fully_onscreen" constraint by patching the Metacity source code and rebuilding and installing the patched version into your system.

Here are the steps to follow:

  1. Download the Metacity source code from ftp://ftp.gnome.org/pub/gnome/sources/metacity/

  2. Unpack the source code tarball into any temporary directory.

  3. Chdir into this directory (with the unpacked code).

  4. Find window.c file and open it with your favourite texteditor.

  5. Find a line with "window->require_fully_onscreen = TRUE;"

  6. Replace it with "window->require_fully_onscreen = FALSE;"

  7. Save the changes and close the editor.

  8. Open a terminal and chdir into the directory with the source code (nice if you have already done this)

  9. Run "./configure".

  10. Run "make all".

  11. Make sure that steps 9 & 10 completed without errors.

  12. Become root (or execute the next command via "sudo" depending on the Linux you are running)

  13. Run "make install" (or "sudo make install").

  14. Save your work and close any application you are working with.

  15. End your session (or press Ctrl-Alt-Delete to restart the x-server) and log in again.

  16. You are done!

Can I use the product on multiple machines with a single license?

Yes. The product is licensed per user, so you can use it on as many Eclipse versions and as many machines as you like (as long as you are the only one using it). Please note that activation keys are machine specific and may not be shared. Each machine that you use must be activated individually.

Why does Designer keep asking me to activate when I have already activated it?

It is quite likely that you simple have not activated the feature set that you are trying to use. WindowBuilder consists of three major components, SWT Designer, Swing Designer, and GWT Designer. Each may be activated independently of the other or both may be activated together. If you activate SWT Designer by itself and then attempt to create a Swing user interface (or vice versa), Designer will ask you to activate Swing Designer.

Is Designer based on the Eclipse Visual Editor?

No. Designer does not use any code from the Eclipse Visual Editor project (and vice versa). Both the Eclipse VE
and Designer are native Eclipse applications that are based on the Eclipse GEF (Graphical Editor Framework) libraries.

How do I know whether I have the latest Designer version?

We follow the same general release and naming convention that is used by Eclipse.org. On the Designer download page, you will find two columns of downloads. The first column will allow you to download the most recent GA version of the product while the second columns will allow you to download the most recent development stream (or beta stream) build. The date of the latest build is always shown at the top of the column. You can check which build you are currently using by looking at the main Designer preference page. In general, new development stream build may be directly installed over older ones.