home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / Share / Java / JDesignerPro / Jdp3_0.exe / data1.cab / Program_Files / JDPChartLayout.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-09  |  10.6 KB  |  489 lines

  1. import java.awt.BorderLayout;
  2. import java.awt.Color;
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.Event;
  6. import java.awt.Panel;
  7. import java.util.StringTokenizer;
  8. import java.util.Vector;
  9.  
  10. public class JDPChartLayout extends JDPClassLayout {
  11.    JDPChart chartPanel;
  12.    // $FF: renamed from: p JDPChartParms
  13.    JDPChartParms field_0;
  14.    JDPSelectDSN targetDSN;
  15.    JDPSelectTable targetTable;
  16.    JDPSelectChartDef selectChartDef;
  17.    String prevSQL = "";
  18.    JDPTabSelectPanel tabPanel;
  19.  
  20.    void loadLayoutComponent() {
  21.       this.refresh();
  22.    }
  23.  
  24.    void loadChart() {
  25.       if (this.selectChartDef != null && this.selectChartDef.fieldActive != null) {
  26.          int var1 = 0;
  27.  
  28.          for(int var2 = 0; var2 < this.selectChartDef.fieldActive.length; ++var2) {
  29.             if (this.selectChartDef.fieldActive[var2]) {
  30.                ++var1;
  31.             }
  32.          }
  33.  
  34.          if (var1 == 0) {
  35.             var1 = 1;
  36.          }
  37.  
  38.          byte var5 = 4;
  39.          this.field_0.chartType = this.selectChartDef.chartType.getSelectedIndex() + 1;
  40.          this.field_0.chartTitle = this.selectChartDef.chartTitle.getText();
  41.          this.field_0.chartTitleFont = super.user.boldFont.getName();
  42.          this.field_0.chartTitleColor = super.user.u._cvtcolor(this.selectChartDef.chartTitleColor.getSelectedItem());
  43.          this.field_0.xaxisTitle = this.selectChartDef.xaxisTitle.getText();
  44.          this.field_0.xaxisTitleFont = super.user.boldFont.getName();
  45.          this.field_0.xaxisTitleColor = super.user.u._cvtcolor(this.selectChartDef.xaxisTitleColor.getSelectedItem());
  46.          this.field_0.yaxisLabel = new String[10];
  47.          this.field_0.piechartData = new float[var5];
  48.          this.field_0.elementColor = new Color[var1];
  49.          this.field_0.elementBorderColor = new Color[var1];
  50.          this.field_0.elementLegend = new String[var1];
  51.          this.field_0.elementLegendFont = super.user.boldFont.getName();
  52.          this.field_0.gridLineSetting = 0;
  53.          if (this.selectChartDef.gridLineSettingH.getSelectedItem().equals("Yes")) {
  54.             JDPChartParms var10000 = this.field_0;
  55.             var10000.gridLineSetting += JDPChart.HORIZONTAL;
  56.          }
  57.  
  58.          if (this.selectChartDef.gridLineSettingV.getSelectedItem().equals("Yes")) {
  59.             JDPChartParms var6 = this.field_0;
  60.             var6.gridLineSetting += JDPChart.VERTICAL;
  61.          }
  62.  
  63.          if (this.selectChartDef.gridLineSettingF.getSelectedItem().equals("Yes")) {
  64.             JDPChartParms var7 = this.field_0;
  65.             var7.gridLineSetting += JDPChart.FOREGROUND;
  66.          }
  67.  
  68.          if (this.selectChartDef.gridLineSettingB.getSelectedItem().equals("Yes")) {
  69.             JDPChartParms var8 = this.field_0;
  70.             var8.gridLineSetting += JDPChart.BACKGROUND;
  71.          }
  72.  
  73.          this.field_0.gridColor = super.user.u._cvtcolor(this.selectChartDef.gridColor.getSelectedItem());
  74.          this.field_0.xaxisLabelColor = super.user.u._cvtcolor(this.selectChartDef.xaxisLabelColor.getSelectedItem());
  75.          this.field_0.yaxisLabelColor = super.user.u._cvtcolor(this.selectChartDef.yaxisLabelColor.getSelectedItem());
  76.          this.field_0.chartFrameColor = super.user.u._cvtcolor(this.selectChartDef.chartFrameColor.getSelectedItem());
  77.          this.field_0.autoscale = this.selectChartDef.autoscale.getSelectedItem().equals("Yes");
  78.          this.field_0.autozoom = this.selectChartDef.autozoom.getSelectedItem().equals("Yes");
  79.          this.field_0.maxPlotValue = Float.valueOf(this.selectChartDef.maxPlotValue.getText());
  80.          this.field_0.minPlotValue = Float.valueOf(this.selectChartDef.minPlotValue.getText());
  81.          int var3 = 0;
  82.  
  83.          for(int var4 = 0; var4 < this.selectChartDef.fieldActive.length; ++var4) {
  84.             if (this.selectChartDef.fieldActive[var4]) {
  85.                this.field_0.elementLegend[var3] = this.selectChartDef.elementLegend[var4];
  86.                this.field_0.elementColor[var3] = this.selectChartDef.elementColor[var4];
  87.                this.field_0.elementBorderColor[var3] = this.selectChartDef.elementBorderColor[var4];
  88.                ++var3;
  89.             }
  90.          }
  91.  
  92.          this.field_0.pieLabel = this.field_0.elementLegend;
  93.          this.field_0.pieLabelColor = this.field_0.xaxisTitleColor;
  94.          this.loadData();
  95.       }
  96.    }
  97.  
  98.    void loadData() {
  99.       int var2 = 0;
  100.       Vector var3 = new Vector();
  101.       String var4 = super.user.jaggSQL.getSEP();
  102.       int var5 = 0;
  103.       if (this.targetTable != null && this.targetDSN.datasource.getText().compareTo("") != 0) {
  104.          if (this.targetTable.tables.getSelectedIndex() < 0) {
  105.             if (super.componentName.equals("")) {
  106.                super.user.mainmsg.setStatusMsg("You must first select a Table.", 5);
  107.             }
  108.  
  109.          } else {
  110.             String var7 = "SELECT ";
  111.             int var8 = this.selectChartDef.groupBy.getSelectedItems().length;
  112.             if (var8 > 0) {
  113.                var7 = var7 + this.selectChartDef.groupBySQL.getText();
  114.                if (this.targetDSN.dsnType.indexOf(JDPJagg.ANYWHERE) >= 0 || this.targetDSN.dsnType.indexOf(JDPJagg.SOLIDSERVER) >= 0 || this.targetDSN.dsnType.indexOf(JDPJagg.RDB) >= 0) {
  115.                   var7 = var7 + " gb";
  116.                }
  117.  
  118.                if (this.targetDSN.dsnType.indexOf(JDPJagg.VFOXPRO) >= 0 || this.targetDSN.dsnType.indexOf(JDPJagg.ORACLE) >= 0 || this.targetDSN.dsnType.indexOf(JDPJagg.POLITE) >= 0 || this.targetDSN.dsnType.indexOf(JDPJagg.INFORMIX) >= 0 || this.targetDSN.dsnType.indexOf(JDPJagg.CLOUDSCAPE) >= 0) {
  119.                   var7 = var7 + " as gb";
  120.                }
  121.             }
  122.  
  123.             int var9 = this.selectChartDef.multipleSeries.getSelectedItems().length;
  124.             if (var9 > 0) {
  125.                if (var7.length() > 7) {
  126.                   var7 = var7 + ",";
  127.                }
  128.  
  129.                var7 = var7 + this.selectChartDef.multipleSeriesSQL.getText();
  130.             }
  131.  
  132.             boolean var10 = true;
  133.  
  134.             for(int var11 = 0; var11 < this.selectChartDef.columns.countItems(); ++var11) {
  135.                if (this.selectChartDef.fieldActive[var11]) {
  136.                   var10 = false;
  137.                   if (var7.length() > 8) {
  138.                      var7 = var7 + ",";
  139.                   }
  140.  
  141.                   if (this.selectChartDef.aggregateFunction[var11].equals("Sum")) {
  142.                      var7 = var7 + "SUM(" + this.selectChartDef.fieldSql[var11] + ")";
  143.                   } else if (this.selectChartDef.aggregateFunction[var11].equals("Average")) {
  144.                      var7 = var7 + "AVG(" + this.selectChartDef.fieldSql[var11] + ")";
  145.                   } else {
  146.                      var7 = var7 + this.selectChartDef.fieldSql[var11];
  147.                   }
  148.                }
  149.             }
  150.  
  151.             if (var7.length() != 7) {
  152.                if (var10) {
  153.                   var7 = var7 + ",COUNT(*)";
  154.                   var10 = false;
  155.                }
  156.  
  157.                var7 = var7 + " FROM ";
  158.                String var36 = null;
  159.                String var12 = "";
  160.  
  161.                for(int var13 = 0; var13 < this.targetTable.joinConditions.countItems(); ++var13) {
  162.                   if (this.targetTable.joinConditions.getItem(var13).indexOf("*=") > 0) {
  163.                      var36 = "left";
  164.                      var12 = this.targetTable.joinConditions.getItem(var13);
  165.                   }
  166.  
  167.                   if (this.targetTable.joinConditions.getItem(var13).indexOf("=*") > 0) {
  168.                      var36 = "right";
  169.                      var12 = this.targetTable.joinConditions.getItem(var13);
  170.                   }
  171.                }
  172.  
  173.                String var37 = "";
  174.                String var14 = "";
  175.                int[] var15 = this.targetTable.stables.getSelectedIndexes();
  176.                var37 = this.targetTable.tables.getSelectedItem();
  177.                if (var15.length > 0) {
  178.                   var37 = var37 + " a";
  179.                }
  180.  
  181.                if (this.targetDSN.dsnType.equals(JDPJagg.MSSQLSERVER)) {
  182.                   var37 = var37 + " (NOLOCK)";
  183.                }
  184.  
  185.                for(int var16 = 0; var16 < var15.length; ++var16) {
  186.                   if (var36 == null) {
  187.                      var14 = var14 + ",";
  188.                   }
  189.  
  190.                   var14 = var14 + this.targetTable.stables.getItem(var15[var16]);
  191.                   var14 = var14 + " " + this.targetTable.stableAlias[var15[var16]];
  192.                   if (this.targetDSN.dsnType.equals(JDPJagg.MSSQLSERVER)) {
  193.                      var14 = var14 + " (NOLOCK)";
  194.                   }
  195.                }
  196.  
  197.                StringBuffer var40 = new StringBuffer();
  198.                if (var36 == null) {
  199.                   var40.append(var37);
  200.                   var40.append(var14);
  201.                } else if (var36.equals("left")) {
  202.                   var40.append("{oj ");
  203.                   var40.append(var37);
  204.                   var40.append(" LEFT OUTER JOIN ");
  205.                   var40.append(var14);
  206.                   var40.append(" ON ");
  207.                   var40.append(super.user.u.replace(var12, "*", ""));
  208.                   var40.append("}");
  209.                } else if (var36.equals("right")) {
  210.                   var40.append("{oj ");
  211.                   var40.append(var14);
  212.                   var40.append(" LEFT OUTER JOIN ");
  213.                   var40.append(var37);
  214.                   var40.append(" ON ");
  215.                   var40.append(super.user.u.replace(var12, "*", ""));
  216.                   var40.append("}");
  217.                }
  218.  
  219.                var7 = var7 + var40.toString();
  220.                String var17 = "";
  221.                var10 = true;
  222.                if (this.targetTable.joinConditions.countItems() > 0) {
  223.                   for(int var18 = 0; var18 < this.targetTable.joinConditions.countItems(); ++var18) {
  224.                      if (!this.targetTable.joinConditions.getItem(var18).equals(var12)) {
  225.                         if (var10) {
  226.                            var17 = var17 + " WHERE ";
  227.                         } else {
  228.                            var17 = var17 + " AND ";
  229.                         }
  230.  
  231.                         var17 = var17 + this.targetTable.joinConditions.getItem(var18);
  232.                         var10 = false;
  233.                      }
  234.                   }
  235.                }
  236.  
  237.                if (!this.selectChartDef.pfromwhereclause.getText().equals("(1=1)")) {
  238.                   if (var10) {
  239.                      var17 = var17 + " WHERE ";
  240.                   } else {
  241.                      var17 = var17 + " AND ";
  242.                   }
  243.  
  244.                   var17 = var17 + this.selectChartDef.pfromwhereclause.getText();
  245.                }
  246.  
  247.                var7 = var7 + var17;
  248.                if (!this.selectChartDef.chartType.getSelectedItem().equals("Gantt")) {
  249.                   String var43 = "";
  250.  
  251.                   for(int var19 = 0; var19 < var8; ++var19) {
  252.                      if (var19 == 0) {
  253.                         var43 = var43 + " GROUP BY ";
  254.                      }
  255.  
  256.                      if (var19 > 0) {
  257.                         var43 = var43 + ",";
  258.                      }
  259.  
  260.                      if (this.targetDSN.dsnType.indexOf(JDPJagg.ANYWHERE) < 0 && this.targetDSN.dsnType.indexOf(JDPJagg.SOLIDSERVER) < 0 && this.targetDSN.dsnType.indexOf(JDPJagg.VFOXPRO) < 0 && this.targetDSN.dsnType.indexOf(JDPJagg.ORACLE) < 0 && this.targetDSN.dsnType.indexOf(JDPJagg.POLITE) < 0 && this.targetDSN.dsnType.indexOf(JDPJagg.RDB) < 0 && this.targetDSN.dsnType.indexOf(JDPJagg.INFORMIX) < 0 && this.targetDSN.dsnType.indexOf(JDPJagg.CLOUDSCAPE) < 0) {
  261.                         var43 = var43 + this.selectChartDef.groupBySQL.getText();
  262.                      } else {
  263.                         var43 = var43 + "gb";
  264.                      }
  265.                   }
  266.  
  267.                   for(int var48 = 0; var48 < var9; ++var48) {
  268.                      if (var43.equals("")) {
  269.                         var43 = var43 + " GROUP BY ";
  270.                      } else {
  271.                         var43 = var43 + ",";
  272.                      }
  273.  
  274.                      var43 = var43 + this.selectChartDef.multipleSeriesSQL.getText();
  275.                   }
  276.  
  277.                   var7 = var7 + var43;
  278.                }
  279.  
  280.                if (this.selectChartDef.chartType.getSelectedItem().equals("Pie")) {
  281.                   String var45 = " ORDER BY ";
  282.  
  283.                   for(int var49 = 0; var49 < this.selectChartDef.columns.countItems(); ++var49) {
  284.                      if (this.selectChartDef.fieldActive[var49]) {
  285.                         if (this.selectChartDef.aggregateFunction[var49].equals("Sum")) {
  286.                            var45 = var45 + "SUM(" + this.selectChartDef.fieldSql[var49] + ")";
  287.                         } else if (this.selectChartDef.aggregateFunction[var49].equals("Average")) {
  288.                            var45 = var45 + "AVG(" + this.selectChartDef.fieldSql[var49] + ")";
  289.                         } else {
  290.                            var45 = var45 + this.selectChartDef.fieldSql[var49];
  291.                         }
  292.  
  293.                         var7 = var7 + var45 + " DESC";
  294.                         break;
  295.                      }
  296.                   }
  297.                }
  298.  
  299.                this.prevSQL = var7;
  300.                super.user.mainmsg.setStatusMsg("Accessing database...", 0);
  301.                JDPJagg var47 = new JDPJagg(super.user.jaggPath);
  302.                var47.setDSN(this.targetDSN.datasource.getText());
  303.                var47.setCSTR(this.targetDSN.connectstring.getText());
  304.                var47.loadSettings(this.targetTable.targetDSN);
  305.                var47.setMRW(this.selectChartDef.maxRows.getText());
  306.                var2 = var47.execSQL(var7, var3);
  307.                if (var2 == -1) {
  308.                   super.user.u.setSqlMessage(var47, var7);
  309.                } else {
  310.                   int var50 = var47.getColumnCount();
  311.                   var5 = var47.getRowCount();
  312.                   if (var9 <= 0) {
  313.                      this.field_0.chartData = new float[var50 - var8][var5];
  314.                      this.field_0.xaxisLabel = new String[var5];
  315.                      this.field_0.piechartData = new float[var5];
  316.                      this.field_0.pieSplitSegment = new boolean[var5];
  317.                      this.field_0.pieLabel = new String[var5];
  318.                      if (this.field_0.chartType == JDPChart.PIE || this.field_0.chartType == JDPChart.GANTT) {
  319.                         this.field_0.elementColor = new Color[var5];
  320.                         this.field_0.elementBorderColor = new Color[var5];
  321.                         this.field_0.elementLegend = new String[var5];
  322.                      }
  323.  
  324.                      for(int var20 = 0; var20 < var5; ++var20) {
  325.                         String var6 = (String)var3.elementAt(var20);
  326.                         StringTokenizer var1 = new StringTokenizer(var6);
  327.                         this.field_0.xaxisLabel[var20] = "";
  328.                         if (var8 > 0) {
  329.                            this.field_0.xaxisLabel[var20] = var1.nextToken(var4).trim();
  330.                         }
  331.  
  332.                         for(int var21 = 0; var21 < var50 - var8; ++var21) {
  333.                            if (this.field_0.chartType == JDPChart.GANTT) {
  334.                               long var22 = Long.valueOf(var1.nextToken(var4)) / 86400000L;
  335.                               this.field_0.chartData[var21][var20] = (float)var22;
  336.                            } else {
  337.                               this.field_0.chartData[var21][var20] = Float.valueOf(var1.nextToken(var4).trim());
  338.                            }
  339.                         }
  340.  
  341.                         this.field_0.pieLabel[var20] = this.field_0.xaxisLabel[var20];
  342.                         this.field_0.piechartData[var20] = this.field_0.chartData[0][var20];
  343.                         if (this.field_0.chartType == JDPChart.PIE || this.field_0.chartType == JDPChart.GANTT) {
  344.                            this.field_0.elementColor[var20] = super.user.u._cvtcolor(this.selectChartDef.elementcolor.getItem(var20 % 12));
  345.                            this.field_0.elementBorderColor[var20] = Color.black;
  346.                            this.field_0.elementLegend[var20] = this.field_0.pieLabel[var20];
  347.                         }
  348.                      }
  349.                   } else {
  350.                      float[][] var51 = new float[1000][var5];
  351.                      this.field_0.xaxisLabel = new String[var5];
  352.                      Vector var52 = new Vector();
  353.                      if (var8 == 0) {
  354.                         var52.addElement("");
  355.                      }
  356.  
  357.                      Vector var53 = new Vector();
  358.  
  359.                      for(int var23 = 0; var23 < var5; ++var23) {
  360.                         String var30 = (String)var3.elementAt(var23);
  361.                         StringTokenizer var27 = new StringTokenizer(var30);
  362.                         this.field_0.xaxisLabel[var23] = "";
  363.                         int var24 = 0;
  364.                         if (var8 > 0) {
  365.                            String var25 = var27.nextToken(var4).trim();
  366.                            var24 = var52.indexOf(var25);
  367.                            if (var24 < 0) {
  368.                               var52.addElement(var25);
  369.                               var24 = var52.indexOf(var25);
  370.                               this.field_0.xaxisLabel[var24] = var25;
  371.                            }
  372.                         }
  373.  
  374.                         String var57 = var27.nextToken(var4).trim();
  375.                         int var26 = var53.indexOf(var57);
  376.                         if (var26 < 0) {
  377.                            var53.addElement(var57);
  378.                            var26 = var53.indexOf(var57);
  379.                         }
  380.  
  381.                         var51[var26][var24] = Float.valueOf(var27.nextToken(var4).trim());
  382.                      }
  383.  
  384.                      int var54 = var53.size();
  385.                      this.field_0.chartData = new float[var54][var52.size()];
  386.  
  387.                      for(int var55 = 0; var55 < var54; ++var55) {
  388.                         for(int var58 = 0; var58 < var52.size(); ++var58) {
  389.                            this.field_0.chartData[var55][var58] = var51[var55][var58];
  390.                         }
  391.                      }
  392.  
  393.                      this.field_0.elementColor = new Color[var54];
  394.                      this.field_0.elementBorderColor = new Color[var54];
  395.                      this.field_0.elementLegend = new String[var54];
  396.  
  397.                      for(int var56 = 0; var56 < var54; ++var56) {
  398.                         this.field_0.elementColor[var56] = super.user.u._cvtcolor(this.selectChartDef.elementcolor.getItem(var56 % 12));
  399.                         this.field_0.elementBorderColor[var56] = Color.black;
  400.                         this.field_0.elementLegend[var56] = (String)var53.elementAt(var56);
  401.                      }
  402.                   }
  403.  
  404.                   super.user.mainmsg.clearStatusMsg();
  405.                }
  406.             }
  407.          }
  408.       } else {
  409.          if (super.componentName.equals("")) {
  410.             super.user.mainmsg.setStatusMsg("You must first select a Data Source.", 5);
  411.          }
  412.  
  413.       }
  414.    }
  415.  
  416.    void refresh() {
  417.       this.retrieveColumns();
  418.       this.loadChart();
  419.       this.chartPanel.calculateScaling();
  420.       this.chartPanel.repaint();
  421.    }
  422.  
  423.    void retrieveColumns() {
  424.       for(int var1 = 0; var1 < super.user.gParm.size(); ++var1) {
  425.          if (super.user.gParm.elementAt(var1) instanceof Vector) {
  426.             Vector var2 = (Vector)super.user.gParm.elementAt(var1);
  427.             if (((String)var2.elementAt(0)).compareTo("SelectDSN" + super.componentName) == 0) {
  428.                this.targetDSN = (JDPSelectDSN)var2.elementAt(3);
  429.             }
  430.  
  431.             if (((String)var2.elementAt(0)).compareTo("SelectTable" + super.componentName) == 0) {
  432.                this.targetTable = (JDPSelectTable)var2.elementAt(1);
  433.             }
  434.  
  435.             if (((String)var2.elementAt(0)).compareTo("SelectChartDef" + super.componentName) == 0) {
  436.                this.selectChartDef = (JDPSelectChartDef)var2.elementAt(1);
  437.             }
  438.          }
  439.       }
  440.  
  441.    }
  442.  
  443.    public boolean handleEvent(Event var1) {
  444.       switch (var1.id) {
  445.          case 1001:
  446.             return false;
  447.          default:
  448.             return false;
  449.       }
  450.    }
  451.  
  452.    public void InitClass(JDPUser var1, Panel var2, String var3) {
  453.       super.user = var1;
  454.       if (var3.startsWith("JDPLayoutMgr:")) {
  455.          super.componentName = var3.substring(13);
  456.          if (super.componentName.endsWith("CL1")) {
  457.             super.componentName = super.componentName.substring(0, super.componentName.length() - 3);
  458.          }
  459.  
  460.          var3 = "";
  461.       }
  462.  
  463.       ((Container)this).setLayout(new BorderLayout());
  464.       ((Component)this).setFont(var1.plainFont);
  465.       Panel var4 = new Panel();
  466.       ((Container)var4).setLayout(new BorderLayout());
  467.       this.field_0 = new JDPChartParms();
  468.       this.retrieveColumns();
  469.       if (super.componentName.equals("")) {
  470.          this.loadChart();
  471.       }
  472.  
  473.       this.chartPanel = new JDPChart(var1, this.field_0);
  474.       ((Container)var4).add("Center", this.chartPanel);
  475.       if (super.componentName.equals("")) {
  476.          ((Container)this).add("Center", new JDPChiselFramePanel(var1, "Preview the Chart Layout", var4, "North"));
  477.       } else {
  478.          ((Container)this).add("Center", var4);
  479.       }
  480.  
  481.       Vector var5 = new Vector();
  482.       var5.addElement("ChartLayout" + super.componentName);
  483.       var5.addElement(this);
  484.       var1.gParm.addElement(var5);
  485.       this.refresh();
  486.       ((Component)var2).paintAll(((Component)var2).getGraphics());
  487.    }
  488. }
  489.