/tags/3.3.0/src/org/getopt/luke/Progress.java

http://luke.googlecode.com/ · Java · 61 lines · 51 code · 9 blank · 1 comment · 5 complexity · 3c175b949fde5eb3e3def355df68cd27 MD5 · raw file

  1. package org.getopt.luke;
  2. import java.io.IOException;
  3. import java.util.Observable;
  4. import java.util.Observer;
  5. public class Progress implements Observer {
  6. Object ui;
  7. Object bar, msg;
  8. boolean showing = false;
  9. Luke luke;
  10. public Progress(Luke luke) {
  11. try {
  12. ui = luke.parse("/xml/progress.xml", this);
  13. } catch (IOException e) {
  14. // TODO Auto-generated catch block
  15. e.printStackTrace();
  16. }
  17. this.luke = luke;
  18. bar = luke.find(ui, "bar");
  19. msg = luke.find(ui, "msg");
  20. }
  21. public void setMessage(String message) {
  22. luke.setString(msg, "text", message);
  23. }
  24. public void show() {
  25. luke.add(ui);
  26. luke.repaint();
  27. showing = true;
  28. }
  29. public void hide() {
  30. luke.remove(ui);
  31. showing = false;
  32. }
  33. public void cancel(Object dialog) {
  34. }
  35. public void update(Observable o, Object arg) {
  36. if (arg instanceof ProgressNotification) {
  37. ProgressNotification pn = (ProgressNotification)arg;
  38. if (pn.message != null) {
  39. luke.setString(msg, "text", pn.message);
  40. }
  41. luke.setInteger(bar, "minimum", pn.minValue);
  42. luke.setInteger(bar, "maximum", pn.maxValue);
  43. luke.setInteger(bar, "value", pn.curValue);
  44. } else {
  45. luke.setString(msg, "text", arg.toString());
  46. }
  47. if (!showing) {
  48. show();
  49. }
  50. luke.doLayout(ui);
  51. }
  52. }