Programowanie Komunikacji Człowiek Komputer
Java + XML

Ostatnio aktualizowano 11 maja 2008 r.

Ostatnie zadanie z przedmiotu polegało na napisaniu aplikacji potrafiącej używać modelu DOM, wczytać dokument XML, przenieść jego strukturę do pamięci i zmodyfikować. Zdecydowaliśmy się stworzyć prosty edytor XML, jednak skoro miało być to ostatnie zadanie, chcieliśmy przy okazji przetestować różne technologie: bibliotekę do przetwarzania XML (dom4j), bibliotekę do generowania dokumentów pdf (iText), bibliotekę zawierającą klasę pozwalająca kolorować składnię XML w JEditorPane (bounce) oraz bibliotekę pozwalająca na tworzenie gui (vldocking).
Całość napisana w java 1.6, jeżeli aplikacja ma być testowana w java 1.5 należy dołączyć do projektu bibliotekę swing-layout-1.0.jar.

Dlaczego dom4j? Przecież w bibliotece standardowej Java znajduje się zestaw klad do obsługi XML, szczerze wybór tejbibliotei nie był podyktowany jakimiś szczególnymi powodami. Biblioteka iText to pierwsza, którą znaleźliśmy i która eksportowała do pdf. Bounce potrzebny był tylko do pokolorowania składni XML w JEditorPane, albowiem JEditorPane pozwala na implementowanie interfejsów pozwalających na manipulowanie jego zawartością. Inna rzecz dotyczy jednak vldocking, chciałem przetestować tą bibliotekę ze względu na możliwość tworzenia interfejsów użytkownika MDI, w których okna można dokować, ukrywać na bocznym panelu itp.

Należy się też kilka słów wyjaśnienia, albowiem w projkecie znajdują się klasy i metody, które nie zostały wykorzystane ale stanowią rozwiązanie jakiegoś problemu, zostaną zaznaczone w poniższym opisie.

org.pkckeditor.core.controler:
* XECoreControler
* XEExportControler
* XEMenuControler
* XEViewControler

org.pkckeditor.core.data:
* XEElementFormat

org.pkckeditor.core.model:
* XECoreLogic
* XEExporter

org.pkckeditor.core.util:
* Pair
* XEConfiguration
* XEFileFilter
* XEJTreeNodeGenerator
* XELocalize
* XEUtils

org.pkckeditor.gui.controls:
* XECheckBoxListCellRenderer - pierwotny pomysł zakladał wykorzystanie listy elementów, które można zaznaczać -- ale ostatecznie nie zostało to użyte.
* XEJCheckList - podobnie jak powyżej.

org.pkckeditor.gui.dockables:
* XEDockPositionManager
* XEMainPanel
* XETreeView

org.pkckeditor.gui.eventhandler:
* XEAboutActionHandler
* XEAuthorsActionHandler
* XEExitActionHandler
* XEExportActionHandler
* XEExportTreeSelectionHandler
* XEHelpActionHandler
* XEMainPanelFocusHandler
* XEMainPanelInputHandler
* XEOpenActionHandler
* XESaveActionHandler
* XEToolsLoadActionHandler
* XEToolsSaveActionHandler
* XEWindowEventHandler

org.pkckeditor.gui.wizard:
* XEExportWindow

org.pkckeditor.gui:
* XEMainWindow

org.pkckeditor.main:
* XELoader

Wiedza tylko wtedy jest wiedzą, kiedy zdobyta została wysiłkiem własnej myśli, a nie wyłącznie dzięki pamięci.

Poprawny XHTML 1.0! Poprawny styl CSS!hacker emblem open source emblem