fi.jyu.mit.ohj2
Class Help

java.lang.Object
  extended byfi.jyu.mit.ohj2.Help

public class Help
extends java.lang.Object

Luokka avustusten tulostamiseksi. Avustustiedoston muoto:

 [SISÄLLYS] - aina etsitään sisällystä tällä aihe- (topic) nimellä.
 Eka aihe - kerrotaan ekasta aiheesta
 Toka aihe - kerrotaan tokasta aiheesta

 [Eka aihe]
 Ekassa aiheessa voidaan kuvata mitä vaan ekaan aiheeseen liittyvää
 ja miksei muutakin.

 [Toka aihe] - aiheen otsikkorivillä saa olla kommentti
 Tokassa aiheessa sitten tokan aiheen sisällöstä.
 Tietysti aiheita voidaan kirjoittaa niin monta kuin halutaan
 eikä niiden kaikkien tarvitse olla sisällysluettelossa.
 Jos on kamalan pitkä aihe, jonka tulostus halutaan keskeyttää,
 voidaan avustustiedoston rivi aloittaa
 #
 risuaitamerkillä, joka pysäyttää tulostuksen.
 muutenkin tulostetaan vain korkeintaan 23 riviä kerrallaan.
 ; puolipisteellä alkava rivi on kommenttia ja sitä ei tulosteta
 
Käyttöesimerkkejä:
Selaillaan koko avustusta. Tulostetaan ensin sisällysluettelo
   try {
     Help h = new Help("kerho.hlp");
     h.browse();
   }
   catch (IOException ioe) {
     System.err.println(ioe);
   }
 
Tulostetaan valitun aiheen kohdalta:
   h.printMatchingTopics("Li*");  // tulostaa kaikki Li-alkavat aiheet
   h.printTopic("Lisäys");        // tulostaa aiheen Lisäys
   h.helpTopic("Li*");            // tulostaa kaikki Li-alkavat aiheet
 


Constructor Summary
Help()
          Alustetaan tyhjä avustus, johon voi lisätä aiheita metodeilla: addTopic, addLine, readFile.
Help(java.lang.String fileName)
          Alustaa avustuksen lukemalla avustukset tiedostosta.
 
Method Summary
 void addLine(java.lang.String topic, java.lang.String line)
          Lisätään yksi rivi avustukseen aiheen topic alle.
 java.util.Collection addTopic(java.lang.String topic)
          Lisätään uusi aihe-otsikko avustukseen.
 void browse()
          Selailee avustusta aloittaen kohdasta [SISÄLLYS]
 void browse(java.lang.String topic)
          Selailee avustusta valitun lohkon kohdalta.
 int getLines()
           
 void helpTopic(java.lang.String topic)
          Tulostaa topic:in mukaisen lohkon avustuksesta.
static void main(java.lang.String[] args)
           
 boolean printMatchingTopics(java.lang.String topic)
          Tulostaa ne avustuksen lohkot jotka täsmäävät hakuehtoon.
 boolean printTopic(java.lang.String topic)
          Tulostaa valitun lohkon avustuksesta.
 void readFile(java.lang.String fileName)
          Lukee avustuksen tiedostosta.
 void setLines(int lines)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Help

public Help()
Alustetaan tyhjä avustus, johon voi lisätä aiheita metodeilla: addTopic, addLine, readFile.


Help

public Help(java.lang.String fileName)
     throws java.io.IOException
Alustaa avustuksen lukemalla avustukset tiedostosta. Tiedot kerätään map-tauluun, jossa aiheiden mukaiset merkkijonot avaimina (isoksi muutettuna). Aiheen alaiset rivit on sitten vektorina "avaimen oliona".

Parameters:
fileName - tiedosto,josta avustukset luetaan
Throws:
java.io.IOException - jos jokin menee pieleen tiedoston lukemisessa
Method Detail

getLines

public int getLines()
Returns:
kuinka monta riviä tulostetaan korkeintaan pysähtymättä

setLines

public void setLines(int lines)
Parameters:
lines - pysähtymättä tulostettavien rivien lukumäärä

addTopic

public java.util.Collection addTopic(java.lang.String topic)
Lisätään uusi aihe-otsikko avustukseen. Tämän jälkeen rivejä voi lisätä otsikon alle
 Collection topic = h.addTopic("Uusi aihe");
 topic.add("Eka rivi");
 topic.add("Toka rivi");
 
Mikäli aihe on jo olemassa, palautetaan viite vanhaan aiheeseen.

Parameters:
topic - lisättävän aiheen otsikko
Returns:
tietorakenne, johon voi lisätä rivejä aiheen alle

addLine

public void addLine(java.lang.String topic,
                    java.lang.String line)
Lisätään yksi rivi avustukseen aiheen topic alle. Mikäli aihetta ei vielä ole, se luodaan.

Parameters:
topic - lisättävän aiheen otsikko
line - lisättävä rivi

readFile

public void readFile(java.lang.String fileName)
              throws java.io.IOException
Lukee avustuksen tiedostosta. Voidaan kutsua useita kertoja jolloin voidaan yhdistää monia avustustiedostoja. Tiedot kerätään map-tauluun, jossa aiheiden mukaiset merkkijonot avaimina (isoksi muutettuna). Aiheen alaiset rivit on sitten vektorina "avaimen oliona".

Parameters:
fileName - tiedosto,josta avustukset luetaan
Throws:
java.io.IOException - jos jokin menee pieleen tiedoston lukemisessa

printTopic

public boolean printTopic(java.lang.String topic)
Tulostaa valitun lohkon avustuksesta.

Parameters:
topic - tulostettava lohko. Ei saa sisältää jokereita
Returns:
painettiinko poistumista (true) vai ei (false) tulostuksen aikana

printMatchingTopics

public boolean printMatchingTopics(java.lang.String topic)
Tulostaa ne avustuksen lohkot jotka täsmäävät hakuehtoon.

Parameters:
topic - mahdolisesti jokereita * ja ? sisältävä ehto
Returns:
painettiinko poistumista (true) vai ei (false) tulostuksen aikana

browse

public void browse(java.lang.String topic)
Selailee avustusta valitun lohkon kohdalta. Jos lohko == null niin näytetään kohta [SISÄLLYS]

Parameters:
topic - tulostettava avustuksen kohta

browse

public void browse()
Selailee avustusta aloittaen kohdasta [SISÄLLYS]


helpTopic

public void helpTopic(java.lang.String topic)
Tulostaa topic:in mukaisen lohkon avustuksesta.

Parameters:
topic - tulostetavan lohkon otsikko tai null jolloin selailee avustusta

main

public static void main(java.lang.String[] args)