home *** CD-ROM | disk | FTP | other *** search
/ The Net Power 1997 July / NETDisc0797.iso / pc / nettools / corel / cwdata / project / docs / analyz~1.cla (.txt) < prev    next >
Encoding:
Java Class File  |  1996-11-28  |  10.6 KB  |  336 lines

  1. import corel.webdata.AnalyzerCheckbox;
  2. import corel.webdata.AnalyzerChoice;
  3. import corel.webdata.AnalyzerOption;
  4. import corel.webdata.AnalyzerPanel;
  5. import corel.webdata.Chart;
  6. import corel.webdata.HARes;
  7. import corel.webdata.RangeElement;
  8. import corel.webdata.View;
  9. import java.applet.Applet;
  10. import java.awt.BorderLayout;
  11. import java.awt.Checkbox;
  12. import java.awt.Choice;
  13. import java.awt.Color;
  14. import java.awt.Component;
  15. import java.awt.Container;
  16. import java.awt.Event;
  17. import java.awt.Frame;
  18. import java.util.Enumeration;
  19. import java.util.Hashtable;
  20. import java.util.StringTokenizer;
  21. import java.util.Vector;
  22.  
  23. public class AnalyzerApplet extends Applet implements Runnable {
  24.    protected boolean isInFrame;
  25.    protected AnalyzerPanel notebook;
  26.    protected AnalyzerPanel chartPage;
  27.    protected AnalyzerPanel viewPage;
  28.    protected Chart chart;
  29.    protected View view;
  30.    protected AnalyzerChoice chartTypeCombo;
  31.    protected AnalyzerCheckbox printValues;
  32.    protected AnalyzerCheckbox grid;
  33.    protected AnalyzerCheckbox stacked;
  34.    protected AnalyzerCheckbox legend;
  35.    protected AnalyzerCheckbox shadow;
  36.    protected AnalyzerCheckbox percentage;
  37.    protected AnalyzerCheckbox absvalues;
  38.    protected AnalyzerCheckbox separate;
  39.    protected AnalyzerCheckbox sepBiggest;
  40.    protected AnalyzerCheckbox marks;
  41.    protected Hashtable attributesSwitches = new Hashtable();
  42.    protected String currentViewData;
  43.    protected String strRange;
  44.    protected boolean rowRange = false;
  45.    protected boolean columnRange = false;
  46.    protected Vector rangeElements = new Vector();
  47.  
  48.    public void init() {
  49.       Object var1 = this;
  50.       ((Component)this).setBackground(Color.lightGray);
  51.       this.strRange = ((Applet)this).getParameter(HARes.HA_PARAM_RANGE);
  52.       this.setRange(this.strRange);
  53.       String var5 = ((Applet)this).getParameter(HARes.HA_PARAM_FRAME);
  54.       this.isInFrame = var5 == null ? false : Boolean.valueOf(var5);
  55.       if (this.isInFrame) {
  56.          var1 = new AnalyzerFrame(this, HARes.HA_APPLET_NAME);
  57.       }
  58.  
  59.       var5 = ((Applet)this).getParameter(HARes.HA_PARAM_WIDTH);
  60.  
  61.       int var2;
  62.       try {
  63.          var2 = var5 == null ? 500 : Integer.valueOf(var5);
  64.       } catch (Exception var8) {
  65.          var2 = 500;
  66.       }
  67.  
  68.       var5 = ((Applet)this).getParameter(HARes.HA_PARAM_HEIGHT);
  69.  
  70.       int var3;
  71.       try {
  72.          var3 = var5 == null ? 300 : Integer.valueOf(var5);
  73.       } catch (Exception var7) {
  74.          var3 = 300;
  75.       }
  76.  
  77.       var5 = ((Applet)this).getParameter(HARes.HA_PARAM_CHARTONLY);
  78.       boolean var4 = var5 == null ? false : Boolean.valueOf(var5);
  79.       ((Container)var1).setLayout(new BorderLayout());
  80.       if (var4) {
  81.          this.chart = new Chart(this);
  82.          this.chart.getAppletParameters(this);
  83.          this.chart.initializeLayout();
  84.          this.chart.setValue(this.chart.getValue());
  85.          ((Container)var1).add("Center", this.chart);
  86.       } else {
  87.          this.notebook = new AnalyzerPanel(this, 3);
  88.          Hashtable var6 = new Hashtable();
  89.          var6.put(HARes.HF_ATTR_CAPTION, HARes.HA_PAGE_CHART);
  90.          this.chartPage = new AnalyzerPanel(this);
  91.          this.chartPage.translateAttributes(var6);
  92.          this.notebook.addAnalyzerControl(this.chartPage, HARes.HF_CTRL_PAGE, var6);
  93.          var6.clear();
  94.          var6.put(HARes.HF_ATTR_CAPTION, HARes.HA_PAGE_VIEW);
  95.          this.viewPage = new AnalyzerPanel(this);
  96.          this.viewPage.translateAttributes(var6);
  97.          this.notebook.addAnalyzerControl(this.viewPage, HARes.HF_CTRL_PAGE, var6);
  98.          var6.clear();
  99.          this.chartTypeCombo = new AnalyzerChoice();
  100.          this.chartTypeCombo.addAnalyzerControl(new AnalyzerOption(HARes.HC_TYPE_COLUMN), HARes.HF_CTRL_OPTION, var6);
  101.          this.chartTypeCombo.addAnalyzerControl(new AnalyzerOption(HARes.HC_TYPE_BAR), HARes.HF_CTRL_OPTION, var6);
  102.          this.chartTypeCombo.addAnalyzerControl(new AnalyzerOption(HARes.HC_TYPE_LINE), HARes.HF_CTRL_OPTION, var6);
  103.          this.chartTypeCombo.addAnalyzerControl(new AnalyzerOption(HARes.HC_TYPE_PIE), HARes.HF_CTRL_OPTION, var6);
  104.          var6.put(HARes.HF_ATTR_ANCHOR, HARes.HF_ATTR_ANCHOR_WEST);
  105.          this.chartPage.addAnalyzerControl(this.chartTypeCombo, HARes.HF_CTRL_SELECT, var6);
  106.          var6.clear();
  107.          var6.put(HARes.HF_ATTR_CAPTION, HARes.HA_CTRL_GRID_CAPTION);
  108.          var6.put(HARes.HF_ATTR_Y, "1");
  109.          var6.put(HARes.HF_ATTR_ANCHOR, HARes.HF_ATTR_ANCHOR_WEST);
  110.          this.grid = new AnalyzerCheckbox(false);
  111.          this.grid.translateAttributes(var6);
  112.          this.chartPage.addAnalyzerControl(this.grid, HARes.HF_CTRL_INPUT, var6);
  113.          this.grid.setState(true);
  114.          var6.clear();
  115.          var6.put(HARes.HF_ATTR_Y, "2");
  116.          var6.put(HARes.HF_ATTR_CAPTION, HARes.HA_CTRL_SHOWVALUES_CAPTION);
  117.          var6.put(HARes.HF_ATTR_ANCHOR, HARes.HF_ATTR_ANCHOR_WEST);
  118.          this.printValues = new AnalyzerCheckbox(false);
  119.          this.printValues.translateAttributes(var6);
  120.          this.chartPage.addAnalyzerControl(this.printValues, HARes.HF_CTRL_INPUT, var6);
  121.          var6.clear();
  122.          var6.put(HARes.HF_ATTR_Y, "3");
  123.          var6.put(HARes.HF_ATTR_CAPTION, HARes.HA_CTRL_STACKED_CAPTION);
  124.          var6.put(HARes.HF_ATTR_ANCHOR, HARes.HF_ATTR_ANCHOR_NORTHWEST);
  125.          this.stacked = new AnalyzerCheckbox(false);
  126.          this.stacked.translateAttributes(var6);
  127.          this.chartPage.addAnalyzerControl(this.stacked, HARes.HF_CTRL_INPUT, var6);
  128.          var6.clear();
  129.          var6.put(HARes.HF_ATTR_Y, "4");
  130.          var6.put(HARes.HF_ATTR_CAPTION, HARes.HA_CTRL_LEGEND_CAPTION);
  131.          var6.put(HARes.HF_ATTR_ANCHOR, HARes.HF_ATTR_ANCHOR_NORTHWEST);
  132.          this.legend = new AnalyzerCheckbox(false);
  133.          this.legend.translateAttributes(var6);
  134.          this.chartPage.addAnalyzerControl(this.legend, HARes.HF_CTRL_INPUT, var6);
  135.          var6.clear();
  136.          var6.put(HARes.HF_ATTR_Y, "5");
  137.          var6.put(HARes.HF_ATTR_CAPTION, HARes.HA_CTRL_SHADOW_CAPTION);
  138.          var6.put(HARes.HF_ATTR_ANCHOR, HARes.HF_ATTR_ANCHOR_NORTHWEST);
  139.          this.shadow = new AnalyzerCheckbox(false);
  140.          this.shadow.translateAttributes(var6);
  141.          this.chartPage.addAnalyzerControl(this.shadow, HARes.HF_CTRL_INPUT, var6);
  142.          var6.clear();
  143.          var6.put(HARes.HF_ATTR_Y, "6");
  144.          var6.put(HARes.HF_ATTR_CAPTION, HARes.HA_CTRL_PERCENTAGE_CAPTION);
  145.          var6.put(HARes.HF_ATTR_ANCHOR, HARes.HF_ATTR_ANCHOR_NORTHWEST);
  146.          this.percentage = new AnalyzerCheckbox(false);
  147.          this.percentage.translateAttributes(var6);
  148.          this.chartPage.addAnalyzerControl(this.percentage, HARes.HF_CTRL_INPUT, var6);
  149.          var6.clear();
  150.          var6.put(HARes.HF_ATTR_Y, "7");
  151.          var6.put(HARes.HF_ATTR_CAPTION, HARes.HA_CTRL_ABSOLUTEVALUES_CAPTION);
  152.          var6.put(HARes.HF_ATTR_ANCHOR, HARes.HF_ATTR_ANCHOR_NORTHWEST);
  153.          this.absvalues = new AnalyzerCheckbox(false);
  154.          this.absvalues.translateAttributes(var6);
  155.          this.chartPage.addAnalyzerControl(this.absvalues, HARes.HF_CTRL_INPUT, var6);
  156.          var6.clear();
  157.          var6.put(HARes.HF_ATTR_Y, "8");
  158.          var6.put(HARes.HF_ATTR_CAPTION, HARes.HA_CTRL_SEPARATE_CAPTION);
  159.          var6.put(HARes.HF_ATTR_ANCHOR, HARes.HF_ATTR_ANCHOR_NORTHWEST);
  160.          this.separate = new AnalyzerCheckbox(false);
  161.          this.separate.translateAttributes(var6);
  162.          this.chartPage.addAnalyzerControl(this.separate, HARes.HF_CTRL_INPUT, var6);
  163.          var6.clear();
  164.          var6.put(HARes.HF_ATTR_Y, "9");
  165.          var6.put(HARes.HF_ATTR_CAPTION, HARes.HA_CTRL_SEPARATEBIGGEST_CAPTION);
  166.          var6.put(HARes.HF_ATTR_ANCHOR, HARes.HF_ATTR_ANCHOR_NORTHWEST);
  167.          this.sepBiggest = new AnalyzerCheckbox(false);
  168.          this.sepBiggest.translateAttributes(var6);
  169.          this.chartPage.addAnalyzerControl(this.sepBiggest, HARes.HF_CTRL_INPUT, var6);
  170.          var6.clear();
  171.          var6.put(HARes.HF_ATTR_Y, "10");
  172.          var6.put(HARes.HF_ATTR_CAPTION, HARes.HA_CTRL_MARKS_CAPTION);
  173.          var6.put(HARes.HF_ATTR_ANCHOR, HARes.HF_ATTR_ANCHOR_NORTHWEST);
  174.          this.marks = new AnalyzerCheckbox(false);
  175.          this.marks.translateAttributes(var6);
  176.          this.chartPage.addAnalyzerControl(this.marks, HARes.HF_CTRL_INPUT, var6);
  177.          this.chart = new Chart(this);
  178.          this.chart.getAppletParameters(this);
  179.          this.chart.initializeLayout();
  180.          this.chart.setValue(this.chart.getValue(), this.rowRange, this.columnRange, this.rangeElements);
  181.          var6.clear();
  182.          var6.put(HARes.HF_ATTR_X, "1");
  183.          var6.put(HARes.HF_ATTR_GRIDHEIGHT, "11");
  184.          var6.put(HARes.HF_ATTR_FILL, HARes.HF_ATTR_FILL_BOTH);
  185.          var6.put(HARes.HF_ATTR_WEIGHTX, "1");
  186.          var6.put(HARes.HF_ATTR_WEIGHTY, "1");
  187.          this.chartPage.addAnalyzerControl(this.chart, HARes.HF_CTRL_HOTCHART, var6);
  188.          this.view = new View(this);
  189.          this.view.selectRange(this.rowRange, this.columnRange, this.rangeElements);
  190.          this.viewPage.addAnalyzerControl(this.view, HARes.HF_CTRL_HOTVIEW, var6);
  191.          ((Container)var1).add("Center", this.notebook);
  192.          this.attributesSwitches.put(this.chartTypeCombo, HARes.HC_ATTR_TYPE);
  193.          this.attributesSwitches.put(this.grid, HARes.HC_ATTR_GRID);
  194.          this.attributesSwitches.put(this.printValues, HARes.HC_ATTR_VALUES);
  195.          this.attributesSwitches.put(this.stacked, HARes.HC_ATTR_STACKED);
  196.          this.attributesSwitches.put(this.shadow, HARes.HC_ATTR_SHADOW);
  197.          this.attributesSwitches.put(this.legend, HARes.HC_ATTR_LEGEND);
  198.          this.attributesSwitches.put(this.percentage, HARes.HC_ATTR_SHOWPERCENT);
  199.          this.attributesSwitches.put(this.absvalues, HARes.HC_ATTR_SHOWVALUE);
  200.          this.attributesSwitches.put(this.separate, HARes.HC_ATTR_SEPARATE);
  201.          this.attributesSwitches.put(this.sepBiggest, HARes.HC_ATTR_SEPARATEBIGGEST);
  202.          this.attributesSwitches.put(this.marks, HARes.HC_ATTR_MARKS);
  203.          this.setupSwitches();
  204.          this.currentViewData = this.view.getValue();
  205.       }
  206.  
  207.       if (this.isInFrame) {
  208.          ((Frame)var1).resize(var2, var3);
  209.          ((Frame)var1).show();
  210.       }
  211.  
  212.    }
  213.  
  214.    public void run() {
  215.    }
  216.  
  217.    public boolean action(Event var1, Object var2) {
  218.       if (var1.target == this.notebook && ((String)var2).equals(HARes.HA_PAGE_CHART)) {
  219.          String var3 = this.view.getValue();
  220.          if (!this.currentViewData.equals(var3)) {
  221.             this.currentViewData = var3;
  222.             this.chart.setValue(this.currentViewData);
  223.          }
  224.       }
  225.  
  226.       if (var1.target == this.chartTypeCombo) {
  227.          this.chart.action(var1, this.chartTypeCombo.getSelectedItem().toLowerCase());
  228.          this.setupSwitches();
  229.          return true;
  230.       } else if (this.attributesSwitches.containsKey(var1.target)) {
  231.          this.chart.setAttribute((String)this.attributesSwitches.get(var1.target), new Boolean(((Checkbox)var1.target).getState()));
  232.          return true;
  233.       } else {
  234.          return false;
  235.       }
  236.    }
  237.  
  238.    public void setupSwitches() {
  239.       Enumeration var2 = this.attributesSwitches.keys();
  240.  
  241.       while(var2.hasMoreElements()) {
  242.          Object var3 = var2.nextElement();
  243.          boolean var1 = this.chart.hasAttribute((String)this.attributesSwitches.get(var3));
  244.          if (var3 instanceof Choice) {
  245.             Choice var8 = (Choice)var3;
  246.             ((Component)var8).enable(var1);
  247.             String var5 = (String)this.chart.getAttribute((String)this.attributesSwitches.get(var8));
  248.             if (var5 != null) {
  249.                int var6 = var8.countItems();
  250.  
  251.                for(int var7 = 0; var7 < var6; ++var7) {
  252.                   if (var5.equalsIgnoreCase(var8.getItem(var7))) {
  253.                      var8.select(var7);
  254.                   }
  255.                }
  256.             }
  257.          } else if (var3 instanceof Checkbox) {
  258.             Checkbox var4 = (Checkbox)var3;
  259.             ((Component)var4).enable(var1);
  260.             if (var1) {
  261.                var4.setState((Boolean)this.chart.getAttribute((String)this.attributesSwitches.get(var4)));
  262.             }
  263.          }
  264.       }
  265.  
  266.    }
  267.  
  268.    public String[][] getParameterInfo() {
  269.       String[][] var1 = new String[][]{{HARes.HA_PARAM_FRAME, HARes.PARAM_TYPE_BOOLEAN, HARes.HA_PARAMDESC_FRAME}, {HARes.HA_PARAM_WIDTH, HARes.PARAM_TYPE_INT, HARes.HA_PARAMDESC_WIDTH}, {HARes.HA_PARAM_HEIGHT, HARes.PARAM_TYPE_INT, HARes.HA_PARAMDESC_HEIGHT}, {HARes.HA_PARAM_DATA, HARes.PARAM_TYPE_STRING, HARes.HA_PARAMDESC_DATA}, {HARes.HA_PARAM_VERTGRID, HARes.PARAM_TYPE_BOOLEAN, HARes.HA_PARAMDESC_VERTGRID}, {HARes.HA_PARAM_3DGRID, HARes.PARAM_TYPE_BOOLEAN, HARes.HA_PARAMDESC_3DGRID}, {HARes.HA_PARAM_NUMBEROFCOLUMNS, HARes.PARAM_TYPE_INT, HARes.HA_PARAMDESC_NUMBEROFCOLUMNS}, {HARes.HA_PARAM_COL_, HARes.PARAM_TYPE_STRING, HARes.HA_PARAMDESC_COL_}, {HARes.HA_PARAM_TYPE_C_, HARes.PARAM_TYPE_INT, HARes.HA_PARAMDESC_TYPE_C_}, {HARes.HA_PARAM_TYPE, HARes.PARAM_TYPE_STRING, HARes.HA_PARAMDESC_TYPE}, {HARes.HA_PARAM_LEGEND, HARes.PARAM_TYPE_BOOLEAN, HARes.HA_PARAMDESC_LEGEND}, {HARes.HA_PARAM_TITLE, HARes.PARAM_TYPE_STRING, HARes.HA_PARAMDESC_TITLE}, {HARes.HA_PARAM_CATEGORYTITLE, HARes.PARAM_TYPE_STRING, HARes.HA_PARAMDESC_CATEGORYTITLE}, {HARes.HA_PARAM_VALUETITLE, HARes.PARAM_TYPE_STRING, HARes.HA_PARAMDESC_VALUETITLE}, {HARes.HA_PARAM_GRID, HARes.PARAM_TYPE_BOOLEAN, HARes.HA_PARAMDESC_GRID}, {HARes.HA_PARAM_PRINTVALUES, HARes.PARAM_TYPE_BOOLEAN, HARes.HA_PARAMDESC_PRINTVALUES}, {HARes.HA_PARAM_SRC, HARes.PARAM_TYPE_URL, HARes.HA_PARAMDESC_SRC}, {HARes.HA_PARAM_BACKGROUND, HARes.PARAM_TYPE_INT, HARes.HA_PARAMDESC_BACKGROUND}, {HARes.HA_PARAM_SHADOW, HARes.PARAM_TYPE_BOOLEAN, HARes.HA_PARAMDESC_SHADOW}, {HARes.HA_PARAM_SHOWPERCENT, HARes.PARAM_TYPE_BOOLEAN, HARes.HA_PARAMDESC_SHOWPERCENT}, {HARes.HA_PARAM_SHOWVALUE, HARes.PARAM_TYPE_BOOLEAN, HARes.HA_PARAMDESC_SHOWVALUE}, {HARes.HA_PARAM_SEPARATE, HARes.PARAM_TYPE_BOOLEAN, HARes.HA_PARAMDESC_SEPARATE}, {HARes.HA_PARAM_SEPARATEBIGGEST, HARes.PARAM_TYPE_BOOLEAN, HARes.HA_PARAMDESC_SEPARATEBIGGEST}, {HARes.HA_PARAM_SEPARATIONFACTOR, HARes.PARAM_TYPE_INT, HARes.HA_PARAMDESC_SEPARATIONFACTOR}, {HARes.HA_PARAM_MARKS, HARes.PARAM_TYPE_BOOLEAN, HARes.HA_PARAMDESC_MARKS}, {HARes.HA_PARAM_STACKED, HARes.PARAM_TYPE_BOOLEAN, HARes.HA_PARAMDESC_STACKED}};
  270.       return var1;
  271.    }
  272.  
  273.    public String getAppletInfo() {
  274.       return HARes.HA_APPLET_INFO;
  275.    }
  276.  
  277.    protected boolean setRange(String var1) {
  278.       if (var1 != null && var1.length() != 0) {
  279.          char var2 = var1.charAt(0);
  280.          switch (var2) {
  281.             case 'c':
  282.             case 'r':
  283.                this.rowRange = var2 == 'r';
  284.                this.columnRange = var2 == 'c';
  285.                StringTokenizer var3 = new StringTokenizer(var1.substring(1), ",");
  286.  
  287.                while(var3.hasMoreTokens()) {
  288.                   String var4 = var3.nextToken();
  289.                   RangeElement var5 = new RangeElement();
  290.                   StringTokenizer var6 = new StringTokenizer(var4, "-");
  291.  
  292.                   while(var6.hasMoreTokens()) {
  293.                      int var7;
  294.                      try {
  295.                         var7 = Integer.parseInt(var6.nextToken());
  296.                      } catch (NumberFormatException var8) {
  297.                         this.rowRange = false;
  298.                         this.columnRange = false;
  299.                         return false;
  300.                      }
  301.  
  302.                      if (var7 < 1) {
  303.                         this.rowRange = false;
  304.                         this.columnRange = false;
  305.                         return false;
  306.                      }
  307.  
  308.                      var5.addNumber(var7);
  309.                   }
  310.  
  311.                   this.rangeElements.addElement(var5);
  312.                }
  313.  
  314.                if (this.columnRange && this.rangeElements.size() == 1) {
  315.                   RangeElement var9 = (RangeElement)this.rangeElements.elementAt(0);
  316.                   if (var9.check(1) && !var9.check(2)) {
  317.                      this.rowRange = false;
  318.                      this.columnRange = false;
  319.                      this.rangeElements = null;
  320.                   }
  321.                }
  322.  
  323.                return true;
  324.             default:
  325.                this.rowRange = false;
  326.                this.columnRange = false;
  327.                return false;
  328.          }
  329.       } else {
  330.          this.rowRange = false;
  331.          this.columnRange = false;
  332.          return false;
  333.       }
  334.    }
  335. }
  336.