1 Johdanto
1.1 Tausta ja tarkoitus
Projektissa tuotettiin vaihtoehtoympäristö informaatiojärjestelmien harjoitustyön tekemiseen, nykyisen Oracle Web Server ympäristön tilalle. Vaihtoehtoympäristö perustuu laitoksen omaan tietokantapalvelimeen. Vaihtoehtoympäristöön toteutettiin komponentteja ja apuohjelmia, joiden tarkoituksena on helpottaa harjoitustyön tekemistä ja vähentää opeteltavien asioiden määrää. Komponenteista ja apuohjelmista syntyi Java-kielinen kirjasto, mitä harjoitustyön tekijä voi käyttää hyväkseen. Kirjaston nimi on wenla. Kirjaston avulla opiskelija tuottaa WWW-palvelimelle servlettejä, jotka tuottavat HTML-muotoisia sivuja käyttäjän WWW-selaimelle.
1.2 Käsitteitä
JDK Java Development Kit - Sun Microsystems:n Java kehitys- ja ajoympäristö.
HTML Internetissä olevissa dokumenteissa käytettävä standardoitu kuvauskieli.
1.3 Yleiskatsaus dokumenttiin
Dokumentin toisessa luvussa kuvataan tuotetun järjestelmän käyttöalue. Kolmannessa luvussa kerrotaan tehdyt muutokset määrittely- ja suunnitteludokumentin määrittelyihin. Luvusta löytyy myös osoite, mistä määrittely- ja suunnitteludokumenttien viimeisimmät versiot löytyvät. Neljännen luvun pääsisältö on toimintojen kuvaus, jossa kuvataan ensin koko järjestelmän arkkitehtuuri ja pääkomponentit erikseen. Viidennessä luvussa kuvataan rajoitteita järjestelmän toteutukselle ja noudatettavat standardit.
2 Yleiskuvaus
2.1 Sovellus alue
Projektin lopputuloksena syntyi Java-kielinen wenla-kirjasto, joka sisältää komponentteja ja apuohjelmia. Kirjasto on tarkoitettu avuksi käyttäjille, jotka tekevät WWW-muotoisia tietokantaohjelmia. Kirjasto sijoittuu fyysisesti WWW-palvelimelle.
Käyttäjät ohjelmoivat kirjastoa apuna käyttäen Java-kielisiä servlettejä palvelimelle, jotka muodostavat käyttäjälle WWW-selaimella näkyviä HTML-sivuja. Nämä HTML-sivut muodostavat käyttäjälle tietokantaohjelman käyttöliittymän.
2.2 Koko järjestelmä ja ohjelmiston rooli siinä
Projektissa tuotettiin vaihtoehtoympäristö informaatiojärjestelmien harjoitustyön tekemiseen. Järjestelmä on tarkoitettu toimimaan kaikissa ympäristöissä, joihin on saatavissa vähintään JDK 1.1.5.
3 Määrittely- ja suunnitteludokumentti
Määrittelydokumentti löytyy osoitteesta http://www.cs.helsinki.fi/group/wenla/dokut/maarittely102.html
Suunnitteludokumentti löytyy osoitteesta http://www.cs.helsinki.fi/group/wenla/dokut/suunnittelu040.html
3.1 Muutokset
Muutokset määrittelydokumentista suunnitteludokumenttiin:
Määrittelydokumentissa olevia metodien määrittelyjä on lisätty ja joitakin metodeita on siirretty taulukon käsittelystä lomakkeen käsittelyiksi. Myös luokkakaaviossa tulee olemaan enemmän luokkia kuin määrittelydokumentin kuvassa on.
Muutokset suunnitteludokumenttista toteutusdokumenttiin:
Yksi suunnitteludokumentissa mainittu luokka (Cell) poistettiin toteutuksen aikana tarpeettomana. Toteutuksen aikana lisättiin uusia tarpeelliseksi katsottuja luokkia.
4 Arkkitehtuurin kuvaus
4.1 Ohjelmiston toimintaperiaate
Esimerkki kirjaston koodin käyttämisestä:
Seuraavassa esitetään esimerkki kirjaston käytöstä HTML-sivun muodostamiseksi.
import wenla.*;
import java.io.*;
public class esimerkki
{
public static void main(String[] args)
{
wenla.Page p;
wenla.Form f;
wenla.Table t;
wenla.RadioGroup r;
wenla.ButtonGroup B;
PrintStream tulostus;
tulostus = System.out;
p = new Page(tulostus);
p. backImage("taustakuva.gif");
f = new Form(null,null,null,true);
p.addObject(f);
f.addHeading("Esimerkki lomake:");
t = new Table();
f.addObject(t);
t.defineCell(1,1, new PromptField("Nimi"));
t.defineCell(2,1, new TextField("Nimi","Nimi",30,30));
t.defineCell(1,2, new PromptField("Osoite"));
t.defineCell(2,2, new TextField("Osoite","Osoite",29,29));
t.defineCell(1,3, new PromptField("Puhelinnro"));
t.defineCell(2,3, new TextField("Puhelinnro","Puhelinnro",15,15));
t.defineCell(1,4, new PromptField("Sukupuoli"));
t.defineCell(2,4, r = new RadioGroup("Sukupuoli","Sukupuoli"));
r.addButton("Mies", "Mies");
r.addButton("Nainen", "Nainen");
t.defineCell(1,5, new PromptField("Muuta"));
t.defineCell(2,5, new TextField("Muuta","Muuta", 30, 30));
b = new ButtonGroup();
b.addButton("Lähetä","Submit","tehty");
b.addButton("Tyhjennä","Reset","");
f.addObject(b);
p.addFreeText("<hr>");
p.addFreeText("<p>Sivun loppuun voidaan lisätä tietoina
esimerkiksi viimeinen päivitysajankohta</p>");
p.printPage();
}
}
Kuva 4.1 Esimerkkilomake
Testauksessa käytettävä Koetietojen välitys -esimerkkijärjestelmä määriteltiin erilliseen dokumenttiin. Dokumentti löytyy tiedostosta http://www.cs.helsinki.fi/group/wenla/dokut/esisuun.doc.
4.2 Moduulit ja niiden väliset suhteet
Luokkakaavio löytyy erillisestä tiedostosta. Se liitetään ryhmän kotisivulle, kun se saadaan näkyviin WWW-selaimessa. Lähdekooditiedostot löytyvät hakemistosta /home/group/wenla/public_html/sorsat/valmiit. Käännetyt class-tiedostot löytyvät hakemistosta /home/group/wenla/public_html/sorsat/classes/wenla.
4.3 Tietokanta-arkkitehtuuri
Tietokantana käytetään laitoksen omaa tietokantapalvelinta. Kyselyt tehdään SQL-lauseilla, jotka käyttäjä itse kirjoittaa. Poikkeuksena laskurin lisääminen sivulle. Käyttäjä antaa vain taulunnimen, jossa haluaa pitää kirjaa sivulla käyntien lukumäärästä. Samankaltaisen poikkeuksen muodostaa Form-luokan toinen konstruktori, joka muodostaa annetusta taulusta halutuilla kentillä listamuotoisen lomakkeen.
4.4 Moduulikuvaukset
Moduuleja eli luokkia ympäristössä on 26. Seuraavissa aliluvuissa on selitetty tarkemmin mitä mikäkin luokka pitää sisällään.
4.4.1 Page-luokka
4.4.1.1 Yleiskuvaus
Page-luokan avulla käyttäjä voi luoda HTML-sivuja ja tehdä sivuille erilaisia määrityksiä, kuten määrittää taustakuvan.
4.4.1.2 Tietorakenteet
private Vector v
Vektoriin talletetaan sivulla olevat elementit.
private Vector vf
Vektoria käytetään sivulla olevien kehyksien osoitteiden talletukseen.
private boolean font
Tämä muuttuja ilmaisee, onko sivulle tehty tekstilajin, tekstin koon tai värin muutoksia. Jos on, liitetään automaattisesti sivun loppuun lopetusmerkki.
private boolean bold
Muuttuja ilmaisee onko sivulle annettu lihavointi-komento. Jos on ja ei ole lopetettu, tulee sivun loppuun automaattisesti lihavoinnin lopetusmerkki.
private boolean italic
Muuttuja ilmaisee onko sivulle annettu kursivointi-komento. Jos on ja ei ole lopetettu, tulee sivun loppuun automaattisesti kursivoinnin lopetusmerkki.
private boolean clock
Muuttuja ilmaisee onko sivulle tehty kello. Jos on, toista kelloa ei enää lisätä.
private boolean errors
Muuttujan arvo ilmaisee, onko sivulle tarkoitus liittää virheilmoituksia.
private JavaSClass js
Muuttujaan talletetaan javascript-luokan osoite.
private ErrorMessage e
Muuttujaan talletetaan ErrorMessage-luokan osoite.
PrintStream out
Tällä muuttujalla ilmaistaan mihin streamiin tulostus ohjataan.
private boolean table
Tällä muuttujalla ilmaistaan laskuriin liittyvän taulun puuttuminen.
private int lkmnow
Tämä muuttuja ilmaisee kuinka monta käyntiä sivulla on ollut.
4.4.1.3 Toiminnot
Page(PrintStream outstream)
Page-luokan konstruktori, joka muodostaa HTML-sivun alkutekstejä.
outstream - stream, johon tulostus ohjataan
Page(PrintStream outstream, String title, String language)
Page-luokan konstruktori, joka muodostaa HTML-sivun alkutekstejä.
outstream - stream, johon tulostus ohjataan
title - sivun otsikko
language - sivun määrittelyjen kielikoodi, esimerkiksi EN
public void addHeadMaterial(String text)
Metodilla voi määritellä sivulle esimerkiksi taustakuvan ja tekstin värin.
text - sivun määritysteksti
public void addBackImage(String url)
Metodilla voi määritellä sivulle taustakuvan.
url - taustakuvan osoite
public void addBackColor(String color)
Metodilla voi määritellä sivulle taustavärin.
color - taustaväri
public void addTextColor(String color)
Metodilla voi määritellä sivulle tekstin värin.
color - sivulla olevan tekstin väri
public void addLinkColor(String color)
Metodilla voi määritellä sivulla olevien linkkien värin.
color - sivulla olevien linkkien väri
public void addUsedLinkColor(String color)
Metodilla voi määritellä sivulla olevien, käytettyjen linkkien värin.
color - käytettyjen linkkien väri
public void addToBody(String text)
Metodilla voi lisätä sivulle esimerkiksi onclick-funktioiden kutsuja.
text - sivulle lisättävä määrittely
public void addObject(Form form)
Metodilla voi kytkeä lomakkeet sivuun.
form - lomake, joka kytketään sivuun
public void addHeader(int level, String text)
Määrittelee otsikkotekstin.
level - otsikkotaso (arvot välillä 1 - 6)
text - otsikon teksti
public void addBoldText(String text)
Määrittelee lihavoidun tekstin.
text - lihavoituteksti
public void addItalicText(String text)
Määrittelee kursivoidun tekstin.
text - kursivoituteksti
public void addBold()
Määrittelee lihavoidun tekstin alkamisen.
public void addItalic()
Määrittelee kursivoidun tekstin alkamisen.
public void endBold()
Lopettaa lihavoidun tekstin.
public void endItalic()
Lopettaa kursivoidun tekstin.
public void addNewRow()
Määrittelee rivinvaihdon.
public void addNewParagraph()
Määrittelee uuden kappaleen alkamisen.
public void addFont(String color, int size, String face)
Tekstin värin, koon ja kirjasinlajin muutos.
color - tekstin väri
size - tekstin koko (0, jos ei haluta muuttaa nykyistä)
face - tekstin kirjasinlaji
public void endFont()
Lopettaa tekstin koon, värin ja kirjasinlajin muutoksen.
public void addFontColor(String color)
Määrittelee tekstin värin.
color - tekstin väri
public void addFontFace(String face)
Määrittelee tekstilajin.
face - tekstilaji
public void addFontSize(String size)
Määrittelee tekstin koon.
size - tekstin koko
public void addLine()
Tekee sivulle harmaan poikkiviivan.
public void addImage(String url, String align, int width, int height, int hspace, int cspace, int border)
Määrittelee kuvan koon ja sijainnin.
url - kuvan URL-osoite
align - tekstin sijoittuminen kuvaan nähden (left, right, top, middle, bottom) (null, jos ei haluta käyttää)
width - kuvan leveys (0, jos alkuperäinen koko)
height - kuvan korkeus (0, jos alkuperäinen koko)
hspace - tyhjä tila kuvan oikealla ja vasemmalla puolella (0, jos halutaan oletusarvo)
cspace - tyhjä tila kuvan ylä- ja alapuolella (0, jos halutaan oletusarvo)
border - kehyksen paksuus
public void addCounter(String tablename, String db, String user, String password,
Driver driver) throws InvalidSQL
Lisää laskurin, joka ilmoittaa sivulla käyntien lukumäärän.
tablename - taulunnimi, jossa pidetään yllä sivulla käyntien lukumäärää
db - tietokanta, johon kytkeydytään esimerkiksi jdbc:oracle:thin:@kontti.helsinki.fi:1521:ttst
user - käyttäjätunnus
password - käyttäjän salasana
driver - ajuri, jota käytetään
static void thrower(String text) throws InvalidSQL
Metodia käytetään apuna SQL-virheiden nostamiseen.
text - nostettavan virheilmoituksen selostus
public void addClock(boolean java)
Lisää joko käyvän tai muuttumattoman kellon.
java - true=käyvä kello ja false=muuttumaton kello
public void addDate()
Lisää päivämäärän muodossa pp.kk.vvvv.
public void addLink(String text, String url)
Määrittelee linkin.
text - käyttäjälle näkyvä teksti
url - linkin URL-osoite
public void addImageLink(String imageurl, int border, String url)
Määrittelee kuvan linkiksi.
imageurl - kuvan URL-osoite
border - kuvan kehyksen paksuus
url - linkin URL-osoite
public void addFrameLink(String url, String target, String text)
Määrittelee linkin toiseen kehykseen.
url - toiseen kehykseen tulevan sivun URL-osoite
target - kohde kehyksen nimi
text - käyttäjälle näkyvä teksti, jota painamalla kohde kehykseen haetaan url-parametrilla määritelty sivu
public void addComment(String text)
Lisää kommentin.
text - kommenttiteksti
public void addFreeText(String text)
Lisää vapaamuotoisen tekstin.
text - HTML-muodossa oleva teksti
public void addEmail(String url, String text)
Lisää sähköposti-linkin.
url - sähköpostiosoite
text - käyttäjälle näkyvä teksti
public void addJavaScript(String name, String javas)
Metodilla voi määritellä sivulle omia javascript-funktioita.
name - scriptille annettava nimi
javas - lisättävä javascript-teksti
private void findJavaScript()
Hakee tarvittavat tarkastusfunktiot sivulle.
public void addErrorMessage(String message)
Metodilla voi määritellä sivulle omia javascript-funktioita.
message - teksti, joka näytetään käyttäjälle
public void getErrorMessages()
Lisää sivulle käyttäjän määrittelemät virheilmoitukset.
public void printPage()
Tulostaa muodostetun sivun näytölle.
4.4.2 FramePage-luokka
4.4.2.1 Yleiskuvaus
FramePage-luokan avulla käyttäjä voi luoda sivuja, jotka koostuvat kehyksistä. Kehysten sisältönä voi olla joko servletti tai tavallinen HTML-sivu. Kehyksiin haettavien sivujen on oltava olemassa, koska framePage-luokan avulla ei voi luoda uusia perussivuja.
4.4.2.2 Tietorakenteet
private Vector v
Vektoriin talletetaan sivulla olevat elementit.
private Vector frames
Vektoria käytetään apuna tutkittaessa, koska kehysten lopetusmerkki pitää laittaa sivulle.
private int amount
Muuttuja ilmaisee kuinka monta kehyksen määrittely riviä pitäisi määritellä.
PrintStream out
Tällä muuttujalla ilmaistaan mihin streamiin tulostus ohjataan.
4.4.2.3 Toiminnot
public FramePage(PrintStream outstream, String title)
FramePage-luokan konstruktori.
outstream - stream, johon tulostus ohjataan
title - sivulle annettava otsikkoteksti
public void hFrameset(String up, String down, String border, boolean frameborder)
Jakaa sivun vaakatasossa kahteen kehykseen.
up - yläosan koko
down - alaosan koko
border - väli, joka kahden kehyksen väliin jää (null, jos ei haluta määritellä)
frameborder - kehyksen piilotus = true, kehykset näkyvissä = false
public void vFrameset(String left, String right, String border, boolean frameborder)
Jakaa sivun pystysuunnassa kahteen kehykseen.
left - vasemman puolen koko
right - oikean puolen koko
border - väli, joka kahden kehyksen väliin jää (null, jos ei haluta määritellä)
frameborder - kehyksen piilotus = true, kehykset näkyvissä = false
public void frameInclude(String src, String name, boolean frameborder, String color)
Määrittelee kehyksen sisällön.
src - kehyksen sisältämän sivun URL-osoite
name - kehyksen nimi
frameborder - kehyksen piilotus = true, kehykset näkyvissä = false
color - kehyksen väri (null, jos ei määritellä)
private void addEndFrame()
Tutkii tarvitseeko lisätä kehyksen lopetusmerkki.
public void addNoFrameText(String text)
Määrittelee tekstin mikä näytetään käyttäjälle, jos selain ei tue kehyksiä.
text - teksti, joka näytetään, jos selain ei tue kehyksiä
public void addToFrame(String text)
Metodilla voi lisätä viimeiseksi frameInclude-metodilla luotuun kehykseen määrityksiä.
text - määritys, joka kehykseen halutaan lisätä
public void addToFrameset(String text)
Metodilla voi lisätä viimeiseksi hFrameset- tai vFrameset-metodilla jaettuun osaan määrityksiä.
text - määritys, joka lisätään jaettuun osaan
public void printFramePage()
Tulostaa kehyssivun.
4.4.3 TableData-luokka
4.4.3.1 Yleiskuvaus
TableData-luokalla esitetään taulukon solut. Jokaiseen taulukon soluun voidaan tallentaa yksi tai useampia objekteja. Luokan metodien avulla voidaan lisätä haluttuun taulukon soluun objekti tai kysyä tietyssä solussa olevat objektit.
4.4.3.2 Tietorakenteet
public Vector fRows
Vektori, johon rivit tallennetaan
public Vector fColumnInfo
Taulukon sarakkeiden info tiedot tallessa tässä vektorissa
public int fNumRows
Kertoo taulussa käytössä olevien rivien lukumäärän
public int fNumCols
Kertoo taulussa käytössä olevien sarakkeiden lukumäärän
Taulukko tallennetaan luokan sisäiseen vektori tietorakenteeseen riveittäin (fRows). Jokaisen rivin jokaista saraketta vastaa rivi vektoriin tallennettu toinen vektori. Jokaiseen tällaiseen vektoriin on tallennettu vielä yksi vektori, joka sisältää soluun kuuluvat objektit.
4.4.3.3 Toiminnot
TableData()
TableData-luokan konstruktori.
private void addRow()
Lisää taulukkoon uuden rivin. Uuteen riviin lisätään käytössä olevien sarakkeiden lukumäärän (fNumCols) verran sarakkeita automaattisesti.
private void addColumn()
Lisää taulukkoon uuden sarakkeen. Aiheuttaa uuden vektorin lisäyksen kaikkiin fRows vektoriin tallennettuun objektiin.
public Vector getElement(int colNum, int rowNum)
Palauttaa taulukon soluun liittyvän elementtivektorin.
colNum - sarakenumero
rowNum - rivinumero
Palauttaa taulukon soluun liittyvän vektorin, joka sisältää soluun tallennetut
HTMLElementistä periytyviä olioita.
Jos annetun solun sijainti koordinaatit virheelliset aiheuttaa poikkeuksen InvalidParameters.
public void addElement(int colNum, int rowNum, Object element)
Lisätään määriteltyyn soluun uusi elementti. Kasvattaa taulukon kokoa jos parametrit järkevissä rajoissa (rajat ovat 0 <= colNum < fNumCols+10 ja 0<=rowNum < fNumRows + 10).
colNum - Sarakenumero
rowNum - Rivinumero
element - Lisättävä objekti
Jos annetun solun sijainti koordinaatit virheelliset aiheuttaa poikkeuksen InvalidParameters
public void copyRow(int oldRowNum, int newRowNum)
Kopioidaan TableData -olion rivi toiseen riviin. Metodi lisää tarvittaessa uusia rivejä taulukkoon.
oldRowNum - Kopioitavan rivin numero
newRowNum - Rivi, johon kopioidaan
Jos annetun rivin indeksi virheellinen, niin aiheutuu poikkeus InvalidParameters (rajat ovat 0 <= oldRowNum < fNumRows ja 0<= newRowNum < fNumRows + 10).
4.4.4 Columns-luokka
4.4.4.1 Yleiskuvaus
Tämä luokka sisältää taulukon sarakkeesta talteen laitettuja määrittelyjä, kuten sarakkeen värin, sarakkeen keskityksen ja taulukon sarakerivin otsikon. Luokka ei sisällä metodeita tietojen käsittelyyn, vaan niitä käsitellään Table-luokan metodien avulla.
4.4.4.2 Tietorakenteet
public String fColumnHeading
Tallennettuna listamuotoisia taulukkoja varten taulukon sarakkeen otsikko.
public boolean fColumnNoWrap
Kertoo voiko tekstiä rivittää sarakkeen solussa usealle riville.
public String fColumnBGColor
Kertoo taulukon sarakkeen kenttien taustavärin. Jos ei määritelty, niin käytetään oletus väriä.
public String fColumnBorderColor
Taulukon sarakkeen reunojen väri. Jos ei määritelty niin käytetään oletus väriä.
public String fColumnAlign
Kertoo taulukon sarakkeen keskityksen. Mahdolliset arvot ovat left, right ja center.
4.4.4.3 Toiminnot
public Column()
Column-luokan konstruktori. Alustaa kaikki luokan muuttujat.
4.4.5 JavaSClass-luokka
4.4.5.1 Yleiskuvaus
Luokan avulla kerätään HTMLElement-luokasta periytyvistä olioista Page-luokalle tarvittavat JavaScript-koodit. Luokka huolehtii ettei yksi JavaScript funktio tule lisättyä kuin kerran Page-luokkaan.
4.4.5.2 Tietorakenteet
private Vector fCodes
JavaScript koodit ovat tallessa tässä vektorissa.
private Vector fIdentifies
JavaScript koodien tunnisteet ovat tallessa tässä vektorissa. Tunnisteita tarvitaan, että luokkaan uutta JavaScript koodia lisättäessä voitaisiin tarkistaa onko koodi jo lisätty.
4.4.5.3 Toiminnot
JavaSClass()
JavaScript luokan konstruktori. Luo luokan vektorit.
public void addScript(String identify,String code)
Funktio, jonka avulla voidaan lisätä uusia javascript koodeja. Tarkastaa ennen lisäystä, ettei vastaavaa koodia ole jo valmiiksi lisätty.
identify - Lisättävän koodin tunniste
code Lisättävä JavaScript koodi
public String getScript(int index)
Funktio, jonka avulla voidaan kysyä JavaScript koodi halutulla indeksillä.
index - Monesko JavaScript koodi vektorista palautetaan.
4.4.6 HTMLElement-luokka
4.4.6.1 Yleiskuvaus
HTMLElement-luokka toimii perusluokkana, josta monet kirjaston luokat periytetään. Kyseessä on abstrakti luokka, jossa määritellään periytyviin luokkiin erilaisia toimintoja ja yksi tietorakenne.
4.4.6.2 Tietorakenteet
public boolean fIsDatabaseField
Muuttuja, joka kertoo aiheuttiko connectData metodin kutsuminen tiedon tuontia luokkaan
tietokannasta. Tarvitaan joissakin periytyvissä luokissa, joissa pitää tietää
tuotiinko kenttään tietoa tietokannasta vai käyttäjän itse määrittelemää tietoa.
4.4.6.3 Toiminnot
HTMLElement luokan metodit ovat joko abstrakteja metodeita tai sisältävät pelkän rungon. Luokat, jotka haluavat metodien tekevän jotain syrjäyttävät nämä metodit omillaan.
abstract void draw(PrintStream stream)
Abstrakti metodi, joka syrjäytetään periytyvissä luokissa.
stream - Kertoo streamin, mihin tulostus tehdään.
public void getValidateFunctions(JavaSClass scriptClass)
Metodi, joka palauttaa vastauksena elementtiin liittyvän JavaScript koodin tunnisteen. Luokat, joihin ei kuulu JavaScript koodia eivät lisää parametrina annettavaan scriptClass olioon mitään.
scriptClass - JavaScript koodit tallentavaan olioon osoittava parametri.
public void connectData(ResultSet rs)
Funktio, jonka avulla kenttään kytketään kyselystä tiedot.
rs - Osoitin kyselyn riviin, josta tiedot haetaan.
Jos tietojen kytkeminen kenttään ei onnistu aiheuttaa ConnectDataException poikkeuksen.
public Object clone()
Funktio, jolla voidaan kopioida olio.
Palauttaa oliosta luodun kopion.
4.4.7 ButtonGroup-luokka
4.4.7.1 Yleiskuvaus
Luokan avulla voidaan luoda lomakkeelle nappiryhmiä. Nämä ryhmät voivat sisältää yhden tai useampia nappeja. Nappien painallus aiheuttaa lomakkeen tietojen lähettämisen napissa määriteltyyn osoitteeseen. Lisäksi voidaan napin painalluksesta laittaa lomake tyhjenemään.
4.4.7.2 Tietorakenteet
fButtons
Vektori, johon on tallennettu nappiryhmän nappien HTML -koodit.
4.4.7.3 Toiminnot
public ButtonGroup()
Nappiryhmän luova muodostin. Luo vektorin johon napit tallennetaan.
public void draw(PrintStream stream)
Syrjäytetään periytynyt abstrakti metodi, joka huolehtii nappien tulostamisesta HTML-komennoilla lomakkeelle.
stream - Kertoo streamin, mihin tulostus tehdään.
public void addButton(String name,String type, String value)
Metodi, jonka avulla nappiryhmään voidaan lisätä uusi nappi. Lisää napin suoraan HTML koodina luokassa määriteltyyn fButtons vektoriin.
name - Napissa lomakkeella oleva nimi.
type - Napin tyyppi. Submit vai Reset.
value - Arvo, mikä nappi painettaessa lähetetään lomakkeelta. Napin otsikko
lomakkeella.
InvalidParameters Poikkeus aiheutuu, jos napin tyyppi ei ole RESET tai SUBMIT
public Object clone()
Kopioi nappiryhmän. Kopioi kaikki nappiryhmän napit.
Palauttaa nappiryhmän kopion.
4.4.8 DatabaseField-luokka
4.4.8.1 Yleiskuvaus
Tästä luokasta periytetään kaikki sellaiset kentät, jotka hakevat tietonsa tietokannasta. Luokassa määritellään yleisiä muuttujia ja toimintoja tällaisille kentille.
4.4.8.2 Tietorakenteet
fConnect
Muuttuja, jota käytetään kertomaan, onko kenttään jo kytketty tieto.
fDatabaseName
Tietokantakyselyissä kentästä käytettävä nimi.
fFormFieldName
HTML-lomakkeella kentästä käytettävä nimi.
4.4.8.3 Toiminnot
public void connectData(ResultSet rs)
Funktio, jonka avulla kenttään kytketään kyselystä tiedot. Jos tiedon kytkeminen onnistuu laitetaan fConnect muuttujan arvoksi TRUE.
rs - Osoitin kyselyn riviin, josta tiedot haetaan.
Jos tietojen kytkeminen kenttään ei onnistu aiheutuu ConnectDataException poikkeus.
public void fillFieldWithText(String fillText)
Funktio, jonka avulla kenttään voidaan tuoda tekstiä. Tarkoitettu käytettäväksi kenttien täyttämiseen silloin, kun tieto ei tule tietokantakyselystä. Laitetaan fConnect muuttujan arvoksi TRUE.
fillText - Teksti, joka kenttään laitetaan.
4.4.9 DirectLinkField-luokka
4.4.9.1 Yleiskuvaus
Luokan avulla voidaan luoda staattisia linkkikenttiä lomakkeelle. Linkki määrätään kenttään luonnin yhteydessä.
4.4.9.2 Tietorakenteet
private String fLinkName
Kentän sisältämä linkki on tallessa tässä muuttujassa.
4.4.9.3 Toiminnot
public DirectLinkField(String formFieldName, String linkName)
Suoranlinkkikentän luova muodostin.
formFieldName - Kertoo kentästä lomakkeella käytettävän nimen. Tarkoittaa
suoranlinkkikentän tapauksessa lomakkeella näkyvää klikattavaa tekstiä.
linkName - Linkin URL-osoite.
public void draw(PrintStream stream)
Syrjäytetään periytynyt abstrakti metodi, joka huolehtii suoranlinkkikentän
tulostamisesta HTML-komennoilla lomakkeelle.
stream - Kertoo streamin, mihin tulostus tehdään.
public Object clone()
Kopioi suoranlinkkikentän
Palauttaa suoranlinkkikentän kopion.
4.4.10 UnDirectLinkField-luokka
4.4.10.1 Yleiskuvaus
Luokan avulla voidaan luoda linkkikenttiä, joihin linkki haetaan tietokannasta.
4.4.10.2 Toiminnot
public UnDirectLinkField(String formFieldName,String databaseFieldName)
Epäsuoranlinkkikentän luova muodostin.
formFieldName - Kertoo kentästä lomakkeella käytettävän nimen. Tarkoittaa
epäsuoranlinkkikentän tapauksessa lomakkeella näkyvää klikattavaa tekstiä, joka
aiheuttaa siirtymisen toiselle HTML sivulle tai samalla sivulla eri kohtaan.
databaseFieldName - Kertoo tietokantakyselyssä kentän nimen.
public void draw(PrintStream stream)
Syrjäytetään periytynyt metodi, joka huolehtii epäsuoranlinkkikentän tulostamisesta HTML-komennoilla lomakkeelle.
stream - Kertoo streamin, mihin tulostus tehdään.
public Object clone()
Kopioi epäsuoranlinkkikentän
Palauttaa epäsuoranlinkkikentän kopion.
4.4.11 DropDownField-luokka
4.4.11.1 Yleiskuvaus
Luokan avulla voidaan luoda alasvetovalikkoja HTML lomakkeelle. Luokka sisältää metodit, joilla voidaan lisätä vaihtoehtoja luokkaan. Tietokanta tiedon kytkemisen yhteydessä valitaan listasta automaattisesti tietokannan arvoa vastaava rivi.
4.4.11.2 Tietorakenteet
private Vector fAlternatives
Vektori, johon alasvetovalikon vaihtoehdot tallennetaan.
4.4.11.3 Toiminnot
public DropDownField(String formFieldName,String databaseFieldName)
Alasvetovalikon luova muodostin.
formFieldName - Kertoo kentästä lomakkeella käytettävän nimen.
databaseFieldName - Kertoo tietokantakyselyssä kentän nimen.
public void draw(PrintStream stream)
Syrjäytetään periytynyt abstrakti metodi, joka huolehtii alasvetovalikon
tulostamisesta HTML-komennoilla lomakkeelle.
stream - Kertoo streamin, mihin tulostus tehdään.
public void addAlternative(String name)
Lisää alasvetovalikon listaan vaihtoehdon.
name - Vaihtoehdon nimi listaan.
public Object clone()
Kopioi alasvetovalikon, kopioi myös alasvetovalikkoon liittyvän vaihtoehto listan.
Palauttaa alasvetovalikon kopion.
4.4.12 HiddenField-luokka
4.4.12.1 Yleiskuvaus
Luokka, jonka avulla lomakkeelle voidaan luoda käyttäjälle näkymättömiä kenttiä. Käytetään esimerkiksi ID-tiedon tallentamiseen lomakkeelle.
4.4.12.2 Toiminnot
public HiddenField(String formFieldName,String databaseFieldName)
Piilokentän luova muodostin.
formFieldName - Kertoo kentästä lomakkeella käytettävän nimen.
databaseFieldName - Kertoo tietokantakyselyssä kentän nimen.
public void draw(PrintStream stream)
Syrjäytetään periytynyt metodi, joka huolehtii piilokentän tulostamisesta HTML-komennoilla lomakkeelle.
stream - Kertoo streamin, mihin tulostus tehdään.
public Object clone()
Kopioi piilokentän
Palauttaa piilokentän kopion.
4.4.13 MemoField-luokka
4.4.13.1 Yleiskuvaus
Luokka, jonka avulla voidaan luoda memokenttiä lomakkeelle, memokenttä eroaa tavallisesta tekstikentästä kokonsa puolesta sillä se voi sisältää tekstiä useita rivejä.
4.4.13.2 Tietorakenteet
private int fRowCount
Montako riviä memokenttään mahtuu kerralla näkyville.
private int fColCount
Montako merkkiä memokentän yhdelle riville mahtuu.
4.4.13.3 Toiminnot
public MemoField(String formFieldName,String databaseFieldName,int
rows,int cols)
Memokentän luova muodostin.
formFieldName - Kertoo kentästä lomakkeella käytettävän nimen.
databaseFieldName - Kertoo tietokantakyselyssä kentän nimen.
rows - Kentästä lomakkeella näkyvien rivien lukumäärä.
cols - Kentästä lomakkeella näkyvien sarakkeiden lukumäärä (= montako
merkkiä rivillä).
public void draw(PrintStream stream)
Syrjäytetään periytynyt abstrakti metodi, joka huolehtii memokentän tulostamisesta HTML-komennoilla lomakkeelle.
stream - Kertoo streamin, mihin tulostus tehdään.
public Object clone()
Kopioi memokentän.
Palauttaa memokentän kopion.
4.4.14 RadioGroup-luokka
4.4.14.1 Yleiskuvaus
Luokka, jonka avulla voidaan luoda valintapainikeryhmiä lomakkeelle. Yksi ryhmä voi sisältää yhden tai useampia valintapainikkeita. Luokka sisältää metodit valintapainikkeiden lisäämiseen. Tietokannasta tietoa kytkettäessä valitaan automaattisesti oletusarvoksi tietokannan arvo.
4.4.14.2 Tietorakenteet
private Vector fNames
Vektoriin tallennetaan lomakkeella valintapainikkeissa näkyvät tekstit.
private Vector fValues
Vektoriin tallennetaan lomakkeelta lähtevät valintapainikkeiden arvot.
private String fDefault
Jos halutaan valita jokin oletusarvoisesti voimassa oleva, on tässä muuttujassa tallessa
oletusarvoisesti päälläolevan valintapainikkeen nimi.
4.4.14.3 Toiminnot
public RadioGroup(String formFieldName,String databaseFieldName)
Valintapainikeryhmän luova muodostin.
formFieldName - Kertoo kentästä lomakkeella käytettävän nimen.
databaseFieldName - Kertoo tietokantakyselyssä kentän nimen
public void draw(PrintStream stream)
Yliajetaan periytynyt abstrakti metodi, joka huolehtii valintapainikkeiden tulostamisesta HTML-komennoilla lomakkeelle.
stream - Kertoo streamin, mihin tulostus tehdään.
public void addButton(String name)
Metodi, jonka avulla valintapainikeryhmään voidaan lisätä uusi valintapainike. Lomakkeella kentästä käytettävä nimi ja näkyvä arvo ovat samat.
name - Valintapainikkeen näkyvä selite lomakkeella.
public void addButton(String name, String value)
Metodi, jonka avulla valintapainikeryhmään voidaan lisätä uusi valintapainike.
name - Valintapainikkeen näkyvä selite lomakkeella.
value - Valintapainikkeen painamisesta käsittelijälle lähtevä arvo.
public void setDefault(String name)
Metodi, jonka avulla voidaan merkitä jokin valintapainike valituksi.
name - Kertoo sen valintapainikkeen nimi, joka merkitään valituksi.
public void connectData(ResultSet rs)
Syrjäytetään DatabaseField luokan connectData metodi, koska RadioGroupissa kyselystä tuleva data pitää vaikuttaa valintapainikeryhmän valintaan.
rs - Osoitin kyselyn riviin, josta tiedot haetaan.
public Object clone()
Kopioi valintapainikeryhmän
Palauttaa valintapainikeryhmän kopio olion.
4.4.15 TextField-luokka
4.4.15.1 Yleiskuvaus
Tekstikentän luomiseen lomakkeelle käytettävä luokka.
4.4.15.2 Tietorakenteet
protected int fMaxLength
Kentän maksimi pituus eli montako merkkiä kenttään voidaan syöttää
protected int fSize
Kentän pituus eli montako merkkiä kentässä näkyy
4.4.15.3 Toiminnot
public TextField(String formFieldName, String databaseFieldName, int maxLength, int size)
Tekstikentän luova 1. muodostin.
formFieldName - Kertoo kentästä lomakkeella käytettävän nimen.
databaseFieldName - Kertoo tietokantakyselyssä kentän nimen.
maxLength - Kentän maksimipituuden määräävä parametri
size - Kentän pituus merkkeinä
public TextField()
Tekstikentän luova 2. muodostin. Luo tekstikentän ilman mitään parametreja.
public TextField(String formFieldName,String databaseFieldName)
Tekstikentän luova 3. muodostin. Kentästä käytetään oletuspituuksia.
formFieldName - Kertoo kentästä lomakkeella käytettävän nimen.
databaseFieldName - Kertoo tietokantakyselyssä kentän nimen.
public void draw(PrintStream stream)
Syrjäytetään periytynyt abstrakti metodi, joka huolehtii tekstikentän tulostamisesta HTML-komennoilla lomakkeelle.
stream - Kertoo streamin, mihin tulostus tehdään.
public Object clone()
Kopioi tekstikentän kaikkine pituus ja muine määritteineen.
Palauttaa tekstikentän kopion.
4.4.16 PasswordField-luokka
4.4.16.1 Yleiskuvaus
Luokan avulla voidaan luoda salasankenttä lomakkeelle. Luokka näyttää ulospäin normaalilta tekstikentältä, mutta kenttään kirjoitettaessa kaikki merkit korvataan * -merkillä.
4.4.16.2 Toiminnot
public PasswordField(String formFieldName, String
databaseFieldName, int maxLength,
int size)
Salasanakentän luova muodostin.
formFieldName - Kertoo kentästä lomakkeella käytettävän nimen.
databaseFieldName - Kertoo tietokantakyselyssä kentän nimen.
maxLength - Kentän maksimipituuden määräävä parametri
size - Kentän pituus merkkeinä
public void draw(PrintStream stream)
Syrjäytetään periytynyt metodi, joka huolehtii salasanakentän tulostamisesta HTML-komennoilla lomakkeelle.
stream - Kertoo streamin, mihin tulostus tehdään.
public Object clone()
Kopioi salasanakentän
Palauttaa salasanakentän kopion.
4.4.17 ValidateField-luokka
4.4.17.1 Yleiskuvaus
Luokka, josta kaikki JavaScriptiä tarkastukseen käyttävät luokat periytetään. Määrittelee yhden uuden metodin periytyviä luokkia varten.
4.4.17.2 Toiminnot
abstract String addCode()
Metodi, jolla voidaan liittää haluttu JavaScript tarkastuskoodi kenttään.
4.4.18 NumberField-luokka
4.4.18.1 Yleiskuvaus
Luokka, jonka avulla lomakkeelle voidaan tehdä kenttä, joka hyväksyy vain tietyn arvoalueen numerot. Jos arvoväli annetaan desimaalilukuna, voi myös käyttäjä syöttää kenttään desimaaliluvun. Oikean arvon tarkastaminen hoidetaan kenttään automaattisesti kytkettävällä JavaScript koodilla.
4.4.18.2 Tietorakenteet
private String code
Muuttuja, johon on tallennettu tarkastuksesta huolehtiva JavaScript koodi.
private String fMinNumber
Muuttujaan tallennetaan pienin numero, joka kenttään voidaan syöttää.
private String fMaxNumber
Muuttujaan tallennetaan suurin numero, joka kenttään voidaan syöttää.
4.4.18.3 Toiminnot
public NumberField(String formFieldName,String databaseFieldName,
String minNumber, String maxNumber,int maxLength)
Numerokentän luova muodostin.
formFieldName - Kertoo kentästä lomakkeella käytettävän nimen.
databaseFieldName - Kertoo tietokantakyselyssä kentän nimen.
minNumber - Pienin mahdollinen numero, joka kenttään voidaan antaa.
maxNumber - Suurin mahdollinen numero, joka kenttään voidaan antaa.
maxLength - Kentän maksimipituuden määräävä parametri
public void draw(PrintStream stream)
Syrjäytetään periytynyt metodi, joka huolehtii numerokentän tulostamisesta HTML-komennoilla lomakkeelle.
stream - Kertoo streamin, mihin tulostus tehdään.
public Object clone()
Kopioi numerokentän
Palauttaa numerokentän kopion.
public void getValidateFunctions(JavaSClass scriptClass)
Lisää Page luokassa määriteltyyn JavaSClass listaan tarkastukseen käytettävän JavaScript koodin tunnisteen ja itse JavaScript koodin
public String addCode()
Kertoo HTML koodin, millä tarkastuskoodi kytketään kenttään.
4.4.19 ENumField-luokka
4.4.19.1 Yleiskuvaus
Luokka, jonka avulla lomakkeelle voidaan tehdä kenttä, joka hyväksyy vain tietyt syötteet. Sallitut syötearvot voidaan lisätä luokkaan sen metodilla. Oikean arvon tarkastaminen hoidetaan kenttään automaattisesti kytkettävällä JavaScript koodilla.
4.4.19.2 Tietorakenteet
private Vector fAlternatives
Vektori, joka sisältää kenttään hyväksyttävien syötearvojen listan.
private String code
Muuttuja, johon on tallennettu tarkastuksesta huolehtiva JavaScript koodi.
4.4.19.3 Toiminnot
public ENumField(String formFieldName, String databaseFieldName,
int maxLength, int size)
Luettelokentän luova muodostin.
formFieldName - Kertoo kentästä lomakkeella käytettävän nimen.
databaseFieldName - Kertoo tietokantakyselyssä kentän nimen.
maxLength - Kentän maksimipituus merkkeinä
size - Kentän pituus merkkeinä
public void draw(PrintStream stream)
Syrjäytetään periytynyt metodi, joka huolehtii luettelokentän tulostamisesta HTML-komennoilla lomakkeelle.
stream - Kertoo streamin, mihin tulostus tehdään.
public void addEnumerate(String name)
Lisää luettelokentän listaan uuden vaihtoehdon. Listan sisältöä verrataan hyväksyttäessä käyttäjän syötettä. Käyttäjän antama syöte pitää löytyä listasta.
name - Listan vaihtoehdon nimi.
public Object clone()
Kopioi luettelokentän. Kopioi myös kenttään liittyvän listan arvoineen.
Palauttaa luettelokentän kopion.
public void getValidateFunctions(JavaSClass scriptClass)
Lisää Page luokassa määriteltyyn JavaSClass listaan tarkastukseen käytettävän JavaScript koodin tunnisteen ja itse JavaScript koodin
public String addCode()
Kertoo HTML koodin, millä tarkastuskoodi kytketään kenttään.
4.4.20 SSNField-luokka
4.4.20.1 Yleiskuvaus
Luokka, jonka avulla lomakkeelle voidaan tehdä kenttä, joka hyväksyy vain oikeanmuotoisen henkilötunnuksen. Oikean arvon tarkastaminen hoidetaan kenttään automaattisesti kytkettävällä JavaScript koodilla.
4.4.20.2 Tietorakenteet
private String code
Muuttuja, johon on tallennettu tarkastuksesta huolehtiva JavaScript koodi.
4.4.20.3 Toiminnot
public SSNField(String formFieldName, String databaseFieldName)
Henkilötunnuskentän luova muodostin.
formFieldName - Kertoo kentästä lomakkeella käytettävän nimen.
databaseFieldName - Kertoo tietokantakyselyssä kentän nimen.
public void draw(PrintStream stream)
Syrjäytetään periytynyt metodi, joka huolehtii henkilötunnuskentän tulostamisesta HTML-komennoilla lomakkeelle.
stream - Kertoo streamin, mihin tulostus tehdään.
public Object clone()
Kopioi henkilötunnuskentän
Palauttaa henkilötunnuskentän kopion.
public void getValidateFunctions(JavaSClass scriptClass)
Lisää Page luokassa määriteltyyn JavaSClass listaan tarkastukseen käytettävän JavaScript koodin tunnisteen ja itse JavaScript koodin
public String addCode()
Kertoo HTML koodin, millä tarkastuskoodi kytketään kenttään.
4.4.21 DateField-luokka
4.4.21.1 Yleiskuvaus
Luokka, jonka avulla lomakkeelle voidaan tehdä kenttä, joka hyväksyy vain oikeanmuotoisen päiväyksen. Lisäksi voidaan rajata päivämäärä väli, jossa annettavan päiväyksen tulee olla. Oikean arvon tarkastaminen hoidetaan kenttään automaattisesti kytkettävällä JavaScript koodilla.
4.4.21.2 Tietorakenteet
private String code
Muuttuja, johon on tallennettu tarkastuksesta huolehtiva JavaScript koodi.
private String fMinDate
Pienin päivämäärä, joka kenttään voidaan syöttää on tallessa tässä
muuttujassa.
private String fMaxDate
Suurin päivämäärä, joka kenttään voidaan syöttää on tallessa tässä
muuttujassa.
4.4.21.3 Toiminnot
public DateField(String formFieldName, String databaseFieldName,
String minDate, String maxDate)
Päiväyskentän luova muodostin.
formFieldName - Kertoo kentästä lomakkeella käytettävän nimen.
databaseFieldName - Kertoo tietokantakyselyssä kentän nimen.
minDate - Pienin mahdollinen päivämäärä, joka kenttään voidaan antaa.
maxDate - Suurin mahdollinen päivämäärä, joka kenttään voidaan antaa.
public void draw(PrintStream stream)
Syrjäytetään periytynyt metodi, joka huolehtii päivämääräkentän tulostamisesta HTML-komennoilla lomakkeelle.
stream - Kertoo streamin, mihin tulostus tehdään.
public Object clone()
Kopioi päivämääräkentän
Palauttaa päivämääräkentän kopion.
public void getValidateFunctions(JavaSClass scriptClass)
Lisää Page luokassa määriteltyyn JavaSClass listaan tarkastukseen käytettävän JavaScript koodin tunnisteen ja itse JavaScript koodin
public String addCode()
Kertoo HTML koodin, millä tarkastuskoodi kytketään kenttään.
4.4.22 PromptField-luokka
4.4.22.1 Yleiskuvaus
Luokan avulla voidaan luoda staattisia tekstikenttiä lomakkeelle. PromptField-luokan olioita käytetään eri kenttien edessä selittämään kenttään haluttavaa arvoa.
4.4.22.2 Tietorakenteet
private String fPrompt
Sisältää tekstin, joka kentässä näytetään.
4.4.22.3 Toiminnot
public PromptField(String Prompt)
Selitekentän luova muodostin. Parametrina menee selite.
prompt - Selitekentän teksti, joka tulostetaan lomakkeelle.
public PromptField(databaseField field)
Selitekentän luova 2. muodostin. Käytetään databaseField kentistä tehtäessä uusia kenttiä readonly formiin.
field - DatabaseFieldistä periytynyt kenttä
public void draw(PrintStream stream)
Syrjäytetään periytynyt abstrakti metodi, joka huolehtii selitekentän tulostuksesta.
stream - Kertoo streamin, mihin tulostus tehdään.
public Object clone()
Kopioi selitekentän
Palauttaa selitekentän kopion.
4.4.23 Form-luokka
4.4.23.1 Yleiskuvaus
Luokan avulla luodaan lomakkeita HTML sivulle. Lomake voi olla kirjoitussuojattu (readOnly).
4.4.23.2 Tietorakenteet
private Vector objectArray
Vektori, johon tallennetaan lomakkeeseen liitetyt objektit.
private String fFormStart
Muuttuja, jossa on tallessa HTML muotoisen formin aloittava komentosarja. Muodostetaan
Form luokan konstruktorien yhteydessä.
private String fFormHeading
Muuttuja, joka sisältää lomakkeelle määritetyn otsikon.
private String fFormEndString
Muuttuja, joka sisältää lomakkeen loppuun tulostettavat tiedot.
private boolean fReadOnly
Muuttuja, joka kertoo onko lomake kirjoitussuojattu.
4.4.23.3 Toiminnot
public Form(String name, String adressUrl, String metod,
String
dbTableName,String dbTableFields,
String
JDBCDriver,String dbUrl, String userID,
String
userPasswd, boolean readOnlyParam)
Form-luokan konstruktori, joka luo uuden standardilomakkeen. Parametrina tietokantataulu, josta lomakkeelle tulevat kentät haetaan.
name - formille annettava nimi
adressUrl - www-osoite
metod - parametrien välitystapa
dbTableName - tietokantataulun nimi
dbTableFields - taulusta lomakkeelle haluttavat kentät
JDBCDriver - Kertoo JDBC ajurin, jota käytetään
dbUrl - Kertoo datan sijainnin
userID - Millä käyttäjätunnuksella dataa haetaan
userPasswd - Millä salasanalla dataa haetaan
readOnlyParam - vainluku parametri
Jos tietojen haku kannasta ja kytkeminen ei onnistu aiheuttaa ConnectDataException poikkeuksen.
public Form(String name, String adressUrl, String metod, boolean
readOnlyParam)
Form-luokan 2.konstruktori
name - formille annettava nimi
adressUrl - www-osoite
metod - parametrien välitystapa
readOnlyParam - vainluku parametri
public void addHeading(String formHeading)
Lisää lomakkeelle otsikon
formHeading - lomakkeen otsikko
public void addEndText(boolean addDate, String endText)
Lisää lomakkeelle lopputekstin
addDate - parametri kertoo halutaanko lisätä päiväys
endText - lopputeksti
public void addObject(Object element)
Lisää lomakkeelle elementin
element - lomakkeelle lisättävä elementti
public void connectData(ResultSet rs)
Syrjäytetään HTMLElementistä periytyvä metodi, jolla kytketään data kyselystä kenttiin. Käy läpi kaikki lomakkeeseen liittyvät HTMLElement luokasta periytyvät oliot ja kutsuu niiden vastaavaa kytkentä metodia.
rs - Osoitin kyselyn riviin, josta tiedot haetaan.
public void draw(PrintStream stream)
Syrjäytetään periytynyt abstrakti metodi, joka huolehtii lomakkeen tulostamisesta HTML-komennoilla lomakkeelle. Käy läpi kaikki lomakkeeseen liittyvät HTMLElement luokasta periytyvät oliot ja kutsuu niiden vastaavaa piirto metodia.
stream - Kertoo streamin, mihin tulostus tehdään.
public void getValidateFunctions(JavaSClass scriptClass)
Kutsuu kaikkia lomakkeeseen liittyviä HTMLElementistä periytyviä luokkia ja hakee niiltä JavaScript koodit.
scriptClass - JavaScript koodit tallentavaan olioon osoittava parametri.
4.4.24 Table-luokka
4.4.24.1 Yleiskuvaus
Käytetään HTML lomakkeelle taulujen luonnin apuna. Taulu voi olla listamuotoinen tai lomakemuotoinen. Taulu voi lisäksi olla kirjoitussuojattu (readOnly).
4.4.24.2 Tietorakenteet
private boolean fReadOnly
Muuttujaan on tallennettuna tieto, onko taulu kirjoitussuojattu
private String fTableHeading
Muuttujaan on tallennettu taulun otsikko
private int fTableBorder
Muuttujassa tallessa taulukon reunojen paksuus.
private String fTableWidth
Muuttujassa tallessa taulukon leveys prosentteina sivun koosta.
private String fTableAlign
Muuttujaan tallennettu tieto taulukon sijainnista sivulla. Mahdolliset arvot left,
right ja center.
private String fTableType
Kertoo minkä tyyppinen taulukko on kyseessä. Lomake- vai listamuotoinen taulukko.
private String fTableFont
Muuttujaan tallennettu taulukossa käytetyn fontin nimi.
private String fTableFontSize
Muuttujaan tallennettu taulukossa käytetyn fontin koko.
private String fTableBGColor
Muuttujaan tallennettu taulukon taustaväri.
private String fTableBorderColor
Muuttujaan tallennettu taulukon reunojen väri.
private TableData fTable
Oliossa tallessa taulukon sarakkeiden sisältämät objektit.
4.4.24.3 Toiminnot
public Table()
Table-luokan konstruktori, joka luo uuden taulukon oletusarvoisilla parametreillä.
public Table(boolean readonly,String tableHeading,int tableBorder,
String
tableBGColor,String tableBorderColor,String tableWidth,
String
tableAlign, String tableType)
Table-luokan konstruktori, joka luo uuden taulukon parametreinä annettavilla arvoilla.
readonly - Kertoo onko taulukko vain lukemista varten.
tableHeading - Lomakkeella olevan taulukon otsikko
tableBorder - Taulukon reuna. Jos 0, niin taulukolle ei piirretä reunoja.
tableBGColor - Taulukon taustaväri.Jos "" niin käytetään oletusta.
tableBorderColor - Taulukon reunojen väri. Jos "" niin käytetään
oletusta.
tableWidth - Taulukon leveys prosentteina.
tableAlign - Taulukon tasaus vasemmalle, keskeelle tai oikealle.
tableType - Taulukon muoto: lomake tai taulukko (arvoiksi voi antaa form tai
list).
Jos taulukon tyyppi ei ole list tai form aiheutuu poikkeus InvalidParameters.
public void defineCell(int columnNum,int rowNum,Object newField)
Määrittelee taulukkoon uuden solun
columnNum - sarakenumero
rowNum - rivinumero
newField - soluun sijoitettava kenttä
public void setReadOnly(boolean readOnly)
Voidaan asettaa taulun fReadOnly arvo. Jos true, niin taulukon tiedot esitetään PromptFieldien avulla eli kaikki DatabaseField tyyppiset kentät vaihdetaan PromptField kentiksi ja tietokannan datasta tulee kentässä näkyvä arvo.
readOnly - Uusi arvo fReadOnly muuttujalle.
public void changeTableTextFont(String tableTextFont, String
tableTextSize)
Uudelleenmäärittelee taulukon tekstifontit
tableTextFont - taulukon tekstilaji
tableTextSize - taulukon tekstikoko
public void draw(PrintStream stream)
Tulostaa taulukon. Taulun tyyppi (list, form) määrää minkälainen tulostus tehdään. Pitää sisällään silmukan, joka käy läpi taulukkoon liittyvät oliot.
stream - Kertoo streamin, mihin tulostus tehdään.
public void changeColumnHeading(int colNum, String columnHeading)
Vaihtaa sarakkeen oletusarvoisen otsikon parametrinä antamaan otsikkoon
columnHeading - Sarakkeen otsikko
colNum - Sarake, jonka otsikkoa vaihdetaan
Jos annettu sarakkeen yksilöivä parametri virheellinen aiheuttaa poikkeuksen InvalidParameters.
public void changeColumnBGColor(int colNum,String columnColor)
Vaihtaa sarakkeen taustavärin
columnColor - Uusi sarakkeen väri
colNum - Sarake, jonka väriä vaihdetaan
Jos annettu sarakkeen yksilöivä parametri virheellinen aiheuttaa poikkeuksen InvalidParameters.
public void changeColumnBorderColor(int colNum, String columnColor)
Vaihtaa sarakkeen reunavärin
columnColor - Uusi sarakkeen väri
colNum - Sarake, jonka väriä vaihdetaan
Jos annettu sarakkeen yksilöivä parametri virheellinen aiheuttaa poikkeuksen InvalidParameters.
public void changeColumnAlign(int colNum, String columnAlign)
Vaihtaa sarakkeen tietojen keskityksen
columnAlign - Kertoo käytettävän keskityksen.
colNum - Sarake, jonka keskitystä vaihdetaan
Jos annettu sarakkeen yksilöivä parametri virheellinen aiheuttaa poikkeuksen InvalidParameters.
public void changeColumnWrap(int colNum, boolean columnWrap)
Kertoo voidaanko sarakkeeseen tulevaa tekstiä rivittää useammalle riville. Oletusarvoisesti ei voida.
columnWrap - Kertoo, voidaanko sarakkeen soluissa teksti rivittää usealle
riville.
colNum - Sarake, jonka keskitystä vaihdetaan
Jos annettu sarakkeen yksilöivä parametri virheellinen aiheuttaa poikkeuksen InvalidParameters.
public void connectData(ResultSet rs)
Syrjäytetään HTMLElementistä periytyvä metodi, jolla kytketään data kyselystä kenttiin. Pitää sisällä silmukan, joka käy läpi taulukkoon liittyvät oliot.
rs - Osoitin kyselyn riviin, josta tiedot haetaan.
Aiheuttaa poikkeuksen ConnectDataException, jos listamuotoiseen taulukkoon ei tietojen kytkentä onnistu.
public void getValidateFunctions(JavaSClass scriptClass)
Kutsuu kaikkia taulukkoon liittyviä HTMLElementistä periytyviä luokkia ja hakee
niiltä JavaScript koodit.
scriptClass - JavaScript koodit tallentavaan olioon osoittava parametri.
4.4.25 ErrorMessage-luokka
4.4.25.1 Yleiskuvaus
Luokan avulla käyttäjä voi lisätä omia virheilmoituksia sivulle. Kun sivu tulostetaan, näytetään lisätyt virheilmoitukset punaisella pohjalla sivun ylälaidassa.
4.4.25.2 Tietorakenteet
private Vector errors
Muuttujaan talletetaan käyttäjän määrittelemät virheilmoitukset.
4.4.25.3 Toiminnot
public ErrorMessage()
ErrorMessage-luokan konstruktori.
public void addEMessage(String text)
Metodilla voi lisätä luokkaan käyttäjän määrittelemiä virheilmoituksia.
text - lisättävä virheilmoitus
public String getEMessage(int i)
Metodilla haetaan lisätyt virheilmoitukset.
i - i.s virheilmoitus, mikä halutaan hakea
4.4.26 InvalidSQL-luokka
4.4.26.1 Yleiskuvaus
Luokkaa käytetään apuna nostettaessa poikkeus, jos SQL-lauseen suorituksessa tulee jokin virhe.
4.4.26.2 Toiminnot
public InvalidSQL()
InvalidSQL-luokan konstruktori, joka suorittaa SQLException-luokan konstruktorin.
public InvalidSQL(String text)
InvalidSQL-luokan konstruktori, joka suorittaa SQLException-luokan konstruktorin.
text - virheteksti
4.4.27 InvalidParameters-luokka
4.4.27.1 Yleiskuvaus
Luokkaa käytetään apuna nostettaessa poikkeus, jos jonkin metodin suoritukseen tarvittavat parametrit ovat virheelliset.
4.4.27.2 Toiminnot
public InvalidParameters()
InvalidParameters-luokan konstruktori, joka suorittaa Exception-luokan konstruktorin.
public InvalidParameters(String text)
InvalidParameters-luokan konstruktori, joka suorittaa Exception-luokan konstruktorin.
text - virheteksti
4.4.28 ConnectDataException-luokka
4.4.28.1 Yleiskuvaus
Luokkaa käytetään apuna nostettaessa poikkeus, jos SQL kysely kantaan ei onnistu.
4.4.28.2 Toiminnot
public ConnectDataException()
ConnectDataException -luokan konstruktori, joka suorittaa Exception-luokan konstruktorin.
public ConnectDataException(String text)
ConnectDataException-luokan konstruktori, joka suorittaa Exception-luokan konstruktorin.
text - virheteksti
4.5 Javadoc-dokumentit
Javadoc:lla tehdyt dokumentit löytyvät osoitteesta http://www.cs.helsinki.fi/group/wenla/sorsat/valmiit/tree.html
5 Rajoitteet toteutukselle
5.1 Noudatettavat standardit
Projektin dokumentointi tehdään ensin Word97-muodossa, mutta lopullinen versio talletetaan myös HTML-muodossa.
5.2 Ohjelmointikielet ja käyttöjärjestelmät
Lähdekoodissa käytettiin Java 1.1:ssä määriteltyjä ominaisuuksia. Lähdekoodi kommentoitiin siten, että siitä voitiin generoida javadoc-dokumentaatio.
5.3 Muut tarvittavat apuohjelmat
Projektissa olisi tarvittu esimerkkiohjelman teossa servlet-runneria, mutta laitoksella ei saatu toimimaan yhtään runneria. Tämän takia testaukset on tehty normaaleina sovellutuksina. Tämä tarkoittaa sitä, että sivuista on muodostettu normaalit HTML-sivut, jotka on tulostettu tiedostoon.
5.4 Arvio ja toteuma toteutuksen koosta
Page-luokkaan tulee arviolta 400 koodiriviä. Tämä päälle tulee vielä kommentit eli kokonaisrivimäärä saattaa nousta lähemmäksi 700 riviä. FramePage-luokka on pienempi. Pelkkä ohjelma koodi vie arviolta 100 riviä ja kommenttien kanssa 200 riviä. Cell-, Column-, Form- ja Table-luokissa rivejä tulee olemaan arviolta 200 - 250. Loppuihin 17 luokkaan tulee koodia arviolta 700 - 900 riviä.
Loppujen lopuksi Page-luokkaan tuli koodirivejä 1030. FramePage-luokkaan rivejä kertyi 280. Poikkeus luokkiin käytettiin 140 riviä. HTMLElement ja siitä periytyvät kentät veivät 1300 riviä. Form-, Table-, Column- ja TableData-luokkiin käytettiin 1050 riviä. Yhteensä 3800 riviä.
5.5 Ohjelmointityyli
Ohjelmointityyli on kuvattu Java-tyylioppaassa (http://www.cs.helsinki.fi/group/wenla/javatyyli.html).