Wprowadzenie

Rozszerzenia aplikacji redaktora i administratora bazują na Java Plugin Framework (JPF). Poniżej opisane są wszystkie możliwe rozszerzenia (punkty rozszerzeń) zdefiniowane dla aplikacji redaktora i administratora dLibra.

Interfejsy programistyczne wyszczególnione w poniższych opisach znajdują się w bibliotece programistycznej dcore-app-extension-api.

Rozszerzenie metadata

Rozszerzenie metadata służy do poszerzania możliwości importujących i eksportujących metadane w aplikacji. Poprzez to rozszerzenie możemy dodać funkcję importowania lub/i eksportowania metadanych z/do zewnętrznego formatu.

Rozszerzenie przyjmuje dwa parametry:

Interfejs programistyczny (język Java) dla tego rozszerzenia to pl.psnc.dlibra.app.extension.metadata.MetadataFinder. Szczegółowe informacje związane z tym interfejsem znajdują się w komentarzach metod i samego interfejsu (JavaDocs).

Lista domyślnie zainstalowanych rozszerzeń tego typu jest następująca:

Opis konfiguracji poszczególnych rozszerzeń można znaleźć tutaj.

Rozszerzenie fileParser

Rozszerzenie to odnajduje dla określonego pliku powiązane z nim inne pliki. W aplikacji redaktora i administratora po wybraniu pliku głównego (np. w kreatorze publikacji) następuje automatyczne sprawdzenie jakie inne pliki są a nim powiązane. W tym celu wykorzystywane są rozszerzenia fileParser. Domyślnie w aplikacji zainstalowane są rozszerzenia HTML oraz DjVu. Jeśli dla wybranego pliku nie ma zdefiniowanego rozszerzenia to redaktor musi sam zdecydować o tym, jakie pliki będą stanowić zawartość publikacji.

Rozszerzenie to przyjmuje jeden parametr class, który specyfikuje nazwę klasy implementującej interfejs programistyczny rozszerzenia. Interfejs programistyczny (język Java) dla tego rozszerzenia to pl.psnc.dlibra.app.extension.fileparser.FileParser. Szczegółowe informacje związane z tym interfejsem znajdują się w komentarzach metod i samego interfejsu (JavaDocs).

Lista domyślnie zainstalowanych rozszerzeń tego typu jest następująca:

Rozszerzenie interfaceLanguage

Rozszerzenie to pozwala na dodawanie tłumaczeń interfejsu użytkownika aplikacji redaktora i administratora. Domyślnie w aplikacji zainstalowane są rozszerzenia dla języka polskiego, angielskiego i ukraińskiego. Poprzez to rozszerzenie można dodać tłumaczenie interfejsu w innych językach. Aby otrzymać listę fraz/słów do tłumaczenia prosimy o kontakt.

Rozszerzenie to przyjmuje jeden parametr class, który specyfikuje nazwę klasy implementującej interfejs programistyczny rozszerzenia. Interfejs programistyczny (język Java) dla tego rozszerzenia to pl.psnc.dlibra.app.extension.language.InterfaceLanguage. Szczegółowe informacje związane z tym interfejsem znajdują się w komentarzach metod i samego interfejsu (JavaDocs).

Lista domyślnie zainstalowanych rozszerzeń tego typu jest następująca:

Rozszerzenie graphicProvider

Rozszerzenie to pozwala na zmianę wyglądu elementów graficznych w aplikacji redaktora i administratora. Poprzez dodanie rozszerzenia tego typu można poprawić ikonki i obrazki widoczne w aplikacji tak, by lepiej pasowały do kontekstu (kulturowego lub technicznego), w którym będzie wykorzystywany system dLibra. Zalecane jest, aby w aplikacji zainstalowana była co najwyżej jedna wtyczka tego typu, ponieważ nie jest dostępny mechanizm wyboru kontekstu graficznego, analogiczny do wyboru języków.

W aplikacji domyślnie zainstalowana jest wtyczka zapewniająca domyślny wygląd (dlibra-app-extension-gp).

Rozszerzenie sourceLocator

Rozszerzenie to pozwala na lokalizację plików z metadanymi, które później będą importowane. Korzystając z tego rozszerzenia możliwe jest wprowadzenie nowej funkcji lokalizacji pliku metadanych.

Rozszerzenie to przyjmuje jeden parametr class, który specyfikuje nazwę klasy implementującej interfejs programistyczny rozszerzenia. Interfejs programistyczny (język Java) dla tego rozszerzenia to pl.psnc.dlibra.app.extension.sourcelocator.SourceLocator. Szczegółowe informacje związane z tym interfejsem znajdują się w komentarzach metod i samego interfejsu (JavaDocs).

Lista domyślnie zainstalowanych rozszerzeń tego typu jest następująca:

Opis konfiguracji poszczególnych rozszerzeń można znaleźć tutaj.

Rozszerzenie dictionaryManager

Rozszerzenie to pozwala na importowanie i eksportowanie grup wartości atrybutów z i do zewnętrznych plików.

Rozszerzenie to przyjmuje jeden parametr class, który specyfikuje nazwę klasy implementującej interfejs programistyczny rozszerzenia. Interfejs programistyczny (język Java) dla tego rozszerzenia to pl.psnc.dlibra.app.extension.dictionarymanager.DictionaryManager. Szczegółowe informacje związane z tym interfejsem znajdują się w komentarzach metod i samego interfejsu (JavaDocs).

Lista domyślnie zainstalowanych rozszerzeń tego typu jest następująca:

Opis konfiguracji poszczególnych rozszerzeń można znaleźć tutaj.

Rozszerzenie filesHandler

To rozszerzenie pozwala zdefiniować procedury, które będą realizowane po wybraniu pliku głównego w kreatorze nowej publikacji. Procedury te mogą obejmować przetwarzanie plików na dysku, wyświetlanie okien dialogowych i inne. Skutkiem działania procedury może być zmiana wybranego pliku głównego oraz pozostałych plików dodanych do wydania. Jeśli w aplikacji zainstalowanych jest więcej niż jedna wtyczka do tego rozszerzenia, są one odpytywane po kolei, aż do pierwszej wtyczki, która przetworzy pliki poprawnie (nie wyrzuci wyjątku).

Rozszerzenie to przyjmuje jeden parametr class, który specyfikuje nazwę klasy implementującej interfejs programistyczny rozszerzenia. Interfejs programistyczny (język Java) dla tego rozszerzenia to pl.psnc.dlibra.app.extension.fileshandler.FilesHandler. Szczegółowe informacje związane z tym interfejsem znajdują się w komentarzach metod i samego interfejsu (JavaDocs).

Lista domyślnie zainstalowanych rozszerzeń tego typu jest następująca:

Rozszerzenie tool

To rozszerzenie pozwala dodać nowe elementy do menu Narzędzia w aplikacji administratora lub redaktora, jak pokazano na poniższym rysunku.

Rozszerzenie to przyjmuje dwa parametry:

Lista domyślnie zainstalowanych rozszerzeń tego typu jest następująca:

Oprócz powyższych rozszerzeń, zespół rozwijający system dLibra przygotował dla programistów zainteresowanych tworzeniem własnych rozszerzeń narzędzie przykładowe, ilustrujące możliwości rozszerzeń typu tool.

Rozszerzenie miniatureProvider

To rozszerzenie pozwala na automatyczne generowanie miniatur dla dodawanych publikacji na podstawie plików wybranych do wydania. Możliwe jest wygenerowanie kilku miniatur dla publikacji, z których redaktor będzie mógł wybrać jedną.

Rozszerzenie to przyjmuje jeden parametr class, który specyfikuje nazwę klasy implementującej interfejs programistyczny rozszerzenia. Interfejs programistyczny (język Java) dla tego rozszerzenia to pl.psnc.dlibra.app.extension.miniatureprovider.MiniatureProvider. Szczegółowe informacje związane z tym interfejsem znajdują się w komentarzach metod i samego interfejsu (JavaDocs).

Domyślnie zainstalowaną wtyczką, która implementuje to rozszerzenie, jest wtyczka tworząca prezentacje na podstawie plików jpg (zobacz opis rozszerenia filesHandler). Poza tym, w aplikacji redaktora zintegrowano wtyczki pozwalające na generowanie miniatur z następujących plików:

 

Rozszerzenie eventListener

Rozszerzenie typu eventListener pozwala reagować na zdarzenia zachodzące w aplikacji redaktora i administratora.

Rozszerzenie to reprezentowane jest w oprogramowaniu dLibra jako interfejs programistyczny języka Java pl.psnc.dlibra.app.extension.eventListener.EventListener.

Interfejs ten posiada jedną metodę o nazwie eventPushed przyjmującą następujące parametry:

W domyślnej konfiguracji aplikacji redaktora i administratora nie ma rozszerzeń tego typu. Rozszerzenie to zaprojektowane zostało z myślą o narzędziach wykonujących specyficzne działania w zewnętrznych systemach, które z oczywistych względów nie są wspierane przez aplikację redaktora i administratora. Dla programistów chcących stworzyć narzędzie tego typu, powstało przykładowe rozszerzenie.

Rozszerzenie objectPanel

Rozszerzenia tego typu pozwalają na dodanie dodatkowej zakładki w aplikacji redaktora, widocznej w dolnej części ekranu po zaznaczeniu obiektu określonego typu. Wtyczka taka ma pełną swobodę w przygotowaniu zawartości zakładki i może w tym celu korzystać z dostępu do funkcji serwera. Rozszerzenie to może posłużyć do wyświetlania dodatkowych informacji związanych z wybranym obiektem, np. pobranych z zewnętrznych systemów.

Rozszerzenie to przyjmuje jeden parametr class, który specyfikuje nazwę klasy implementującej interfejs programistyczny rozszerzenia. Interfejs programistyczny (język Java) dla tego rozszerzenia to pl.psnc.dlibra.app.extension.objectpanel.ObjectPanel. Szczegółowe informacje związane z tym interfejsem znajdują się w komentarzach metod i samego interfejsu (JavaDocs).

Domyślnie w aplikacji redaktora nie jest zainstalowane żadne rozszerzenie tego typu, ale można pobrać przykładową implementację, która demonstruje możliwości rozszerzenia.

Rozszerzenie dataSource

Ten typ rozszerzeń umożliwia dodanie nowych sposobów definiowania treści publikacji. W kreatorze nowej publikacji (a także dodawania plików do publikacji, oraz podmiany plików w publikacji), na stornie wyboru plików, użytkownik może wybrać jedno z zainstalowanych rozszerzeń dataSource, dzięki czemu zamiast standardowego panelu wyboru plików pojawi się panel przygotowany przez to rozszerzenie. Kiedy użytkownik wybierze pliki do publikacji w tym panelu, rozszerzenie przekazuje tę informację do aplikacji redaktora i użytkownik może przejść do następnych kroków kreatora. Przy pomocy tego rozszerzenia można wskazać nie tylko pliki na dysku lokalnym, ale też zasoby dostępne w Internecie - w takim przypadku serwer dLibry pobierze je i zapisze w swoim repozytorium (pobieranie może się również odbyć za pośrednictwem komputera redaktora).

Rozszerzenie to przyjmuje jeden parametr class, który specyfikuje nazwę klasy implementującej interfejs programistyczny rozszerzenia. Interfejs programistyczny (język Java) dla tego rozszerzenia to pl.psnc.dlibra.app.extension.datasource.DataSource. Szczegółowe informacje związane z tym interfejsem znajdują się w komentarzach metod i samego interfejsu (JavaDocs).

Domyślnie w aplikacji redaktora nie jest zainstalowane żadne rozszerzenie tego typu, ale można pobrać przykładową implementację, która demonstruje możliwości rozszerzenia.