Ejemplo n.º 1
0
 public void run() {
   boolean exitRequested = false;
   if (!initialized) {
     init();
     initialized = true;
   }
   if (state != FAILED) {
     state = LOADING;
     curBook = 0;
     enqueMsg(MSG_BOOK);
   }
   repaint();
   while (midlet.thread == Thread.currentThread()) {
     int msg;
     while ((msg = dequeMsg()) != 0) {
       switch (msg) {
         case MSG_BOOK:
           loadBook();
           repaint();
           break;
         case MSG_NEXT_LINE:
           nextLine();
           repaint();
           break;
         case MSG_PREV_LINE:
           prevLine();
           repaint();
           break;
         case MSG_NEXT_PAGE:
           nextPage();
           repaint();
           break;
         case MSG_PREV_PAGE:
           prevPage();
           repaint();
           break;
         case MSG_EXIT:
           exitRequested = true;
           break;
       }
     }
     if (exitRequested) break;
     synchronized (this) {
       try {
         if (!hasPendingMsg()) wait();
       } catch (InterruptedException e) {
       }
     }
   }
   midlet.threadTerminated();
   if (exitRequested) midlet.notifyDestroyed();
   else state = PAUSED;
 }
Ejemplo n.º 2
0
 private void nextPage() {
   for (int i = 0; i < screenRows; i++) nextLine();
 }