gpt4 book ai didi

java - 如何在 VerticalPanel 的 onPreviewDrop() 中获取 Widget 的索引?

转载 作者:行者123 更新时间:2023-11-29 18:14:36 25 4
gpt4 key购买 nike

我在这里使用示例:https://gwt-dnd.appspot.com/#InsertPanelExample只有一列。

该列是一个包含许多 Widget 的 VerticalPanel。

使用 VerticalPanelDropController 我可以注册:

  @Override
public void onDrop(DragContext context) {
super.onDrop(context);
final Widget widget = context.draggable;
final int newIndex = columnPanel.getWidgetIndex(widget);
}

@Override
public void onPreviewDrop(DragContext context) throws VetoDragException {
super.onPreviewDrop(context);
int newIndex = ???
}

在 onDrop() 中,我可以使用 columnPanel.getWidgetIndex(widget) 获取小部件在 columnPanel 中的新位置,但在 onPreviewDrop() 中我不能这样做,因为此时小部件不在 columnPanel 中。

如何在 onPreviewDrop() 中获取目标索引,其中放置的 Widget 应该被放到 columnPanel 中? 我想知道在插入 widget 之前应该将其插入到哪里。这样我就可以取消插入。

最佳答案

仅当拖动行时定位器小部件具有与占位符相同的结构时,以下内容才有效。

int newIndex = dropTarget.getWidgetIndex(newPositioner(context));

我使用以下代码获取正确的索引:

   @Override
public void onPreviewDrop(DragContext context)
throws VetoDragException {
super.onPreviewDrop(context);

int newIndex = -1;
String positionerClass = newPositioner(context).getElement()
.getClassName();
for (int i = 0; i < dropTarget.getWidgetCount(); i++) {
String widgetClass = dropTarget.getWidget(i).getElement()
.getClassName();
if (widgetClass.equals(positionerClass)) {
newIndex = i;
}
}
};

关于java - 如何在 VerticalPanel 的 onPreviewDrop() 中获取 Widget 的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24466932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com