Mega Code Archive

 
Categories / Java / J2ME
 

Jargoneer

/* Wireless Java 2nd edition  Jonathan Knudsen Publisher: Apress ISBN: 1590590775  */ import java.io.*; import javax.microedition.io.*; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class Jargoneer extends MIDlet     implements CommandListener, Runnable {   private Display mDisplay;   private Command mExitCommand, mFindCommand, mCancelCommand;   private TextBox mSubmitBox;   private Form mProgressForm;   private StringItem mProgressString;   public Jargoneer() {     mExitCommand = new Command("Exit", Command.EXIT, 0);     mFindCommand = new Command("Find", Command.SCREEN, 0);     mCancelCommand = new Command("Cancel", Command.CANCEL, 0);          mSubmitBox = new TextBox("Jargoneer", "", 32, 0);     mSubmitBox.addCommand(mExitCommand);     mSubmitBox.addCommand(mFindCommand);     mSubmitBox.setCommandListener(this);          mProgressForm = new Form("Lookup progress");     mProgressString = new StringItem(null, null);     mProgressForm.append(mProgressString);   }   public void startApp() {     mDisplay = Display.getDisplay(this);          mDisplay.setCurrent(mSubmitBox);   }   public void pauseApp() {}   public void destroyApp(boolean unconditional) {}   public void commandAction(Command c, Displayable s) {     if (c == mExitCommand) {       destroyApp(false);       notifyDestroyed();     }     else if (c == mFindCommand) {       // Show the progress form.       mDisplay.setCurrent(mProgressForm);       // Kick off the thread to do the query.       Thread t = new Thread(this);       t.start();     }   }   public void run() {     String word = mSubmitBox.getString();     String definition;          try { definition = lookUp(word); }     catch (IOException ioe) {       Alert report = new Alert(           "Sorry",           "Something went wrong and that " +           "definition could not be retrieved.",           null, null);       report.setTimeout(Alert.FOREVER);       mDisplay.setCurrent(report, mSubmitBox);       return;     }          Alert results = new Alert("Definition", definition,         null, null);     results.setTimeout(Alert.FOREVER);     mDisplay.setCurrent(results, mSubmitBox);   }      private String lookUp(String word) throws IOException {     HttpConnection hc = null;     InputStream in = null;     String definition = null;          try {       String baseURL = "http://65.215.221.148:8080/wj2/jargoneer?word=";       // Take a stab at parameter encoding, ' ' -> '+'.       String url = baseURL + word.replace(' ', '+');       mProgressString.setText("Connecting...");       hc = (HttpConnection)Connector.open(url);       hc.setRequestProperty("Connection", "close");       in = hc.openInputStream();              mProgressString.setText("Reading...");       int contentLength = (int)hc.getLength();       if (contentLength == -1) contentLength = 255;       byte[] raw = new byte[contentLength];       int length = in.read(raw);       // Clean up.       in.close();       hc.close();       definition = new String(raw, 0, length);     }     finally {       try {         if (in != null) in.close();         if (hc != null) hc.close();       }       catch (IOException ignored) {}     }          return definition;   } }