home *** CD-ROM | disk | FTP | other *** search
/ Windows 95 Secrets / Secrets1.iso / Internet / HTMLU / JavaPerk / _SETUP.1 / Clock1.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-03-21  |  6.9 KB  |  253 lines

  1. import java.applet.Applet;
  2. import java.applet.AudioClip;
  3. import java.awt.BorderLayout;
  4. import java.awt.Component;
  5. import java.awt.Container;
  6. import java.awt.Event;
  7. import java.awt.Font;
  8. import java.awt.Label;
  9. import java.awt.Panel;
  10. import java.util.Date;
  11. import java.util.StringTokenizer;
  12.  
  13. public class Clock1 extends Applet implements Runnable {
  14.    // $FF: renamed from: as AppletSettings
  15.    AppletSettings field_0;
  16.    AudioClip alarmsound;
  17.    AudioClip hsound;
  18.    AudioClip msound;
  19.    Date alarmtime;
  20.    DetachFrame dframe;
  21.    Thread woohoo;
  22.    boolean countdown = false;
  23.    boolean pagedestroyed = false;
  24.    boolean twentyfour = false;
  25.    String timestring;
  26.    String timeformat;
  27.    String cmessage;
  28.    int tzoffset = -100;
  29.    int hint = -1;
  30.    int mint = -1;
  31.    long ctime;
  32.    // $FF: renamed from: l java.awt.Label
  33.    Label field_1 = new Label("", 1);
  34.    Panel mainpanel = new Panel();
  35.  
  36.    public void stop() {
  37.       ((Container)this).removeAll();
  38.       this.woohoo.stop();
  39.       this.woohoo = null;
  40.    }
  41.  
  42.    public void destroy() {
  43.       this.pagedestroyed = true;
  44.    }
  45.  
  46.    public void init() {
  47.       this.mainpanel.setLayout(new BorderLayout(0, 0));
  48.       this.dframe = new DetachFrame(this, this.mainpanel);
  49.       this.dframe.setTitle("Digital Clock applet");
  50.    }
  51.  
  52.    public void start() {
  53.       this.field_0 = new AppletSettings(this);
  54.       Object var1 = null;
  55.       String var13 = ((Applet)this).getParameter("COPYRIGHT");
  56.       if (var13 == null || !var13.equals("Clock applet, Copyright 1996 Sun Microsystems, Inc., all rights reserved.")) {
  57.          this.stop();
  58.       }
  59.  
  60.       var13 = ((Applet)this).getParameter("DOCUMENTATION");
  61.       if (var13 == null || !var13.equals("Documentation found at: http://www.xm.com/cafe/")) {
  62.          this.stop();
  63.       }
  64.  
  65.       var13 = ((Applet)this).getParameter("COUNTDOWN.TIME");
  66.       if (var13 != null) {
  67.          this.countdown = true;
  68.          StringTokenizer var2 = new StringTokenizer(var13, ",");
  69.          int var3 = Integer.parseInt(var2.nextToken());
  70.          int var4 = Integer.parseInt(var2.nextToken());
  71.          int var5 = Integer.parseInt(var2.nextToken());
  72.          int var6 = Integer.parseInt(var2.nextToken());
  73.          int var7 = Integer.parseInt(var2.nextToken());
  74.          int var8 = Integer.parseInt(var2.nextToken());
  75.          Date var9 = new Date(var3, var4, var5, var6, var7, var8);
  76.          this.ctime = var9.getTime();
  77.          var13 = ((Applet)this).getParameter("COUNTDOWN.BEFORE");
  78.          this.timestring = var13 == null ? "Countdown: %day;, %hour;:%minute;:%second;" : var13;
  79.          var13 = ((Applet)this).getParameter("COUNTDOWN.AFTER");
  80.          this.cmessage = var13 == null ? "Your time passed %day; days, %hour; hours, %minute; minutes, and %second; seconds ago." : var13;
  81.       }
  82.  
  83.       var13 = ((Applet)this).getParameter("ALARM.TIME");
  84.       if (var13 != null) {
  85.          StringTokenizer var27 = new StringTokenizer(var13, ",");
  86.          int var28 = Integer.parseInt(var27.nextToken());
  87.          int var29 = Integer.parseInt(var27.nextToken());
  88.          int var30 = Integer.parseInt(var27.nextToken());
  89.          int var31 = Integer.parseInt(var27.nextToken());
  90.          int var32 = Integer.parseInt(var27.nextToken());
  91.          int var33 = Integer.parseInt(var27.nextToken());
  92.          this.alarmtime = new Date(var28, var29, var30, var31, var32, var33);
  93.       }
  94.  
  95.       var13 = ((Applet)this).getParameter("ALARM.SOUND");
  96.       if (var13 != null) {
  97.          try {
  98.             this.alarmsound = ((Applet)this).getAudioClip(((Applet)this).getDocumentBase(), var13);
  99.          } catch (Exception var12) {
  100.          }
  101.       }
  102.  
  103.       var13 = ((Applet)this).getParameter("HOUR.SOUND");
  104.       if (var13 != null) {
  105.          try {
  106.             this.hsound = ((Applet)this).getAudioClip(((Applet)this).getDocumentBase(), var13);
  107.          } catch (Exception var11) {
  108.          }
  109.       }
  110.  
  111.       var13 = ((Applet)this).getParameter("MINUTE.SOUND");
  112.       if (var13 != null) {
  113.          try {
  114.             this.msound = ((Applet)this).getAudioClip(((Applet)this).getDocumentBase(), var13);
  115.          } catch (Exception var10) {
  116.          }
  117.       }
  118.  
  119.       var13 = ((Applet)this).getParameter("CHIME.MINUTE");
  120.       if (var13 != null) {
  121.          this.mint = Integer.parseInt(var13);
  122.       }
  123.  
  124.       var13 = ((Applet)this).getParameter("CHIME.HOUR");
  125.       if (var13 != null) {
  126.          this.hint = Integer.parseInt(var13);
  127.       }
  128.  
  129.       var13 = ((Applet)this).getParameter("TIMEZONE");
  130.       if (var13 != null) {
  131.          this.tzoffset = Integer.parseInt(var13);
  132.       }
  133.  
  134.       var13 = ((Applet)this).getParameter("24HOUR");
  135.       if (var13 == null || var13.equalsIgnoreCase("yes") || var13.equalsIgnoreCase("true") || var13.equalsIgnoreCase("on")) {
  136.          this.twentyfour = true;
  137.       }
  138.  
  139.       var13 = ((Applet)this).getParameter("TIME.DISPLAY");
  140.       this.timeformat = var13 == null ? "%date;/%month;/%year; %hour;:%minute;:%second;" : var13;
  141.       ((Container)this).setLayout(new BorderLayout(0, 0));
  142.       ((Component)this).setBackground(this.field_0.bgcolor);
  143.       this.field_1.setBackground(this.field_0.bgcolor);
  144.       this.field_1.setForeground(this.field_0.textcolor);
  145.       this.field_1.setFont(new Font(this.field_0.fontname, this.field_0.fontstyle, this.field_0.fontsize));
  146.       this.mainpanel.add("Center", this.field_1);
  147.       ((Container)this).add("Center", this.mainpanel);
  148.       if (this.woohoo == null) {
  149.          this.woohoo = new Thread(this);
  150.       }
  151.  
  152.       this.woohoo.start();
  153.    }
  154.  
  155.    public void run() {
  156.       boolean var1 = true;
  157.  
  158.       while(var1) {
  159.          Date var2 = new Date();
  160.          int var3 = this.tzoffset != -100 ? var2.getHours() + var2.getTimezoneOffset() / 60 + this.tzoffset : var2.getHours();
  161.          Date var4 = new Date(var2.getYear(), var2.getMonth(), var2.getDate(), var3, var2.getMinutes(), var2.getSeconds());
  162.          if (!this.countdown) {
  163.             if (var4.equals(this.alarmtime) && this.alarmsound != null) {
  164.                this.alarmsound.play();
  165.             }
  166.  
  167.             if (this.mint == var4.getMinutes() && var4.getSeconds() == 0 && this.msound != null) {
  168.                this.msound.play();
  169.             }
  170.  
  171.             if (this.hint == var4.getHours() && var4.getMinutes() + var4.getSeconds() == 0 && this.hsound != null) {
  172.                this.hsound.play();
  173.             }
  174.  
  175.             String var5 = this.timeformat;
  176.             var5 = this.replace(var5, "%date;", this.pad(var4.getDate()));
  177.             var5 = this.replace(var5, "%year;", this.pad(var4.getYear()));
  178.             var5 = this.replace(var5, "%month;", this.pad(var4.getMonth() + 1));
  179.             var5 = this.replace(var5, "%minute;", this.pad(var4.getMinutes()));
  180.             var5 = this.replace(var5, "%second;", this.pad(var4.getSeconds()));
  181.             if (!this.twentyfour) {
  182.                int var6 = var4.getHours();
  183.                var5 = var6 > 11 ? this.replace(var5, "%ampm;", "pm") : this.replace(var5, "%ampm;", "am");
  184.                var5 = var6 > 11 ? this.replace(var5, "%AMPM;", "PM") : this.replace(var5, "%AMPM;", "AM");
  185.                var6 = (var6 + 11) % 12 + 1;
  186.                var5 = this.replace(var5, "%hour;", String.valueOf(var6));
  187.             } else {
  188.                var5 = this.replace(var5, "%ampm;", "");
  189.                var5 = this.replace(var5, "%AMPM;", "");
  190.                var5 = this.replace(var5, "%hour;", this.pad(var4.getHours()));
  191.             }
  192.  
  193.             this.field_1.setText(var5);
  194.          } else {
  195.             long var25 = var4.getTime();
  196.             long var7 = Math.abs(this.ctime - var25);
  197.             int var9 = (int)(var7 / 86400000L);
  198.             var7 %= 86400000L;
  199.             int var10 = (int)(var7 / 3600000L);
  200.             var7 %= 3600000L;
  201.             int var11 = (int)(var7 / 60000L);
  202.             var7 %= 60000L;
  203.             int var12 = (int)(var7 / 1000L);
  204.             var7 %= 1000L;
  205.             String var13 = this.ctime - var25 < 0L ? this.cmessage : this.timestring;
  206.             var13 = this.replace(var13, "%day;", String.valueOf(var9));
  207.             var13 = this.replace(var13, "%hour;", this.pad(var10));
  208.             var13 = this.replace(var13, "%minute;", this.pad(var11));
  209.             var13 = this.replace(var13, "%second;", this.pad(var12));
  210.             if (var9 + var10 + var11 + var12 == 0 && this.alarmsound != null) {
  211.                this.alarmsound.play();
  212.             } else {
  213.                this.field_1.setText(var13);
  214.             }
  215.          }
  216.  
  217.          try {
  218.             Thread.sleep(1000L);
  219.          } catch (Exception var14) {
  220.             System.out.println(((Throwable)var14).toString());
  221.          }
  222.       }
  223.  
  224.    }
  225.  
  226.    public String replace(String var1, String var2, String var3) {
  227.       if (var1.indexOf(var2) == -1) {
  228.          return var1;
  229.       } else {
  230.          String var4 = var1.substring(0, var1.indexOf(var2));
  231.          String var5 = var1.substring(var1.indexOf(var2) + var2.length());
  232.          return var4 + var3 + var5;
  233.       }
  234.    }
  235.  
  236.    public boolean handleEvent(Event var1) {
  237.       if (var1.id == 401 && var1.target.equals(this.field_1)) {
  238.          this.dframe.toggle();
  239.          if (!this.dframe.isDetached() && !this.dframe.isDetached() && this.pagedestroyed) {
  240.             System.out.println("disposing, PAGE GONE!!");
  241.             this.dframe.dispose();
  242.          }
  243.       }
  244.  
  245.       return super.handleEvent(var1);
  246.    }
  247.  
  248.    public String pad(int var1) {
  249.       String var2 = "0" + var1;
  250.       return var2.substring(var2.length() - 2, var2.length());
  251.    }
  252. }
  253.