GWT drag & drop, как получить источник виджета при событии drop - PullRequest
3 голосов
/ 04 марта 2012

Я пытаюсь реализовать перетаскивание в моем проекте. Мне уже удалось, но теперь я хочу различить источник перетаскивания.

У меня будет два виджета, из которых я могу перетащить, давайте позвоним widget1 и widget2:

widget1.getElement().setDraggable(Element.DRAGGABLE_TRUE);
widget2.getElement().setDraggable(Element.DRAGGABLE_TRUE);

я сделал обработчик для каждого

widget1.addDragStartHandler(new DragStartHandler() {

        @Override
        public void onDragStart(DragStartEvent event) {
            // TODO Auto-generated method stub
            event.setData("text", "i am widget1");
            });

widget2.addDragStartHandler(new DragStartHandler() {

        @Override
        public void onDragStart(DragStartEvent event) {
            // TODO Auto-generated method stub
            event.setData("text", "the text is different i am widget2");

теперь у меня было две абсолютные панели, одну из которых можно получить только из виджета 1, а другую - из виджета 2

pNorth.addDomHandler(new DropHandler() {            
      @Override
       public void onDrop(DropEvent event) {
         if(widget1){
           // Prevent the native text drop.
            event.preventDefault();
             // Get the data out of the event.
              String text= event.getData("text");                                  
             pNorth.getElement().getStyle().setBackgroundImage("url("+text+")");
           }}
         }, DropEvent.getType());

как мне это сделать?

спасибо за помощь.

Ответы [ 2 ]

1 голос
/ 18 февраля 2013

Событие отбрасывания, по-видимому, не содержит информации об элементе источника.

Таким образом, вы должны использовать event.setData("source", "some info about current widget");, чтобы определить, какой элемент был перенесен.Информация может быть произвольной, может быть widget1.getClass().getName() или любым другим, позволяющим различить вид перетаскиваемого виджета.

Примечание: тег "source" является произвольным, конечно, вы можете использовать все, что подходитвы.

0 голосов
/ 07 марта 2012

Я недавно работал над чем-то, что называется GWT DND (Drag & Drop). Это довольно полезно в этих случаях. Вот ссылка

http://code.google.com/p/gwt-dnd/

Демо

http://allen -sauer.com / com.allen_sauer.gwt.dnd.demo.DragDropDemo / DragDropDemo.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...