1 import java.io.*;
2 import java.util.*;
3
4 import fi.jyu.mit.ohj2.*;
5
24 public class Naytto {
25
26
29 private Kerho kerho;
30
31
37 public Naytto(Kerho kerho) throws Exception {
38 if ( kerho == null ) throw new Exception("Kerho täytyy antaa!");
39 this.kerho = kerho;
40 }
41
42
47 private static void tulosta(String s, boolean printlf) {
48 System.out.print(s);
49 if ( printlf ) System.out.println();
50 }
51
52
56 private static void tulosta(String s) {
57 tulosta(s,true);
58 }
59
60
64 private static void tyhja(int n) {
65 for (int i=0; i<n; i++) tulosta("");
66 }
67
68
81 private static void otsikko(char kirjain, String teksti) {
82 tyhja(4);
83 tulosta("" + kirjain + ". " + teksti);
84 tulosta(Mjonot.tayta("=",1+2+teksti.length()));
85 tyhja(2);
86 }
87
88
91 void ei_toimi() {
92 tulosta("Ei toimi vielä!");
93 IO.odota_jotakin();
94 }
95
96
100 void avustus(char valinta) {
101 otsikko(valinta, "Avustus");
102 ei_toimi();
103 }
104
105 private void tulosta(OutputStream os, final Jasen jasen) {
106 jasen.tulosta(os);
107 int jid = jasen.getTunnus_nro();
108 for (Iterator i=kerho.harrastus_iterator(jid); i.hasNext(); ) {
109 Harrastus har = (Harrastus)i.next();
110 har.tulosta(os);
111 }
112 }
113
114 private void kysy_tiedot(Jasen jasen) {
115 tulosta("Toistaiseksi osaan lisätä vain Aku Ankan");
116 jasen.vastaa_aku_ankka();
117 int lkm = Jasen.rand(0,5);
118 for (int i=0; i<lkm; i++) {
119 Harrastus har = new Harrastus();
120 har.vastaa_pitsin_nyplays(jasen.getTunnus_nro());
121 kerho.lisaa(har);
122 }
123 }
124
125
126
127
128
132 void lisaa_uusi_jasen(char valinta) {
133 otsikko(valinta,"Uuden jäsenen lisäys");
134 Jasen jasen = new Jasen();
135 jasen.rekisteroi();
136 kysy_tiedot(jasen);
137
138 tulosta("Lisätäänkö");
139 tulosta(System.out,jasen);
140 tulosta(":",false);
141 boolean pois = true;
142 if ( IO.kylla_vastaus() )
143 try {
144 kerho.lisaa(jasen);
145 pois = false;
146 } catch ( Jasenet.SailoException ex ) {
147 tulosta(ex.getMessage());
148 }
149 if ( pois ) kerho.poista(jasen.getTunnus_nro());
150 }
151
152
153
157 void etsi_jasenen_tiedot(char valinta)
158 {
159 otsikko(valinta,"Etsi jäsenen tiedot");
160 ei_toimi();
161 }
162
163
164
168 void tulosteet(char valinta) {
169 otsikko(valinta,"Tulosteet");
170 tulosta("Toimii toistaiseksi vain näytölle");
171 tulosta("---------------------------------------------------------");
172
173 for (Iterator i=kerho.jasen_iterator(); i.hasNext(); ) {
174 Jasen jasen = (Jasen)i.next();
175 tulosta("Jäsen nro: " + jasen.getTunnus_nro());
176 tulosta(System.out,jasen);
177 tulosta("");
178 }
179
180 tulosta("---------------------------------------------------------");
181 IO.odota_jotakin();
182 }
183
184
185
189 void tietojen_korjailu(char valinta) {
190 otsikko(valinta,"Tietojen korjailu");
191 ei_toimi();
192 }
193
194
195
199 void paivita_jasenmaksuja(char valinta) {
200 otsikko(valinta,"Päivitä jäsenmaksuja");
201 ei_toimi();
202 }
203
204
205
208 public void paamenu() {
209 tulosta("\n\n\n\n");
210 tulosta("Jäsenrekisteri");
211 tulosta("==============");
212 tulosta("");
213 tulosta("Kerhossa " + kerho.getNimi()+ " on " +
214 kerho.getJasenia() + " jäsentä.");
215 tulosta("");
216 tulosta("Valitse:");
217 tulosta(" ? = avustus");
218 tulosta(" 0 = lopetus");
219 tulosta(" 1 = lisää uusi jäsen");
220 tulosta(" 2 = etsi jäsenen tiedot");
221 tulosta(" 3 = tulosteet");
222 tulosta(" 4 = tietojen korjailu");
223 tulosta(" 5 = päivitä jäsenmaksuja");
224 tulosta(" :",false);
225 }
226
227
232 int paavalinta() {
233 char nappain;
234
235 while ( true ) {
236
237 paamenu();
238
239 nappain = IO.odota_nappain("?012345",IO.EI_OLETUSTA,IO.MERKKI_ISOKSI);
240
241 switch (nappain) {
242 case '?': avustus(nappain); break;
243 case '0': return 0;
244 case '1': lisaa_uusi_jasen(nappain); break;
245 case '2': etsi_jasenen_tiedot(nappain); break;
246 case '3': tulosteet(nappain); break;
247 case '4': tietojen_korjailu(nappain); break;
248 case '5': paivita_jasenmaksuja(nappain); break;
249 default : tulosta("Näin ei voi käydä!"); return 1;
250 }
251
252 }
253 }
254
255
258 void logo() {
259 tulosta("");
260 tulosta(" ###################################");
261 tulosta(" # J Ä S E N R E K I S T E R I #");
262 tulosta(" # versio 9.95 #");
263 tulosta(" # Hannu Hanhi #");
264 tulosta(" ###################################");
265 }
266
267
268
271 void ohjeet() {
272 logo();
273 tulosta("");
274 tulosta("Tällä ohjelmalla ylläpidetään kerhon jäsenrekisteriä.");
275 }
276
277
278
281 void kiitokset() {
282 tulosta("");
283 tulosta("KIITOS KÄYTÖSTÄ JA TERVETULOA UUDELLEEN");
284 tulosta("");
285 tulosta("");
286 }
287
288
289
294 String lue_kerho() {
295 tulosta("Anna kerhon nimi>");
296 ei_toimi();
297 try {
298 kerho.lue_tiedostosta("kelmit");
299 } catch ( Jasenet.SailoException ex ) {
300 System.out.println(ex.getMessage());
301 return ex.getMessage();
302 }
303
304 return "";
305 }
306
307
308
313 String talleta_kerho() {
314 logo();
315
316 tulosta("");
317
318 tulosta("Talletus...");
319 ei_toimi();
320
321 return "";
322 }
323
324
325
329 public static void main(String[] args) {
330 Kerho kerho = new Kerho();
331
332 try {
333 Naytto naytto = new Naytto(kerho);
334
335 naytto.ohjeet();
336
337 naytto.lue_kerho();
338
339 naytto.paavalinta();
340
341 naytto.talleta_kerho();
342
343 naytto.kiitokset();
344 }
345 catch (Exception ex) {
346 System.out.println("VIRHE: " + ex.getMessage());
347 }
348 }
349
350 }
351
352