home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 May / PCO_5_97.ISO / FilesBBS / OS2 / NETREXX.ARJ / NETREXX.ZIP / NetRexx / WordClock.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-02-17  |  5.0 KB  |  180 lines

  1. import java.applet.Applet;
  2. import java.awt.Component;
  3. import java.awt.Font;
  4. import java.awt.Graphics;
  5. import java.util.Date;
  6. import netrexx.lang.NoOtherwiseException;
  7. import netrexx.lang.Rexx;
  8. import netrexx.lang.RexxIO;
  9. import netrexx.lang.RexxParse;
  10. import netrexx.lang.RexxSet;
  11.  
  12. public class WordClock extends Applet implements Runnable {
  13.    protected Thread timer;
  14.    protected Rexx offsetx;
  15.    protected Rexx offsety;
  16.    protected Rexx now;
  17.    private static final Rexx $$1 = new Rexx(20);
  18.    private static final Rexx $$2 = new Rexx(2);
  19.    private static final Rexx $$3 = new Rexx(3);
  20.    private static final char[] $$6 = new char[]{'\u0001', '\n', '\u0005', '\u0000', '\u0000', '\u0000', '\u0001', '\u0000', '\u0000'};
  21.    private static final char[] $$8 = new char[]{'\u0002', '\u0001', ':', '\u0002', '\u0001', ':', '\u0001', '\n', '\u0001', '\u0000', '\u0000'};
  22.    private static final Rexx $$10 = new Rexx(30);
  23.    private static final Rexx $$11 = new Rexx(0);
  24.    private static final Rexx $$12 = new Rexx(60);
  25.    private static final Rexx $$13 = new Rexx(1000);
  26.    private static final char[] $$15 = new char[]{'\u0002', '\u0001', ':', '\n', '\u0001', '\u0000', '\u0002', '\u0001', ':', '\n', '\u0001', '\u0001', '\u0001', '\n', '\u0001', '\u0002', '\u0000'};
  27.    private static final Rexx $$17 = new Rexx(29);
  28.    private static final Rexx $$18 = new Rexx(1);
  29.    private static final Rexx $$19 = new Rexx(5);
  30.    private static final Rexx $$20 = new Rexx(32);
  31.    private static final Rexx $$21 = new Rexx(12);
  32.    private static final Rexx $$22 = new Rexx(4);
  33.    private static final Rexx $$25 = new Rexx(10);
  34.    private static final Rexx $$26 = new Rexx(15);
  35.    private static final Rexx $$27 = new Rexx(25);
  36.    private static final Rexx $$28 = new Rexx(35);
  37.    private static final Rexx $$29 = new Rexx(40);
  38.    private static final Rexx $$30 = new Rexx(45);
  39.    private static final Rexx $$31 = new Rexx(50);
  40.    private static final Rexx $$32 = new Rexx(55);
  41.    // $FF: renamed from: $0 java.lang.String
  42.    private static final String field_0 = "WordClock.nrx";
  43.  
  44.    public void init() {
  45.       String var1 = ((Applet)this).getParameter("face");
  46.       if (var1 == null) {
  47.          var1 = "TimesRoman";
  48.       }
  49.  
  50.       String var2 = ((Applet)this).getParameter("size");
  51.       if (var2 == null) {
  52.          var2 = "20";
  53.       }
  54.  
  55.       ((Component)this).setFont(new Font(var1, 1, (new Rexx(var2)).toint()));
  56.       ((Applet)this).resize((new Rexx(var2)).OpMult((RexxSet)null, $$1).toint(), (new Rexx(var2)).OpMult((RexxSet)null, $$2).toint());
  57.       this.offsetx = (new Rexx(var2)).OpDiv((RexxSet)null, $$2);
  58.       this.offsety = (new Rexx(var2)).OpMult((RexxSet)null, $$3).OpDiv((RexxSet)null, $$2);
  59.    }
  60.  
  61.    public void start() {
  62.       if (this.timer == null) {
  63.          this.timer = new Thread(this);
  64.       }
  65.  
  66.       this.timer.setPriority(10);
  67.       this.timer.start();
  68.    }
  69.  
  70.    public void stop() {
  71.       if (this.timer != null) {
  72.          this.timer.stop();
  73.          this.timer = null;
  74.       }
  75.  
  76.    }
  77.  
  78.    public void run() {
  79.       Object var1 = null;
  80.       Object var2 = null;
  81.  
  82.       try {
  83.          for(; this.timer != null; Thread.sleep($$13.OpMult((RexxSet)null, var7).tolong())) {
  84.             Rexx[] var3 = new Rexx[2];
  85.             RexxParse.parse(new Rexx(String.valueOf(new Date())), $$6, var3);
  86.             this.now = var3[1];
  87.             ((Component)this).repaint();
  88.             Rexx[] var4 = new Rexx[1];
  89.             RexxParse.parse(this.now, $$8, var4);
  90.             Rexx var6 = var4[0];
  91.             var7 = $$10.OpSub((RexxSet)null, var6);
  92.             if (var7.OpLtEq((RexxSet)null, $$11)) {
  93.                var7 = var7.OpAdd((RexxSet)null, $$12);
  94.             }
  95.          }
  96.       } catch (InterruptedException var5) {
  97.          RexxIO.Say(new Rexx("Interrupted..."));
  98.       }
  99.  
  100.       this.timer = null;
  101.    }
  102.  
  103.    public void paint(Graphics var1) {
  104.       var1.drawString(wordtime(this.now).toString(), this.offsetx.toint(), this.offsety.toint());
  105.    }
  106.  
  107.    public static Rexx wordtime(Rexx var0) {
  108.       Object var1 = null;
  109.       Object var2 = null;
  110.       Object var3 = null;
  111.       Rexx[] var8 = new Rexx[3];
  112.       RexxParse.parse(var0, $$15, var8);
  113.       Rexx var9 = var8[0];
  114.       Rexx var10 = var8[1];
  115.       Rexx var13 = var8[2];
  116.       if (var13.OpGt((RexxSet)null, $$17)) {
  117.          var10 = var10.OpAdd((RexxSet)null, $$18);
  118.       }
  119.  
  120.       Rexx[] var4 = new Rexx[]{new Rexx(""), new Rexx(" just gone"), new Rexx(" just after"), new Rexx(" nearly"), new Rexx(" almost")};
  121.       Rexx var5 = var10.OpRem((RexxSet)null, $$19);
  122.       Rexx var6 = (new Rexx("It's")).OpCc((RexxSet)null, var4[var5.toint()]);
  123.       if (var10.OpGt((RexxSet)null, $$20)) {
  124.          var9 = var9.OpAdd((RexxSet)null, $$18);
  125.       }
  126.  
  127.       var10 = var10.OpAdd((RexxSet)null, $$2);
  128.       if ((new Rexx(var9.OpRem((RexxSet)null, $$21).OpEq((RexxSet)null, $$11))).OpAnd((RexxSet)null, new Rexx(var10.OpRem((RexxSet)null, $$12).OpLtEq((RexxSet)null, $$22)))) {
  129.          return var9.OpEq((RexxSet)null, $$21) ? var6.OpCcblank((RexxSet)null, new Rexx("Noon.")) : new Rexx("Midnight.");
  130.       } else {
  131.          var10 = var10.OpSub((RexxSet)null, var10.OpRem((RexxSet)null, $$19));
  132.          if (var9.OpGt((RexxSet)null, $$21)) {
  133.             var9 = var9.OpSub((RexxSet)null, $$21);
  134.          } else if (var9.OpEq((RexxSet)null, $$11)) {
  135.             var9 = new Rexx((byte)12);
  136.          }
  137.  
  138.          if (!var10.OpEq((RexxSet)null, $$11)) {
  139.             if (var10.OpEq((RexxSet)null, $$12)) {
  140.                var10 = new Rexx((byte)0);
  141.             } else if (var10.OpEq((RexxSet)null, $$19)) {
  142.                var6 = var6.OpCcblank((RexxSet)null, new Rexx("five past"));
  143.             } else if (var10.OpEq((RexxSet)null, $$25)) {
  144.                var6 = var6.OpCcblank((RexxSet)null, new Rexx("ten past"));
  145.             } else if (var10.OpEq((RexxSet)null, $$26)) {
  146.                var6 = var6.OpCcblank((RexxSet)null, new Rexx("a quarter past"));
  147.             } else if (var10.OpEq((RexxSet)null, $$1)) {
  148.                var6 = var6.OpCcblank((RexxSet)null, new Rexx("twenty past"));
  149.             } else if (var10.OpEq((RexxSet)null, $$27)) {
  150.                var6 = var6.OpCcblank((RexxSet)null, new Rexx("twenty-five past"));
  151.             } else if (var10.OpEq((RexxSet)null, $$10)) {
  152.                var6 = var6.OpCcblank((RexxSet)null, new Rexx("half past"));
  153.             } else if (var10.OpEq((RexxSet)null, $$28)) {
  154.                var6 = var6.OpCcblank((RexxSet)null, new Rexx("twenty-five to"));
  155.             } else if (var10.OpEq((RexxSet)null, $$29)) {
  156.                var6 = var6.OpCcblank((RexxSet)null, new Rexx("twenty to"));
  157.             } else if (var10.OpEq((RexxSet)null, $$30)) {
  158.                var6 = var6.OpCcblank((RexxSet)null, new Rexx("a quarter to"));
  159.             } else if (var10.OpEq((RexxSet)null, $$31)) {
  160.                var6 = var6.OpCcblank((RexxSet)null, new Rexx("ten to"));
  161.             } else {
  162.                if (!var10.OpEq((RexxSet)null, $$32)) {
  163.                   throw new NoOtherwiseException();
  164.                }
  165.  
  166.                var6 = var6.OpCcblank((RexxSet)null, new Rexx("five to"));
  167.             }
  168.          }
  169.  
  170.          Rexx var7 = (new Rexx("one two three four five six")).OpCcblank((RexxSet)null, new Rexx("seven eight nine ten eleven twelve "));
  171.          var6 = var6.OpCcblank((RexxSet)null, var7.word(var9));
  172.          if (var10.OpEq((RexxSet)null, $$11)) {
  173.             var6 = var6.OpCcblank((RexxSet)null, new Rexx("o'clock"));
  174.          }
  175.  
  176.          return var6.OpCc((RexxSet)null, new Rexx('.'));
  177.       }
  178.    }
  179. }
  180.