如何在 GWT 的 ROOTPanel 上检查当前添加的 class
How to check currently added class on ROOTPanel in GWT
我正在使用两个 uibinder class 并将其添加到 ROOTPanel。假设我有两个 class ABC 和 XYZ,如果我将它添加到 ROOTPanel 上,那么我想知道当前在 ROOTPanel 上添加了哪个 class。
这是代码
所以 ABC class 使用 id "panel"
添加到 ROOTPanel
if(i==1) {
ROOTPanel.get("panel").add(new ABC());
} else {
ROOTPanel.get("panel").add(new XYZ());
}
现在我想要 class 添加到 "panel" id
if(//some condition which return the true or false for ABC class is added or not) {
// to do something
}
你可以使用方法getWidgetIndex查看添加的Widget的索引,条件是index != -1 因为根据这个方法的文档:
Gets the index of the specified child widget.
Specified by: getWidgetIndex(...) in IndexedPanel
Parameters:child the
widget to be found
Returns:the widget's index, or -1 if it is not a
child of this panel
因此您的代码变为:
ABC abc = new ABC();
XYZ xyz = new XYZ();
if(i==1) {
ROOTPanel.get("panel").add(abc);
} else {
ROOTPanel.get("panel").add(xyz);
}
if(ROOTPanel.get("panel").getWidgetIndex(abc) != -1) {
// You know ABC was added
}
如果您不想在添加之前实例化 ABC 和 XYZ 对象,那么您必须保存添加的小部件的索引,然后使用方法 .getWidget(index) 并检查返回的 class 类型像这样的小部件:
Widget widget = ROOTPanel.get("panel").getWidget(index);
if(widget instanceof ABC){
// do something
}
我正在使用两个 uibinder class 并将其添加到 ROOTPanel。假设我有两个 class ABC 和 XYZ,如果我将它添加到 ROOTPanel 上,那么我想知道当前在 ROOTPanel 上添加了哪个 class。
这是代码
所以 ABC class 使用 id "panel"
添加到 ROOTPanelif(i==1) {
ROOTPanel.get("panel").add(new ABC());
} else {
ROOTPanel.get("panel").add(new XYZ());
}
现在我想要 class 添加到 "panel" id
if(//some condition which return the true or false for ABC class is added or not) {
// to do something
}
你可以使用方法getWidgetIndex查看添加的Widget的索引,条件是index != -1 因为根据这个方法的文档:
Gets the index of the specified child widget.
Specified by: getWidgetIndex(...) in IndexedPanel
Parameters:child the widget to be found
Returns:the widget's index, or -1 if it is not a child of this panel
因此您的代码变为:
ABC abc = new ABC();
XYZ xyz = new XYZ();
if(i==1) {
ROOTPanel.get("panel").add(abc);
} else {
ROOTPanel.get("panel").add(xyz);
}
if(ROOTPanel.get("panel").getWidgetIndex(abc) != -1) {
// You know ABC was added
}
如果您不想在添加之前实例化 ABC 和 XYZ 对象,那么您必须保存添加的小部件的索引,然后使用方法 .getWidget(index) 并检查返回的 class 类型像这样的小部件:
Widget widget = ROOTPanel.get("panel").getWidget(index);
if(widget instanceof ABC){
// do something
}