Przykład - asystent pól
Wprowadzenie
Przykład działania asystenta pól pokazuje, jak używać obsługi wbudowanej w interfejsorg.eclipse.jface.fieldassist
, aby udostępnić asystenta czynności w polach tekstowych.
Przykładowe okno dialogowe pokazuje, jak skonfigurować dekoracje pól w celu wskazania pól wymaganych, pól z błędami lub ostrzeżeniami, a także pól udostępniających asystenta treści.
Niniejszy przykład przedstawia także stronę preferencji, która umożliwia skonfigurowanie dekoracji i obsługi asystenta treści.
Wykonanie przykładu
Po zainstalowaniu wtyczki akcja AsystentPól powinna być widoczna na pasku działań. Wybierz z menu pozycję "Otwórz okno dialogowe asystenta pól...".
Spowoduje to otwarcie okna dialogowego asystenta pól. Okno dialogowe może być skonfigurowane przy użyciu przykładowych preferencji.
Konfigurowanie preferencji asystenta pól
Skonfigurowanie sposobu działania okna dialogowego umożliwiają dwie strony preferencji.
Strona Preferencje przykładu asystenta pól umożliwia skonfigurowanie sposobu, w jaki okno dialogowe oznacza pola z błędami i ostrzeżeniami, pola wymagane oraz asystenta treści.
Do oznaczania pól można skorzystać z połączenia kolorów oraz dekoracji. Ta strona preferencji ma pokazać możliwości konfigurowania dekoracji.
Jest ona skierowana głównie do programisty próbującego zastosować asystenta treści i nie stanowi przykładu dobrej strony preferencji umożliwiającej użytkownikom końcowym sterowanie adnotacjami.
Strona Preferencje asystenta treści umożliwia skonfigurowanie sposobu działania asystenta treści w polach tekstowych okna dialogowego. Większość opcji dostępnych w interfejsie API asystenta pól (ContentProposalAdapter) można skonfigurować na tej stronie.
Należy zauważyć, że asystenta treści można skonfigurować w sposób niewygodny dla użytkownika.
Na przykład nie powinno się aktywować asystenta treści automatycznie po wpisaniu dowolnego znaku i z długim opóźnieniem. Jeśli klawisze filtrowania nie są przekazywane z powrotem do elementu sterującego, używanie łącznego filtrowania propozycji może być niewygodne. Celem prezentowania interfejsu API na stronie preferencji jest umożliwienie programiście asystenta pól wypróbowania wszystkich możliwych kombinacji.
Nie oczekuje się, że jakiekolwiek z tych preferencji będą prezentowane użytkownikowi końcowemu, lecz że programista wybierze najlepszą kombinację wartości, aby nadać określony styl asystentowi treści.
Korzystanie z okna dialogowego
Przykładowe okno dialogowe prezentuje kilka rodzajów pól:
- Pole Nazwa użytkownika jest skonfigurowane jako pole wymagane z asystentem treści. Aplikacja uznaje za błąd wprowadzenie do tego pola znaków niealfabetycznych. Jeśli w polu wpisana zostanie nazwa "bob", aplikacja uznaje to za sytuację wymagającą ostrzeżenia.
- Pole złożone Nazwa użytkownika jest skonfigurowane podobnie, ale wykorzystuje okno złożone zamiast pola tekstowego.
- Pole Wiek przedstawia sposób użycia widgetu pola przewijanego z dekoracjami.
Jest ono skonfigurowane jako pole wymagane, ale nie udostępnia stanu błędu. Jeśli w polu wpisany zostanie wiek większy niż 65, jest to uznawane za sytuację wymagającą ostrzeżenia.
- Pole Hasło nie wykorzystuje ani dekoracji, ani asystenta treści.
Celem jego użycia w przykładzie jest zaprezentowanie, w jaki sposób pola bez dekoracji mogą być wyrównywane z polami z dekoracją.
Przykładowy kod źródłowy
Przykładowe okno dialogowe nie jest bardzo skomplikowane, gdyż jego celem jest zaprezentowanie, w jaki sposób można oprogramować asystenta pól. Poniżej zawarto kilka uwag dotyczących kodu źródłowego:
- Pola bez dekoracji można ułożyć, wyrównując je do pól z dekoracją przy użyciu protokołu
FieldDecorationRegistry.getMaximumDecorationWidth()
.
- Przykładowa wtyczka rejestruje standardowe dekoracje pól, aby określić, czy dostępny jest asystent treści, czy pole jest wymagane oraz czy w polu wystąpił błąd lub ostrzeżenie. W przypadkach użycia standardowych opisów dekoracji we wszystkich polach używane są bieżące dekoracje z rejestru. W przypadkach użycia unikalnych opisów błędów lub ostrzeżeń, unikalną dekoracją z tekstem zarządza pole.
- Mechanizmy sprawdzania poprawności dla pól, pobieranie treści dla poszczególnych pól w oknie dialogowym, a także komunikaty o błędach i ostrzeżeniach są zrealizowane za pomocą mechanizmu SmartField i jego podklas. Oczekuje się, że aplikacje będą w tym celu udostępniać podobne struktury (takie jak wiązanie danych). SmartField ma zaprezentować prostą technikę sprawdzania poprawności różnych pól w oknie dialogowym. Nie powinno być to traktowane jako przykład semantycznej struktury definiowania pól.