Friday, July 23, 2010

Re: Draggable widget

Are you using Fred Sauer's gwt-dnd? If you are using it, this could
help you.

Fist at all follow Fred's example: http://code.google.com/p/gwt-dnd/wiki/GettingStarted

Now you must make a change to your widgets, first your widget class
must implement HasDragHandle. And second i guess that you want to have
some information, like an id, attached to your widget.

Take a look at this:

public class DraggableCategory extends Composite implements
HasDragHandle {
private String categoryId;
private Image image;

public DraggableCategory(Category category){
super();
this.categoryId = category.getId();
image = new Image(category.getThumbnail());
image.setWidth("60px");
image.setHeight("60px");

initWidget(image);
}

public String getCategoryId() {
return categoryId;
}

public Image getImage() {
return image;
}

/* this is the important part */
public Widget getDragHandle() {
return this.image;
}
}

Now your widget is draggable and in your DropController you can access
to your id, for example, create your own DropController and do this:

public void onDrop(DragContext context) {
for (Widget widget : context.selectedWidgets) {
if (widget instanceof DraggableCategory) {
DraggableCategory draggableCategory =
(DraggableCategory) widget;

Window.alert(draggableCategory.getId());
}
}
}

Of course, dont forget to register your own DropController to the
DragController and make your widget draggable:

DraggableCategory draggableCategory = new DraggableCategory(category);

PickupDragController myDragController = new
PickupDragController(RootPanel.get(), false);
MyDropController myDropController = new
MyDropController(RootPanel.get());

/* register your dropController */
myDragController.registerDropController(myDropController);

/* make draggable your widget */
myDragController.makeDraggable(draggableCategory);

I think i didn't forget anything, I hope this could help you.

On 23 jul, 09:13, rlebosse <rlebo...@gmail.com> wrote:
> Hi everybody,
>
> I've lots of widgets (extends Composite) that I would like to be able
> to drag in the displayed web page?
> How can I do that?
>
> Thanks for your help,
> Romain

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to google-web-toolkit+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home


Real Estate