문제

사용하기위한 예가 있습니까? IDecorationContext 라벨 장식을 위해?

그것의 외모로 IDecorationContext 클래스는 일종의 상황에 맞는 장식 지원을 제공하는 것처럼 보이지만, 내 삶의 경우이 기능을 사용하여 샘플 코드를 찾을 수 없습니다 ...

실제로 장식 컨텍스트 기능을 사용한 사람이 있습니까? 그렇다면 어떤 사용 사례를 해결 했습니까?


추신: 이미지 장식을 객체 레이블에 적용하고 객체가 표시되는 위치에 따라 기본 아이콘 크기가 다양합니다 (예 : 테이블 및 트리 항목의 기존의 "작은"아이콘 및 콘텐츠 헤더의 큰 아이콘).

원래 아이콘에 적용되는 장식은 그에 따라 적절한 크기의 장식을 선택해야합니다.

IDecorationContext 내가 필요로하는 것에 대해 법안에 맞는 것 같지만, 문서는 오픈 소스 라이브러리의 사소한 기능에서 기대할 수있는 것만 큼 희소하며 찾을 수있는 예는 없습니다.

GOGLING "idecorationContext" 흥미로운 것을 밝히지 않았기 때문에 나는 다음 사람이 질문을받는 사람이 그들의 대답을 더 빨리 얻을 수 있기를 희망하는 Stackoverflow 군중의 지혜로 돌아갑니다.)

도움이 되었습니까?

해결책

IdeCorationContext를 사용하지 않았지만 사용하는 것을 볼 수 있습니다. org.eclipse.jface.viewers.LabelDecorator.

또한 논의됩니다 이 스레드 (대답이 없더라도 적어도 출발점을 줄 수 있습니다)

현재의 접근 방식은 ilightweightlebeldecorator를 사용하여 org.eclipse.ui.decorators를 확장하여 각 아이콘에 오버레이 교체를 추가하는 것입니다.

public class ProjectLabelDecorator extends LabelProvider 
   implements ILightweightLabelDecorator {

   ...

   public void decorate(Object element, IDecoration decoration) {
      if (element instanceof IFolder) {
         IFolder folder = (IFolder) element;
     try {
            if (folder.getProject().hasNature("rttdt.nature")) {
                if (ProjectNature.isTestcase(folder)) {
                   IDecorationContext context = 
                      decoration.getDecorationContext();
                   if (context instanceof DecorationContext) {
                      ((DecorationContext) context).putProperty(
                         IDecoration.ENABLE_REPLACE, Boolean.TRUE);
                   }
                   decoration.addOverlay(fTestcaseOverlay,
                      IDecoration.REPLACE);
                }
         } catch (CoreException e) {
         }
      }
   }

   ...
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top