2014-01-12 7 views
0

제 3 자 속성 클래스가 있습니다.이 클래스는 내용이 임의로 구현되어 있습니다. 일부 속성은 빈과 같이 구현되고 다른 속성은 키 값 쌍으로 구현됩니다.Eclipse RCP에서 속성 시트 편집기를 구현하는 가장 간단한 방법은 무엇입니까?

나는이

enter image description here

그렇게하는 가장 간단한 방법은 무엇입니까 같은 속성 편집기를 구현해야?

필자는 모델 클래스가 어떤 요구 사항도 빠짐을 강조합니다.

UPDATE 내 말은

아무것도는 TableViewer보다 더 강력한 무엇입니까? Properties을 지원하는 일부 클래스 또는 편집기 유형 등을 표시하는 데 도움이되는 주석 라이브러리가있을 수 있습니다.

답변

0

리플렉션을 사용해야합니다. getter/setter처럼 보이는 클래스의 모든 메서드를 가져오고, 알려진 형식 (, Color 등)에 대한 표준 편집기를 사용하고 다른 유형에 대해 반복합니다. 내가 제대로 질문을 이해하면

1

:

  • 을 당신은 타사 클래스의 수 있습니다. 이 클래스들 각각은 빈과 비슷하지만 완전한 자바 빈이 아닙니다.
  • GUI에서 해당 클래스의 속성을 편집하려고합니다. 가능한 한 적은 노력으로하는 것이 바람직합니다.

    • 타사 클래스는 IPropertySource를 구현해야합니다 :

    (코딩의 관점에서) 가장 쉬운 방법은 다음입니다. 타사 클래스를 수정하지 않고이 작업을 수행하려면 http://www.eclipse.org/articles/article.php?file=Article-Adapters/index.html을 참조하십시오.

  • 이러한 속성을 표시하려면 기존 Properties보기를 사용하십시오.
  • 타사 개체를 속성보기에 표시하려면 글로벌 SelectionProvider 프레임 워크를 사용하십시오. http://www.eclipse.org/articles/Article-WorkbenchSelections/article.html

그러나 다음 두 가지 잠재적 인 버그와 그 버그를 수정하는 방법을 생각해보십시오.

  • 일부 다른 동작 (속성보기 외부)은 타사 클래스의 값을 변경합니다. 알림 프레임 워크가 없으므로 GUI에는 여전히 이전 값이 표시됩니다.
  • UNDO/REDO를 (를) 지원해야합니까?

타사 클래스를 사용할 때 위의 두 가지 문제를 모두 해결하기가 어렵습니다. 따라서 EMF를 배우고 기본 데이터 소스로 EMF 모델을 사용하는 것이 중요합니다. 해당 중앙 데이터 원본 만 수정하고 특정 순간 (예 : 모델 트랜잭션 이후)에 타사 개체 구조와 동기화하십시오.