2016-06-21 7 views
0

here에 설명 된대로 사용자 지정 PropertySheet를 구현했습니다.RCP 3.x 편집 가능한 PropertySheet보기

그래서 나는 selectionprovider를 구현하고 내 사용자 정의 PropertySheet보기에서 속성을 표시하는 기본보기를 가지고 있습니다.

이제 속성보기에서 선택 항목의 일부 속성을 편집하고 속성보기에서 저장하지 않은 변경 사항이있는 경우 기본보기에서 선택 항목을 변경하지 못하게하고 싶습니다.

이 문제를 해결하는 가장 좋은 방법은 무엇입니까?

사용자 지정 속성보기에서 ISaveablePart를 구현하면 더티라고 표시 할 수 있습니다. 내 속성보기가 더러운 경우 선택을 변경하지 못하게하려면 어떻게해야합니까?

미리 감사드립니다.

답변

1

보기가 넌 모달 (예 : 비 차단) UI 구성 요소이므로보기 외부에서 선택 변경을 방지 할 실제 방법이 없습니다. 이러한 이유로 인해 속성보기의 예상되는 작동 방식은 최대한 빨리 저장하는 것입니다.

EMF 모델의 기본 TreeViewer 기반 구현은 CellEditor를 사용하여 값을 변경합니다. CellEditor의 값이 변경되면, 변경된 값은 사용자가 언급 한 데이터 손실 시나리오를 피하기 위해 자동으로 원래 모델에 다시 기록됩니다.

즉, 영구 변경 사항을 저장하기 위해 데이터 소스 (예 : 선택 항목을 제공하는 편집기)에 의존해야하며 해당 소스 (편집기)를 통해 변경 사항을 직렬화 할 수 있습니다.