"public interface MyImageBundle extends ImageBundle {",
            "  AbstractImagePrototype first();",
            "}"));
    waitForAutoBuild();
    // parse
    RootPanelInfo frame =
        parseJavaInfo(
            "public class Test implements EntryPoint {",
            "  private static final MyImageBundle m_myBundle = GWT.create(MyImageBundle.class);",
            "  public void onModuleLoad() {",
            "    RootPanel rootPanel = RootPanel.get();",
            "  }",
            "}");
    assertNoErrors(frame);
    // prepare prototype
    ImageBundlePrototypeDescription prototype;
    {
      ImageBundleInfo bundle = ImageBundleContainerInfo.getBundles(frame).get(0);
      List<ImageBundlePrototypeDescription> prototypes = bundle.getPrototypes();
      prototype = prototypes.get(0);
    }
    // prepare category/entries
    CategoryInfo category = new CategoryInfo();
    category.setId("com.google.gdt.eclipse.designer.ImageBundle");
    List<EntryInfo> entries = Lists.newArrayList();
    // send palette broadcast
    PaletteEventListener listener = frame.getBroadcast(PaletteEventListener.class);
    listener.entries(category, entries);
    // we should have exactly one entry
    ToolEntryInfo toolEntry;
    {
      assertEquals(1, entries.size());
      toolEntry = (ToolEntryInfo) entries.get(0);
    }
    // check Entry presentation
    {
      assertEquals(ObjectUtils.identityToString(prototype), toolEntry.getId());
      assertThat(toolEntry.getName()).isEqualTo("first");
      assertThat(toolEntry.getDescription()).contains("first()");
      assertSame(prototype.getIcon(), toolEntry.getIcon());
    }
    // use this entry to create new Image widget
    WidgetInfo newImage;
    {
      toolEntry.initialize(null, frame);
      CreationTool creationTool = (CreationTool) toolEntry.createTool();
      ICreationFactory creationFactory = creationTool.getFactory();
      creationFactory.activate();
      newImage = (WidgetInfo) creationFactory.getNewObject();
    }
    //
    frame.command_CREATE2(newImage, null);
    assertEditor(
        "public class Test implements EntryPoint {",
        "  private static final MyImageBundle m_myBundle = GWT.create(MyImageBundle.class);",
        "  public void onModuleLoad() {",
        "    RootPanel rootPanel = RootPanel.get();",