我的方法如下。
HorizontalSplitPanel
用下面定义的替换每个用法HorizontalSplitPanelWrapper
,然后修复导入 - 这将消除import HorizontalSplitPanel
并添加import HorizontalSplitPanelWrapper
. 完毕。
@SuppressWarnings("deprecation")
public class HorizontalSplitPanelWrapper implements IsWidget {
private Panel hsp = new com.google.gwt.user.client.ui.HorizontalSplitPanel();
public Widget asWidget() {
return hsp;
}
public com.google.gwt.user.client.Element getElement() {
return hsp.getElement();
}
public <H extends EventHandler> HandlerRegistration addHandler(final H handler, GwtEvent.Type<H> type) {
return hsp.addHandler(handler, type);
}
public boolean isResizing() {
return ((com.google.gwt.user.client.ui.HorizontalSplitPanel) hsp).isResizing();
}
public void setWidth(String width) {
hsp.setWidth(width);
}
public void setSplitPosition(String pos) {
((com.google.gwt.user.client.ui.HorizontalSplitPanel) hsp).setSplitPosition(pos);
}
public void add(IsWidget w) {
hsp.add(w);
}
}
补充说明。
我的解决方案使用IsWidget
来自 GWT 的接口的小技巧 - 这可以最大限度地减少代码影响,因为Widget
可以IsWidget
在大多数对 GTW API 的调用中替换为实现。
我的代码中使用的每个方法HorizontalSplitPanel
现在都由字段HorizontalSplitPanelWrapper
存储的内部 HorizontalSplitPanel 实现并委托给它。hsp
不能将 HorizontalSplitPanel 声明为 type/param/result 的字段和方法,因为无论@SuppressWarnings("deprecation")
. 因此,hsp
字段被声明为Panel
.
如果在其余代码中使用了更多 HorizontalSplitPanel 方法,则HorizontalSplitPanelWrapper
每个方法中都必须有一个虚拟委托方法。hsp
必须在每个此类方法中使用显式转换从字段中检索正确的 HorizontalSplitPanel 对象。
而已。由于 HorizontalSplitPanel,不再有弃用警告,仍然可以使用。