Error while import the DefaultWidgetset

Hi everybody

i have a vaadin project in eclipse and want to create a custom widget. I read the book of vaadin and tried as in Chapter 11.
Therefore i installed vaadin-plugin and add new Vaadin-Widgetset. After that the plugin creates the java-file and a gwt.xml-file. In the java-file i get the error “The import com.vaadin.terminal.gwt.client.DefaultWidgetSet cannot be resolved”.
If i compile the widget i get the error

[ERROR]
 Line 3: The import com.vaadin.terminal.gwt.client.DefaultWidgetSet cannot be resolved
         [ERROR]
 Line 7: DefaultWidgetSet cannot be resolved to a type
         [ERROR]
 Line 16: DefaultWidgetSet cannot be resolved to a type
         [ERROR]
 Line 29: DefaultWidgetSet cannot be resolved to a type
   Finding entry point classes
      [ERROR]
 Unable to find type 'com.example.tempvaadinproject.client.TempvaadinprojectApplicationWidgetset'
         [ERROR]
 Hint: Previous compiler errors may have made this type unavailable
         [ERROR]
 Hint: Check the inheritance chain from your module; it may not be inheriting a required module or a module may not be adding its source path entries properly
Widgetset compilation failed

I have tried to downgrade the Vaadin-Version and than upgrade it again. But this doesnt help.

Greets

Edit: Maybe i’m wrong but in the jar (vaadin-6.6.6.jar) there are no DefaultWidgetSet.class File or DefaultWidgetSet.java File. But i think they must be there.

You should use com.vaadin.terminal.gwt.DefaultWidgetSet, which refers to the file /com/vaadin/terminal/gwt/DefaultWidgetSet.gwt.xml inside vaadin-6.6.6.jar . It seems you did somehow get an extra “.client” in the name of the inherited widgetset.

Please create a ticket at
[url=http://dev.vaadin.com]
dev.vaadin.com

[/url] with steps to reproduce if the invalid import value in your gwt.xml-file originated from the Vaadin Plug-in for Eclipse.

There is no class DefaultWidgetSet in the JAR, and your Java files should not refer to one - the class is generated behind the scenes (in memory only) as a part of the widgetset compilation process.

Some guesses: the code refers to the class that existed in some very old versions of Vaadin (6.1 and earlier if I remember correctly), you are using the wrong version of GWT for widgetset compilation (might happen if you have edited the GWT entries on the project build path yourself or added GWT JARs by hand) or the widgetset compilation does not find the generator class that actually creates the default widgetset class on the fly (I have never seen that happen, though).

Hi

i’ve tried it many times but it doesn’t work. I create a new Vaadin Project and then i add a new vaadin widgetset. The Plugin creates the files TempvaadinprojectApplicationWidgetSet.gwt.xml

<module>
	<!-- Inherit super widgetset -->
	<inherits name="com.vaadin.terminal.gwt.DefaultWidgetSet" /> 

    <!--
     Uncomment the following to compile the widgetset for one browser only.
     This can reduce the GWT compilation time significantly when debugging.
     The line should be commented out before deployment to production
     environments.
      
     Multiple browsers can be specified for GWT 1.7 as a comma separated
     list. The supported user agents at the moment of writing were:
     ie6,ie8,gecko,gecko1_8,safari,opera
     
     The value gecko1_8 is used for Firefox 3 and later and safari is used for
     webkit based browsers including Google Chrome.
    -->
    <!-- <set-property name="user.agent" value="gecko1_8"/> -->
	
	<!-- Entry point -->
	<entry-point class="com.example.tempvaadinproject.client.TempvaadinprojectApplicationWidgetset"/>
	

    <inherits name="com.example.tempvaadinproject.widgetset.TempvaadinprojectWidgetset" />
</module>

and the corresponding Java file:

package com.example.tempvaadinproject.client;

import com.vaadin.terminal.gwt.client.DefaultWidgetSet;
import com.vaadin.terminal.gwt.client.Paintable;
import com.vaadin.terminal.gwt.client.UIDL;

public class TempvaadinprojectApplicationWidgetset extends DefaultWidgetSet {

	/** Creates a widget according to its class name. */
	public Paintable createWidget(UIDL uidl) {
		final Class<?> classType = resolveWidgetType(uidl);

		Paintable p = createWidgetByClass(classType);
		if (p == null) {
			// Let the DefaultWidgetSet handle creation of default widgets
			p = super.createWidget(uidl);
		}

		return p;
	}

	/** Resolves UIDL tag name to class . */
	protected Class<?> resolveWidgetType(UIDL uidl) {
		final String tag = uidl.getTag();

		Class<?> c = resolveWidgetByTag(tag);

		if (c == null) {
			c = super.resolveWidgetType(uidl);
		}

		// Let the DefaultWidgetSet handle resolution of default widgets
		return c;
	}

	// This method gets AUTOGENERATED by Vaadin plugin
	private Paintable createWidgetByClass(Class<?> classType) {
		{
			return null;
		}
	}

	// This method gets AUTOGENERATED by Vaadin plugin
	private Class<?> resolveWidgetByTag(final String tag) {
		{
			return null;
		}
	}

}

Eclipse mark the import of the DefaultWidgetsetSet with the mentioned error.
Is there any other adjustments? If not i create a ticket.

Greets

Eclipse marks the import with an error because there is no class called DefaultWidgetSet in Eclipse, and there should not be. There should not be an explicit entry point, either, and there should not be a Widgetset class in your project.

I guess you have used a widgetset creation wizard in Eclipse without noticing that it is only for very, very old Vaadin versions (older than 6.2). The wizard name says that it is only for old versions, but maybe it is too easy to miss that mention.

With current Vaadin versions, a widgetset is automatically created when you try to compile it (e.g. with the “Compile Widgetset” button in the toolbar) and one is needed e.g. because of add-ons or custom client side code.

Hi

thx Henri for this hint. i must be blind :slight_smile: . After i press the “Compile Vaadin widgets” - Button it creates the widgetset.

Thx for help.

Greets