Google Gears를 사용하는 Google Web Toolkit (GWT) 애플리케이션을 만들려고 시도하지만 패널을 제거하려고 할 때마다 예외 및 패널이 표시됩니다 거기 머물러있다. 여기 버튼을 클릭 한 후 GWT에서 생성 된 패널 제거
내가 얻을 예외에서 발췌 한 것입니다 (난 단지 호출 스택의 관련 비트를 포함 시켰습니다, 나머지는 아래 사항을 포함 된 함수로 내려) :java.lang.AssertionError: A widget that has an existing parent widget may not be added to the detach list
at com.google.gwt.user.client.ui.RootPanel.detachOnWindowClose(RootPanel.java:122)
at com.google.gwt.user.client.ui.RootPanel.get(RootPanel.java:197)
잘 모르겠어요 문제는 무엇입니까,하지만 저는 Gears 사용을 승인 한 후에 버튼을 그대로 두는 것을 좋아하지 않습니다.
내가 뭘 잘못하고 있니? 또는 다른 방법으로 제안하면 작동하도록 만들 수 있습니까? 내가 찾은
if(!gearsFactory.hasPermission()) {
HorizontalPanel rightPanel = new HorizontalPanel();
rightPanel.getElement().setId("gearsPrompt");
rightPanel.setVerticalAlignment(HorizontalPanel.ALIGN_MIDDLE);
rightPanel.setSpacing(0);
rightPanel.setHeight("28px");
InlineLabel enableGearsText = new InlineLabel("Enable Gears for off-line access");
enableGearsText.getElement().setId("gearsText");
enableGearsText.addStyleName("titleElement");
rightPanel.add(enableGearsText);
final Button gearsButton = new Button("Use Gears");
gearsButton.getElement().setId("gearsButton");
gearsButton.addStyleName("titleElement");
gearsButton.setHeight("24px");
gearsButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
Factory gearsFactory = Factory.getInstance();
if(gearsFactory != null) {
if(gearsFactory.getPermission()) {
RootPanel gearsPrompt = RootPanel.get("gearsPrompt");
gearsPrompt.removeFromParent();
}
}
}
});
rightPanel.add(gearsButton);
RootPanel titleBarRight = RootPanel.get("titleBarRight");
titleBarRight.add(rightPanel);
}
...에 대해이 작동하지 않습니다. removeFromParent() 호출은 익명의 ClickHandler 객체 내부에 있으므로 rightPanel과 동일한 범위에 있지 않습니다. 아이디어를 제공해 주셔서 감사합니다. – Miquella