GWT-DnD(拖放)布局问题

时间:2009-03-10 18:02:49

标签: java gwt drag-and-drop

以下是从这里使用拖放库的时候:

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

将绝对面板放在相对面板内时,它会出现 禁用拖动能力。一个简单的例子:

    private AbsolutePanel leftPanelTree = new AbsolutePanel();
    private HorizontalPanel drawingAppPanel = new HorizontalPanel();
    private VerticalPanel leftPanel = new VerticalPanel();
    private VerticalPanel rightPanel = new VerticalPanel();
    private Label rightSideFiller = new Label("Right Side");
    private Label leftSideFiller = new Label("Left Side");
    private Image newImage = new Image("images/link.gif");
    private PickupDragController newDragController = 
        new PickupDragController(leftPanelTree, true);

        public DrawingApplication() {
                initWidget(drawingAppPanel);

                newDragController.makeDraggable(newImage);
                leftPanelTree.setWidth("300px");
                leftPanelTree.setHeight("200px");
                leftPanelTree.addStyleName("panelBorderTest");
                leftPanelTree.add(newImage, 1, 1);

                drawingAppPanel.setWidth("100%");
                drawingAppPanel.setHeight("100%");
                drawingAppPanel.setBorderWidth(2);

                drawingAppPanel.add(leftPanel);
                drawingAppPanel.add(rightPanel);

                leftPanel.setBorderWidth(2);
                leftPanel.setHeight("100%");
                leftPanel.setWidth("100%");
                leftPanel.add(leftSideFiller);
                //leftPanel.add(leftPanelTree);

                rightPanel.add(rightSideFiller);
        }

但是,如果我将图像添加到RootPanel(并更改边界) 相应的面板)或直接将绝对面板添加到RootPanel 然后拖动功能工作。我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:2)

问题根本不在我的代码中,调用RootPanel.get()有一个记录的问题.clear();这导致该库基本上不起作用。这个问题可以解决这个问题:

http://code.google.com/p/gwt-dnd/issues/detail?id=55

但要找到它并不容易。希望如果有的话,这将在未来版本中打补丁。