【问题标题】:How to restrict dragging in Smart GWT?如何限制 Smart GWT 中的拖动?
【发布时间】:2016-06-23 14:44:53
【问题描述】:

我试图在画布中拖动画布。处理我正在使用的拖动事件

addDragRepositionStartHandler, addDragRepositionMoveHandler,addDragRepositionStopHandler

处理程序。

我需要在少数情况下限制拖动。假设当我们在public void onDragRepositionMove(DragRepositionMoveEvent event) 中获得超过 500 个event.getX() 时,我想限制拖动。

我试过event.cancel();,但它没有达到目的。我需要的只是限制拖动。

感谢任何形式的帮助。

【问题讨论】:

    标签: javascript gwt drag-and-drop drag smartgwt


    【解决方案1】:

    看看this 展示演示。从演示中提取的一些相关代码:

        DragPiece green = new DragPiece("pawn_green.png"){  
            @Override  
            protected boolean setDragTracker() {  
                String html = Canvas.imgHTML("pieces/24/pawn_green.png", 24, 24);  
                EventHandler.setDragTracker(html);  
                return false;  
            }  
        };  
        green.setID("greenPiece");  
        green.setTitle("Green Piece");  
        green.setLeft(150);  
        green.setTop(50);  
    
    
        final Label label = new Label("Drop Here");  
        label.setLeft(250);  
        label.setTop(50);  
        label.setShowEdges(true);  
        label.setAlign(Alignment.CENTER);  
        label.setCanAcceptDrop(true);  
        label.addDropOverHandler(new DropOverHandler() {  
            public void onDropOver(DropOverEvent event) {  
                label.setBackgroundColor("#FFFF88");              
            }  
        });  
    
        label.addDropOutHandler(new DropOutHandler() {  
            public void onDropOut(DropOutEvent event) {  
                label.setBackgroundColor("#ffffff");  
            }             
        });  
    
        label.addDropHandler(new DropHandler() {  
            public void onDrop(DropEvent event) {  
                Canvas target = EventHandler.getDragTarget();  
                SC.say("You dropped the " +  target.getID());                 
            }             
        });  
    

    关于这段代码的一些注释:

    1. 请注意如何使用标签来定义放置区域,但您可以使用其他 Canvas 对象来实现此目的。
    2. addDropOverHandler、addDropOutHandler 和addDropHandler 方法允许您将所需的处理程序添加到此Label 或Canvas 对象以产生所需的结果。
    3. DragPiece 只是具有setCanDragReposition(true) 和setCanDrop(true) 的Img 的子类,因此该元素是可拖动的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-09
      • 2011-03-22
      • 1970-01-01
      • 2018-04-17
      • 2020-01-13
      • 1970-01-01
      • 1970-01-01
      • 2012-08-15
      相关资源
      最近更新 更多