import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import javax.microedition.rms.RecordStore; import javax.microedition.rms.RecordStoreException; import javax.microedition.rms.InvalidRecordIDException; public class EnklaPoster extends MIDlet implements CommandListener { private Display displayen; private TextBox textrutan; private Command exitkommandot; private Command skapakommandot; private Command nykommandot; private Command hämtakommandot; private Command bortkommandot; private int senaste_postens_id; public EnklaPoster() { textrutan = new TextBox("Poster", "Hej, hej!", 2000, 0); exitkommandot = new Command("Exit", Command.EXIT, 0); skapakommandot = new Command("Skapa ett postlager", Command.SCREEN, 0); nykommandot = new Command("Lägg in en ny post", Command.SCREEN, 0); hämtakommandot = new Command("Hämta posten", Command.SCREEN, 0); bortkommandot = new Command("Ta bort posten", Command.SCREEN, 0); textrutan.addCommand(exitkommandot); textrutan.addCommand(skapakommandot); textrutan.addCommand(nykommandot); textrutan.addCommand(hämtakommandot); textrutan.addCommand(bortkommandot); textrutan.setCommandListener(this); displayen = Display.getDisplay(this); displayen.setCurrent(textrutan); } public void startApp() { } private void rensa() { textrutan.setString(""); } private void print(String s) { textrutan.setString(textrutan.getString() + s + "\n"); } public void commandAction(Command kommandot, Displayable displayable) { if (kommandot == exitkommandot) notifyDestroyed(); else if (kommandot == skapakommandot) { rensa(); print("Skapar ett postlager..."); try { RecordStore postlagret = RecordStore.openRecordStore("mitt-postlager", true); postlagret.closeRecordStore(); print("Klart. Postlagret är skapat."); } catch (RecordStoreException e) { print("Det gick inte att skapa postlagret."); } } else if (kommandot == nykommandot) { rensa(); print("Lägger in en ny post..."); try { RecordStore postlagret = RecordStore.openRecordStore("mitt-postlager", false); String strängen = "Det här är postens innehåll."; byte[] data = strängen.getBytes(); senaste_postens_id = postlagret.addRecord(data, 0, data.length); postlagret.closeRecordStore(); print("Klart. Den nya posten fick nummer " + senaste_postens_id + "."); } catch (RecordStoreException e) { print("Det gick inte att lägga in posten."); } } else if (kommandot == hämtakommandot) { rensa(); print("Hämtar posten med id " + senaste_postens_id + "..."); try { RecordStore postlagret = RecordStore.openRecordStore("mitt-postlager", false); byte[] data = postlagret.getRecord(senaste_postens_id); String strängen = new String(data); print("Post " + senaste_postens_id + ": '" + strängen + "'"); postlagret.closeRecordStore(); } catch (InvalidRecordIDException e) { print("Post " + senaste_postens_id + " finns inte."); } catch (RecordStoreException e) { print("Det gick inte att hämta posten."); } } else if (kommandot == bortkommandot) { rensa(); print("Tar bort posten med id " + senaste_postens_id + "..."); try { RecordStore postlagret = RecordStore.openRecordStore("mitt-postlager", false); postlagret.deleteRecord(senaste_postens_id); postlagret.closeRecordStore(); print("Klart. Posten är borttagen."); } catch (InvalidRecordIDException e) { print("Post " + senaste_postens_id + " fanns inte."); } catch (RecordStoreException e) { print("Det gick inte att ta bort posten."); } } } // commandAction public void destroyApp(boolean unconditional) { displayen = Display.getDisplay(this); displayen.setCurrent(textrutan); } public void pauseApp() { } } // EnklaPoster