2011-12-18 2 views
1

페이지간에 공유되는 패널 객체 (탐색 바 종류로 작동)를 만들고 싶습니다. 버튼을 동적으로 추가하고자하므로 모든 페이지가 동일한 객체를 공유하는 것이 중요합니다.페이지간에 공유하는 Vaadin 패널

그러나 두 번째 페이지에 패널을 추가하면 처음 패널에서 사라집니다! 왜 그래야만하지?

그리고 어떤 조언을 드릴까요? :)

답변

3

Vaadin 구성 요소 계층 구조를 사용하면 한 번에 한 위치에 하나의 구성 요소가있을 수 있습니다. 즉, 동일한 Component 인스턴스를 동시에 두 장소에 추가 할 수 없습니다.

가장 좋은 해결책은 패널이 절대 교체되지 않도록 주변을 이동하는 것입니다. 그럴 수 없다면 각 페이지의 컨트롤을 다시 만들어야합니다.

당신의 컨트롤 상태 인 경우, 속성 필드 사이에 공유 될 수 있음을 기억하고 당신이

TextField tf1 = new TextField(); 
layout1.addComponent(tf1); 

TextField tf2 = new TextField(); 
tf2.setPropertyDataSource(tf1); 
layout2.addComponent(tf2); 

당신이 텍스트 필드가에 의해 백업이 방법은 같은 물건을 할 수 AbstractFields을 확장하는 모든 클래스는 속성이다 동일한 속성. 따라서 값이 변경되면 두 텍스트 필드가 같은 값을 갖게됩니다.

0

필자는 FlexTabSheetNavigationFeeder을 보았습니다. 제 이해를 돕기 위해 구성 요소의 각 버튼/탭에보기/내용을 연결하는 보편적 인 탐색 메뉴를 만드는 데 사용되는 구성 요소입니다.

저는 Vaadin 프레임 워크의 공용 라이브러리를 사용하고 SFlexTabSheet라는 구성 요소를 사용하여 원하는 것을 정확하게 수행합니다.