Dostosowywanie środowiska roboczego

"Punktem wejścia" dla dostarczenia niestandardowego zachowania dla środowiska roboczego jest wyznaczenie klasy WorkbenchAdvisor w celu skonfigurowania środowiska roboczego. Moduł dodatkowy klienta pełnego powinien rozszerzać tę klasę abstrakcyjną, aby udostępniać dla środowiska roboczego konfigurację dla konkretnej aplikacji. Przykładowa przeglądarka robi to przy użyciu klasy BrowserAdvisor.

	...
	int code = PlatformUI.createAndRunWorkbench(display,
			new BrowserAdvisor());
	...

Klasa doradcy środowiska roboczego jest odpowiedzialna za przesłanianie metod w celu skonfigurowania środowiska z żądanym układem i składnikami, takimi jak pasek akcji czy strona wprowadzenia.

Cykl życia środowiska roboczego

Metody cyklu życia udostępniane przez doradcę środowiska roboczego umożliwiają aplikacji ustawienie haka w dowolnym momencie procesu tworzenia środowiska roboczego i wpływanie na jego zachowanie. Poniższa lista metod cyklu życia doradcy, które mogą zostać przesłonięte pochodzi z dokumentacji javadoc dla klasy WorkbenchAdvisor.

Aplikacja klienta pełnego ma dużą kontrolę nad sposobem konfigurowania i instalowania środowiska roboczego. W przykładowej przeglądarce podstawową funkcją klasy BrowserAdvisor jest konfigurowanie pasków akcji z odpowiednimi dla przeglądarki elementami menu. To zadanie wykonuje metoda fillActionBars:

	public void fillActionBars(IWorkbenchWindow window, IActionBarConfigurer configurer, int flags) {
		...
		BrowserActionBuilder builder = new BrowserActionBuilder(window);
		getWorkbenchConfigurer().getWindowConfigurer(window).setData(BUILDER_KEY, builder); 
		builder.fillActionBars(configurer, flags);
	}

W tej metodzie środowisko robocze zostało skonfigurowane ze specjalnym programem budującym akcje. Ten program budujący akcje jest używany do wypełniania pasków akcji środowiska roboczego. W sekcji Definiowanie akcji przyjrzymy się bardziej szczegółowo sposobom określania akcji. W tej chwili skoncentrujemy się na konfigurowaniu środowiska roboczego.

Należy zwrócić uwagę na zastosowanie metody getWorkbenchConfigurer() powyżej. W celu dostosowania okna interfejsy IWorkbenchConfigurer i IWorkbenchWindowConfigurer są używane w połączeniu z klasą WorkbenchAdvisor. Te klasy umożliwiają użytkownikowi zastąpienie wielu aspektów tworzenia środowiska roboczego na różnych poziomach. Interfejs IWorkbenchWindowConfigurer na przykład definiuje protokół, który zakłada konkretną konfigurację elementów sterujących w oknie środowiska roboczego, takich jak pasek akcji, wiersz statusu, pasek perspektywy, pasek coolbar itp. Jego protokół umożliwia dostosowywanie i zapełnianie tych elementów. Interfejs IWorkbenchConfigurer działa na wyższym poziomie, umożliwiając przechowywanie w środowisku roboczym danych dotyczących konkretnej aplikacji. Klasa WorkbenchAdvisor umożliwia dostęp do tych narzędzi konfiguracyjnych dzięki metodom cyklu życia opisanym powyżej. Metody niższego poziomu wewnątrz klasy WorkbenchAdvisor mogą zostać przesłonięte i całkowicie zmienić zachowanie domyślne. Doradca środowiska roboczego na przykład mógłby przesłonić metodę tworzącą w oknie element sterujący SWT w celu udostępnienia całkowicie innej implementacji okna głównego.

Inaczej mówiąc, istnieje wiele sposobów dostosowywania środowiska roboczego i kilka różnych poziomów, na których można zastosować te techniki. Dokumentacja javadoc dla klasy WorkbenchAdvisor oraz interfejsów IWorkbenchConfigurer i IWorkbenchWindowConfigurer zawiera kompletny opis dostępnego protokołu. Komentarze dotyczące alternatywnych implementacji zawiera sekcja opisująca pełną implementację klasy BrowserAdvisor.