Poniżej przedstawiono opisy niektórych interesujących zmian dotyczących pracy programistów wtyczek, które zostały wprowadzone do Platformy Eclipse oraz środowiska SWT w wersji 3.2.
Wprowadzono też wiele nowych opcji dla użytkowników końcowych platformy, z którymi można zapoznać się w sekcji Co nowego Podręcznika użytkownika środowiska roboczego.
Zmiany dotyczące platformy
|
|
Refaktoryzacja środowiska wykonawczego |
Wtyczka org.eclipse.core.runtime została rozdzielona na kilka mniejszych, aby środowisko wykonawcze Eclipse stało się bardziej elastyczne i aby można było niezależnie stosować komponenty wykonawcze:
Dodano nowe interfejsy API, które ułatwiają sterowanie rozdzielonymi fragmentami środowiska wykonawczego. Refaktoryzacja środowiska wykonawczego powinna być przezroczysta dla innych wtyczek. Szczegółowe informacje na ten temat zawiera Podręcznik migracji do platformy Eclipse 3.2. |
Wspólny nawigator |
Nowa wtyczka, org.eclipse.ui.navigator, wprowadza środowisko do budowy przeglądarek łączących treść z wielu modeli domen.
Środowisko umożliwia deklaratywne udostępnianie treści, etykiet, akcji, filtrów i innych możliwości. Wtyczka
org.eclipse.ui.navigator.resources udostępnia konkretny mechanizm użycia tego środowiska w formie widoku Eksploratora projektów, a także rozszerzeń deklaratywnych przeglądarek dla modelu IResource.
|
Środowisko właściwości z kartami |
Dodano środowisko właściwości z kartami. Środowisko właściwości z kartami jest następcą strony arkuszy właściwości i umożliwia wyświetlanie właściwości w widoku Właściwości przy użyciu dowolnych elementów sterujących, a także dzielenie na karty i sekcje wnoszone za pomocą rejestru rozszerzeń.
Szczegółowe informacje na ten temat zawiera artykuł Widok właściwości z kartami w środowisku Eclipse. |
Interfejs API systemu plików |
Nowa wtyczka, org.eclipse.core.filesystem, wprowadza nowy, ogólny interfejs API do interakcji z systemami plików. Platforma została zmodyfikowana, aby używać tego interfejsu API systemu plików zamiast interfejsów AIP java.io. Oznacza to, że zasoby mogą być tworzone w dowolnych zapasowych systemach plików, zaś wtyczki mogą obsługiwać nowe rodzaje systemów plików. Do kreatorów projektów i dowiązanych zasobów dodano obsługę tworzenia zasobów dowiązanych do innych systemów plików. Wtyczki, które definiują alternatywne systemy plików, mogą podłączyć się do obsługi tych kreatorów przy użyciu punktu rozszerzenia org.eclipse.ui.ide.filesystemSupport. |
Rozszerzenie importowania i eksportowania o kategoryzację |
Punkty rozszerzeń |
Podpowiedzi do adnotacji w edytorach tekstu |
Podpowiedzi do adnotacji zostały przeniesione z poziomu tekstu JDT na poziom tekstu platformy. Obsługa podpowiedzi tekstowych, pionowych i linijki przeglądu jest instalowana przez klasę TextSourceViewerConfiguration używaną przez edytory tekstu:
|
Nawigacja adnotacji w edytorach tekstu |
Nawigacja adnotacji została przeniesiona z poziomu tekstu JDT na poziom tekstu platformy i jest obecnie dostępna we wszystkich edytorach tekstu:
|
Asystent pól JFace |
JFace wprowadza nowe możliwości asystowania użytkownikowi przy wypełnianiu pól w oknach dialogowych i formularzach. Pakiet org.eclipse.jface.fieldassist udostępnia klasy, które umożliwiają dekorowanie dowolnych elementów sterujących za pomocą obrazków oraz odpowiadającego im tekstu w dymku. Można ich użyć np. do znakowania wymaganych pól w oknie dialogowym, do wyświetlania warunków błędu w oparciu o pola, lub też do wyświetlania zachęt asystenta treści. Pakiet umożliwia też instalowanie propozycji treści w elementach sterujących, w tym wywoływanych okien dialogowych z propozycjami treści, dodatkowych elementów wywoływanych z bardziej szczegółowymi informacjami, a także oferuje opcje wywoływania propozycji jawnie lub w stylu automatycznym (po wpisaniu znaków).
|
Udoskonalenia przeglądarki drzew w JFace |
Klasa AbstractTreeViewer obsługuje teraz kilka równorzędnych elementów w drzewie, z których każdy może mieć inny łańcuch elementów nadrzędnych. Obsługa wymaga, aby w klientach aktywna była mapa elementów, do czego niezbędne jest wywołanie metody setUseHashLookup(true). Klasa TreeViewer obsługuje teraz drzewa SWT.VIRTUAL. Istnieje odpowiedni 'leniwy' dostawca treści, ILazyTreeContentProvider, który zwraca treść tylko kiedy jest ona potrzebna. |
Obsługa treści pomocy dynamicznej |
System pomocy obsługuje obecnie dynamiczne tworzenie treści pomocy. Tematy przygotowane w języku XHTML mogą zawierać dodatkowe znaczniki specyficzne dla Eclipse, które umożliwiają filtrowanie treści podczas pracy, w zależności od wartości atrybutów os/ws/arch, obecności wtyczek, aktywnych możliwości itp. Treści współużytkowane mogą być włączone do wielu dokumentów. Wtyczki mogą wnosić fragmenty XHTML, które dołączają się do zakotwiczeń w innych dokumentach. Pozwala to obecnie twórcom informacji udostępniać dynamiczne dokumenty, które dopasowują się do kontekstu podczas wyświetlania. |
Udoskonalenia wyszukiwania w systemie pomocy |
Asysta dla użytkownika przy indeksowaniu i wyszukiwaniu została na kilka sposobów rozszerzona. Można zarejestrować dodatkowych uczestników wyszukiwania za pomocą punktu rozszerzenia, który może dodawać treść do indeksu Lucene. Pomoc wnosi obecnie uczestnika wyszukiwania XHTML, który może indeksować dynamiczne dokumenty pomocy utworzone w języku XHTML (patrz wyżej). Ponadto dokumenty, których wcześniej nie było w indeksie, będą obecnie widoczne (na przykład ściągawki i strony powitania). Wyszukane elementy mogą mieć teraz inne ikony, a akcja 'otwórz' może być delegowana do mechanizmu wyszukiwania. |
Problemy można grupować |
Problemy w widoku Problemy można teraz grupować. Domyślne grupowanie odbywa się wegług istotności oraz typu problemu, a dodatkowe grupy można zdefiniować za pośrednictwem punktu rozszerzenia org.eclipse.ui.ide.markerSupport. |
Ulepszona pomoc w oknach dialogowych |
Większość okien dialogowych w środowisku Eclipse ma teraz standardowy przycisk pomocy w dolnym lewym rogu. Przywołuje on pomoc kontekstową, podobnie jak naciśnięcie klawisza F1 (w systemie Windows). Ponadto treść pomocy jest teraz wyświetlana na pasku zadań okna dialogowego zamiast w oddzielnym oknie. Niestandardowe okna dialogowe mogą dziedziczyć tę funkcjonalność przez tworzenie klas pochodnych nowej klasy TrayDialog zamiast dotychczasowej Dialog. Ściągawki mogą być automatycznie przenoszone do okien dialogowych (na pasku zadań), co dotyczy tych czynności, które obejmują otwieranie okien dialogowych. |
Wbudowane odsyłacze do komend w treści asysty użytkownika |
Odsyłacze w systemie pomocy, ściągawkach i treści wprowadzenia mogą teraz uruchamiać komendy po aktywacji przez użytkownika. Odsyłacze do komend mogą być wykorzystywane do otwierania stron preferencji, uruchamiania kreatorów, wyświetlania widoków, otwierania perspektyw i do wielu innych celów. Środowisko komend jest rozszerzalne, tak więc można korzystać z odsyłaczy do komend na wiele innych sposobów. Podręcznik użytkownika środowiska roboczego został w wielu miejscach rozszerzony o odsyłacze do komend. Na poniższym obrazku przedstawiono dwa odsyłacze do komend w temacie pomocy:
|
Obsługa uruchamiania komend ze ściągawek |
Komendy można teraz uruchamiać ze ściągawek.
Poniższy plik treści zawiera komendy otwierające widok Wyszukiwanie oraz Eksploratora pakietów.
<?xml version="1.0" encoding="UTF-8"?> <cheatsheet title="Przykład komend w ściągawce"> <intro> <description>Ściągawka pokazuje Eksploratora pakietów</description> </intro> <item title="Pokaż widok Wyszukiwanie"> <description>Ten krok zawiera komendę, która pokazuje widok Wyszukiwanie.</description> <command serialization= "org.eclipse.search.ui.views.SearchView"/> </item> <item title="Krok 2"> <description>Ten krok z komendą i parametrami pokazuje Eksploratora pakietów.</description> <command serialization="org.eclipse.ui.views.showView( org.eclipse.ui.views.showView.viewId= org.eclipse.jdt.ui.PackageExplorer)"/> <onCompletion> Przykład komendy został zakończony. </onCompletion> </item> </cheatsheet> |
Komunikat o zakończeniu |
Do kroku ściągawki można dodać komunikat o zakończeniu, który zostanie wyświetlony po zakończeniu wykonywania tego kroku.
|
Ściągawki złożone |
Ściągawki złożone są nowym elementem Eclipse w wersji 3.2.
Ściągawka złożona prowadzi użytkownika przez czynności niezbędne do rozwiązania skomplikowanego problemu, dzieląc ten problem na mniejsze czynności, związane z oddzielnymi ściągawkami. Czynności można pogrupować. Ściągawki złożone są otwierane w widoku ściągawek i uruchamiane przy użyciu okna dialogowego wyboru ściągawki. Każda czynność jest opisana, a odsyłacze hipertekstowe prowadzą użytkownika przez kolejne czynności.
Ściągawki złożone są wyposażone w drzewo, które przedstawia czynności oraz ich status. W panelu w prawym dolnym rogu wyświetlone są poszczególne czynności. Treść ściągawki złożonej definiuje się w pliku XML. Plik treści może określać, jakie zależności występują między czynnościami, tak aby jedna czynność mogła być rozpoczęta dopiero po zakończeniu innych czynności będących wymaganiami wstępnymi. |
Indeks słów kluczowych pomocy |
System pomocy został wyposażony w indeks słów kluczowych, w którym można rejestrować słowa kluczowe z dokumentacji, a także udostępniać odsyłacz do odpowiedniego dokumentu pomocy. Indeks jest dostępny zarówno w widoku Pomoc, jak i w oknie pomocy (widok został przedstawiony poniżej).
Uwaga: treść indeksu nie jest jeszcze dostępna dla pakietu SDK (indeks będzie wyświetlany tylko wówczas, gdy dostępna jest treść). |
Narzędzie do konwersji dokumentów pomocy na XHTML |
Środowisko PDE zostało wyposażone w nowe narzędzie umożliwiające szybkie konwertowanie dokumentów pomocy HTML wtyczki na format XHTML. Oprócz konwertowania HTML na poprawny kod XHMTL, narzędzie to aktualizuje rozszerzenie nazwy pliku, spis treści oraz niezbędne powiązania tak, aby było możliwe stosowanie treści dynamicznych i wyszukiwanie w treści XHTML. Po konwersji użytkownicy mogą korzystać z nowych składników systemu pomocy w wersji 3.2 Eclipse, takich jak dynamiczne filtrowanie treści, ponowne wykorzystanie treści oraz dynamiczne wnoszenie treści. Wszystkie one wymagają, aby treść była w formacie XHTML.
Tę funkcję można wywołać z menu kontekstowego projektów wtyczek: Narzędzia PDE > Dokonaj konwersji plików pomocy na format XHTML. |
Uniwersalne powitanie |
W oparciu o doświadczenia z konkretnymi implementacjami powitania, do platformy Eclipse wprowadzone zostało uniwersalne powitanie, które można samodzielnie skonfigurować i wykorzystać w dowolnym produkcie. Produkty mogą wybrać jedną z 7 predefiniowanych sekcji głównych: Przegląd, Pierwsze kroki, Kursy, Przykłady, Co nowego, Zasoby WWW oraz Migracja (pakiet SDK Eclipse wykorzystuje cztery z nich). Uniwersalne powitanie oferuje układy stron, które można samodzielnie skonfigurować, a także poziomy ważności każdego elementu wnoszonego. Obsługuje też w pełni kompozycje.
Oferuje też prezentacje HTML i SWT, obsługując w pełnym zakresie całą platformę.
Strona preferencji powitania udostępniana przez uniwersalne powitanie umożliwia dostosowanie powitania do potrzeb użytkownika końcowego i można ją zastosować w dowolnym produkcie, który jej potrzebuje. Więcej informacji na ten temat zawiera specyfikacja uniwersalnego powitania. |
Obsługa konfiguracji i kompozycji w powitaniu |
Środowisko wprowadzenia oferuje więcej opcji konfiguracji. Możliwe jest wnoszenie konfiguratora wprowadzenia, który oferuje jednorazowe przetwarzanie elementów potomnych grupy, obsługę podstawiania zmiennych, a także opóźnione rozwiązywanie ścieżek zakotwiczenia. Ten rodzaj obsługi jest intensywnie wykorzystywany przez uniwersalne powitanie, ale można go użyć także w innych implementacjach powitania.
Kompozycje reprezentują nazwane kolekcje plików CSS, właściwości oraz obrazów, które wspólnie definiują wygląd treści powitania. Uniwersalne powitanie korzysta z tej obsługi, udostępniając możliwość wyboru kompozycji oraz dwie konkretne propozycje (w wersji 3.2 Eclipse): 'Kółka' i 'Fioletowa siatka'. |
Obsługa przestrzeni nazw dla punktów rozszerzeń narzędzia Ant |
Punkty rozszerzeń org.eclipse.ant.core, antTasks i antTypes umożliwiają określenie odsyłacza URI, w którym powinna funkcjonować definicja. Szczegółowe informacje na temat wszystkich zmian zawiera opis błędu 133190. |
Obsługa integracji modeli logicznych w ramach zespołu |
Dodano interfejs API, który umożliwia wykorzystywanie modeli logicznych w operacjach zespołowych. Dzięki temu interfejsowi dostawcy zespołu mogą:
|
Zmiany przeglądarki SWT
|
|
Indykator sortowania w tabelach i drzewach |
Tabele i drzewa obsługują indykator kolejności sortowania, widoczny w nagłówku kolumny. Fragmenty kodu SWT pokazujące sortowanie według kolumny (uproszczone) oraz sortowanie według kolumny (tabelę wirtualną). |
Zmiana kolejności kolumn w drzewach |
W wersji 3.1 platformy Eclipse dodano możliwość zmiany kolejności kolumn w tabelach. Tę samą funkcję dodano teraz do drzew. Kolejność wyświetlania kolumn w drzewie można zmienić poprzez przeciągnięcie nagłówków kolumn. Innym sposobem jest określenie ich programowo. Przykładowy fragment kodu. |
Ulepszona obsługa kompozycji XP |
W systemie Windows XP pakiet SWT wyświetla tło z teksturą w folderach kart. Grupy, etykiety, pola wyboru itp. traktują to tło jako przezroczyste. Również niestandardowe widgety, takie jak StyledText, wyświetlają teraz odpowiednią ramkę dla aktualnej kompozycji Windows XP. Instrukcje uruchamiania ze skórą Windows XP zawierają Często zadawane pytania (FAQ) dotyczące pakietu SWT. |
Animowane obrazki GIF |
Animowane obrazki GIF można zapisać do pliku. Przykład tej techniki zawiera fragment kodu SWT. |
Powiadomienia o zmianie wyglądu pulpitu |
Kiedy zmienione zostaną ustawienia takie jak kompozycja, czcionka lub domyślne kolory pulpitu, wywoływane jest zdarzenie |
Powiadomienia o usunięciu |
Dotychczas, gdy dla jednej ze złożonych klas macierzystych odbierane było zdarzenie |
Podpowiedzi do kolumn |
Tekst podpowiedzi może być ustawiony w nagłówku kolumny tabeli lub drzewa przy użyciu metody |
Pionowy pasek CoolBar |
Pionowy pasek CoolBar można utworzyć przy użyciu stylu |
Obsługa OpenGL |
Interfejs OpenGL może być obecnie używany w aplikacjach SWT. Interfejs OpenGL działa z bibliotekami OpenGL innych firm, na przykład LWJGL. Przykłady można znaleźć we fragmentach kodu SWT. |
Drzewo wirtualne |
Drzewa obsługują teraz wirtualny styl SWT.VIRTUAL. Umożliwia to szybkie tworzenie drzew z dużą ilością danych. Jeśli niezbędne są elementy drzew, są one tworzone na żądanie. Przykład tej techniki można znaleźć we fragmencie kodu SWT. |
Przyciski z obrazkami i tekstem |
Przyciski mogą teraz wyświetlać zarówno obrazki, jak i tekst. Ta opcja jest dostępna w systemach Windows XP, Mac OS X i w środowisku GTK. |
HIView w systemie Mac OS X |
Pakiet SWT wykorzystuje teraz element HIView w systemie Mac OS X. Rozwiązuje to wiele problemów z obcinaniem i ustalaniem wielkości. |
Osadzanie obiektów w tekście |
Korzystając z klasy TextLayout, można teraz osadzać obiekty takie jak obrazki lub widgety w tekście. Można określić metryki glifów, takie jak wzniesienie, obniżenie i szerokość. Obiekty są zawijane wraz z tekstem. Przykład tej techniki zawiera fragment kodu SWT. |
Wcinanie i wyrównywanie tekstu |
Klasa TextLayout obsługuje teraz wcinanie tekstu, jego wyrównywanie do innego tekstu oraz do krawędzi. Przykład tej techniki zawiera fragment kodu SWT. |
Podniesienie linii bazowej tekstu |
Przy użyciu klas TextLayout i TextStyle można określić podniesienie linii bazowej fragmentu tekstu. Przykład tej techniki zawiera fragment kodu SWT. |
Obsługa kolorów w schemacie HSB |
Kolor można utworzyć określając jego barwę, nasycenie i jasność. Można też uzyskać barwę, nasycenie i jasność danego koloru poprzez zapytanie. Przykład tej techniki zawiera fragment kodu SWT. |
wcinanie i wyrównywanie w widgecie StyledText |
Widget StyledText obsługuje teraz wcinanie tekstu, jego wyrównywanie do innego tekstu oraz do krawędzi. Przykład tej techniki zawiera fragment kodu SWT. |
Obiekty osadzone w widgecie StyledText |
Korzystając z widgetu StyledText, można teraz osadzać obiekty takie jak obrazki lub widgety w tekście. Obiekty są zawijane wraz z tekstem. Przykład tej techniki zawiera fragment kodu SWT. |
Obraz tła |
Można ustawić obraz tła w elemencie sterującym. Tło może być ponadto dziedziczone przez widgety potomne, na przykład etykiety. Przykład tej techniki zawiera fragment kodu SWT. |
Rodzime ładowanie obrazków |
Konstruktor |
Przeciąganie tekstu |
Jeśli zdarzenie Przykład tej techniki zawiera fragment kodu SWT. |
Nowy widget ExpandBar |
Widget ExpandBar umożliwia użytkownikowi wyświetlanie i ukrywanie kolekcji widgetów po kliknięciu nagłówka. Widget ExpandBar zawiera wiele elementów, z których każdy może mieć w nagłówku obrazek i tytuł. Przykład tej techniki zawiera fragment kodu SWT. |
Znaczniki podpunktu w widgecie StyledText |
Widget StyledText może teraz wyświetlać listy sformatowane przy użyciu różnych stylów, w tym znaczników podpunktów, znaczników numerowanych, wielkich lub małych liter oraz stylów niestandardowych. Przykład tej techniki zawiera fragment kodu SWT. |
Niestandardowe rysowanie drzew |
Widget Tree obsługuje teraz możliwość niestandardowego rysowania poszczególnych komórek. Aplikacje mogą rozszerzać własny wygląd i zachowanie drzewa, wyświetlając dane w niestandardowy sposób. Aplikacja może sterować wysokością wiersza, tak więc można rysować kilka wierszy tekstu. Ponadto może ona wyświetlać kilka obrazków w tej samej komórce, zmieniać wielokrotnie czcionkę lub kolor, a także zmieniać sposób rysowania wyborów. Przykłady można znaleźć w następujących fragmentach kodu: |
Niestandardowe rysowanie tabel |
Widget Table obsługuje teraz możliwość niestandardowego rysowania poszczególnych komórek. Utrzymując własny wygląd i zachowanie drzewa, użytkownicy mogą zmieniać sposób rysowania komórek, aby wyświetlać dane w formie innej niż tekst z obrazkiem. Mogą wyświetlać kilka wierszy tekstu w jednej komórce, wielokrotnie zmieniać czcionkę i kolor w danej komórce, przesłaniać własny sposób rysowania wyborów itp. Przykłady można znaleźć w następujących fragmentach kodu: |
Przeciąganie nad efektami w tabelach i drzewach |
Widgety Table i Tree pokazują, jaki element jest przeciągany. |
Nowa klasa ToolTip |
Nowa klasa ToolTip może być wykorzystywana do wyświetlania podpowiedzi niezwiązanych bezpośrednio z elementem sterującym. Podpowiedzi te można umieszczać wszędzie i mogą one mieć domyślny wygląd platformy lub wygląd dymków (styl BALLOON, przedstawiony poniżej). |