drop完成后智能gwt事件通知

时间:2012-08-03 06:53:58

标签: smartgwt

我有一个带有一些IButton的HStack。我可以使用darg&移动HStack中的按钮。下降。现在想要在IButton最终集成到HStack之后发布通知。我想确定HStack中拖动按钮的位置。 我发现的只是一个DropHander(用于Hstack)和DragRepositionStopHandler(用于按钮)。两者都会在释放鼠标按钮后触发事件。在他的时刻,按钮不在HStack中。 我的问题是:在将项目添加到布局小部件后,是否会有一个EventHander会触发事件?

提前致谢。

Medrod

1 个答案:

答案 0 :(得分:0)

DropEvent被触发后,你的Button就位,即将成为HStack的成员。什么都不能阻止这一点。因此,当您收到此事件时,您在HStack所要做的就是检索事件的来源并调用其getAbsoluteLeft和getAbsoluteTop方法。这将为您提供浏览器中Button的位置。如果要在HSTack中接收位置,请分别将它们添加到HStack的Left和Top坐标。可以使用以下内容:

HStack hStack = new HStack();
hStack.addDropHandler(new DropHandler() {

        @Override
        public void onDrop(DropEvent event) {
            Object source = event.getSource();
            if (source instanceof BaseWidget) { //This shall cover all Buttons and UI elements.
                int buttonLeftPosition = ((BaseWidget) source).getAbsoluteLeft();
                int buttonTopPosition = ((BaseWidget) source).getAbsoluteTop();
            }
        }
    });