Kokako - projekti
Sovellusraportti
Honkonen Tapio
Lamminen Turo
Räsänen Tuomas
Väärämäki Tapio
Versio 0.5
Julkinen
24. elokuuta 2006
Jyväskylän Yliopisto
Tietotekniikan Laitos
Jyväskylä
Hyväksyjä |
Päivämäärä |
Allekirjoitus |
Nimenselvennys |
Projektipäällikkö |
___.___.2006 |
|
|
Tilaaja |
___.___.2006 |
|
|
Tilaaja |
___.___.2006 |
|
|
Ohjaaja |
___.___.2006 |
|
|
Tietoa dokumentista
Tekijät:
Dokumentin nimi: Kokako-projekti, Sovellusraportti
Sivumäärä: 40
Tiedosto: Sovellusraportti.doc
Tiivistelmä: Sovellusraportti kuvaa
miten vaatimusmäärittelyssä ja sovellussuunnitelmassa esitetyt vaatimukset ja
ohjelmalliset komponentit toteutettiin ja mitä komponentteja jäi
jatkokehityksen varaan. Lisäksi dokumentissa käydään läpi sovelluksen moduulit,
luokat ja luokkien tärkeimmän metodit ja niiden toiminnallisuudet.
Avainsanat: sovelluksen arkkitehtuuri, opinto-opas,
julkaisuprosessi, koostaminen, sovellusraportti
Muutoshistoria
Versio |
Päivämäärä |
Muutokset |
Tekijät |
0.1 |
6.6.2006 |
Sovellusraportin
kirjoittaminen alkoi. Raportin perusrakenteen luominen. |
Honkonen Tapio |
0.2 |
14.6.2006 |
Asetettujen
tavoitteiden toteutumisen tarkastelu. |
Honkonen Tapio |
0.3 |
3.7.2006 |
Sovelluksen
jatkokehitys. |
Honkonen Tapio |
0.4 |
11.7.2006 |
Sovelluksen
luokka- ja metodikuvaukset. |
Honkonen Tapio |
0.41 |
1.8.2006 |
Sovelluksen
luokka- ja metodikuvaukset. |
Honkonen Tapio |
0.42 |
10.8.2006 |
Sovelluksen
luokka- ja metodikuvaukset sekä jatkokehitystä. |
Honkonen Tapio |
0.43 |
17.8.2006 |
Raportin
viimeistely tarkastukseen |
Honkonen Tapio |
0.44 |
18.8.2006 |
Raportin
viimeistely tarkastukseen. |
Honkonen Tapio |
0.5 |
24.8.2006 |
Raportin
viimeistely ohjaajan kommenttien mukaan. |
Honkonen Tapio |
Tietoa projektista
Kokako-projekti edelleenkehittää opinto-oppaan koostamistyökalua Jyväskylän yliopiston Informaatioteknologian
tiedekunnalle. Työkalusta on tarkoitus laatia niin yleis- ja helppokäyttöinen, että
sitä on mahdollista käyttää vastaaviin tarkoituksiin esimerkiksi muissa tiedekunnissa.
Ensisijaisesti on tarkoitus toteuttaa ympäristö opinto-oppaaseen tulevien
XML-dokumenttien luontiin ja niiden tyyppimääritysten muuntaminen Xoo-projektin
luoman luku.dtd:n mukaiseksi. Tämän jälkeen on tarkoitus
toteuttaa olemassa olevaan koostamistyökaluun helppokäyttöisempi käyttöliittymä
sekä dokumenttien käsittelyyn tarvittava versionhallinta.
Tekijät:
Tilaaja:
·
Ihanainen Eija opintoasiat@it.jyu.fi 014 260 2791
·
Auer
Antti auer@jyu.fi 014 260
4319
·
Honkaranta Anne anne.honkaranta@it.jyu.fi 014 260 3041
·
Nurminen Miika minurmin@jyu.fi 014 260 2530
·
Lappalainen Vesa vesal@mit.jyu.fi 014 260 2722
Ohjaajat:
Yhteystiedot:
kokako_opis.group@korppi.jyu.fi
https://korppi.jyu.fi/list-archive/kokako06_opetus
Sisältö
1.2 Toteuttavan
sovelluksen taustaa ja tavoitteita
1.3 Sovellukseen
liittyvä termistö
2 Ohjelman rakenne ja sen komponentit
2.1 Sovelluksen
ohjelmistokomponentit
2.1.2 Sisällöntuottajan käyttöliittymä
2.1.3 Koostajan käyttöliittymä
2.1.5 Versionhallintajärjestelmä
2.1.6 Koostamisskripti ja julkaisuskripti
2.1.7 Korpin kurssikuvaukset- ja
henkilökunnan yhteystiedot-liitäntä
4.4.1 FileNodeTransferHandler.java
4.7.2 FilterByQualifiedName.java
4.11.1 FileTreeCellRenderer.java
4.11.6
XMLStructTreeCellRenderer.java
4.11.7 XMLStructTreeModel.java
4.12.3 LukudtdFilenameFilter.java
5 Asetettujen tavoitteiden toteutuminen
5.1 Sovelluksen
ohjelmalliset vaatimukset
5.2 Sovelluksen
ohjelmallisten vaatimusten toteutuminen
5.3 Sovelluksen
tekniset vaatimukset ja niiden toteutuminen
6.1 Sovelluksen
ohjelmalliset jatkokehitysideat.
Kuva
1: Opinto-oppaan julkaisuprosessi
Kuva 2: Sovelluksen ohjelmistokomponentit
Kuva
3: Sisäänkirjautumisikkuna
Taulukkoluettelo
Taulukko
1: Käyttöliittymä.java metodit
Taulukko 3: AboutAction.java metodit
Taulukko
4: BuildProjAction.java metodit
Taulukko
5: DeleteChapterAction.java metodit
Taulukko
6: EditDocDialog.java metodit
Taulukko
7: EditProjMetaAction.java metodit
Taulukko
8: EditXMLAction.java metodit
Taulukko
9: ExitAction.java metodit
Taulukko
10: HelpAction.java metodit
Taulukko
11: NewDocAction.java metodit
Taulukko
12: NewProjAction.java metodit
Taulukko
13: OptionsAction.java metodit
Taulukko
14: PreviewHTMLAction.java metodit
Taulukko
15: PreviewPDFAction.java metodit
Taulukko
16: JFileTree.java metodit
Taulukko
17: FileNodeTransferHandler.java metodit.
Taulukko
18: EditDocDialog.java metodit
Taulukko
19: LoginDialog.java metodit
Taulukko
20: NewDocDialog.java metodit
Taulukko
21: NewProjDialog.java metodit
Taulukko
22: OptionsDialog.java metodit
Taulukko
23: OOoEventListener.java metodit
Taulukko
24: FilterByName.java metodit
Taulukko
25: FilterByQualifiedName.java metodit
Taulukko
26: MultiLang.java metodit
Taulukko 27: OOoHelper.java metodit
Taulukko
28: RandomHelpers.java
Taulukko
29: FileFilterFC.java metodit
Taulukko
30: LogWriter.java metodit
Taulukko
31: ModFileChooser.java metodit
Taulukko
32: OptionReader.java metodit
Taulukko
33: Alaluku.java metodit
Taulukko
34: Laatija.java metodit
Taulukko
35: Luku.java metodit
Taulukko
36: Luvut.java metodit
Taulukko
37: OpasKooste.java metodit
Taulukko
38: OpasMeta.java metodit
Taulukko
39: FileTreeNode.java metodit
Taulukko
40: Dokutieto.java metodit
Taulukko
41: ODTModListener.java metodit
Taulukko
42: Versio.java metodit
Taulukko
43: XSLTTrans.java metodit
Taulukko
44: Sovelluksen yleiset vaatimukset
Taulukko 45: Sisällöntuottajan
käyttötapauksien vaatimukset
Taulukko
46: Koostajan käyttötapauksien vaatimukset
Taulukko 47: Sovelluksen yleisten
vaatimusten toteutuminen
Taulukko 48: Sisällöntuottajan käyttötapauksien
vaatimusten toteutuminen
Taulukko 49: Koostajan käyttötapauksien
vaatimusten toteutuminen
Taulukko 50: Sovelluksen teknilliset
vaatimukset ja niiden toteutuminen
Taulukko 51: Sovelluksen ohjelmalliset
jatkokehitysideat
Kokako-projekti
oli kevään -06 Jyväskylän yliopiston Tietotekniikan laitoksen sovellusprojekti.
Projektin tarkoituksena oli kehittää opinto-oppaan laatimis- ja
koostamistyökalua Jyväskylän yliopiston informaatioteknologian tiedekunnalle.
Työkalusta oli tarkoitus laatia niin yleis- ja helppokäyttöinen, että sitä
olisi mahdollista käyttää vastaaviin tarkoituksiin esimerkiksi muissa tiedekunnissa.
Sitä tulee käyttämään kaksi eri käyttäjäryhmää, dokumentin sisällöntuottaja ja
koostaja. Työkalun tarkoituksena on tehdä lähdedokumenteista yhtenäisiä ja
täten helpottaa koostajan työtä automatisoimalla koostamisprosessia.
Kokako-projekti
oli jatkoa XooZoo- ja Xoo-projekteille. XooZoo-projektin tehtävänä oli informaatioteknologian
tiedekunnan (myöhemmin tekstissä IT-tiedekunta) opinto-oppaan hallinnan,
sisällön ja rakenteen kehittäminen. Projekti keskittyi tutkimukseen ja
suunnitteluun. Käytännön toteutukselle jäi vähemmän aikaa, ja niinpä projekti
jatkui Xoo-jatkoprojektilla, jonka tehtävänä oli viedä XooZoo-projektissa aloitettu
työ loppuun.
Xoo-projekti
koosti IT-tiedekunnalle opinto-oppaan XooZoo-projektissa saatujen tuloksien
pohjalta. Koostamistyössä havaittiin kuitenkin vielä useita puutteita, joista
halutaan eroon. Kokako-projektin tehtävänä oli jatkaa koostamisjärjestelmän
kehittämistä edelleen.
Kokako-projektin tarkoitus
oli ensisijaisesti toteuttaa ympäristö opinto-oppaaseen tulevien
XML-dokumenttien luontiin ja niiden tyyppimääritysten muuntaminen Xoo-projektin
luoman luku.dtd:n mukaiseksi. Tämän jälkeen oli tarkoitus
totetuttaa olemassa olevaan koostamistyökaluun helppokäyttöisempi
käyttöliittymä sekä dokumenttien käsittelyyn tarvittava versionhallinta.
Tämä dokumentti
kuvaa miten sovelluksella asetetut vaatimukset toteutuivat. Koska järjestelmä
jäi keskeneräiseksi, kuvataan tässä dokumentissa myös sovelluksen tämänhetkinen
tila sekä jatkokehitystarpeet. Dokumentissa kuvataan myös projektin ratkaisuja
sovelluksen avaintoimintojen kohdalta ja niiden eroja sovellussuunnitelmassa
esiteltyihin ratkaisuihin sekä syyt miksi näin on tehty.
Jyväskylän
yliopiston IT-tiedekunta on julkaissut vuosittain opinto-oppaan uusille ja
vanhoille opiskelijoille. Opinto-oppaan laatiminen koostuu useasta eri
työvaiheesta, joita ovat mm. sisällöntuotanto ja koostaminen. Käytännössä
opinto-oppaan laatimisprosessi käynnistyy sisällöntuottamisella, jossa kukin
sisällöntuottajat laatii oman osuutensa opinto-opasta varten. Tämän jälkeen koostaja
kokoaa erilliset dokumentit yhdeksi kokonaisuudeksi ja huolehtii samalla
dokumentin taittamisesta. Koostamisprosessi on ollut melko työläs, koska
sisällöntuottajat ovat toimittaneet omat osadokumenttinsa erilaisilla
tyylimäärittelyillä varustettuna, ja niistä on pitänyt koostaa yksi yhtenäinen
dokumentti. Koostamisvaiheessa on siten jouduttu tekemään paljon manuaalista
työtä, joka on koettu varsin raskaaksi ja ehkäpä hieman turhaksikin.
XooZoo-projektista
lähtien opinto-oppaan eri luvut on kirjoitettu XML-muotoon. Se on kuitenkin
havaittu liian työlääksi ja vaikeaksi tavallista käyttäjää ajatellen. Nyt on tarve kehittää editorikäyttöliittymä,
jonka avulla käyttäjät pystyvät kirjoittamaan XML-dokumentteja ilman erityistä
XML-osaamista.
Varsinaisen
sisällöntuotannon lisäksi sovelluksella pitää pystyä koostamaan useat eri
XML-dokumentit yhdeksi yhtenäiseksi dokumentiksi. Tarvittaessa koostamis- ja
sisällöntuotantotyökalut saattavat olla täysin erillisiäkin sovelluksia.
Tavoitteena on
luoda sellainen sovelluskokonaisuus, jonka avulla sisällöntuottajien on mahdollista
luoda tyylimäärittelyiltään yhtenäisiä dokumentteja opinto-opasta varten. Sovelluksen
tulee pystyä myös koostamaan nämä dokumentit automaattisesti – tai korkeintaan
hyvin pienellä manuaalisella työllä – yhdeksi suureksi XML-dokumentiksi, ja
muuntaa tämä XML-dokumentti joko PDF- tai HTML-muotoon.
Sovelluksen
luonteesta johtuen sen käyttömahdollisuudet eivät rajoitu vain opinto-oppaan
tuottamisprosessiin. Koostamis- ja sisällöntuotanto-ominaisuuksia on
mahdollista hyödyntää kaikissa sellaisissa prosesseissa, joissa on tarvetta
koostaa yksi dokumentti useasta pienemmästä osadokumentista. Opinto-oppaiden
lisäksi tällaisia dokumentteja ovat ainakin valintaopas ja erilainen oppimateriaali.
Tässä luvussa
kuvataan sovellussuunnitelmassa esille tulleita termejä.
XML (eXtensible Markup
Language |
on metakieli,
jolla määritellään rakenteisia merkkauskieliä. XML- ja HTML-merkkauskielten
erona on se, että HTML-merkkauskielessä käytetään ennalta määriteltyjä
merkkaustunnisteita, kun taas XML-merkkauskielen dokumenteille voi laatia
sovellus- ja aihekohtaisia omia merkkauskieliä skeemamääritystä käyttäen. XML
siis tarjoaa syntaksin ja merkkaussäännöt, joiden pohjalta voidaan määritellä
omia merkkauskieliä. |
DTD (Document Type
Definition) |
Määrittää rakenteisen dokumentin skeeman. Tämän avulla XML-prosessorille
kerrotaan mitä elementtejä ja attribuutteja dokumentti saa sisältää, missä järjestyksessä ne saavat
ilmetä ja mitkä ovat niiden keskinäiset suhteet. |
Luku.dtd |
on opinto-oppaan koostamistyökalun käyttämä DTD. Tämä on opinto-oppaan
tekstilukujen käyttämä DTD-määritys. (Opinto-oppaan koostaminen perustuu
kooste.dtd-määritykseen). |
OpenOffice 2.0 |
on Microsoft Officen kaltainen ohjelma, josta löytyy hyvin pitkälti samat
ominaisuudet. OpenOfficea on tarkoitus käyttää dokumenttien tuottamis- ja
muokkausohjelmana opinto-oppaan tuottamisprosessissa. |
XSLT (Extensible Style Language and Transformations) |
on laajasti käytetty XML-dokumenttin
muunnoskieli. Tyypillisiä XSLT:n sovelluskohteita ovat XML-aineiston muunnokset
toiseen XML-merkkauskielen mukaiseksi, HTML-muotoon tai tekstiksi. |
Tässä luvussa
kuvataan yleisesti sovelluksen rakennetta ja sen sisältämiä komponentteja. Luvun
tarkoituksena on kertoa, minkälaisia komponentteja toteutettiin ja mitkä jäivät
toteuttamatta. Osa luvussa mainituista komponenteista oli jo olemassa kun
sovelluksen kehitys alkoi. Tämä luku kuvaa eri komponenttien kehitystilan ja
priorisoi komponenttien jatkokehitystarvetta. Luvun pohjana toimii
opinto-oppaan julkaisuprosessia kuvaava kaaviokuva, joka on esitetty alla (kuva
1). Kuvan käyttäjäryhmistä on kerrottu tarkemmin vaatimusmäärittelyssä[1].
Kuva 1: Opinto-oppaan julkaisuprosessi
Julkaisuprosessin
läpiviemiseen tarvitaan Kokako-projektissa kehitettävää sovellusta. Se on mahdollista
jakaa eri komponentteihin kuvan 2 mukaisesti:
Kuva 2: Sovelluksen
ohjelmistokomponentit
Seuraavissa alaluvuissa
kerrotaan kustakin komponentista ja niiden liitännästä kehitettävään sovellukseen.
Komponenttien kehitysastetta vaatimusmäärittelyyn nähden tarkastellaan
myöhemmin luvussa 5.
Sisäänkirjautuminen
toteutettiin sovelluksen tässä versiossa ilman Korppi-kytkentää. Käyttäjä ainoastaan
syöttää omat tietonsa sisäänkirjautumisikkunaan ja ne tallennetaan
XML-tiedostoon, josta ne haetaan käyttäjän seuraavan kerran kirjautuessa
sisään. Tällöin käyttäjän ei tarvitse syöttää tietoja joka kerta vaan ainoastaan
silloin kun tiedot muuttuvat. Kuva 3 esittää sisäänkirjautumisikkunaa.
Kuva 3: Sisäänkirjautumisikkuna
Sisällöntuottajan
käyttöliittymää ei sovelluksen tässä versiossa toteutettu lainkaan. Ainoastaan
koostajan käyttöliittymä toteutettiin ja siitä seuraavassa alaluvussa.
Koostajan
käyttöliittymään toteutettiin hyvin pitkälti toiminnot mitä
vaatimusmärittelyssä esiteltiin. Niiden toiminnan tasosta kerrotaan enemmän luvussa
5. Käyttöliittymään toteutettiin seuraavat toiminnallisuudet:
Koostajan
käyttöliittymästä enemmän luvussa 3, jossa kuvataan käyttöliittymää ja sen
toiminnallisuutta tarkemmin.
Editorikäyttöliittymä
pohjautuu OpenOfficen Write –sovellukseen, jonka toiminallisuutta on rajoitettu
voimakkaasti. Uusien dokumenttien laatiminen perustuu olemassa olevaan dokumenttipohjaan,
johon on sisällytetty kaikki sallitut tyylimäärittelyt. Editorikäyttöliittymä
sisältää tallenna-painikkeen, jota
painaessa käyttäjän muokkaama dokumentti tallennetaan ensin ODT-muotoon ja
muunnetaan sen jälkeen XSLT-muunnoksella XML-muotoon. Mikäli käyttäjä muokkaa
aiemmin laatimiaan dokumentteja, niin silloin vastaava muunnos tehdään toiseen
suuntaan, eli XML-dokumentti muunnetaan takaisin ODT-muotoon.
Editorikäyttöliittymän toteutuksen tasoa tarkastellaan luvussa 5.
Versionhallintajärjestelmää
ei toteutettu laisinkaan sovelluksen tässä versiossa vaan se jää täysin
jatkokehityksen varaan.
Koostamisskriptiä
muokattiin hieman sovelluksen vaatimusten mukaan, mutta isompia muutoksia
siihen ei varsinaisesti tullut. Ainoastaan hakemistorakennetta muokattiin
hiukan.
Tämä komponentti
oli valmiina kun sovellusta alettiin kehittämään. Tarkoituksena oli ainoastaan
integroida tämä komponentti käyttöliittymään. Tätä integrointia ei toteutettu
vaan se jää jatkokehityksen tehtäväksi.
Sovelluksen
käyttöliittymä koostuu ohjelmistokomponenteista, jotka ohjaavat sovelluksen eri
toiminnallisuuksia.
Seuraavissa
alaluvuissa esitellään kutakin ohjelmistokomponenttia ja niiden käyttöliittymää
hieman tarkemmin. Koostamiskäyttöliittymä, eli sovelluksen pääasiallisen
käyttöliittymä on esitetty kuvassa 4:
Kuva 4: Käyttöliittymä
Tiedostonäkymä (kuvan
4 oikea palasta) näyttää käyttäjälle mitä tiedostoja on muokattavissa. Tiedostojen
täytyy olla tietyssä hakemistossa, joka on erikseen määritelty. Käyttäjällä on
käytössä sisältödokumentteja listaavan tiedostonäkymän lisäksi myös toinen
tiedostolistaus sovelluksen vasemmassa laidassa, Projektit-otsakkeen alla, jossa esitetään luodut koostedokumentit.
Koostedokumentteja ovat esimerkiksi opinto-opas koosteet vanhoille ja uusille
opiskelijoille. Koostedokumentit sisältävät tiedot koosteen rakenteesta ja
siihen sisällytettävistä dokumenteista. Projektit-otsakkeella
tarkoitetaan sitä, että koostedokumenttien kohdalla kyse on suurista
dokumenttikokonaisuuksista, kuten opinto- tai valintaoppaasta. Dokumentit-otsakkeen alla on puolestaan
yksittäisiä sisältödokumentteja, jotka voi kuulua useisiin eri koostedokumentteihin.
Rakennemalli
perustuu rakennepuuhun, joka ilmaisee koostedokumentin rakenteen. Koostedokumentit
rakentuvat useista toisiinsa yhdistetyistä juurisolmuista, joita ovat esiluvut, tekstiluvut, liitteet ja takaluvut. Näiden solmujen ja niiden lapsisolmujen
lisäksi rakennepuuhun kuuluu myös sisällysluettelo.
Kukin juurisolmu edustaa tiettyä dokumenttikategoriaa, johon sisällytetään
kategorian mukaisia dokumentteja. Vuoden 2005-2006 opinto-oppaan kohdalla esilukuja ovat mm. johdanto ja esipuhe, tekstilukuja oppaan varsinainen sisältö,
liitteitä mm. johtosäännöt ja
henkilötiedot sekä takalukuna
kampusalueen kartta.
Sisältödokumenttien
lisäämineen koosteeseen tapahtuu raahaamalla sisältödokumentti Dokumenti-tiedostonäkymästä johonkin
rakennemallin solmukohtaan. Poistaminen tapahtuu valitsemalla haluttu luku
rakennemallista, minkä jälkeen käyttäjä painaa näppäimistön delete-näppäintä. Lukujen keskinäisen
järjestyksen muuttaminen on sovelluksen tässä versiossa mahdollista ainoastaan
poistamalla siirrettävä dokumentti ja raahaamalla se uudestaan oikeaan kohtaan.
Rakennemalli-kohdan näkymää päivitetään aina kun koostaja lisää tai poistaa
siihen kuuluvia dokumentteja.
Käyttäjällä on
mahdollisuus käynnistää valitsemansa koostedokumenttiin kuuluvan sisältödokumentin
muokkaus valitsemalla sisältödokumentti puurakenteesta ja painamalla tämän
jälkeen muokkaa dokumenttia -painiketta.
Tämän toiminnallisuuden tarkoituksena on tukea sisällöntuottajia erityisesti
pitkien lukujen muokkaamisessa ja navigoinnissa. Koostajan on puolestaan
yksinkertaista tehdä pieniä korjauksia eri lukuihin, kun muokkausta kaipaava
sisältödokumentti ja sen muokattava kohta löytyvät nopeasti. Muokkauksen
toiminnan tasoa käsitellään luvussa 5.
Esikatselun
tehtävänä on näyttää käyttäjien tuottamat kooste- ja sisältödokumentit HTML-
tai PDF-muodossa. Tässä sovelluksen versiossa on käytössä ainoastaan
HTML-esikatselu ja PDF-esikatselu jää jatkokehityksen tehtäväksi. Esikatselun
toiminnallisuuden tasoa tarkastellaan luvussa 5.
Painikerivistä
löytyy kaikki ne toiminnot, joilla tehdään muutoksia dokumentteihin ja
tallennetaan tai julkaistaan niitä. Toiminnallisuuksia ovat seuraavast:
Kunkin painikkeen
toiminto on selitetty vaatimusmäärittelyssä [1], toiminnon nimeä vastaavan
käyttötapauksen kohdalla.
Lähes kaikki
sisältödokumentteihin ja koosteisiin viittaavat painikkeet vaativat jonkin tiedoston
valintaa tiedostonäkymästä ennen kuin painikkeita voi käyttää. Suurin osa
painikkeista käynnistää jonkin skriptin tai valmiin ohjelmistokomponentin, joihin
valittuna oleva tiedosto ilmoitetaan käynnistysparametrina.
Editorikäyttöliittymäksi
kutsutaan sovelluksen XML-editoria, joka toteutettiin rajaamalla OpenOffice
Writerin toiminnallisuutta tarjoamalla käyttäjälle valmis dokumenttipohja.
Sisältödokumenttien laatiminen XML-editorin avulla tapahtuu aivan kuten
normaalien dokumenttien kirjoittaminen OpenOfficen Writer -sovelluksella. Tyylimäärittelyiden
tekeminen poikkeaa perinteisestä dokumentin laadinnasta, koska se on
mahdollista ainoastaan ohjelman tyylidialogissa tarjottujen tyylimääritteiden
avulla.
Editorikäyttöliittymä
käynnistetään aina kun käyttäjä painaa Uusi
dokumentti- tai Muokkaa dokumentti
–painikkeita. Editorin käynnistäminen tarkoittaa OpenOffice Writerin käynnistämistä
eli se vaatii käyttäjän tietokoneelta huomattavasti resursseja.
Editorissa
laaditut dokumentit tallennetaan luonnollisesti XML-muotoon. Tämä vaatii kuitenkin
XSLT-muunnoksen, jolla OpenOfficen natiivimuodossa (ODT) oleva dokumentti
muunnetaan XML-muotoon. Dokumentteja käsitellään siis editorissa ODT-muodossa
ja ne muunnetaan tallennusvaiheessa XML-muotoon. Tästä johtuen Muokkaa dokumentti -painiketta painettaessa
dokumentti joudutaan muuntamaan ensin XSLT-muunnoksella XML-muodosta takaisin
ODT-muotoon, ennen kuin dokumenttia on mahdollista ryhtyä muokkaamaan.
Lisäksi
dokumentteja pystyy myös muokkaamaan XML-muodossa valitsemalla Dokumentit valikosta Muokkaa
XML-tiedostoa -valinta, jolloin dokumentti avautuu käyttäjän määrittelemään
XML-editoriin, josta sitä voi muokata XML-muodossa.
Sovelluksen eri
luokat ovat jaoteltu erilaisiin moduuleihin (eng. package), niiden toiminnallisuuksien ja roolien perusteella. Tällä
jaottelulla pyritään siihen, että sovelluksen koodi on yksinkertaisempaa
hallita, ja osakomponentti-ajattelu toteutuu myös käytännössä. Tässä luvussa
esitellään ohjelman moduulit, niiden sisältämät luokat sekä luokkien olennaisimmat
metodit.
Kayttoliittyma-moduuli sisältää varsinaisen käyttöliittymän
alustamiseen ja luomiseen liittyvät luokat. Kaikki käyttöliittymän varsinaiset
toiminnallisuudet löytyvät kuitenkin muista moduuleista kuten actions ja dialogs. Puunäkymät toteutetaan tree-
ja beans-paketteihin kuuluvissa
luokissa.
Tämä luokka on
sovelluksen keskipiste. Täältä kutsutaan kaikkia luokkia liittyen sovelluksen
ulkoasuun ja toiminnallisuuteen. Seuraavissa aliluvuissa käydään läpi luokan
metodit.
Metodin nimi |
Metodin kuvaus |
getJTreeCenterKooste |
Metodi hakee
OpasKooste:n jTreeCenter:iltä ja palauttaa sen. |
getSelectedFile |
Palauttaa valitun tiedoston valitusta puusta. Jos
puu ei ole haluttu puu, palauttaa null. |
getJTreeRightRoot |
Hakee jTreeRight:n juuren ja palauttaa sen. |
setSelectedFile |
Asettaa valitun tiedoston, kun se vaihtuu
jossakin puussa. |
writeKooste |
Kirjoittaa Kooste.xml kun dukumentti laitetaan
keskimmäiseen puuhun (jTreeCenter). |
getKooste |
Hakee ja palauttaa koosteen joka on aktiivisena
käyttöliittymässä. |
getMidTreeSelection |
Palauttaa valitun luvun tai aliluvun projektipuusta
(jTreeCenter) tai null, jos lukua ei ole valittu tai valittu komponenttiei
ole luku. |
Taulukko 1: Käyttöliittymä.java metodit
Main.java on
luokka, josta ohjelma lähtee pyörimään. Täällä tapahtuu kaikki ne toiminnot,
jotka täytyy tehdä ennen Kayttoliittyma.java:n ajamista.
Metodin nimi |
Metodin kuvaus |
Main |
Rakentaja ja metodi joka asettaa sovelluksen näkyviin. |
main |
Aloittaa sovelluksen ajamisen. |
Taulukko 2: Main.java metodit
Actions-moduuli sisältää kaikki sovelluksen dialogi-kutsut, joita tarvitaan kun
käyttäjä käynnistää valitsemansa toiminnon tai dialogin. Esimerkiksi uutta
dokumenttia laadittaessa käyttäjä painaa Uusi
dokumentti -painiketta, jolloin actions-moduuliin
kuuluva NewDocAction-luokka kutsuu dokumentin luomisessa
tarvittavaa NewDocDialog-dialogia.
Varsinaisten toimintokutsujen lisäksi actions-moduuli
sisältää kaikki toimintojen ulkoasuun liittyvät tiedot. Niitä ovat toiminnon avustusteksti,
toiminnon ikoni ja toiminnon nimi. Tällaisesta keskitetystä ratkaisusta on
hyötyä erityisesti silloin, kun sama toiminto on mahdollista käynnistää useasta
eri kohteesta. Tässä sovelluksessa jokainen toiminto on mahdollista käynnistää
joko painikeriviltä tai valikosta.
Action-luokka,
jota kutsutaan kun käyttäjä haluaa nähdä sovelluksen lisenssi.
Metodin nimi |
Metodin kuvaus |
AboutAction |
Rakentaja. |
actionPerformed |
Avaa dialogin, joka näyttää sovelluksen
lisenssitekstin kun tämä tapahtuma tapahtuu. |
Taulukko 3: AboutAction.java metodit
Action-luokka, jota
kutsutaan kun käyttäjä haluaa kostaa kooste.
Metodin nimi |
Metodin kuvaus |
BuildProjAction |
Rakentaja. |
actionPerformed |
Koostaa koosteen kun tapahtuma tapahtuu. |
Taulukko 4: BuildProjAction.java metodit
Action-luokka, jota
kutsutaan kun käyttäjä haluaa poistaa projektipuusta (jTreeCenter) valittu
luku.
Metodin nimi |
Metodin kuvaus |
DeleteChapterAction |
Rakentaja. |
actionPerformed |
Poistaa valitun luvun puusta kun tapahtuma
tapahtuu. |
Taulukko 5: DeleteChapterAction.java metodit
Action-luokka,
jota kutsutaan kun käyttäjä haluaa editoida haluamaansa dokumenttia.
Metodin nimi |
Metodin kuvaus |
EditDocAction |
Rakentaja. |
actionPerformed |
Tapahtuman tapahtuessa kutsuu
EditDocDialog.java:a kun prosessiaikaa on saatavilla. |
setDocumentPath |
Asettaa temp-polun. |
fileNotSelected |
Jos valittu tiedosto ei ole editoitava, luo
fileChooserin, jotta käyttäjä voi valita uudestaan editoitavan tiedoston. |
Taulukko 6: EditDocDialog.java metodit
Action-luokka,
jota kutsutaan kun käyttäjä haluaa editoida koosteen metatietoja.
Metodin nimi |
Metodin kuvaus |
EditProjMetaAction |
Rakentaja. |
actionPerformed |
Näyttää koosteen metatieto ikkunan tapahtuman
tapahtuessa. |
errorMessageDialog |
Luo virheilmoitusdialogin.. |
Taulukko 7: EditProjMetaAction.java metodit
Action-luokka,
jota kutsutaan kun käyttäjä haluaa editoida xml-tiedostoa suoraan xml-muodossa.
Metodin nimi |
Metodin kuvaus |
EditXMLAction |
Rakentaja. |
actionPerformed |
Tapahtuman tapahtuessa kutsuu EditDocDialog:ia kun prosessiaikaa on saatavilla. |
errorMessageDialog |
Luo virheilmoitusdialogin. |
Taulukko 8: EditXMLAction.java metodit
Action-luokka,
jota kutsutaan kun käyttäjä haluaa poistua ohjelmasta.
Metodin nimi |
Metodin kuvaus |
ExitAction |
Rakentaja. |
actionPerformed |
Tapahtuman tapahtuessa sulkee OpenOfficen ja
käyttöliittymän. |
Taulukko 9: ExitAction.java metodit
Action-luokka,
jota kutsutaan kun käyttäjä haluaa nähdä ohjelman avustuksen (help).
Metodin nimi |
Metodin kuvaus |
HelpAction |
Rakentaja. |
actionPerformed |
Tapahtuman tapahtuessa avaa help-tiedoston
www-selaimeen. |
errorMessageDialog |
Luo virheilmoitusdialogin. |
Taulukko 10: HelpAction.java metodit
Action-luokka,
jota kutsutaan kun käyttäjä haluaa luoda uuden dokumentin.
Metodin nimi |
Metodin kuvaus |
NewDocAction |
Rakentaja. |
actionPerformed |
Tapahtuman tapahtuessa kutsuu NewDocDialog:a kun prosessiaikaa on saatavilla. |
Taulukko 11: NewDocAction.java metodit
Action-luokka, jota
kutsutaan kun käyttäjä haluaa luoda uuden koosteen.
Metodin nimi |
Metodin kuvaus |
NewProjAction |
Rakentaja. |
actionPerformed |
Tapahtuman tapahtuessa kutsuu setNewProjectFile-metodia. |
setNewProjectFile |
Kutsuu NewProjDialog:a. |
setProjectPath |
Asettaa koosteen polun. |
Taulukko 12: NewProjAction.java metodit
Action-luokka,
jota kutsutaan kun käyttäjä haluaa muuttaa ohjelman asetuksia.
Metodin nimi |
Metodin kuvaus |
OptionsAction |
Rakentaja. |
actionPerformed |
Tapahtuman tapahtuessa kutsuu OptionsDialog:a kun prosessiaikaa on saatavilla. |
Taulukko 13: OptionsAction.java metodit
Action-luokka,
jota kutsutaan kun käyttäjä haluaa esikatsella valittua dokumenttia html-muodossa.
Metodin nimi |
Metodin kuvaus |
PreviewHTMLAction |
Rakentaja. |
actionPerformed |
Tapahtuman tapahtuessa näyttää valitun
dokumentin HTML-version sellaisessa muodossa kuin se näkyisi osana koostetta. |
Taulukko 14: PreviewHTMLAction.java metodit
Action-luokka,
jota kutsutaan kun käyttäjä haluaa esikatsella valittua dokumenttia
html-muodossa.
Metodin nimi |
Metodin kuvaus |
PreviewHTMLAction |
Rakentaja. |
actionPerformed |
Tapahtuman tapahtuessa näyttää valitun dokumentin
PDF-version sellaisessa muodossa kuin se näkyisi osana koostetta. |
Taulukko 15: PreviewPDFAction.java metodit
Action-luokka,
jota kutsutaan kun käyttäjä haluaa viedä muokkaamansa tiedostot
versionhallintaan. Tätä luokkaa ei ole toteutettu vielä sovelluksen tässä
versiossa, muuten kuin että se on olemassa. Toiminnallisuuksia luokalla ei ole
rankentajaa lukuun ottamatta.
Beans-moduuliin sisältyviä luokkia tarvitaan puunäkymän toteutuksessa. Moduulin
luokat esittävät puumalleja, eli informaatiota hierarkkiseen muotoon
järjestettynä. JTree-komponentista
perityn paketin luokat toimivat graafisena esitysalustana Tree-moduulin TreeModel-luokille. Käytännössä tämä tarkoittaa sitä, että sovelluksen puumallit
luodaan ja niiden sisältöä muokataan Tree-moduulin
luokissa, mutta niiden esittämiseen tarvitaan yhtä ylemmän tason rajapintaa,
jonka Beans-moduulin luokat tarjoavat.
JFileTree periytyy JTree:stä. Se käyttää FileTreeModel:a TreeModel:aan. Sillä on otsikoidut reunukset ja jokainen JFileTree:n instanssi liittyy yhteen FileNodeTransferHandler:iin. Vakiona TreeSelectionModel tukee ainoastaan SINGLE_TREE_SELECTION:a.
Metodin nimi |
Metodin kuvaus |
getDefaultFileTreeModel |
Staattinen metodi esimerkki modelin luontia
varten. |
setModel |
Kuormitettu metodi uuden FileTreeModel:n luomista ja asettamista varten. |
Taulukko 16: JFileTree.java metodit
Datatransfer-moduuli sisältää puunäkymien raahaustoiminnon
toteutuksessa tarvittavat luokat. Java ei tarjonnut valmista toteutusta
puunäkymissä tarvittaville raahaustoiminnoille, joten kaikki raahaamiseen
liittyvät toiminnot pitää toteuttaa itse.
Siirronkäsittelijä
tiedostojen raahaamiseen puusta puuhun.
Metodin nimi |
Metodin kuvaus |
getSource |
Palauttaa JFileTree:n, josta siirrettävä komponentti on lähtöisin. |
getDraggedNode |
Palauttaa solmun jota ollaan raahamassa. |
importData |
Asettaa raahatun solmun siihen osoitettuun
paikkaan. |
Taulukko 17: FileNodeTransferHandler.java metodit.
Dialogs-moduuliin on sisällytetty kaikki sovelluksen dialogit. Niitä tarvitaan
useimmiten jonkin toiminnon käynnistyksen tai suorituksen yhteydessä.
Esimerkiksi Uusi dokumentti -painiketta
painettaessa käyttäjälle aukeaa dialogi, johon hän syöttää laadittavaan
dokumenttiin liittyviä kuvailutietoja. Dialogit käynnistetään actions-moduulin luokista.
Dialogi kysyy dokumentin meta-tiedot käyttäjältä ja järjestelmältä. Tämän jälkeen luokkaa, joka avaa dokumentin OpenOffice:n editoitavaksi.
Metodin nimi |
Metodin kuvaus |
updateFields |
Päivittää dialogin kentät. |
createPhaseVector |
Luo vaihe-vektorin joka sisältää dokumentin
vaihtoehtoiset vaiheet. Käytetään jComboBoxPhase:ssa. |
editDocJButtonCancelActionPerformed |
Cancel-painike painettaessa laittaa dialogin
piiloon. |
editDocJButtonOKActionPerformed |
OK-painike painettaessa asettaa kaikkien
tekstikenttien sisällöt muuttujiin ja tarkistaa että tiedosto on valittuna.
Avaa valitun tiedoston OpenOffice:een editoitavaksi ja tämän jälkeen laittaa
dialogin piiloon. |
setMetaInfo |
Asettaa dokumentin metatiedot dialogista
dokumenttiin. |
getMetaInfo |
Hakee dokumentilta sen metatiedot ja asettaa ne
muuttujiin. |
Taulukko 18: EditDocDialog.java metodit
Kysyy
käyttäjätiedot käyttäjältä. Tallentaa tiedot xml-tiedostoon.
Metodin nimi |
Metodin kuvaus |
getUserInfo |
Hakee edellisen käyttäjän tiedot xml-tiedostosta
ja asettaa ne dialogin tekstikenttiin. |
loginJButtonOKActionPerformed |
Kun OK-painike on painettu asettaa
käyttäjätiedot dialogin kentistä muuttujiin ja xml-tiedostoon. |
exit |
Sulkee prosessin. |
loginJButtonCancelActionPerformed |
Kutsuu exit-metodia kun CANCEL-painike on painettu. |
windowClosing |
Kun dialogi on sulkeutumassa kutsuu exit-metodia. Toisin sanoen jos käyttäjä
painaa X-nappia ikkunassa. |
Taulukko 19: LoginDialog.java metodit
Dialogi kysyy
dokumentin metatiedot käyttäjältä ja järjestelmältä. Tämän jälkeen aukaisee
uuden dokumentin tietyllä asiakirjamallilla OpenOffice:en muokattavaksi.
Metodin nimi |
Metodin kuvaus |
formatFields |
Alustaa dialogin kentät kun dialogia käytetään
uudestaan. |
createPhaseVector |
Luo vaihe-vektorin joka sisältää dokumentin
vaihtoehtoiset vaiheet. Käytetään jComboBoxPhase:ssa. |
newDocJButtonFileActionPerformed |
Kun File-painiketta on painettu luo
tiedostovalitsimen ja sen jälkeen tiedoston, jonka käyttäjä on valinnut tai
kirjoittanut. Lisäksi laittaa tiedoston polun dialogin tekstikenttään. |
newDocJButtonCancelActionPerformed |
Kun CANCEL-painiketta on painettu, laittaa
dialogin piiloon. |
newDocJButtonOKActionPerformed |
Kun OK- painiketta on painettu asettaa
tekstikenttien arvot muuttujiin ja tarkistaa onko tiedosto valittu. Tämän
jälkeen laittaa dialogin piiloon jos tiedosto on valittu. Tämän jälkeen avaa
tiedoston OpenOffice:en tietyllä asiakirjamallilla. |
getMetaInfo |
Hakee käyttäjän tiedot LoginDialogilta. |
setMetaInfo |
Hakee dokumentin vaiheen ja kommentit
tekstikentistä ja tarkistaa että tiedosto on valittu. Luo uuden Versio- ja
Dokutieto-olion kyseisellä Versio-oliolla. |
Taulukko 20: NewDocDialog.java metodit
Dialogi kysyy
uuden koosteen metatiedot ja asettaa ne sitten koostetiedoston luonnin yhteydessä
siihen.
Metodin nimi |
Metodin kuvaus |
updateFields |
Päivittää dialogin kentät kun tiedot vaihtuvat. |
getMetaInfo |
Hakee metatiedot LoginDialog:lta ja kooste.xml-tiedostolta. |
formatFields |
Tyhjentää dialogin kentät ja laittaa dialogin
piiloon. |
newProjJButtonOKActionPerformed |
Kun OK-painiketta on painettu, laukaisee
metatietojen kirjoittamisen kooste.xml-tiedostoon. |
newProjJButtonCancelActionPerformed |
Kun CANCEL-painiketta on painettu laittaa
dialogin piiloon ja tyhjentää sen kentät. |
Taulukko 21: NewProjDialog.java metodit
Dialogilla
käyttäjä voi muokata sovellukseen liittyviä asetuksia, kuten vaikka muiden
käytettävien sovellusten polkuja.
Metodin nimi |
Metodin kuvaus |
wasCancelled |
Tarkistaa onko Cancel-painiketta painettu
edellisellä kerralla kun dialogi oli auki. |
getOptions |
Hakee asetukset asetustiedostosta. |
fileChooserOptions |
Luo tiedostovalitsimen tiedoston tai hakemiston
valintaa varten. |
OptionsJButtonHaeActionPerformed |
Kutsuu fileChooserOptions-metodia asetuksen valintaa varten ja tämän
jälkeen asettaa valinnan tekstikenttään. |
OptionsJButtonCancelActionActionPerformed |
Laittaa dialogin piiloon. |
OptionsJButtonOKActionActionPerformed |
Kutsuu xml-kirjoittajaa, joka kirjoittaa uudet
asetukset asetustiedostoon. Tämän jälkeen laittaa dialogin piiloon. |
Taulukko 22: OptionsDialog.java metodit
Events-moduuli sisältää sovelluksen yleiset kuuntelijaluokat, joiden avulla
pystytään suorittamaan toiminnallisuuksia, kun jokin haluttu tapahtuma tapahtuu
vaikkapa toisessa sovelluksessa.
Kuuntelijaliittymä,
joka kuuntelee haluttuja OpenOffice.org tapahtumia.
Metodin nimi |
Metodin kuvaus |
notifyOOoEvent |
Asettaa kuuntelijan halutuntyyppiselle
tapahtumalle. |
Taulukko 23: OOoEventListener.java metodit
Filters-moduuli sisältää suodattamiseen liittyvät luokat. Näitä luokkia käytetään
esimerkiksi tiedostonimien karsimiseen sekä niillä estetään tiettyjen
erikoismerkkien käyttöä erilaisissa nimeämisissä.
Luokalla luodaan suodattimia,
jotka suodattavat elementtejä nimen perusteella.
Metodin nimi |
Metodin kuvaus |
FilterByName |
Rakentaja. Luo suodattimen. |
matches |
Metodi vertaa annettua elementtiä luotuun
suodattimeen. |
Taulukko 24: FilterByName.java metodit
Luokan tarkoitus
on etsiä elementti sen sallitun nimen perusteella.
Metodin nimi |
Metodin kuvaus |
FilterByQualifiedName |
Rakentaja. Luo uuden suodattimen. |
matches |
Metodi vertaa annettua elementtiä luotuun
suodattimeen. |
Taulukko 25: FilterByQualifiedName.java metodit
Helper-moduuli sisältään sovelluksen monikielisyyteen liittyvän luokan, sekä
sovelluksen apuluokat, joita käytetään esimerkiksi OpenOffice:n ja XML:n
käsittelyyn.
Luokka käsittelee
ohjelman monikielisyyteen liittyvät komponentit. Tältä luokalta kysytään koodissa
komponenttien tekstit ja vihjeet. Eli käytännössä kaikki selväkieliset lauseet
haetaan tältä luokalta koodissa. Etuna suoraan hardkoodaamiseen on että
ainoastaan muuttamalla kielitunnistetta koodissa ja kirjoittamalla toinen kieli
yhteen tiedostoon voidaan vaihtaa sovelluksen käyttämää kieltä.
Metodin nimi |
Metodin kuvaus |
setTranslationFileName |
Asettaa tiedoston jossa käännökset sijaitsevat. |
getTranslationFileName |
Palauttaa tiedoston jossa käännökset
sijaitsevat. |
setDefaultLanguageCode |
Asettaa oletuskielikoodin. |
getDefaultLanguageCode |
Palauttaa oletuskielikoodin. |
getCorrespondingWord |
Hakee sanan, joka vastaa annettua avainta. |
setTranslationStream |
Lukee käännökset stereamista(kun ne ovat
.jar-paketissa). |
Taulukko 26: MultiLang.java metodit
Luokka tarjoaa
helppokäyttöisen rajapinnan OpenOffice 2.0 sovelluksesta. Luokka suorittaa myös
seuraavat toiminnot: piilottaa komponentit joita ei haluta näyttää käyttäjälle,
luo yhteyden OpenOffice:en ja luo kustomoidun tyylidialogin.
Metodin nimi |
Metodin kuvaus |
getDocComp |
Luo docType olion. |
getRemoteServiceManager |
Palauttaa paella olevan OO:n ObjectFactory:n. |
enableCommands |
Ottaa käyttöön/poistaa käytöstä listatut
komennot. |
hideUIElements |
Piilottaa annetut käyttöliittymäelementit. |
hideElement |
Piilottaa sen käyttöliittymäelementin, johon parametri
viittaa. Lisää parametrin mukaisen elementin piilotettujen elementtien
listaan. |
showElements |
Asetttaa kaikki piilotetut elementit näkyviin. |
useWriter |
Avaa annetun dokumentin OpenOffice:en. |
getTransformedOOStyleName |
Palauttaa muunnetun tyylin nimen. |
createDialog |
Luo ei-modaalisen tyyli-ikkunan. |
closeWriter |
Ottaa komennot käyttöön, laittaa kaikki
piilotetut elementit näkyviin, laittaa xRemoteContext referenssin ”null” ja
tuhoaa itsetehdyn tyyli-ikkunan. |
addOOoEventListener |
Luo OpenOffice:n tapahtumakuuntelijan. |
notifyEvent |
Kutsuu jokaista kuuntelijan metodia. |
styleItemChanged |
Metodia kutsutaan kun tyyli-ikkunassa tehdään
muutoksia. |
Aliluokka |
Aliluokan kuvaus |
PopupMenuInterceptor |
Estää dokumentin taustavalikon käytön. |
EventListenerImpl |
Kuuntelee tiettyä dokumentin tapahtumaa. |
ItemListenerImpl |
Kuuntelee tyyli-ikkunan
valintoja. |
Taulukko 27: OOoHelper.java metodit
Luokka sisältää
erilaisiin tarkoitukseen olevia apumetodeja.
Metodin nimi |
Metodin kuvaus |
date2laatimis_pvm |
Luo laatimis_pvm elementin päivämäärästä. |
laatimis_pvm2date |
Pilkkoo laatimis_pvm elementistä päivämäärän. |
booleanKyllaEi |
Palauttaa tekstin boolean-arvoista. |
makeRelativePath |
Luo relatiivisen polun annetuista parametreista. |
breakToComponents |
Pilkkoo tiedoston polun osiin. |
unwindEx |
Purkaa poikkeuksen ja tulostaa sen. |
isWindows |
Palauttaa onko käytetty käyttöjärjestelmä
windows. |
runMake |
Ajaa makedir-komennon annetuilla parametreilla. |
hasProcessFinished |
Paluttaa onko prosessi päättynyt. |
createEsikatseluXml |
Luo esikatseludokumentin. |
Taulukko 28: RandomHelpers.java
IO-moduuli sisältää dialogien tiedostonäkymien toteutuksessa tarvittavat
luokat. Esimerkiksi Muokkaa dokumenttia -painiketta
painettaessa käyttäjän pitää valita muokattavan tiedosto. Valinta tehdään
tiedostonäkymässä, jonka toteutuksessa käytetään IO-moduulin luokkia.
Luokka luo
tiedostofiltereitä, joita käytetään tiedostonvalitsimissa.
Metodin nimi |
Metodin kuvaus |
FileFilterFC |
Rakentaja. Parametri extension ei sisällä
’.’-merkkiä. |
accept |
Hyväksyy tiedostot, joiden pääte on
hyväksyttävä. |
getDescription |
Palauttaa tiedostotyypin kuvauksen ja päätteen. |
getExtension |
Palauttaa tiedostotyypin päätteen. |
Taulukko 29: FileFilterFC.java metodit
Luokka poistaa
sille annetuista poikkeuskuvauksista nimetyt elementit ja kirjoittaa sen sitten
log-tiedostoon.
Metodin nimi |
Metodin kuvaus |
LogWriter |
Rakentaja avaa tiedoston kerran ja asettaa
poistettavat elementit listaan. |
Log |
Kirjoittaa lauseen, poikkeusviestin ja pinon
logitiedostoon. |
Taulukko 30: LogWriter.java metodit
Luokka on
muokattu java.swing.JFileChooser.
Eli luokka luo tiedostovalitsimen annetuilla parametreilla.
Metodin nimi |
Metodin kuvaus |
approveSelection |
Uudelleenkirjoitettu javan JFileChooser. |
showOverwriteWarning |
Näyttää varoitusviestin siitä, että valittu
tiedosto tullaan korvaamaan. |
Taulukko 31: ModFileChooser.java metodit
Luokkaa lukee
sovelluksen asetuksen käyttäjän määräämästä XML-tiedostosta.
Metodin nimi |
Metodin kuvaus |
OptionReader |
Rakentaja. Luo dokumentin asetustiedostosta. |
wereDefaultsUsed |
Palauttaa käytetäänkö oletusasetuksia vai ei. |
getElementContent |
Palauttaa elementin tekstimuodossa. |
setElementContent |
Asettaa tekstimuotoisen sisällön perusteella
elementin. |
Taulukko 32: OptionReader.java metodit
Kooste-moduuli sisältää koosteen tekoon ja muokkaukseen liittyvät toiminnalliset
luokat.
Luo alaluvut
koosteeseen ja näyttää ne keskimmäisessä puussa.
Metodin nimi |
Metodin kuvaus |
Alaluku |
Rakentaja. Lukee alaluvun annetusta elementistä
tai luo uuden alaluvun. |
toElement |
Tallentaa alaluvun annettuun elementtiin. |
Taulukko 33: Alaluku.java metodit
Luokka on
rajapinta (interface) luvulle ja aliluvulle.
Luokka on itse tehty
poikkeus, joka peritään normaalista java:n
Exception-luokasta.
Luokka luo
laatija-elementin koostetta varten.
Metodin nimi |
Metodin kuvaus |
Laatija |
Rakentaja. Luo laatijan elementistä tai
vektorista |
toElement |
Tallentaa alaluvun annettuun elementtiin. |
Taulukko 34: Laatija.java metodit
Luokka asettaa
luvun koosteeseen ja näyttää sen keskimmäisessä puussa.
Metodin nimi |
Metodin kuvaus |
Luku |
Rakentaja. Luo luku-olion tiedostosta ja asettaa
sen keskimmäiseen puuhun. |
toElement |
Tallentaa alaluvun annettuun elementtiin. |
Taulukko 35: Luku.java metodit
Luokka luo
koosteeseen luvut-elementin, joka sisältään viitteet koosteeseen kuuluvista
luvuista.
Metodin nimi |
Metodin kuvaus |
Luvut |
Rakentaja. Lisää viitteet lukuihin kooste.xml tiedostoon. |
Taulukko 36: Luvut.java metodit
Luokka luo
koosteen kooste.xml tiedostosta ja
lukutiedostoista.
Metodin nimi |
Metodin kuvaus |
fromDocument |
Lukee annetun dokumenttiolion. |
writeToFile |
Kirjoittaa koosteen tiedostoon. |
OpasKooste |
Rakentaja. Lukee koosteen tieostosta. |
Taulukko 37: OpasKooste.java metodit
Luokka luo
metatieto-olion koostetta varten ja kirjoittaa olion koosteeseen.
Metodin nimi |
Metodin kuvaus |
OpasMeta |
Rakentaja. Luo metaolion. |
Taulukko 38: OpasMeta.java metodit
Tree-moduuliin kuuluvat luokat pitävät sisällään puumallin ja sen solmut.
Puumallin rakenne ja sisältö määritellään puumallin luomisen yhteydessä.
Luokka käsittelee
puissa näkyviä ikoneita. Jos solmu on hakemisto, ikonin tulee aina kuvata hakemistoa
riippumatta siitä onko hakemisto tyhjä vai ei. Jos taas solmu on tiedosto,
tulee ikonin kuvata tiedostoa.
Luokka perii DefaultTreeModel:in ominaisuudet. Luo
rajapinnan (interface) FileTreeModel:in ja FileTreeNodes:in
käsittelyyn.
Luokka on
tiedostopuun solmun käsittelijä.
Metodin nimi |
Metodin kuvaus |
FileTreeNode |
Rakentaja. Luo uuden solmun tiedostosta. |
createNodes |
Luo solmut ja asettaa ne tämänhetkisen solmun
lapsisolmuiksi. |
Taulukko 39: FileTreeNode.java metodit
Asettaa koosteen
projektihakemiston.
Asettaa koosteen
projektitiedoston.
Luokka luo puiden
solmuja kuvaavat ikonit.
Asettaa annetun
tiedostosolmun haluttuun paikkaan.
Luo puun
annetusta hakemistosta rekursiivisesti.
XML-moduuli sisältää XSLT-muunnoksissa käytettävät luokat. XSLT-muunnoksia
tarvitaan esimerkiksi silloin kun XML-dokumentti muunnetaan ODT-muotoon tai
toisinpäin.
Luokka luo ja
muokkaa dokumentin tietoja kun dokumenttia luodaan tai vanhaa dokumenttia muokataan.
Metodin nimi |
Metodin kuvaus |
Dokutieto |
Rakentaja. Luo uuden dokutiedon, lukee sen
tiedostosta tai itse dokumentista. |
createNewDoc |
Luo uuden xml-tiedoston jossa luotu dokutieto. |
setDocInfo |
Asettaa dokutiedon valittuun dokumenttiin. |
Taulukko 40: Dokutieto.java metodit
Luokka muuntaa
sovelluksen merkkauksen mukaisen XML-tiedoston OpenOfficen käyttämän
ODT-merkkauksen mukaiseksi kutsumalla XSLTTrans-luokkaa.
Luokka on
tiedostosuodatin, joka tarkistaa onko käytetyt tiedostot luku.dtd-merkkauksen mukaisia.
Luokka muuntaa
OpenOfficen käyttämän ODT-merkkauksen mukaisen dokumentin sovelluksen käyttämän
XML-merkkauksen mukaiseksi kutsumalla XSLTTrans-luokkaa.
Luokka pitää
sisällään tiedon dokumenteista, jotka on otettu muokkaukseen OpenOffice:n sekä
tiedon milloin dokumenttia on viimeksi muokattu. Käyttäjän tallentaessa
dokumentin, se muunnetaan saman tien sovelluksen merkkauksen mukaiseksi
XML-dokumentiksi kutsumalla XSLTTrans-luokkaa.
Metodin nimi |
Metodin kuvaus |
makeTransform |
Suorittaa muunnoksen kutsumalla XSLTTrans-luokkaa. |
putValue |
Asettaa muokkaukseen menevän dokumentin tiedot HashMap-taulukkoon. |
Taulukko 41: ODTModListener.java metodit
Luokka lataa XML-tiedostot
uudestaan ohjelmaan.
Luokka luo uuden
version dokumentille tai täydentää vanhaan versioon uuden tiedot dokumenttia
muokatessa.
Metodin nimi |
Metodin kuvaus |
Versio |
Rakentaja. Luo version XML-elementistä. |
toElement |
Tallentaa versiotiedot dokumenttiin. |
Taulukko 42: Versio.java metodit
Luokka on
testausluokka käytetylle XSL:lle.
Luokan
toiminnallisuuksiin kuuluu XML-dokumentin merkkauksen muuntaminen
ODT-dokumentin merkkauksen mukaiseksi ja toisinpäin.
Metodin nimi |
Metodin kuvaus |
XSLTTrans |
Rakentaja. Käynnistää muunnokseen tarvittavat kääntäjät
ja luo väliaikaistiedostot. |
luku2odt |
Muuntaa XML-dokumentin ODT-dokumentiksi ja luo
backup-tiedostot alkuperäisistä tiedostoista. |
odt2luku |
Muuntaa ODT-dokumentin XML-dokumentiksi ja luo
backup-tiedostot alkuperäisistä tiedostoista. |
Taulukko 43: XSLTTrans.java metodit
Sovellukselle asetettiin projektin
alkuvaiheessa tavoitteet, jotka ilmenevät vaatimusmäärittelystä [1]. Tässä
luvussa käydään läpi vaatimusmäärittelyssä esitetyt vaatimukset ja niiden
toteutuminen yksi kerrallaan. Ensiksi esitellään vaatimusmäärittelyssä esille
tulleet vaatimukset ja sitten niiden toteutuminen.
Seuraavissa
taulukossa käydään läpi sovellukseen liittyvät vaatimukset (taulukko 44-46),
jotka sovellukselle asetettiin vaatimusmäärittelyssä.
Vaatimus |
Kuvaus |
Kaksi erillistä
käyttöliittymää. |
Sisällöntuottajalla ja koostajalla tulisi olla
toiminnallisuudeltaan erilaiset käyttöliittymät. Sisällöntuottajan
käyttöliittymä on osa koostajan käyttöliittymän toiminnallisuudesta. |
Taulukko 44: Sovelluksen yleiset vaatimukset
Vaatimus |
Kuvaus |
Sovelluksen
avaaminen. |
Sovellus avautuu käyttöjärjestelmästä. |
Sisäänkirjautuminen. |
Käyttäjä kirjautuu sisään sovellukseen.
Salasanan ja tunnuksen lisäksi käyttäjän pitää valita myös käyttäjäryhmä,
johon hän kuuluu. Käyttäjäryhmän valinta määrittää sen millainen
käyttöliittymä käyttäjälle avautuu. |
Uuden sisällön
tuottaminen. |
Käyttäjä painaa Uusi dokumentti -painiketta, minkä jälkeen sovellus kysyy uuden
dokumentin nimeä. |
Olemassa
olevien dokumenttien muokkaaminen. |
Käyttäjä painaa Muokkaa dokumenttia -painiketta, minkä jälkeen valittu dokumentti
aukeaa editorikäyttöliittymään. |
Muilla
editoreilla laaditun dokumentin tai raakatekstin tuominen. |
Käyttäjä painaa Tuo dokumentti -painiketta, jolloin hänelle tarjoutuu
mahdollisuus avata muilla editoreilla muokattu dokumentti editorikäyttöliittymään.
Editorikäyttöliittymä muokkaa dokumentin ensin XML:ksi ja avaa sen takaisin
ODT-muotoon. Tämän jälkeen käyttäjä voi lisätä dokumenttiin haluamansa
tyylimäärittelyt. |
Muokatun
dokumentin tallentaminen. |
Käyttäjä painaa Tallenna-painiketta, jolloin käyttäjän muokkaama dokumentti
tallennetaan. Tallennuksen yhteydessä OpenOfficen ODT-dokumenttimuoto
muunnettaan XSLT-muunnoksella XML-dokumentiksi. |
Editorikäyttöliittymän
sulkeminen. |
Käyttäjä sulkee editorikäyttöliittymän Lopeta-painiketta painamalla. Sovellus
palaa peruskäyttöliittymä-tilaan. Mikäli käyttäjällä on tallentamaton
tiedosto avattuna, niin ohjelma kysyy haluaako käyttäjä tallentaa tiedostoon
tehdyt muutokset. |
XML-dokumenttien
esikatselu HTML- tai PDF-muodossa. |
Käyttäjä voi esikatsella tuottamiaan
dokumentteja HTML- tai PDF-muodossa valitsemalla esikatseltavan tiedoston Tiedostot-näkymästä. Esikatselu
näyttää dokumentit luku-DTD:n mukaisella ulkoasulla, eli sellaisena miltä ne
tulevat näyttämään opinto-oppaassa. Esikatselu avautuu erilliseen ikkunaan
esikatseluformaatista riippumatta. |
Dokumentin
vieminen versionhallintajärjestelmään. |
Käyttäjä valitsee haluamansa tiedoston
tiedostot-näkymästä ja painaa Commit –painiketta.
Tämän jälkeen valittu dokumentti tallennetaan versionhallintajärjestelmään. |
Sovelluksen
sulkeminen. |
Käyttäjä sulkee sovelluksen painamalla Lopeta-painiketta. |
Taulukko 45: Sisällöntuottajan käyttötapauksien vaatimukset
Vaatimus |
Kuvaus |
Uuden
opinto-opas –koosteen määrittely. |
Käyttäjä painaa
Uusi kooste -painiketta, minkä
jälkeen sovellus kysyy uuden koosteen nimeä. Nimeämisessä sallitut merkit
noudattavat normaalin tiedostojärjestelmän nimeämiskäytänteitä. |
Koosteeseen
sisällytettävien dokumenttien valinta. |
Käyttäjä voi
liittää koosteeseen uusia dokumentteja, poistaa niitä sekä vaihtaa
dokumenttien keskinäistä järjestystä opinto-oppaassa. |
Koosteeseen on
liitetty vähintään yksi dokumentti. |
Käyttäjä painaa
Laadi kooste -painiketta, jolloin
kooste koostetaan yhdeksi XML-dokumentiksi. Koostamisen aloituksen yhteydessä
käyttäjältä kysytään, minkä nimiseen tiedostoon XML-dokumentti tallennetaan
versionhallintajärjestelmässä. |
Muutosten
esittäminen vanhoihin opas-versioihin nähden. |
Käyttäjä painaa
Näytä muutokset -painiketta,
jolloin käyttäjälle avautuu lista saman dokumentin aiemmista versioista. Kun
haluttu versio on valittu, sovellus näyttää vertailtavien dokumenttien väliset
eroavaisuudet. |
Käyttäjällä on
opinto-opas avattuna. |
Käyttäjä
julkaisee opinto-oppaan HTML- tai PDF-versiona. Julkaisu tapahtuu painamalla Julkaise HTML- tai Julkaise PDF -painiketta, minkä
jälkeen opinto-opas muunnetaan käyttäjän valitsemaan julkaisumuotoon.
HTML-julkaisu tallennetaan versionhallintajärjestelmään ja tarvittaessa myös
WWW-palvelimelle. PDF-julkaisu tallennetaan ainoastaan
versionhallintajärjestelmään. |
Taulukko 46: Koostajan käyttötapauksien vaatimukset
Seuraavissa
taulukoissa käydään läpi sovelluksen ohjelmallisten vaatimusten toteutuminen (taulukko
47-49) tämänhetkisessä sovelluksen versiossa.
Vaatimus |
Toteutuminen |
Kaksi erillistä
käyttöliittymää. |
Sovelluksen tähän versioon toteutettiin
ainoastaan yksi käyttöliittymä, joka on koostajan tarpeisiin.
Toiminnallisuuksiltaan käyttöliittymä on edelleen puutteellinen. |
Taulukko 47: Sovelluksen yleisten vaatimusten
toteutuminen
Vaatimus |
Toteutuminen |
Sovelluksen
avaaminen. |
Sovellus avautuu käyttöjärjestelmästä, kuten
muutkin käyttöjärjestelmästä avattavat sovellukset avautuvat. |
Sisäänkirjautuminen. |
Sovelluksen sisäänkirjautuminen tapahtuu
ainoastaan syöttämällä tarvittavat tiedot niille varattuihin kenttiin.
Sisäänkirjautumisessa ei kysytä käyttäjäryhmää, käyttäjätunnusta eikä
salasanaa. Sisäänkirjautumisen korppikytkentää ei ole toteutettu. |
Uuden sisällön
tuottaminen. |
Käyttäjän painaessa Uusi dokumentti-painiketta, häneltä kysytään sovelluksen
metatiedot ennen dokumentin luomista. Tämän jälkeen dokumentti avataan
OpenOffice-ohjelmaan. |
Olemassa olevien
dokumenttien muokkaaminen. |
Käyttäjän painaessa Muokkaa dokumenttia-painiketta dokumentti avautuu
OpenOffice-ohjelmaan muokattavaksi. |
Muilla
editoreilla laaditun dokumentin tai raakatekstin tuominen. |
Vaatimusta ei toteutettu lainkaan sovelluksen
tähän versioon. |
Muokatun
dokumentin tallentaminen. |
Vaatimus toteutettiin kuten sen kuvaus kertoo. |
Editorikäyttöliittymän
sulkeminen. |
Editorikäyttöliittymän sulkeminen tapahtuu kuten
normaalistikin OpenOfficea käytettäessä. |
XML-dokumenttien
esikatselu HTML- tai PDF-muodossa. |
Esikatselu tapahtuu kuten vaatimuksen
kuvauksesta käy ilmi muuten, että itse dokumentti avautuu joko www-selaimeen
tai pdf-lukijaan, jotka käyttäjä on itse määritellyt. |
Dokumentin
vieminen versionhallintajärjestelmään. |
Sovelluksen tähän versioon ei toteutettu
versionhallintajärjestelmää vaan dokumentit sijaitsevat pelkästään
verkkolevyllä. |
Sovelluksen
sulkeminen. |
Toteutettu kuten kuvauksessa. |
Taulukko 48: Sisällöntuottajan käyttötapauksien
vaatimusten toteutuminen
Vaatimus |
Toteutuminen |
Uuden
opinto-opas –koosteen määrittely. |
Käyttäjä voi
luoda uuden koosteen painamalla Uusi
kooste-painiketta. Tämä jälkeen käyttäjän täytyy syöttää koosteen metatiedot
niille varattuihin kenttiin ja tämän jälkeen hyväksy koosteen luonti. Näiden
toimintojen jälkeen ohjelma luo uuden koosteen. |
Koosteeseen
sisällytettävien dokumenttien valinta. |
Dokumenttien
sisällyttäminen koosteeseen onnistuu, lukuunottamatta käyttöä haittaavia
lieviä Javan bugeja. |
Koosteeseen on
liitetty vähintään yksi dokumentti. |
Vaatimusta ei
toteutettu vaan koosteen julkaisu on ainoastaan yksi toiminto. |
Muutosten
esittäminen vanhoihin opas-versioihin nähden. |
Sovelluksen
tässä versiossa ei ole toteutettu tätä toiminnallisuutta. |
Käyttäjällä on
opinto-opas avattuna. |
Käyttäjä
julkaisee opinto-oppaan painamalla Julkaise-painiketta,
jolloin sovellus tekee oppaasta kaikki tarvittavat versiot. |
Taulukko 49: Koostajan käyttötapauksien vaatimusten
toteutuminen
Seuraavassa
taulukossa käydään läpi sovelluksen teknisten vaatimusten toteutuminen
(taulukko 50) tämänhetkisessä sovelluksen versiossa
Vaatimus |
Toteutuminen |
Sovellus toimii
Windows-ympäristössä. |
Sovellus toimii Windows-ympäristössä. |
Sovellus toimii
Linux-ympäristössä |
Sovellus toimii Linux-ympäristössä. |
Sovellus on
määritetty työasemasovellukseksi. |
Ei toteutettu. |
Sovelluksen
pitää pystyä käyttämään versionhallintajärjestelmää. |
Ei toteutettu. |
Sovelluksen
pitää pystyä kommunikoimaan Korppi-järjestelmän kanssa. |
Ei toteutettu. |
Sovelluksen
pitää pystyä keräämään tietoa tiedekunnan WWW-sivuilta. |
Ei toteutettu. |
Sovelluksen
editorikäyttöliittymä perustuu OpenOfficeen. |
Sovelluksen editorikäyttöliittymänä toimii
OpenOffice 2.0. |
Taulukko 50: Sovelluksen teknilliset vaatimukset ja
niiden toteutuminen
Sovellusta ei
ajanpuutteen vuoksi testattu erikseen. Testausta tehtiin ainoastaan sovelluksen
kehityksen yhteydessä, josta ei erillistä dokumentaatiota ole mahdollista
kirjoittaa. Niinpä varsinainen sovelluksen testaus jääkin jatkokehitykseen.
Tässä luvussa
käydään läpi mitä osia tai ideoita, jotka tulivat esille jossain vaiheessa
sovelluksen kehitystä, jäi toteuttamatta Kokako-projektin aikana ja jotka näin
ollen jäävät jatkokehityksen tehtäviksi. Yleisesti ottaen sovellukseen jäin
jonkin verran kehitettävää. Karkeasti arvioiden kehityskohteita voi olla juuri
ja juuri sen verran, että niistä saisi aikaan uuden sovellusprojektia.
Seuraavissa
taulukossa (taulukko 51) käydään läpi sovelluksen ohjelmalliset
jatkokehitysideat.
Jatkokehitysidea |
Idean kuvaus |
Sisällöntuottajan
käyttöliittymä. |
Sovellukseen tulisi toteuttaa käyttöliittymä
ainoastaan sisällöntuottajan toiminnoin, joka on ulkoasultaan poikkeava
koostajan käyttöliittymästä.(ks. [1] Vaatimusmäärittely) |
Sisäänkirjautuminen
korpin avulla. |
Sisäänkirjautumisessa käyttäjän tiedot ja
käyttäjäryhmä tulisi hakea korpista käyttäen hyväksi käyttäjän
korppi-käyttäjätunnusta ja -salasanaa. |
Muun kuin
OpenOffice 2.0-dokumentin tuominen sovellukseen. |
Käyttäjällä tulisi olla mahdollisuus tuoda
jollakin muulla sovelluksella laadittu dokumentti järjestelmään joka
automaattisesti avaa sen OpenOffice 2.0:aan tyylimäärityksiä varten. |
Versionhallintajärjestelmä. |
Dokumentit tulisi säilyttää
versionhallintajärjestelmässä niiden tuottamisen jälkeen, josta ne haetaan
käyttäjän koneelle muokkaamista varten käyttöliittymän toimesta käyttäjän
niin halutessa. |
Koosteen
dokumenttien valinta. |
Dokumenttien valinnassa on ongelmia johtuen
Javan bugeista. Näihin ongelmiin olisi hyvä löytää ratkaisu jos mahdollista. |
Versioerojen
näyttäminen dokumenteissa ja koosteissa. |
Kun versionhallinta on käytössä dokumenttien ja
koosteiden versioden eroja tulisi pystyä vertailemaan keskenään. |
Sovelluksesta
työasemasovellusversio. |
Sovellus tulisi toimia työasemasovelluksena, jos
esimerkiksi käyttäjä on versionhallintajärjestelmän ulkopuolella. |
Kommunikointi
www-palvelimen kanssa. |
Sovelluksen tulisi pystyä kommunikoimaan
IT-tiedekunnan www-palvelimen kanssa ja keräämään sieltä automaattisesti
tietoa. |
Monikielisyyskomponentti |
Monikielisyyskomponenttia ei ehditty toteuttaa
täysin loppuun asti. |
Ilmoitusikkuna
koostamisesta |
Näytölle tulisi erillinen ilmoitus kun
koostaminen käynnissä ja sen arvioitu kesto näkyisi siitä. |
Koostaminen
verkosta |
Käyttöliittymään voisi tehdä www-pohjaisen
hallintakäyttöliittymän, jonka avulla voisi koostaa dokumentteja. |
Context-menut |
Nämä menut tulisi ainakin olla puissa käytössä. |
Lukujen
järjestys |
Lukujen järjestystä olisi hyvä pystyä muuttamaan
raahaamalla. |
Käyttöliittymä |
Käyttöliittymän on melko raskas, jolloin siitä
tulee hidas käyttää. Mahdollisesti optimoimalla koodia siitä saisi nopeamman. |
OpenOffice |
Taulukkotyökalu, kuvatyökalu ja viitetyökalu. |
Testaus |
Ohjelman kunnollinen testaus ja testauksen
dokumentointi. |
Taulukko 51: Sovelluksen ohjelmalliset
jatkokehitysideat
Kokako-projektin
sovellusraportti-dokumentti kuvaa projektissa kehitetyn sovelluksen toteutusta
tekniseltä ja ohjelmalliselta kannalta. Tämän lisäksi dokumentissa on sovelluksen
koodiin liittyvät luokka- ja metodikuvaukset. Sovellusraportti pohjautuu
aiemmin laadittuihin sovellussuunnitelma ja vaatimusmäärittely-dokumentteihin.
Sovelluksen
toteutus sujui hiukan tahmeasti. Syynä tähän oli, että toteutuksesta suurin osa
oli olemassa olevien järjestelmien muokkaamista, joka aiheutti suuria ongelmia
paikoittain. Varsinkin OpenOffice:n rajapinta, XSLT ja java:n puuolioiden muokkaus teetti työtä. Sovelluksen valmiusaste
on arviolta keskeneräinen. Toiminnallisuuksiltaan sitä voisi juuri ja juuri käyttää
opinto-oppaan koostamiseen ja tuottamiseen, mutta se vaatisi hiukan myös
puhtaan XML:n osaamista.
[1] Kokako-ryhmä,
Kokako-vaatimusmäärittely
[2] Sun Microsystems, How to Write Doc Comments for the Javadoc Tool,
<URL: http://java.sun.com/j2se/javadoc/writingdoccomments/index.html>, viitattu 22.5.2006
[3] Kokako-ryhmä,
Kokako-sovellussuunnitelma