Обычно виджеты добавляются в div, а не наоборот. Таким образом, вы можете создать виджет, который обернет «браузер», используя HTMLPanel, а затем добавить его в MyDockLayoutPanel, вот пример:
Browser.ui.xml
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui">
<ui:style>
<g:HTMLPanel>
</g:HTMLPanel>
Browser.java
public class BrowserPanel extends Composite {
private static BrowserPanelUiBinder uiBinder =
GWT.create(BrowserPanelUiBinder.class);
interface BrowserPanelUiBinder extends UiBinder<Widget, BrowserPanelPanel> {}
public BrowserPanel() {
initWidget(uiBinder.createAndBindUi(this));
}
}
Точка входа
public class HelloUiBinder implements EntryPoint {
public void onModuleLoad() {
MyDockLayoutPanel mydocklayoutpanel = new MyDockLayoutPanel ("able","baker","charlie");
mydocklayoutpanel.addWidget(new BrowserPanel());
RootPanel.get().add(mydocklayoutpanel);
}
}
В MyDockLayoutPanel.ui.xml измените FlowPanel
<g:center>
<g:FlowPanel styleName="{style.centerPanel}" ui:field="browser">
</g:FlowPanel>
</g:center>
в MyDockLayoutPanel.java add:
@UiField FlowPanel browser;
...
public void addWidget(Widget widget){
browser.add(widget);
}