을 지원하지 않는 것입니다 MenuItemSeparator
을 넣으려고하면 GWT가 위젯을 만들려고 시도 할 때 자식이 될 수 있다는 메시지가 MenuItem
일 뿐이라고 불평 할 것입니다. 현재 지원되지 않으므로 향후 GWT 팀의 개선 사항으로 요청하시기 바랍니다.
한편
, 당신은 프로그래밍 방식으로 구분을 추가하고 다음과 같은 방식으로 명령을 추가 할 수 있습니다 XML 파일 :
<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>
자바 파일 (들) :
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());
}
}
을
내 코드의 다른 곳에서 변경 사항을 잡으려고 HistoryListener
을 구현했습니다. 즉
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
...
}
이클립스 플러그인이를 인식하기 때문에 궁금합니다. –
Marc