如何创建一个包含主要内容并提供默认设计的小部件?
How can I create a widget that wraps the main content and delivers a default design?
我想创建一个包装器小部件,为不同的页面提供某种 "default" 布局。我希望能够做这样的事情:
<!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"
xmlns:m="urn:import:gwt.material.design.client.ui"
xmlns:m.addins="urn:import:gwt.material.design.addins.client.ui"
xmlns:mz="urn:import:com.mz.client.admin.widget"
>
<ui:style>
</ui:style>
<mz:defaultpagelayout.DefaultPageLayout>
<m:MaterialTitle title="Basic Information"/>
<m:MaterialTextBox text="Forename"/>
<m:MaterialTextBox text="Surname"/>
</mz:defaultpagelayout.DefaultPageLayout>
</ui:UiBinder>
其中 DefaultPageLayout
只是一个为实际内容提供特定外观的容器。我试过这样做:
DefaultPageLayout.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"
xmlns:m="urn:import:gwt.material.design.client.ui"
xmlns:m.addins="urn:import:gwt.material.design.addins.client.ui">
<ui:style>
.main-content {
padding: 20px;
}
</ui:style>
<g:HTMLPanel addStyleNames="{style.main-content}">
</g:HTMLPanel>
</ui:UiBinder>
DefaultPageLayout.java:
public class DefaultPageLayout extends Composite {
private static DefaultPageLayoutUiBinder uiBinder = GWT.create(DefaultPageLayoutUiBinder.class);
interface DefaultPageLayoutUiBinder extends UiBinder<Widget, DefaultPageLayout> {
}
public DefaultPageLayout() {
this.initWidget(uiBinder.createAndBindUi(this));
}
}
但这实际上不起作用:
[ERROR] Found unexpected child element: <m:MaterialTitle title='Basic Information'> (:13)
我需要做什么才能让这样的小部件在这里为我工作?
您的 DefaultPageLayout
需要实施 HasWidget
(最好是 HasWidgets.ForIsWidget
)
我想创建一个包装器小部件,为不同的页面提供某种 "default" 布局。我希望能够做这样的事情:
<!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"
xmlns:m="urn:import:gwt.material.design.client.ui"
xmlns:m.addins="urn:import:gwt.material.design.addins.client.ui"
xmlns:mz="urn:import:com.mz.client.admin.widget"
>
<ui:style>
</ui:style>
<mz:defaultpagelayout.DefaultPageLayout>
<m:MaterialTitle title="Basic Information"/>
<m:MaterialTextBox text="Forename"/>
<m:MaterialTextBox text="Surname"/>
</mz:defaultpagelayout.DefaultPageLayout>
</ui:UiBinder>
其中 DefaultPageLayout
只是一个为实际内容提供特定外观的容器。我试过这样做:
DefaultPageLayout.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"
xmlns:m="urn:import:gwt.material.design.client.ui"
xmlns:m.addins="urn:import:gwt.material.design.addins.client.ui">
<ui:style>
.main-content {
padding: 20px;
}
</ui:style>
<g:HTMLPanel addStyleNames="{style.main-content}">
</g:HTMLPanel>
</ui:UiBinder>
DefaultPageLayout.java:
public class DefaultPageLayout extends Composite {
private static DefaultPageLayoutUiBinder uiBinder = GWT.create(DefaultPageLayoutUiBinder.class);
interface DefaultPageLayoutUiBinder extends UiBinder<Widget, DefaultPageLayout> {
}
public DefaultPageLayout() {
this.initWidget(uiBinder.createAndBindUi(this));
}
}
但这实际上不起作用:
[ERROR] Found unexpected child element: <m:MaterialTitle title='Basic Information'> (:13)
我需要做什么才能让这样的小部件在这里为我工作?
您的 DefaultPageLayout
需要实施 HasWidget
(最好是 HasWidgets.ForIsWidget
)