두 명의 발표자 인 DevicePresenter와 ContainerPresenter가 있습니다. 내가이 재정의 된 메서드가 내 ContainersPresenter에서올바른 방법으로 PlaceRequest를 사용하려고 시도했습니다.
PlaceRequest request = new PlaceRequest.Builder()
.nameToken("containersPage")
.with("action","editContainer")
.with("containerEditId", selectedContainerDto.getUuid().toString())
.build();
placeManager.revealPlace(request);
: 나는이 같은 일부 매개 변수 ContainerPresenter 호출 할 DevicePresenter에 PlaceRequest을 배치
@Override
public void prepareFromRequest(PlaceRequest placeRequest) {
Log.debug("prepareFromRequest in ContainersPresenter");
super.prepareFromRequest(placeRequest);
String actionString = placeRequest.getParameter("action", "");
String id;
//TODO: Should we change that to really retrieve the object from the server? Or should we introduce a model that keeps all values and inject that into all presenters?
if (actionString.equals("editContainer")) {
try {
id = placeRequest.getParameter("id", null);
for(ContainerDto cont : containerList) {
Log.debug("Compare " + id + " with " + cont.getUuid());
if(id.equals(cont.getUuid())) {
containerDialog.setCurrentContainerDTO(new ContainerDto());
addToPopupSlot(containerDialog);
break;
}
}
} catch (NumberFormatException e) {
Log.debug("id cannot be retrieved from URL");
}
}
}
을하지만 revealPlace가 호출 될 때의 URL 브라우저는 그대로 유지되며 대신 기본 발표자 (홈)가 표시됩니다.
PlaceRequest(nameToken=containersPage, params={action=editContainer, containerEditId=8fa5f730-fe0f-11e3-a3ac-0800200c9a66})
을 그리고 내 NameTokens는 다음과 같습니다 : 내가 요청을 인쇄 할 때 , 잘 될 것 같다
public class NameTokens {
public static final String homePage = "!homePage";
public static final String containersPage = "!containersPage";
public static final String devicesPage = "!devicesPage";
public static String getHomePage() {
return homePage;
}
public static String getDevicesPage() {
return devicesPage;
}
public static String getContainersPage() {
return containersPage;
}
}
내가 무엇을 그리워 했습니까? 감사!