Example #1
0
  public void draw(Widget content) {
    if (drawn) throw new IllegalStateException();
    this.drawn = true;
    this.hidden = false;
    this.widget = content;
    setBalloonBackgroundStyle(widget);
    String dir = toTop ? "Down" : "Up";
    a = new Image(GWT.getModuleBaseURL() + "img/balloon" + dir + ".gif");
    a.setStyleName("ucpgwt-Balloon-Arrow");
    a.setPixelSize(ARROW_H_PIXELS, ARROW_V_PIXELS);
    tl = new Image(GWT.getModuleBaseURL() + "img/balloonTL.gif");
    tl.setPixelSize(BALLOON_BORDER, BALLOON_BORDER);
    tr = new Image(GWT.getModuleBaseURL() + "img/balloonTR.gif");
    tr.setPixelSize(BALLOON_BORDER, BALLOON_BORDER);
    bl = new Image(GWT.getModuleBaseURL() + "img/balloonBL.gif");
    bl.setPixelSize(BALLOON_BORDER, BALLOON_BORDER);
    br = new Image(GWT.getModuleBaseURL() + "img/balloonBR.gif");
    br.setPixelSize(BALLOON_BORDER, BALLOON_BORDER);

    l = new Label();
    DOM.setStyleAttribute(
        l.getElement(), "backgroundImage", "url(" + GWT.getModuleBaseURL() + "img/balloonL.gif)");
    l.setPixelSize(BALLOON_BORDER, height);
    l.addClickListener(this);
    r = new Label();
    DOM.setStyleAttribute(
        r.getElement(), "backgroundImage", "url(" + GWT.getModuleBaseURL() + "img/balloonR.gif)");
    r.setPixelSize(BALLOON_BORDER, height);
    r.addClickListener(this);
    t = new Label();
    DOM.setStyleAttribute(
        t.getElement(), "backgroundImage", "url(" + GWT.getModuleBaseURL() + "img/balloonT.gif)");
    t.setPixelSize(width, BALLOON_BORDER);
    t.addClickListener(this);
    b = new Label();
    DOM.setStyleAttribute(
        b.getElement(), "backgroundImage", "url(" + GWT.getModuleBaseURL() + "img/balloonB.gif)");
    b.setPixelSize(width, BALLOON_BORDER);
    b.addClickListener(this);

    if (content instanceof SourcesClickEvents) {
      ((SourcesClickEvents) content).addClickListener(this);
    }

    AbsolutePanel root = RootPanel.get();
    panel = new AbsolutePanel();
    panel.addStyleName("ucpgwt-Balloon");

    root.add(a, arrowLeft, arrowTop);
    panel.add(tl, 0, 0);
    panel.add(t, BALLOON_BORDER, 0);
    panel.add(tr, width + BALLOON_BORDER, 0);
    panel.add(l, 0, BALLOON_BORDER);
    panel.add(r, width + BALLOON_BORDER, BALLOON_BORDER);
    panel.add(bl, 0, height + BALLOON_BORDER);
    panel.add(b, BALLOON_BORDER, height + BALLOON_BORDER);
    panel.add(br, width + BALLOON_BORDER, height + BALLOON_BORDER);
    content.setPixelSize(width, height);
    panel.add(content, BALLOON_BORDER, BALLOON_BORDER);
    panel.setPixelSize(width + 2 * BALLOON_BORDER, height + 2 * BALLOON_BORDER);
    root.add(panel, left, top);
  }