package oving3; import java.util.ArrayList; import static javax.swing.JOptionPane.*; import java.util.Calendar; import java.util.GregorianCalendar; //import java.lang.Long; class Konferansesenter { ArrayList rom = new ArrayList(); public static void main(String[] args) { boolean avslutt = false; final String OVERSIKT = "Oversikt"; final String REGISTRER_ROM = "Registrer Rom"; final String RESERVER_ROM = "Reserver Rom"; final String ANTALL_ROM = "Antall Rom"; final String AVSLUTT = "Avslutt"; Konferansesenter test = new Konferansesenter(); String[] muligeValg = {OVERSIKT, REGISTRER_ROM, RESERVER_ROM, ANTALL_ROM, AVSLUTT}; do { String valg = (String)showInputDialog(null, "Velg fra listen", "Konferansesenter", DEFAULT_OPTION, null, muligeValg, muligeValg[0]); if (valg.equals(OVERSIKT)) { showMessageDialog(null, test.toString(), "Oversikt", INFORMATION_MESSAGE); } else if (valg.equals(REGISTRER_ROM)) { int num = test.hentInt("Romnummer"); int str = test.hentInt("Størrelse (antall personer)"); if (test.registrerRom(num, str)) { showMessageDialog(null, "Rommet ble registrert.", "Suksess!", INFORMATION_MESSAGE); } else { showMessageDialog(null, "Rommet ble ikke registrert. Pass på at romnummeret ikke er opptatt.", "Feil!", ERROR_MESSAGE); } } else if (valg.equals(RESERVER_ROM)) { showMessageDialog(null, "Rommet skal reserveres fra...", null, INFORMATION_MESSAGE); long fra = test.hentTidspunkt(); long til = 0; do { showMessageDialog(null, "Rommet skal reserveres til...", null, INFORMATION_MESSAGE); til = test.hentTidspunkt(); } while (fra > til); int antPersoner = test.hentInt("Hvor mange personer?"); String navn = showInputDialog(null, "Hvilket navn skal rommet registreres på?"); String tlfNummer = showInputDialog(null, navn + "'s tlf.Nummer"); if (test.reserverRom(fra, til, antPersoner, navn, tlfNummer)) { showMessageDialog(null, "Reservasjonen ble registrert!", "Suksess!", INFORMATION_MESSAGE); } else { showMessageDialog(null, "Kunne ikke reservere rom.", "Feil!", ERROR_MESSAGE); } } else if (valg.equals(ANTALL_ROM)) { showMessageDialog(null, "Det er " + test.finnAntRom() + " rom i konferansesenteret.", null, INFORMATION_MESSAGE); } else if (valg.equals(AVSLUTT)) { avslutt = true; } } while (!avslutt); } public long hentTidspunkt() { GregorianCalendar kalender = new GregorianCalendar(); String taar[] = new String[100]; for (int i=0; i<100; i++) { taar[i] = String.valueOf(kalender.get(Calendar.YEAR) + i); } String tmnd[] = {"Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"}; String tdag[] = new String[31]; for (int i=0; i<31; i++) { tdag[i] = String.valueOf(i + 1); } String ttim[] = new String[24]; for (int i=0; i<24; i++) { ttim[i] = String.valueOf(i); } String tmin[] = new String[60]; for (int i=0; i<60; i++) { tmin[i] = String.valueOf(i); } String aar = showInputDialog(null, "År", null, DEFAULT_OPTION, null, taar, taar[0]).toString(); String mnd = showInputDialog(null, "Måned", null, DEFAULT_OPTION, null, tmnd, tmnd[0]).toString(); String dag = showInputDialog(null, "Dag", null, DEFAULT_OPTION, null, tdag, tdag[0]).toString(); String tim = showInputDialog(null, "Time", null, DEFAULT_OPTION, null, ttim, ttim[0]).toString(); String min = showInputDialog(null, "MSinutt", null, DEFAULT_OPTION, null, tmin, tmin[0]).toString(); for (int i=0; i<12; i++ ) { if (tmnd[i].equals(mnd)) { mnd = "" + (i + 1); break; } } mnd = (mnd.length() == 2) ? mnd : "0" + mnd; tim = (tim.length() == 2) ? tim : "0" + tim; dag = (dag.length() == 2) ? dag : "0" + dag; min = (min.length() == 2) ? min : "0" + min; return Long.decode(aar + mnd + dag + tim + min); } public int hentInt(String spm) { int num = -1; String strNum; do { strNum = showInputDialog(null, spm); try { num = Integer.parseInt(strNum); } catch (Exception e) { showMessageDialog(null, "Vennligst skriv inn et heltall.", "Feil!", ERROR_MESSAGE); } } while (num == -1); return num; } public boolean reserverRom(long fra, long til, int antPersoner, String navn, String tlfNummer) { if (rom.size() == 0) return false; for (Rom r : rom) { if (r.reserverRom(fra, til, antPersoner, navn, tlfNummer)) return true; } return false; } public boolean registrerRom(int nummer, int storrelse) { if ((nummer < 0) || (storrelse < 0) || (finnRomNum(nummer)) != null) return false; rom.add(new Rom(nummer, storrelse)); return true; } public Rom finnRomInd(int indeks) { return (rom.size()>indeks) && (rom.size()>0) ? rom.get(indeks) : null; } public Rom finnRomNum(int nummer) { for (Rom r : rom) { if (r.finnNummer() == nummer) { return r; } } return null; } public int finnAntRom() { return rom.size(); } public String toString() { String str = "Oversikt:\n"; for (Rom r : rom) { str += r.toString() + "=======================\n\n"; } return str; } }