Example usage for com.google.gwt.event.dom.client MouseOverHandler MouseOverHandler

List of usage examples for com.google.gwt.event.dom.client MouseOverHandler MouseOverHandler

Introduction

In this page you can find the example usage for com.google.gwt.event.dom.client MouseOverHandler MouseOverHandler.

Prototype

MouseOverHandler

Source Link

Usage

From source file:at.ait.dme.yuma.client.image.annotation.ImageAnnotationTree.java

License:EUPL

/**
 * add the given annotation and all replies to the annotation tree
 * /*ww w  . j  av a  2  s  . c om*/
 * @param annotation
 * @param parentAnnotation
 * @param parent
 */
private void addAnnotation(final ImageAnnotation annotation, ImageAnnotation parentAnnotation,
        TreeItem parent) {

    // create the tree node
    final ImageAnnotationTreeNode node = new ImageAnnotationTreeNode(annotationComposite, annotation,
            parentAnnotation);
    node.setAnnotationTreeItem((parent == null) ? this.addItem(node) : parent.addItem(node));
    node.addMouseOutHandler(new MouseOutHandler() {
        public void onMouseOut(MouseOutEvent event) {
            node.setStyleName("imageAnnotation");
            handlerManager.fireEvent(new ImageAnnotationSelectionEvent(annotation, false));
        }
    });
    node.addMouseOverHandler(new MouseOverHandler() {
        public void onMouseOver(MouseOverEvent event) {
            node.setStyleName("imageAnnotation-selected");
            handlerManager.fireEvent(new ImageAnnotationSelectionEvent(annotation, true));
        }
    });
    annotationNodes.put(annotation, node);

    // show the fragment
    if (annotation.hasFragment()) {
        DeferredCommand.addCommand(new Command() {
            public void execute() {
                imageComposite.showFragment(node.getAnnotation());
            }
        });
    }

    setSelectedItem(node.getAnnotationTreeItem());
    ensureSelectedItemVisible();

    // process replies
    if (annotation.hasReplies()) {
        // sort replies ascending by creation date
        List<ImageAnnotation> replies = annotation.getReplies();
        Collections.sort(replies, new Comparator<ImageAnnotation>() {
            public int compare(ImageAnnotation o1, ImageAnnotation o2) {
                return o1.getCreated().compareTo(o2.getCreated());
            }
        });
        // add replies to the tree
        for (ImageAnnotation reply : replies) {
            addAnnotation(reply, annotation, node.getAnnotationTreeItem());
        }
    }
}

From source file:at.ait.dme.yuma.client.image.StandardImageComposite.java

License:EUPL

/**
 * shows a fragment and adds a mouse selection handler to highlight the
 * fragment and the corresponding {@link ImageAnnotation}
 * // ww w. j av  a  2s .com
 * @param image annotation
 */
@Override
public void showFragment(final ImageAnnotation annotation) {
    if (!annotation.hasFragment())
        return;
    ImageFragment fragment = annotation.getFragment();

    // create a copy so we can roll back changes if the user cancels the operation
    Shape shape = fragment.getShape().copy();

    // if the fragment is already displayed we have to remove it
    if (fragmentPanels.containsKey(annotation)) {
        hideFragment(annotation);
    }

    // create a new fragment panel
    final ShapePanel fragmentPanel = new ShapePanel(imagePanel, shape, false, false);
    imagePanel.add(fragmentPanel, shape.getLeft(), shape.getTop());
    fragmentPanels.put(annotation, fragmentPanel);
    setFragmentZIndices();

    // change zoom level of fragment to fit the current zoom level of the image
    ImageRect fragmentImageRect = fragment.getImageRect();
    float widthDiff = fragmentImageRect.getWidth() - imageRect.getWidth();
    float heightDiff = fragmentImageRect.getHeight() - imageRect.getHeight();
    zoomFragment(fragmentPanel, widthDiff < 0, fragmentImageRect, Math.abs(widthDiff), Math.abs(heightDiff));

    // mouse listeners for fragment selection
    fragmentPanel.getDragPanel().addMouseOverHandler(new MouseOverHandler() {
        public void onMouseOver(MouseOverEvent event) {
            fragmentPanel.markSelected(true);
            handlerManager.fireEvent(new ImageAnnotationSelectionEvent(annotation, true));
        }
    });
    fragmentPanel.getDragPanel().addMouseOutHandler(new MouseOutHandler() {
        public void onMouseOut(MouseOutEvent event) {
            fragmentPanel.markSelected(false);
            handlerManager.fireEvent(new ImageAnnotationSelectionEvent(annotation, false));
        }
    });
}

From source file:at.ait.dme.yuma.suite.apps.core.client.treeview.AnnotationTree.java

License:EUPL

private void addAnnotation(final AnnotationTreeNode annotation, AnnotationTreeNode parent) {
    TreeItem treeItem;/*w ww . j a  v a  2s .c  o m*/
    if (parent == null) {
        treeItem = this.insertItem(0, annotation);
    } else {
        treeItem = parent.getTreeItem().addItem(annotation);
    }
    annotation.setTreeItem(treeItem);

    if (annotation.getAnnotation().hasFragment())
        panel.getMediaViewer().showAnnotation(annotation.getAnnotation());

    annotation.addMouseOverHandler(new MouseOverHandler() {
        public void onMouseOver(MouseOverEvent event) {
            annotation.select();
            handlerManager.fireEvent(new AnnotationSelectionEvent(annotation.getAnnotation(), true));
        }
    });
    annotation.addMouseOutHandler(new MouseOutHandler() {
        public void onMouseOut(MouseOutEvent event) {
            annotation.deselect();
            handlerManager.fireEvent(new AnnotationSelectionEvent(annotation.getAnnotation(), false));
        }
    });

    setSelectedItem(annotation.getTreeItem());
    ensureSelectedItemVisible();

    if (annotation.getAnnotation().hasReplies()) {
        List<Annotation> replies = sort(annotation.getAnnotation().getReplies());

        for (Annotation reply : replies) {
            AnnotationTreeNode node = prototype.newInstance(panel, reply, annotation);
            addAnnotation(node, annotation);
        }
    }

    nodes.put(annotation.getAnnotation(), annotation);
    annotations.put(treeItem, annotation.getAnnotation());
}

From source file:at.ait.dme.yuma.suite.apps.image.client.ImageViewer.java

License:EUPL

/**
 * shows a fragment and adds a mouse selection handler to highlight the
 * fragment and the corresponding {@link ImageAnnotation}
 * //w ww.jav a2s . c  om
 * @param image annotation
 */
@Override
public void showAnnotation(final Annotation annotation) {
    if (!annotation.hasFragment())
        return;
    ImageFragment fragment = (ImageFragment) annotation.getFragment();

    // create a copy so we can roll back changes if the user cancels the operation
    Shape shape = fragment.getShape().copy();

    // if the fragment is already displayed we have to remove it
    if (fragmentPanels.containsKey(annotation)) {
        hideAnnotation(annotation);
    }

    // create a new fragment panel
    final ShapePanel fragmentPanel = new ShapePanel(imagePanel, shape, false, false);
    imagePanel.add(fragmentPanel, shape.getLeft(), shape.getTop());
    fragmentPanels.put((ImageAnnotation) annotation, fragmentPanel);
    setFragmentZIndices();

    // change zoom level of fragment to fit the current zoom level of the image
    ImageRect fragmentImageRect = fragment.getImageRect();
    float widthDiff = fragmentImageRect.getWidth() - imageRect.getWidth();
    float heightDiff = fragmentImageRect.getHeight() - imageRect.getHeight();
    zoomFragment(fragmentPanel, widthDiff < 0, fragmentImageRect, Math.abs(widthDiff), Math.abs(heightDiff));

    // mouse listeners for fragment selection
    fragmentPanel.getDragPanel().addMouseOverHandler(new MouseOverHandler() {
        public void onMouseOver(MouseOverEvent event) {
            fragmentPanel.markSelected(true);
            handlerManager.fireEvent(new AnnotationSelectionEvent(annotation, true));
        }
    });
    fragmentPanel.getDragPanel().addMouseOutHandler(new MouseOutHandler() {
        public void onMouseOut(MouseOutEvent event) {
            fragmentPanel.markSelected(false);
            handlerManager.fireEvent(new AnnotationSelectionEvent(annotation, false));
        }
    });
}

From source file:be.progs.routeshare.client.MenuMapGadget.java

License:Open Source License

@Override
public Widget asWidget() {
    if (menu == null) {
        menu = new RouteShareMenu(mapPresenter);

        // Stop propagation of mouse events to the map:
        menu.addDomHandler(new MouseDownHandler() {

            public void onMouseDown(MouseDownEvent event) {
                event.stopPropagation();
            }//  w w w  . j ava2 s  . c o m
        }, MouseDownEvent.getType());
        menu.addDomHandler(new ClickHandler() {

            public void onClick(ClickEvent event) {
                event.stopPropagation();
            }
        }, ClickEvent.getType());
        menu.addDomHandler(new MouseUpHandler() {

            public void onMouseUp(MouseUpEvent event) {
                event.stopPropagation();
            }
        }, MouseUpEvent.getType());
        menu.addDomHandler(new DoubleClickHandler() {

            public void onDoubleClick(DoubleClickEvent event) {
                event.stopPropagation();
            }
        }, DoubleClickEvent.getType());

        // Install a timer for automatic closing when the mouse leaves us:
        menu.addDomHandler(new MouseOutHandler() {

            public void onMouseOut(MouseOutEvent event) {
                if (menu.isOpen() && closeDelay > 0) {
                    timer = new Timer() {

                        public void run() {
                            menu.setOpen(false);
                        }
                    };
                    timer.schedule(closeDelay);
                }
            }
        }, MouseOutEvent.getType());
        menu.addDomHandler(new MouseOverHandler() {

            public void onMouseOver(MouseOverEvent event) {
                if (timer != null) {
                    timer.cancel();
                }
            }
        }, MouseOverEvent.getType());
    }
    return menu;
}

From source file:cc.kune.common.client.ui.BasicThumb.java

License:GNU Affero Public License

/**
 * Instantiates a new basic thumb.//ww w. j  a  va  2s . co m
 *
 * @param imageRef
 *          This can be a ImageResource or a String Url
 * @param imgSize
 *          the img size
 * @param text
 *          the text
 * @param textMaxLenght
 *          the text max lenght
 * @param crop
 *          the crop
 * @param clickHandler
 *          the click handler
 */
public BasicThumb(final Object imageRef, final int imgSize, final String text, final int textMaxLenght,
        final boolean crop, final ClickHandler clickHandler) {
    super();
    onOverLabel = false;
    panel = new VerticalPanel();
    if (imageRef instanceof String) {
        final String imageUrl = (String) imageRef;
        if (imgSize == NOSIZE) {
            image = new Image(imageUrl);
        } else {
            if (crop) {
                image = new Image(imageUrl, 0, 0, imgSize, imgSize);
            } else {
                image = new Image(imageUrl);
                image.setPixelSize(imgSize, imgSize);
            }
        }
    } else if (imageRef instanceof ImageResource) {
        image = new Image((ImageResource) imageRef);
        image.setPixelSize(imgSize, imgSize);
    } else {
        // This should not happen
        image = new Image();
        image.setPixelSize(imgSize, imgSize);
        Log.info("Unrecognized icon of BasicThumb: " + imageRef);
    }
    final String title = textMaxLenght == NOSIZE ? text : TextUtils.ellipsis(text, textMaxLenght);
    label = new Label(title);
    panel.add(image);
    panel.add(label);
    panel.addStyleName("k-basic-thumb");
    panel.addStyleName("kune-Margin-Mini-trbl");
    panel.addStyleName("k-pointer");
    panel.addStyleName("k-floatleft");
    panel.setCellHorizontalAlignment(label, VerticalPanel.ALIGN_CENTER);
    if (clickHandler != null) {
        addClickHandlerImpl(clickHandler);
    }
    image.addMouseOverHandler(new MouseOverHandler() {

        @Override
        public void onMouseOver(final MouseOverEvent event) {
            if (onOverLabel) {
                label.setVisible(true);
            }
        }
    });
    image.addMouseOutHandler(new MouseOutHandler() {

        @Override
        public void onMouseOut(final MouseOutEvent event) {
            if (onOverLabel) {
                label.setVisible(false);
            }
        }
    });
    setElement(panel.getElement());
}

From source file:cc.kune.gspace.client.tool.selector.ToolSelectorItemPanel.java

License:GNU Affero Public License

/**
 * Instantiates a new tool selector item panel.
 *
 * @param shortName//from w  w w.  jav  a 2s.  c  o  m
 *          the short name
 * @param icon
 *          the icon
 */
public ToolSelectorItemPanel(final String shortName, final KuneIcon icon) {
    this.shortName = shortName;

    btn = PaperFab.wrap(TOOL_ID_PREFIX + shortName);

    setVisibleImpl(false);
    btn.setStylePrimaryName("k-tool-item");
    btn.addMouseOverHandler(new MouseOverHandler() {
        @Override
        public void onMouseOver(final MouseOverEvent event) {
            focus();
        }
    });
    btn.addMouseOutHandler(new MouseOutHandler() {
        @Override
        public void onMouseOut(final MouseOutEvent event) {
            unfocus();
        }
    });
}

From source file:cc.kune.gspace.client.viewers.FolderViewerAsTablePanel.java

License:GNU Affero Public License

@Override
public void addItem(final FolderItemDescriptor item, final ClickHandler clickHandler,
        final DoubleClickHandler doubleClickHandler) {
    final int rowCount = flex.getRowCount();
    final FolderItemWidget itemWidget = new FolderItemWidget((KuneIcon) item.getIcon(),
            TextUtils.ellipsis(item.getText(), 70), item.getStateToken(), ITEM_ID + (flex.getRowCount() + 1));
    final ActionSimplePanel toolbar = new ActionSimplePanel(guiProvider, i18n);
    final long modifiedOn = item.getModififiedOn();
    if (modifiedOn != FolderViewerView.NO_DATE) {
        // String dateFormat = session.getCurrentLanguage().getDateFormatShort();
        itemWidget.setModifiedText(DateUtils.getInstance().formatPastDate(modifiedOn));
    }/*from  w ww . j  a va 2s .c  o m*/
    itemWidget.setMenu(toolbar);
    Tooltip.to(itemWidget, item.getTooltip());
    // FIXME make this under demand
    itemWidget.getRowClick().addClickHandler(clickHandler);
    itemWidget.getRowDoubleClick().addDoubleClickHandler(doubleClickHandler);
    if (ContentStatus.inTheDustbin.equals(item.getContentStatus())) {
        itemWidget.getTitleWidget().addStyleName("k-line-through");
    }
    itemWidget.getRowDoubleClick().addDoubleClickHandler(doubleClickHandler);
    itemWidget.getRowMouse().addMouseOutHandler(new MouseOutHandler() {
        @Override
        public void onMouseOut(final MouseOutEvent event) {
            itemWidget.setMenuVisible(false);
        }
    });
    final MenuDescriptor menu = new MenuDescriptor(i18n.t("Actions"));
    menu.setAtRight(true);
    menu.withStyles("k-def-docbtn, k-btn, k-button");
    menu.setStandalone(false);
    toolbar.add(menu);
    final GuiActionDescCollection actions = item.getActionCollection();
    toolbar.setVisible(actions.size() > 0);
    itemWidget.setMenuVisible(false);

    itemWidget.getRowMouse().addMouseOverHandler(new MouseOverHandler() {
        boolean initialized = false;

        private void init(final FolderItemDescriptor item, final FolderItemWidget itemWidget,
                final ActionSimplePanel toolbar) {
            for (final GuiActionDescrip menuItem : actions) {
                menuItem.setParent(menu);
                toolbar.add(menuItem);
            }
        }

        @Override
        public void onMouseOver(final MouseOverEvent event) {
            if (!initialized) {
                init(item, itemWidget, toolbar);
                initialized = true;
            }
            itemWidget.setMenuVisible(true);
        }
    });
    flex.setWidget(rowCount + 1, 0, itemWidget);
    if (item.isDraggable()) {
        dragController.makeDraggable(itemWidget, itemWidget.getTitleWidget());
    }

    if (!item.isContainer() && item.isDroppable()) {
        final FolderContentDropController dropController = contentDropControllerProv.get();
        dropController.init(itemWidget);
        dropController.setTarget(item.getStateToken());
    }
    if (item.isContainer() && item.isDroppable()) {
        final FolderContainerDropController dropController = containerDropControllerProv.get();
        dropController.init(itemWidget);
        dropController.setTarget(item.getStateToken());
    }
}

From source file:ch.heftix.mailxel.client.MailOverviewCellTable.java

License:Open Source License

public void fillGrid(List<Envelope> result) {

    envelopes = result;//ww w  .  j  ava  2s . c om
    // checkboxes = new ArrayList<CheckBox>(envelopes.size());

    // clean all except header
    int rows = grid.getRowCount();
    for (int i = rows - 1; i >= first_payload_row; i--) {
        grid.removeRow(i);
    }

    int row = first_payload_row;

    for (final Envelope envelope : result) {

        grid.setText(row, C_SELECT, Integer.toString(envelope.count));

        setTextHelper(grid, row, C_FROM, envelope.from, 12);
        setTextHelper(grid, row, C_TO, envelope.to, 12);
        Label dateTime = dateTimeLabel(envelope.date, envelope.time);
        if (envelope.urgency > 0) {
            String style = "background-color:#FA5858;";
            switch (envelope.urgency) {
            case 4:
                style = "background-color:#FA5858;";
                break;
            case 3:
                style = "background-color:#FAAC58;";
                break;
            case 2:
                style = "background-color:#F4FA58;";
                break;
            default:
                style = "background-color:#ACFA58;";
                break;
            }
            DOM.setElementAttribute(dateTime.getElement(), "style", style);
        }

        grid.setWidget(row, C_DATE, dateTime);

        // GTD label (unless label is 'not categorized')
        if (990 != envelope.curcatid) {
            Label gtdLabel = createLabel(envelope.GTD, 16);
            grid.setWidget(row, C_GTD, gtdLabel);
            // see if there is an icon for it
            Image img = setIconForGTD(grid, row, envelope.curcatid, envelope.GTD);
            img.addMouseOverHandler(new MouseOverHandler() {
                public void onMouseOver(final MouseOverEvent event) {

                    final PopupPanel pop = new PopupPanel(true);
                    pop.setPopupPosition(event.getClientX(), event.getClientY());

                    mailxelService.getCategoryHistory(envelope.id,
                            new AsyncCallback<List<AttachedCategoryTO>>() {
                                public void onFailure(Throwable caught) {
                                    //
                                }

                                public void onSuccess(List<AttachedCategoryTO> result) {
                                    if (null == result || result.size() < 1) {
                                        return;
                                    }
                                    FlexTable ft = new FlexTable();
                                    pop.add(ft);
                                    int row = 0;
                                    for (AttachedCategoryTO cat : result) {
                                        ft.setText(row, 0, cat.date);
                                        String url = DirectMailServiceUtil.getIconURL(cat.category.iconid);
                                        if (null != url) {
                                            Image img = new Image(url);
                                            ft.setWidget(row, 1, img);
                                        }
                                        ft.setText(row, 2, cat.category.name);
                                        row++;
                                    }
                                    pop.show();
                                }

                            });
                }
            });
        }

        if (envelope.nattach > 0) {
            Image attach = new Image("img/attach.png");
            grid.setWidget(row, C_ATTACHMENT, attach);
        }
        Label subject = setTextHelper(grid, row, C_SUBJECT, envelope.subject, 64);
        // subject.addMouseOverHandler(new MouseOverHandler() {
        //
        // public void onMouseOver(MouseOverEvent event) {
        // // System.out.println("on mouse over:" + event + "/" +
        // // envelope);
        // mailxelService.snippet(envelope.id,
        // new AsyncCallback<String>() {
        //
        // public void onFailure(Throwable caught) {
        // System.out.println("E snippet: " + caught);
        // }
        //
        // public void onSuccess(String result) {
        // System.out.println("I snippet: " + result);
        //
        // }
        // });
        // }
        // });

        if (row % 2 == 0) {
            rf.setStylePrimaryName(row, "row-bg");
        }
        row++;

    }

    cl = new CursoredList<Envelope>(envelopes);
    cl.setCursorPosition(0);
}

From source file:ch.unifr.pai.mindmap.client.mindmap.BackgroundImgRepo.java

License:Apache License

/**
 * @param bgImg//from w  w  w  . j  a  va2  s.co  m
 *            - the image object that shall be adapted accordingly to the chosen data-url
 */
public BackgroundImgRepo(Image bgImg) {
    super();
    add(fp);
    add(previewImage);
    getElement().getStyle().setOverflow(Overflow.VISIBLE);
    this.bgImg = bgImg;
    this.setHeight("100%");
    this.setWidth("100%");
    fp.getElement().getStyle().setBackgroundColor("grey");
    fp.setWidth("100%");
    fp.setHeight("100%");
    fp.setWidget(hp);
    hp.setWidth("100%");
    hp.setHeight("100%");
    fp.setWidget(hp);
    previewImage.getElement().getStyle().setPosition(Position.ABSOLUTE);
    previewImage.getElement().getStyle().setTop(-120, Unit.PX);
    previewImage.getElement().getStyle().setHeight(110, Unit.PX);
    previewImage.getElement().getStyle().setBorderWidth(2, Unit.PX);
    previewImage.getElement().getStyle().setBorderColor("black");
    previewImage.getElement().getStyle().setBorderStyle(BorderStyle.SOLID);
    previewImage.getElement().getStyle().setDisplay(Display.NONE);

    // Add a button for cleaning the browser as well
    PushButton emptyBg = new PushButton(new Image(GWT.getModuleBaseURL() + "images/emptyscreen.png")) {
        @Override
        public void onBrowserEvent(Event event) {
            if (MultiCursorController.isDefaultCursor(event)) {
                super.onBrowserEvent(event);
            }
        }
    };
    emptyBg.setTitle("Remove background-image");
    emptyBg.getElement().getStyle().setDisplay(Display.INLINE_BLOCK);
    emptyBg.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            if (MultiCursorController.isDefaultCursor(event.getNativeEvent())) {
                BackgroundImgRepo.this.bgImg.setVisible(false);
            }
        }
    });
    hp.add(emptyBg);
    fp.addDragOverHandler(new DragOverHandler() {

        @Override
        public void onDragOver(DragOverEvent event) {
            fp.getElement().getStyle().setBackgroundColor("darkgrey");
        }
    });
    fp.addDragLeaveHandler(new DragLeaveHandler() {

        @Override
        public void onDragLeave(DragLeaveEvent event) {
            fp.getElement().getStyle().setBackgroundColor("grey");
        }

    });
    fp.addDropHandler(new DropHandler() {

        /**
         * Prevents the default behavior of the browser (otherwise, the browser would open the image in the current tab), reads the dragged files and adds
         * them as {@link PushButton} to the panel.
         * 
         * @see com.google.gwt.event.dom.client.DropHandler#onDrop(com.google.gwt.event.dom.client.DropEvent)
         */
        /*
         * (non-Javadoc)
         * @see com.google.gwt.event.dom.client.DropHandler#onDrop(com.google.gwt.event.dom.client.DropEvent)
         */
        @Override
        public void onDrop(DropEvent event) {
            // event.stopPropagation();
            event.preventDefault();
            fp.getElement().getStyle().setBackgroundColor("grey");
            JsArray<JavaScriptObject> files = getDataTransferFiles(event.getDataTransfer());
            for (int i = 0; i < files.length(); i++) {
                final Image img = new Image();
                PushButton button = new PushButton(img) {
                    @Override
                    public void onBrowserEvent(Event event) {
                        if (MultiCursorController.isDefaultCursor(event)) {
                            super.onBrowserEvent(event);
                        }
                    }

                };
                button.setTitle("Set this image as background");
                button.addClickHandler(new ClickHandler() {

                    /**
                     * Set the image of the button as the current background image
                     * 
                     * @see com.google.gwt.event.dom.client.ClickHandler#onClick(com.google.gwt.event.dom.client.ClickEvent)
                     */
                    @Override
                    public void onClick(ClickEvent event) {
                        if (MultiCursorController.isDefaultCursor(event.getNativeEvent())) {
                            BackgroundImgRepo.this.bgImg.setVisible(true);
                            BackgroundImgRepo.this.bgImg.getElement().setAttribute("src",
                                    img.getElement().getAttribute("src"));
                        }
                    }
                });
                button.addMouseOverHandler(new MouseOverHandler() {

                    /**
                     * Show the preview image at the appropriate position and replace the data-url
                     * 
                     * @see com.google.gwt.event.dom.client.MouseOverHandler#onMouseOver(com.google.gwt.event.dom.client.MouseOverEvent)
                     */
                    @Override
                    public void onMouseOver(MouseOverEvent event) {
                        if (MultiCursorController.isDefaultCursor(event.getNativeEvent())) {
                            BackgroundImgRepo.this.previewImage.getElement().getStyle()
                                    .setDisplay(Display.BLOCK);
                            BackgroundImgRepo.this.previewImage.getElement().setAttribute("src",
                                    img.getElement().getAttribute("src"));
                            Scheduler.get().scheduleDeferred(new ScheduledCommand() {

                                @Override
                                public void execute() {
                                    previewImage.getElement().getStyle().setLeft(img.getAbsoluteLeft()
                                            - BackgroundImgRepo.this.getAbsoluteLeft()
                                            - previewImage.getOffsetWidth() / 2 + img.getOffsetWidth() / 2,
                                            Unit.PX);
                                }
                            });
                        }
                    }
                });
                button.addMouseOutHandler(new MouseOutHandler() {

                    /**
                     * Hide the preview image
                     * 
                     * @see com.google.gwt.event.dom.client.MouseOutHandler#onMouseOut(com.google.gwt.event.dom.client.MouseOutEvent)
                     */
                    @Override
                    public void onMouseOut(MouseOutEvent event) {
                        if (MultiCursorController.isDefaultCursor(event.getNativeEvent())) {

                            BackgroundImgRepo.this.previewImage.getElement().getStyle()
                                    .setDisplay(Display.NONE);
                        }
                    }
                });
                // img.getElement().getStyle().setMargin(5, Unit.PX);
                // img.getElement().getStyle().setDisplay(Display.INLINE_BLOCK);
                img.setHeight("35px");
                button.getElement().getStyle().setDisplay(Display.INLINE_BLOCK);
                hp.add(button);
                addBackgroundImage(img.getElement(), files.get(i));
            }

        }
    });
}