nicht unterstützt Ich bin damit einverstanden, wenn Sie versuchen Sie eine MenuItemSeparator
in, wird es beschweren, nur eine MenuItem
kann ein Kind sein, wenn GWT versucht, das Widget zu erstellen. Da dies derzeit nicht unterstützt wird, schlage ich vor, dass Sie dies als zukünftige Erweiterung des GWT-Teams anfordern.
In der Zwischenzeit können Sie ein Trenn programmatisch hinzufügen und einen Befehl in der folgenden Art und Weise hinzufügen: Die XML-Datei:
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" xmlns:g="urn:import:com.google.gwt.user.client.ui">
<g:HTMLPanel>
<g:MenuBar ui:field="menuBar">
<g:MenuItem ui:field="helpMenuItem">Help</g:MenuItem>
<g:MenuItem ui:field="aboutMenuItem">About</g:MenuItem>
<g:MenuItem ui:field="siteMapMenuItem">Site Map</g:MenuItem>
</g:MenuBar>
</g:HTMLPanel>
Die Java-Datei (en):
public class Menu extends Composite {
...
@UiField MenuBar menuBar;
@UiField MenuItem helpMenuItem;
...
public Menu() {
initWidget(uiBinder.createAndBindUi(this));
// insert a separator
menuBar.insertSeparator(1);
// attach commands to a menu item
helpMenuItem.setCommand(new MenuCommand(HistoryToken.Help));
...
}
public class MenuCommand implements Command {
final HistoryToken historyToken;
public MenuCommand(HistoryToken historyToken) {
this.historyToken = historyToken;
}
@Override
public void execute() {
historyToken.fire();
}
}
public enum HistoryToken {
Help,About,SiteMap;
public void fire(){
History.newItem(this.toString());
}
}
Anderswo in meinem Code, implementierte ich eine HistoryListener
um alle Änderungen abzufangen, dh
class HistoryManager implements ValueChangeHandler<String> {
// 1. get token
// 2. change it into a HistoryToken
// 3. perform switch statement
// 4. change contents based upon HistoryToken found
...
}
Ich frage mich, weil das Eclipse-Plugin zu erkennen scheint ... –
Marc