pivot-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Greg Brown <gk_br...@verizon.net>
Subject Re: Drag&Drop using Object
Date Thu, 17 Feb 2011 13:39:10 GMT
Try returning false from isNative(). Not 100% sure if that is the problem, but it is possible
- unfortunately, native drags only support image, text, and file list (AWT limitation).

G

On Feb 16, 2011, at 9:30 PM, Thomas Grimaud wrote:

> Hi,
>  
> I’m just starting with Pivot, which is really impressive by the way, and I’m just
trying to be more familiar with the Drag&Drop.
>  
> I’ve just made a Split panel, and I want to be able to move a text from one panel to
the other using drag and drop.
> For that I have one label on each side and I have implemented the Drag& drop on both
of them.
>  
> I started by just putting the Text in the manifest and everything is working fine.
> But now I would like to put the Label in the manifest by using the putValue in my DragSource,
> but I can’t get the value from my DragTarget.
>  
> Am I doing something wrong?
> Below the code of my Drag and Drop for one of my panel,
>  
> splitPane.getRight().setDropTarget(new DropTarget() {
>              
>              @Override
>              public DropAction dragEnter(Component component, Manifest dragContent,
>                          int supportedDropActions, DropAction userDropAction) {
>                 
>                    DropAction dropAction = null;
>  
>                  if (dragContent.containsText()
>                      && DropAction.MOVE.isSelected(supportedDropActions)) {
>                      dropAction = DropAction.MOVE;
>                  }
>  
>                  return dropAction;
>              }
>  
>              @Override
>              public void dragExit(Component component) {
>              }
>  
>              @Override
>              public DropAction dragMove(Component component, Manifest dragContent,
>                  int supportedDropActions, int x, int y, DropAction userDropAction) {
>                  return (dragContent.containsText() ? DropAction.MOVE : null);
>              }
>  
>              @Override
>              public DropAction userDropActionChange(Component component, Manifest dragContent,
>                  int supportedDropActions, int x, int y, DropAction userDropAction) {
>                  return (dragContent.containsText() ? DropAction.MOVE : null);
>              }
>  
>              @Override
>              public DropAction drop(Component component, Manifest dragContent,
>                  int supportedDropActions, int x, int y, DropAction userDropAction) {
>                  DropAction dropAction = null;
>                  try {
>                        if ((dragContent.containsValue("source"))) {
>                          ((Label)splitPane.getRight()).setText(((Label)(dragContent.getValue("source"))).getText());
>                          if ((dragContent.getValue("source").equals(splitPane.getLeft()))&&
(userDropAction == DropAction.MOVE)){
>                                ((Label)splitPane.getLeft()).setText("");
>                          }
>                        }
>                  }
>                  catch(IOException e){
>                  }
>                  dragExit(component);
>  
>                  return dropAction;
>              }
>          });
>         
>          splitPane.getRight().setDragSource(new DragSource() {
>             
>              private LocalManifest content = null;
>  
>              @Override
>              public boolean beginDrag(Component component, int x, int y) {
>                    String text = ((Label)splitPane.getRight()).getText();
>  
>                  if (text != null) {
>                      content = new LocalManifest();
>                      content.putText(text);
>                      content.putValue("source", splitPane.getRight());
>                  }
>                    return (content != null);
>              }
>  
>              @Override
>              public void endDrag(Component component, DropAction dropAction) {
>                    content = null;     
>              }
>  
>              @Override
>              public boolean isNative() {
>                  return true;
>              }
>  
>              @Override
>              public LocalManifest getContent() {
>                  return content;
>              }
>  
>              @Override
>              public Visual getRepresentation() {
>                  return null;
>              }
>  
>              @Override
>              public Point getOffset() {
>                  return null;
>              }
>  
>              @Override
>              public int getSupportedDropActions() {
>                  return DropAction.MOVE.getMask();
>              }
>          });
>  
>  
> Thanks for your answer,
> Rgds,
> 
> Tom


Mime
View raw message