1 package vaihe5;
2
3 import java.io.*;
4
5 import vaihe5.kerho.Jasen;
6 import vaihe5.kerho.Jasenet;
7 import vaihe5.kerho.Kerho;
8 import fi.jyu.mit.ohj2.*;
9
10
26 public class Naytto {
27
28
31 private Kerho kerho;
32
33
39 public Naytto(Kerho kerho) throws Exception {
40 if ( kerho == null ) throw new Exception("Kerho täytyy antaa!");
41 this.kerho = kerho;
42 }
43
44
49 private static void tulosta(String s, boolean printlf) {
50 System.out.print(s);
51 if ( printlf ) System.out.println();
52 }
53
54
58 private static void tulosta(String s) {
59 tulosta(s,true);
60 }
61
62
66 private static void tyhja(int n) {
67 for (int i=0; i<n; i++) tulosta("");
68 }
69
70
83 private static void otsikko(char kirjain, String teksti) {
84 tyhja(4);
85 tulosta("" + kirjain + ". " + teksti);
86 tulosta(Mjonot.tayta("=",1+2+teksti.length()));
87 tyhja(2);
88 }
89
90
93 void ei_toimi() {
94 tulosta("Ei toimi vielä!");
95 IO.odota_jotakin();
96 }
97
98
102 void avustus(char valinta) {
103 otsikko(valinta, "Avustus");
104 ei_toimi();
105 }
106
107
108
113 private void tulosta(OutputStream os, final Jasen jasen) {
114 jasen.tulosta(os);
115 }
116
117
118
123 private void kysy_tiedot(Jasen jasen) {
124 tulosta("Toistaiseksi osaan lisätä vain Aku Ankan");
125 jasen.vastaa_aku_ankka();
126 }
127
128
129
133 void lisaa_uusi_jasen(char valinta) {
134 otsikko(valinta,"Uuden jäsenen lisäys");
135 Jasen jasen = new Jasen();
136 jasen.rekisteroi();
137 kysy_tiedot(jasen);
138
139 tulosta("Lisätäänkö");
140 tulosta(System.out,jasen);
141 tulosta(":",false);
142
143 if ( !IO.kylla_vastaus() ) {
144 kerho.poista(jasen.getTunnus_nro());
145 return;
146 }
147
148 try {
149 kerho.lisaa(jasen);
150 } catch ( Jasenet.SailoException ex ) {
151 tulosta(ex.getMessage());
152 kerho.poista(jasen.getTunnus_nro());
153 }
154 }
155
156
157
161 void etsi_jasenen_tiedot(char valinta) {
162 otsikko(valinta,"Etsi jäsenen tiedot");
163 ei_toimi();
164 }
165
166
167
171 void tulosteet(char valinta) {
172 otsikko(valinta,"Tulosteet");
173 tulosta("Toimii toistaiseksi vain näytölle");
174 tulosta("---------------------------------------------------------");
175
176 for (int i=0; i<kerho.getJasenia(); i++) {
177 Jasen jasen = kerho.anna_jasen(i);
178 tulosta("Jäsen nro: " + i);
179 tulosta(System.out,jasen);
180 tulosta("");
181 }
182
183 tulosta("---------------------------------------------------------");
184 IO.odota_jotakin();
185 }
186
187
188
192 void tietojen_korjailu(char valinta) {
193 otsikko(valinta,"Tietojen korjailu");
194 ei_toimi();
195 }
196
197
198
202 void paivita_jasenmaksuja(char valinta) {
203 otsikko(valinta,"Päivitä jäsenmaksuja");
204 ei_toimi();
205 }
206
207
208
211 public void paamenu() {
212 tulosta("\n\n\n\n");
213 tulosta("Jäsenrekisteri");
214 tulosta("==============");
215 tulosta("");
216 tulosta("Kerhossa " + kerho.getNimi()+ " on " +
217 kerho.getJasenia() + " jäsentä.");
218 tulosta("");
219 tulosta("Valitse:");
220 tulosta(" ? = avustus");
221 tulosta(" 0 = lopetus");
222 tulosta(" 1 = lisää uusi jäsen");
223 tulosta(" 2 = etsi jäsenen tiedot");
224 tulosta(" 3 = tulosteet");
225 tulosta(" 4 = tietojen korjailu");
226 tulosta(" 5 = päivitä jäsenmaksuja");
227 tulosta(" :",false);
228 }
229
230
235 int paavalinta() {
236 char nappain;
237
238 while ( true ) {
239
240 paamenu();
241
242 nappain = IO.odota_nappain("?012345",IO.EI_OLETUSTA,IO.MERKKI_ISOKSI);
243
244 switch (nappain) {
245 case '?': avustus(nappain); break;
246 case '0': return 0;
247 case '1': lisaa_uusi_jasen(nappain); break;
248 case '2': etsi_jasenen_tiedot(nappain); break;
249 case '3': tulosteet(nappain); break;
250 case '4': tietojen_korjailu(nappain); break;
251 case '5': paivita_jasenmaksuja(nappain); break;
252 default : tulosta("Näin ei voi käydä!"); return 1;
253 }
254
255 }
256 }
257
258
261 void logo() {
262 tulosta("");
263 tulosta(" ###################################");
264 tulosta(" # J Ä S E N R E K I S T E R I #");
265 tulosta(" # versio 9.95 #");
266 tulosta(" # Hannu Hanhi #");
267 tulosta(" ###################################");
268 }
269
270
271
274 void ohjeet() {
275 logo();
276 tulosta("");
277 tulosta("Tällä ohjelmalla ylläpidetään kerhon jäsenrekisteriä.");
278 }
279
280
281
284 void kiitokset() {
285 tulosta("");
286 tulosta("KIITOS KÄYTÖSTÄ JA TERVETULOA UUDELLEEN");
287 tulosta("");
288 tulosta("");
289 }
290
291
292
297 String lue_kerho() {
298 tulosta("Anna kerhon nimi>");
299 ei_toimi();
300 try {
301 kerho.lue_tiedostosta("kelmit");
302 } catch ( Jasenet.SailoException ex ) {
303 System.out.println(ex.getMessage());
304 return ex.getMessage();
305 }
306
307 return "";
308 }
309
310
311
316 String talleta_kerho() {
317 logo();
318
319 tulosta("");
320
321 tulosta("Talletus...");
322 ei_toimi();
323
324 return "";
325 }
326
327
328
332 public static void main(String[] args) {
333 Kerho kerho = new Kerho();
334
335 try {
336 Naytto naytto = new Naytto(kerho);
337
338 naytto.ohjeet();
339
340 naytto.lue_kerho();
341
342 naytto.paavalinta();
343
344 naytto.talleta_kerho();
345
346 naytto.kiitokset();
347 }
348 catch (Exception ex) {
349 System.out.println("VIRHE: " + ex.getMessage());
350 }
351 }
352
353 }
354
355