2010-03-18 2 views
2

in Vogellas tutorials으로 표시된 Eclipse RCP 트레이 트item을 사용하고 있습니다.ProgressMonitorDialog에서 TrayIcon Tooltip 변경

이제는 도구 설명에 앱 이름을 표시 할뿐만 아니라 오랜 시간 작업을 수행하는 동안 비율을 표시해야합니다.

트레이 항목 속성이 ApplicationWorkbenchWindowAdvisor의 비공개이므로 getter 및 setter 메소드를 추가 한 것으로 알고 있습니다.

유일하게 누락 된 점은 내 ProgressMonitorDialog 인스턴스에서 trayitem 인스턴스에 액세스 할 수 있다는 것입니다.

이 퍼즐을 어떻게 푸는 지 말해 줄 수 있습니까? 어떤 창에서 SystemTray 주위에 TrayItem을 구축 할 수 있기 때문에
감사

답변

1

:

final Tray tray = window.getShell().getDisplay().getSystemTray(); 
TrayItem trayItem = new TrayItem(tray, SWT.NONE); 

, 당신은 ApplicationWorkbenchWindowAdvisor에서 TrayItem 인스턴스에 액세스해야합니까?

더 접근하기 쉬운 클래스에 넣을 수도 있고 필요할 때 언제든지 빌드 할 수도 있습니다. 긴 작업을하는 동안 비율을 보여주는


말하기, 방금 언급 한 최신 작업에 원 improvements in Eclipse3.6M6 아이콘 (하지 시스템 트레이,하지만 좋은 상태 표시기를 제공 할 수있는 지금에 관련). 예를 들어 Snippet 336을 참조하십시오.

  • TaskItem 오버레이 이미지

TaskItem#setOverlayImage(Image) 클라이언트가 작업 표시 줄에있는 응용 프로그램 버튼의 상단에 표시 될 이미지를 설정할 수 있습니다 새로운 API.

alt text http://download.eclipse.org/eclipse/downloads/drops/S-3.6M6-201003121448/images/overlayimage.png

TaskItem 오버레이 텍스트

TaskItem#setOverlayText(String) 클라이언트가 작업 표시 줄에있는 응용 프로그램 버튼의 상단에 표시되는 짧은 텍스트를 설정할 수 있습니다 새로운 API.

alt text http://download.eclipse.org/eclipse/downloads/drops/S-3.6M6-201003121448/images/overlaytext.png

  • TaskItem 진행

TaskItem#setProgress(int)TaskItem#setProgressState(int) 클라이언트가 작업 표시 줄에있는 응용 프로그램 버튼에서 진행 표시를 표시 할 수 있습니다 새로운 API를.

alt text http://download.eclipse.org/eclipse/downloads/drops/S-3.6M6-201003121448/images/progress.png

+0

감사합니다! 늘어나는만큼 ProgressMonitorDialog 클래스/스레드 내에서 표시 또는 창 액세스 .... 나는이 클래스와 메시지 상자를 열려고 시도 및이 때문에 실패했습니다. 아니면 내가 잘못하고있는거야? – Raven

+0

@Raven : 나는 이해하지 못한다 :'Dialog'는'Window'이다. getShell() 메소드가 사용 가능해야한다. – VonC

+0

발생 원인 : org.eclipse.swt.SWTException : 잘못된 스레드 액세스 셸/디스플레이에 액세스 한 후 오류 메시지가 표시됩니다. 이 자습서의 ProgressDialog를 사용하고 있습니다. http://www.vogella.de/articles/EclipseJobs/article.html – Raven