home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 November / PCO1197.ISO / FilesBBS / WIN95 / NET_COM / N32E403.EXE / netcast.z / ncjava10.jar / netscape / netcast / application / CastanetDataItem.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-09-03  |  11.5 KB  |  467 lines

  1. package netscape.netcast.application;
  2.  
  3. import java.applet.Applet;
  4. import java.net.MalformedURLException;
  5. import java.net.URL;
  6. import java.util.ResourceBundle;
  7. import java.util.StringTokenizer;
  8. import java.util.Vector;
  9. import marimba.castanet.client.CastanetChannel;
  10. import marimba.castanet.client.CastanetObject;
  11. import marimba.castanet.client.CastanetTransmitter;
  12. import marimba.castanet.client.CastanetWorkspace;
  13. import marimba.castanet.util.ProgressInfo;
  14. import netscape.javascript.JSObject;
  15. import netscape.security.PrivilegeManager;
  16. import netscape.security.Target;
  17.  
  18. class CastanetDataItem extends DataItem {
  19.    // $FF: renamed from: ws marimba.castanet.client.CastanetWorkspace
  20.    CastanetWorkspace field_0;
  21.    CastanetTransmitter transmitter;
  22.    CastanetChannel channel;
  23.    String status;
  24.    boolean bInitialDownload = false;
  25.    private boolean bGotProps = false;
  26.    private boolean gotProgressStart = false;
  27.    private boolean gotStatusBarStart = false;
  28.  
  29.    public CastanetDataItem(String var1, Applet var2) {
  30.       PrivilegeManager var3 = PrivilegeManager.getPrivilegeManager();
  31.       super.m_URL = new String(var1);
  32.       DebugManager.println("Called the 1 constructor: applet = " + var2);
  33.       super.m_Applet = (ConstPR4)var2;
  34.       this.field_0 = super.m_Applet.constManager.ws;
  35.       super.m_Type = 2;
  36.       super.m_State = 0;
  37.       this.bInitialDownload = true;
  38.       this.loadData();
  39.       this.getChannelProps(this.channel);
  40.       super.m_Mode = "window";
  41.       if (var3 != null) {
  42.          Target var4 = Target.findTarget("MarimbaInternalTarget");
  43.          if (var4 != null) {
  44.             var3.enablePrivilege(var4);
  45.          }
  46.       }
  47.  
  48.       String var10 = "start";
  49.       int var5 = var1.indexOf(63);
  50.       if (var5 >= 0) {
  51.          var10 = var1.substring(var5 + 1);
  52.       }
  53.  
  54.       if (!var10.startsWith("start,")) {
  55.          this.channel.start();
  56.       } else {
  57.          String var6 = var10.substring(6);
  58.          Vector var7 = new Vector();
  59.          StringTokenizer var8 = new StringTokenizer(var6, ",");
  60.  
  61.          while(var8.hasMoreTokens()) {
  62.             var7.addElement(var8.nextToken());
  63.          }
  64.  
  65.          String[] var9 = new String[var7.size()];
  66.          var7.copyInto(var9);
  67.          this.channel.start(var9);
  68.       }
  69.    }
  70.  
  71.    public CastanetDataItem(Applet var1, CastanetChannel var2) {
  72.       DebugManager.println("Called the 2nd constructor: applet = " + var1 + " channel: " + var2);
  73.       super.m_Applet = (ConstPR4)var1;
  74.       this.field_0 = super.m_Applet.constManager.ws;
  75.       this.channel = var2;
  76.       this.transmitter = var2.getTransmitter();
  77.       super.m_Type = 2;
  78.       super.m_State = 0;
  79.       this.getChannelProps(var2);
  80.    }
  81.  
  82.    public CastanetDataItem(Applet var1, String var2) {
  83.       DebugManager.println("Called the 3rd constructor: applet = " + var1 + " matchKey = " + var2);
  84.       this.bGotProps = true;
  85.       super.m_Applet = (ConstPR4)var1;
  86.       this.field_0 = super.m_Applet.constManager.ws;
  87.       super.m_State = 0;
  88.       this.loadData(var2);
  89.       this.getChannelProps(this.channel);
  90.    }
  91.  
  92.    public void loadData(String var1) {
  93.       super.loadData(var1);
  94.       this.loadData();
  95.    }
  96.  
  97.    public void loadData() {
  98.       DebugManager.println("in load data");
  99.       super.m_Type = 2;
  100.  
  101.       try {
  102.          URL var1 = new URL(super.m_URL);
  103.          String var2 = var1.getHost();
  104.          int var3 = var1.getPort();
  105.          if (var3 < 0) {
  106.             var3 = 80;
  107.          }
  108.  
  109.          String var4 = var2 + ":" + var3;
  110.          String var5 = var1.getFile();
  111.          DebugManager.println("load data after getfile");
  112.  
  113.          while(var5.startsWith("/")) {
  114.             var5 = var5.substring(1);
  115.          }
  116.  
  117.          int var6 = var5.indexOf(47);
  118.          if (var6 >= 0) {
  119.             var5 = var5.substring(0, var6);
  120.          }
  121.  
  122.          var6 = var5.indexOf(63);
  123.          if (var6 >= 0) {
  124.             var5 = var5.substring(0, var6);
  125.          }
  126.  
  127.          PrivilegeManager var7 = PrivilegeManager.getPrivilegeManager();
  128.          if (var7 != null) {
  129.             Target var8 = Target.findTarget("MarimbaInternalTarget");
  130.             if (var8 != null) {
  131.                var7.enablePrivilege(var8);
  132.             }
  133.          }
  134.  
  135.          DebugManager.println("ws is: " + this.field_0);
  136.          this.transmitter = this.field_0.getTransmitterCreate(var4);
  137.          if (this.transmitter != null) {
  138.             this.channel = this.transmitter.getChannelCreate(var5);
  139.             super.m_PrefsKey = "netcaster.channel." + this.channel.getEncodedName();
  140.             return;
  141.          }
  142.       } catch (MalformedURLException var9) {
  143.          ((Throwable)var9).printStackTrace();
  144.       }
  145.  
  146.    }
  147.  
  148.    void setCastanetProps(CastanetChannel var1) {
  149.       if (!this.bGotProps) {
  150.          this.bGotProps = true;
  151.          this.getChannelProps(var1);
  152.          super.m_Description = var1.getChannelProperty("description", "No description available");
  153.          DebugManager.println("getting description: " + super.m_Description);
  154.          super.m_Frequency = -7;
  155.          String var2 = var1.getChannelProperty("placement", "window");
  156.          if (var2.equalsIgnoreCase("desktop")) {
  157.             super.m_Mode = "webtop";
  158.          } else if (var2.equalsIgnoreCase("fullscreen")) {
  159.             super.m_Mode = "full";
  160.          } else {
  161.             super.m_Mode = "window";
  162.          }
  163.  
  164.          DebugManager.println("getting m_Mode from channel props: " + super.m_Mode + " orig result: " + var2);
  165.          this.updateProps();
  166.       }
  167.    }
  168.  
  169.    void getChannelProps(CastanetChannel var1) {
  170.       String var2 = ((CastanetObject)var1).getProperty("netcaster.scheduled", "true");
  171.       ((DataItem)this).setScheduled(var2.equalsIgnoreCase("true") ? Boolean.TRUE : Boolean.FALSE);
  172.       var2 = ((CastanetObject)var1).getProperty("netcaster.startTime", "0");
  173.       super.m_StartTime = Integer.parseInt(var2);
  174.       var2 = ((CastanetObject)var1).getProperty("netcaster.endTime", "0");
  175.       super.m_EndTime = Integer.parseInt(var2);
  176.       var2 = ((CastanetObject)var1).getProperty("netcaster.updateTime", "-1");
  177.       super.m_UpdateTime = Integer.parseInt(var2);
  178.       var2 = ((CastanetObject)var1).getProperty("netcaster.updateFreq", "-7");
  179.       super.m_Frequency = Integer.parseInt(var2);
  180.       DebugManager.println("update FREQ initially: " + super.m_Frequency);
  181.       long var3 = var1.getSize();
  182.       super.m_MaxSize = (int)(var3 < 1024L ? 1L : var3 / 1024L);
  183.       DebugManager.println("update getSize: " + var1.getSize());
  184.       DebugManager.println("update m_MaxSize: " + super.m_MaxSize);
  185.    }
  186.  
  187.    public void saveData(String var1) {
  188.       String var2 = super.m_PrefsKey;
  189.       super.saveData(var2);
  190.       String var3 = var2 + ".name";
  191.       NCPrefsManager.SaveData(var3, super.m_Name);
  192.       var3 = var2 + ".type";
  193.       NCPrefsManager.SaveData(var3, "" + super.m_Type);
  194.       this.channel.setProperty("netcaster.updateTime", "" + super.m_UpdateTime);
  195.       this.channel.setProperty("netcaster.startTime", "" + super.m_StartTime);
  196.       this.channel.setProperty("netcaster.endTime", "" + super.m_EndTime);
  197.       this.channel.setProperty("netcaster.scheduled", ((DataItem)this).isScheduled() ? "true" : "false");
  198.       this.channel.setProperty("netcaster.updateFreq", "" + super.m_Frequency);
  199.    }
  200.  
  201.    public String[][] getMenuItems() {
  202.       int var2 = 1;
  203.       String[][] var1;
  204.       if (((DataItem)this).isDeletable()) {
  205.          var1 = new String[4][2];
  206.       } else {
  207.          var1 = new String[3][2];
  208.       }
  209.  
  210.       if (super.m_Status == 1) {
  211.          var1[0][0] = "Stop Update";
  212.          var1[0][1] = "update_stop";
  213.       } else {
  214.          var1[0][0] = "Start Update";
  215.          var1[0][1] = "update_start";
  216.       }
  217.  
  218.       if (((DataItem)this).isDeletable()) {
  219.          var1[var2][0] = "Delete";
  220.          var1[var2++][1] = "delete";
  221.       }
  222.  
  223.       var1[var2][0] = "-";
  224.       var1[var2++][1] = "";
  225.       var1[var2][0] = "Properties";
  226.       var1[var2++][1] = "props";
  227.       return var1;
  228.    }
  229.  
  230.    public void processMenuItem(String var1) {
  231.       if (var1.compareTo("update_start") == 0) {
  232.          this.update();
  233.       } else if (var1.compareTo("update_stop") == 0) {
  234.          this.cancelUpdate();
  235.       } else {
  236.          super.processMenuItem(var1);
  237.       }
  238.    }
  239.  
  240.    public void added(CategoryData var1, boolean var2) {
  241.       NSTimer.master.add(Const.scheduler, 0L, this);
  242.       super.added(var1, var2);
  243.    }
  244.  
  245.    public void remove() {
  246.       NSTimer.master.remove(Const.scheduler, this);
  247.    }
  248.  
  249.    public void deleted(CategoryData var1) {
  250.       this.remove();
  251.       super.deleted(var1);
  252.       PrivilegeManager var2 = PrivilegeManager.getPrivilegeManager();
  253.       if (var2 != null) {
  254.          Target var3 = Target.findTarget("MarimbaInternalTarget");
  255.          if (var3 != null) {
  256.             var2.enablePrivilege(var3);
  257.          }
  258.       }
  259.  
  260.       DebugManager.println("DELETE: " + this.channel);
  261.       this.channel.remove();
  262.    }
  263.  
  264.    public void update() {
  265.       DebugManager.println("UPDATE: " + this.channel);
  266.       PrivilegeManager var1 = PrivilegeManager.getPrivilegeManager();
  267.       if (var1 != null) {
  268.          Target var2 = Target.findTarget("MarimbaInternalTarget");
  269.          if (var2 != null) {
  270.             var1.enablePrivilege(var2);
  271.          }
  272.       }
  273.  
  274.       ((DataItem)this).setStatus(1);
  275.       this.channel.update();
  276.    }
  277.  
  278.    public synchronized void autoUpdate() {
  279.       DebugManager.println("enter AUTO UPDATE: " + this.channel);
  280.       PrivilegeManager var1 = PrivilegeManager.getPrivilegeManager();
  281.       if (var1 != null) {
  282.          Target var2 = Target.findTarget("MarimbaInternalTarget");
  283.          if (var2 != null) {
  284.             var1.enablePrivilege(var2);
  285.          }
  286.       }
  287.  
  288.       ((DataItem)this).setStatus(1);
  289.       this.channel.autoUpdate();
  290.    }
  291.  
  292.    public int getFrequency() {
  293.       PrivilegeManager var1 = PrivilegeManager.getPrivilegeManager();
  294.       if (var1 != null) {
  295.          Target var2 = Target.findTarget("MarimbaInternalTarget");
  296.          if (var2 != null) {
  297.             var1.enablePrivilege(var2);
  298.          }
  299.       }
  300.  
  301.       DebugManager.println("UPDATE active FREQ: " + this.channel.getActiveFrequency());
  302.       DebugManager.println("UPDATE inactive FREQ: " + this.channel.getInactiveFrequency());
  303.       DebugManager.println("UPDATE update FREQ: " + this.channel.getUpdateFrequency());
  304.       DebugManager.println("UPDATE FREQ: " + super.m_Frequency);
  305.       return super.m_Frequency == -7 ? this.channel.getUpdateFrequency() : super.m_Frequency;
  306.    }
  307.  
  308.    public void cancelUpdate() {
  309.       PrivilegeManager var1 = PrivilegeManager.getPrivilegeManager();
  310.       if (var1 != null) {
  311.          Target var2 = Target.findTarget("MarimbaInternalTarget");
  312.          if (var2 != null) {
  313.             var1.enablePrivilege(var2);
  314.          }
  315.       }
  316.  
  317.       this.channel.cancel();
  318.    }
  319.  
  320.    public void setStatus(String var1, int var2) {
  321.       this.status = var1;
  322.       if (!ConstPR4.bClosing) {
  323.          DebugManager.println("STATUS: " + this.channel.getName() + "=" + var1);
  324.          JSObject var3 = JSObject.getWindow(super.m_Applet);
  325.          switch (var2) {
  326.             case 400:
  327.             case 404:
  328.             case 405:
  329.             case 407:
  330.             case 408:
  331.             case 410:
  332.             case 411:
  333.             case 500:
  334.                if (!this.gotStatusBarStart) {
  335.                   this.gotStatusBarStart = true;
  336.                   JSObject[] var5 = new JSObject[1];
  337.                   if (super.m_ItemView != null) {
  338.                      var5[0] = super.m_ItemView;
  339.                      var3.call("animateGo", var5);
  340.                      return;
  341.                   }
  342.                }
  343.             default:
  344.                return;
  345.             case 401:
  346.             case 402:
  347.             case 403:
  348.             case 406:
  349.             case 409:
  350.             case 507:
  351.             case 508:
  352.             case 509:
  353.                this.bInitialDownload = false;
  354.                if (this.gotStatusBarStart) {
  355.                   this.gotStatusBarStart = false;
  356.                   JSObject[] var4 = new JSObject[1];
  357.                   if (super.m_ItemView != null) {
  358.                      var4[0] = super.m_ItemView;
  359.                      var3.call("animateStop", var4);
  360.                   }
  361.                }
  362.  
  363.                ((DataItem)this).setStatus(0);
  364.          }
  365.       }
  366.    }
  367.  
  368.    public void setProgress(ProgressInfo var1, int var2) {
  369.       DebugManager.println("PROGRESS: " + var1);
  370.       JSObject var3 = JSObject.getWindow(super.m_Applet);
  371.       int var4 = var1.getPercentage();
  372.       switch (var2) {
  373.          case 5009:
  374.             if (!this.gotStatusBarStart) {
  375.                this.gotStatusBarStart = true;
  376.                Object[] var7 = new Object[2];
  377.                if (super.m_ItemView != null) {
  378.                   var7[0] = super.m_ItemView;
  379.                   var7[1] = new Integer(var4);
  380.                   var3.call("animatePercent", var7);
  381.                   return;
  382.                }
  383.             }
  384.             break;
  385.          case 5010:
  386.          case 5011:
  387.             Object[] var6 = new Object[2];
  388.             if (super.m_ItemView != null) {
  389.                var6[0] = super.m_ItemView;
  390.                var6[1] = new Integer(var4);
  391.                var3.call("animatePercent", var6);
  392.                return;
  393.             }
  394.             break;
  395.          case 5012:
  396.             if (this.gotStatusBarStart) {
  397.                this.gotStatusBarStart = false;
  398.                JSObject[] var5 = new JSObject[1];
  399.                if (super.m_ItemView != null) {
  400.                   var5[0] = super.m_ItemView;
  401.                   var3.call("animateStop", var5);
  402.                }
  403.  
  404.                ((DataItem)this).setState(1);
  405.                ((DataItem)this).updateLEDImage(false);
  406.                return;
  407.             }
  408.       }
  409.  
  410.    }
  411.  
  412.    public void close() {
  413.       this.channel.stop();
  414.       DebugManager.println("Closing a Castanet Item");
  415.       this.remove();
  416.    }
  417.  
  418.    public synchronized void setError(String var1) {
  419.       super.setError(var1);
  420.       if (var1 != null) {
  421.          ((DataItem)this).setState(-2);
  422.       }
  423.  
  424.       ((DataItem)this).updateLEDImage(false);
  425.    }
  426.  
  427.    public void updateProps() {
  428.       if (!ConstPR4.bClosing) {
  429.          NSTimer.master.remove(Const.scheduler, this);
  430.          NSTimer.master.add(Const.scheduler, 0L, this);
  431.       }
  432.  
  433.    }
  434.  
  435.    public void openCastanetURL(String var1) {
  436.       if (this.bInitialDownload) {
  437.          DebugManager.println("INITAIL DOWNLOAD ERROR: " + this.channel);
  438.          JSObject var8 = JSObject.getWindow(super.m_Applet);
  439.          ResourceBundle var9 = ResourceBundle.getBundle("netscape.netcast.application.NetcasterStrings");
  440.          var8.eval("parent.selector.showError('" + var9.getString("This channel can not be opened during the initial update.") + "');");
  441.       } else {
  442.          DebugManager.println("STARTING: " + this.channel);
  443.          String var2 = "start";
  444.          int var3 = super.m_URL.indexOf(63);
  445.          if (var3 >= 0) {
  446.             var2 = super.m_URL.substring(var3 + 1);
  447.          }
  448.  
  449.          if (!var2.startsWith("start,")) {
  450.             this.channel.start();
  451.          } else {
  452.             String var4 = var2.substring(6);
  453.             Vector var5 = new Vector();
  454.             StringTokenizer var6 = new StringTokenizer(var4, ",");
  455.  
  456.             while(var6.hasMoreTokens()) {
  457.                var5.addElement(var6.nextToken());
  458.             }
  459.  
  460.             String[] var7 = new String[var5.size()];
  461.             var5.copyInto(var7);
  462.             this.channel.start(var7);
  463.          }
  464.       }
  465.    }
  466. }
  467.