2012-02-24 7 views
1

Vaadin 프레임 워크를 사용하여 응용 프로그램을 개발하고 있습니다. 사용자가 메뉴 항목을 클릭 할 때 응용 프로그램은 응용 프로그램이 기본 브라우저 창 내용이 필요한 창 교체 후Vaadin 여러 브라우저 창/탭

public class RunReportCommand extends AbstractMenuAction { 
@Override 
public void execute() throws MenuException { 
    Window = .... // create window here 
    openWindow(window); 
} 
protected void openWindow(Window window) { 
    application.getMainWindow().open(new ExternalResource(window.getURL())); 
    application.setMainWindow(window); 
} 

}

같은 AbstractMenuCommand 클래스의 자손을 실행, 메인 메뉴가 있습니다. 많은 시간을 보내고 난 후에 나는이 솔루션에 온 : 사용자가 기능이 있어야합니다 : 당신이 만약 angel 윈도우와 브라우저 창 컨텐츠를 교체하려는 경우 항상

application.getMainWindow().open(new ExternalResource(window.getURL())); 
    application.setMainWindow(window); 

최근에 내가 응용 프로그램에 기능을 추가하는 새 작업을 가지고해야 diffirent 탭에서 창을 열어서 문제는 vaadin (그리고 window.open은 기본 창에서만 작동합니다)에 하나의 기본 창을 가지고 있지만 사용자가 diffirent 브라우저 탭에서 많은 수의 창을 가질 수 있으므로 사용자가 기본 창을 포함하지 않는 브라우저 탭의 메뉴 항목을 사용하여 창의 창의 내용을 다시로드해도 작동하지 않습니다.

답변

3

2011 년에, 나는 Vaadin 개발 팀원들과 동일한 Vaadin 6 앱을위한 여러 웹 브라우저 창 또는 탭에 관해 이야기했습니다. 그들은 강력하게 권장합니다. 그들은 가능한 한 많은 노력과 노력이 필요하며 오류가 발생하기 쉽다고 말했다.

대신 그들은 단일 브라우저 창/탭 내에서 Vaadin TabSheet을 사용하도록 제안했습니다.

TabSheet는 매우 동적이어서 필요에 따라 탭을 추가하거나 삭제할 수 있습니다. 성능은 놀라 울 정도로 빠릅니다. 가장 앞에있는 탭의 내용 만 실제로 사용자의 브라우저 창에 있다는 것을 기억하십시오. 다른 탭의 내용은 서버의 메모리에 있지만 웹 브라우저/클라이언트의 부담이 아닙니다. 탭은 줄 바꿈 될 수 없으므로 폭이 넓어지는 경향이 있지만 TabSheet는 너무 많은 탭을 통해 스크롤하여 자동으로 표시합니다.

Vaadin 7 초기 개발이 진행 중입니다. 7시에 창 관리 문제를 살펴 보겠다고 약속했지만 현재의 작업에 대해서는 알지 못합니다.

1

Vaadin7의 릴리스까지, 당신은 Navigator7 멀티 브라우저 탭 navigaton 수 있습니다 (found here)

부가 Navigator7 볼 수 있습니다. (브라우저 탭에서 클릭하면이 브라우저 탭에만 영향을 미칩니다.)

우리 응용 프로그램에서 사용하고 잘 작동합니다.

감사합니다.