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

  1. import java.awt.BorderLayout;
  2. import java.awt.Button;
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Container;
  6. import java.awt.Event;
  7. import java.awt.List;
  8. import java.awt.Panel;
  9. import java.awt.TextArea;
  10. import java.awt.TextField;
  11. import java.util.StringTokenizer;
  12. import java.util.Vector;
  13.  
  14. public class JDPEmailer extends JDPClassLayout {
  15.    JDPUser user;
  16.    String moduleParameter;
  17.    JDPWhereClause jdpWhereClause;
  18.    JDPSearchResults searchResults;
  19.    String[] psortChoice;
  20.    String[] pdisplayChoice;
  21.    int itemIndex;
  22.    boolean insertRequested = false;
  23.    boolean deleteRequested = false;
  24.    JDPJagg jaggSQL;
  25.    TextField FIRSTNAME;
  26.    TextField EMAILADDR;
  27.    TextField LASTNAME;
  28.    TextField NEWSGROUP;
  29.    TextField fromUser;
  30.    TextField messageSubject;
  31.    TextArea messageText;
  32.    JDPChoice daysDiff;
  33.    String pfromWhereClause;
  34.    boolean sendConfirm = false;
  35.    int currentIndex = -1;
  36.  
  37.    public void InitClass(JDPUser var1, Panel var2, String var3) {
  38.       this.user = var1;
  39.       this.moduleParameter = var3;
  40.       this.jaggSQL = new JDPJagg(var1.jaggPath);
  41.       this.jaggSQL.setNULL("space");
  42.       this.jaggSQL.setMRW("200");
  43.       this.jaggSQL.setDSN("WSWServer");
  44.       this.jaggSQL.setCSTR("DSN=WSWServer;UID=sa;PWD=dAtA4U;");
  45.       ((Container)this).setLayout(new BorderLayout());
  46.       ((Component)this).setFont(var1.plainFont);
  47.       Panel var4 = new Panel();
  48.       ((Container)var4).setLayout(new BorderLayout());
  49.       Panel var5 = new Panel();
  50.       ((Container)var5).setLayout(new BorderLayout());
  51.       Panel var6 = new Panel();
  52.       ((Container)var6).setLayout(new BorderLayout());
  53.       Panel var7 = new Panel();
  54.       ((Container)var7).setLayout(new BorderLayout());
  55.       JDPScrollPanel var8 = new JDPScrollPanel();
  56.       JDPWrapPanel var9 = new JDPWrapPanel();
  57.       JDPWrapPanel var10 = new JDPWrapPanel();
  58.       String var11 = "DISTINCT EMAILADDR";
  59.       this.pfromWhereClause = "FROM EmailAddress WHERE (1=1)";
  60.       this.psortChoice = new String[4];
  61.       this.psortChoice[0] = "FIRSTNAME";
  62.       this.psortChoice[1] = "EMAILADDR";
  63.       this.psortChoice[2] = "LASTNAME";
  64.       this.psortChoice[3] = "NEWSGROUP";
  65.       String[] var12 = new String[]{"First Name", "E_mail", "Lastname", "News Group"};
  66.       this.pdisplayChoice = this.psortChoice;
  67.       boolean var13 = true;
  68.       String var14 = "Total Entries:";
  69.       this.FIRSTNAME = new TextField("", 50);
  70.       this.EMAILADDR = new TextField("", 50);
  71.       this.LASTNAME = new TextField("", 30);
  72.       this.NEWSGROUP = new TextField("", 30);
  73.       this.fromUser = new TextField("", 50);
  74.       this.messageSubject = new TextField("", 50);
  75.       this.messageText = new TextArea();
  76.       this.daysDiff = new JDPChoice();
  77.       this.daysDiff.addItem("0");
  78.       this.daysDiff.addItem("1");
  79.       this.daysDiff.addItem("5");
  80.       this.daysDiff.addItem("10");
  81.       this.daysDiff.addItem("20");
  82.       this.daysDiff.addItem("30");
  83.       this.daysDiff.addItem("60");
  84.       this.daysDiff.addItem("120");
  85.       this.daysDiff.addItem("180");
  86.       this.daysDiff.addItem("360");
  87.       this.daysDiff.select("30");
  88.       this.loadChoices();
  89.       ((Container)var8).add("Left", new JDPWrapLabel(var1, "First Name:", Color.black));
  90.       ((Container)var8).add("Left", new JDPWrapLabel(var1, "Email:", Color.black));
  91.       ((Container)var8).add("Left", new JDPWrapLabel(var1, "Lastname:", Color.black));
  92.       ((Container)var8).add("Left", new JDPWrapLabel(var1, "News Group:", Color.black));
  93.       ((Container)var8).add("Right", new JDPWrapField(var1, this.FIRSTNAME));
  94.       ((Container)var8).add("Right", new JDPWrapField(var1, this.EMAILADDR));
  95.       ((Container)var8).add("Right", new JDPWrapField(var1, this.LASTNAME));
  96.       ((Container)var8).add("Right", new JDPWrapField(var1, this.NEWSGROUP));
  97.       ((Container)var6).add("North", var8);
  98.       Panel var15 = new Panel();
  99.       ((Container)var15).setLayout(new BorderLayout());
  100.       Panel var16 = new Panel();
  101.       ((Container)var16).setLayout(new BorderLayout());
  102.       var9.addNorth(new JDPWrapLabel(var1, "Return Email Address:"));
  103.       var9.addNorth(new JDPWrapLabel(var1, "Subject:"));
  104.       var9.addNorth(new JDPWrapLabel(var1, "Last mail days ago:"));
  105.       var10.addNorth(new JDPWrapField(var1, this.fromUser));
  106.       var10.addNorth(new JDPWrapField(var1, this.messageSubject));
  107.       var10.addNorth(new JDPWrapField(var1, this.daysDiff));
  108.       ((Container)var16).add("West", var9);
  109.       ((Container)var16).add("Center", var10);
  110.       ((Container)var15).add("North", var16);
  111.       ((Container)var15).add("Center", this.messageText);
  112.       ((Container)var6).add("Center", new JDPChiselFramePanel(var1, "Enter message (Substitution values: @firstname)", var15, "North"));
  113.       if (var3.compareTo("Inquiry") == 0) {
  114.          this.FIRSTNAME.setEditable(false);
  115.          this.EMAILADDR.setEditable(false);
  116.          this.LASTNAME.setEditable(false);
  117.          String[] var17 = new String[]{"Send", "Batch Send"};
  118.          ((Container)var6).add("South", new JDPButtons(var1, var17, JDPButtons.HORIZONTAL));
  119.       } else {
  120.          this.FIRSTNAME.setEditable(true);
  121.          this.EMAILADDR.setEditable(true);
  122.          this.LASTNAME.setEditable(true);
  123.          String[] var23 = new String[]{"Send", "Batch Send", "   Apply   ", "   Reset   ", "   New   ", "   Copy  ", " Remove "};
  124.          ((Container)var6).add("South", new JDPButtons(var1, var23, JDPButtons.HORIZONTAL));
  125.       }
  126.  
  127.       ((Container)var4).add("Center", var6);
  128.       String[] var24 = new String[]{"First Name", "Email Address", "Lastname", "News Group"};
  129.       String[] var18 = new String[]{"FIRSTNAME", "EMAILADDR", "LASTNAME", "NEWSGROUP"};
  130.       String[][] var19 = new String[4][8];
  131.       var19[0][0] = "Begins with";
  132.       var19[0][1] = "Contains";
  133.       var19[0][2] = ">";
  134.       var19[1][0] = "Begins with";
  135.       var19[1][1] = "Contains";
  136.       var19[2][0] = "Begins with";
  137.       var19[2][1] = "Contains";
  138.       var19[3][0] = "Begins with";
  139.       var19[3][1] = "Contains";
  140.       String[][] var20 = new String[4][8];
  141.       var20[0][0] = " like ";
  142.       var20[0][1] = " like ";
  143.       var20[0][2] = ">";
  144.       var20[1][0] = " like ";
  145.       var20[1][1] = " like ";
  146.       var20[2][0] = " like ";
  147.       var20[2][1] = " like ";
  148.       var20[3][0] = " like ";
  149.       var20[3][1] = " like ";
  150.       boolean[] var21 = new boolean[]{true, true, true, true};
  151.       int[] var22 = new int[]{52, 52, 52, 52};
  152.       if (var24.length > 0) {
  153.          this.jdpWhereClause = new JDPWhereClause(var1, "JDPEmailer", true, "Newsgroup", var24, var18, var19, var20, (String[][])null, (String[][])null, var22, var21);
  154.          ((Container)var7).add("North", this.jdpWhereClause);
  155.       }
  156.  
  157.       if (this.psortChoice.length > 0) {
  158.          this.searchResults = new JDPSearchResults(var1, this.jaggSQL, true, var11, this.pfromWhereClause, var12, this.psortChoice, this.pdisplayChoice, "E_mail", var13, var14);
  159.          ((Container)var7).add("Center", this.searchResults);
  160.          ((Container)var4).add("West", var7);
  161.       }
  162.  
  163.       ((Container)this).add("Center", new JDPChiselFramePanel(var1, "Bulk Email from News group extract", var4, "North"));
  164.       ((Component)var2).paintAll(((Component)var2).getGraphics());
  165.    }
  166.  
  167.    public boolean handleEvent(Event var1) {
  168.       switch (var1.id) {
  169.          case 401:
  170.             if (var1.key == 9) {
  171.                if (var1.modifiers != 1) {
  172.                   if (var1.target.equals(this.FIRSTNAME)) {
  173.                      this.user.u.cursor(this.EMAILADDR);
  174.                      return true;
  175.                   }
  176.  
  177.                   if (var1.target.equals(this.EMAILADDR)) {
  178.                      this.user.u.cursor(this.LASTNAME);
  179.                      return true;
  180.                   }
  181.  
  182.                   if (var1.target.equals(this.LASTNAME)) {
  183.                      this.user.u.cursor(this.NEWSGROUP);
  184.                      return true;
  185.                   }
  186.  
  187.                   if (var1.target.equals(this.NEWSGROUP)) {
  188.                      this.user.u.cursor(this.fromUser);
  189.                      return true;
  190.                   }
  191.  
  192.                   if (var1.target.equals(this.fromUser)) {
  193.                      this.user.u.cursor(this.messageSubject);
  194.                      return true;
  195.                   }
  196.  
  197.                   if (var1.target.equals(this.messageSubject)) {
  198.                      this.user.u.cursor(this.messageText);
  199.                      return true;
  200.                   }
  201.  
  202.                   if (var1.target.equals(this.messageText)) {
  203.                      this.user.u.cursor(this.FIRSTNAME);
  204.                      return true;
  205.                   }
  206.                } else {
  207.                   if (var1.target.equals(this.FIRSTNAME)) {
  208.                      this.user.u.cursor(this.messageText);
  209.                      return true;
  210.                   }
  211.  
  212.                   if (var1.target.equals(this.EMAILADDR)) {
  213.                      this.user.u.cursor(this.FIRSTNAME);
  214.                      return true;
  215.                   }
  216.  
  217.                   if (var1.target.equals(this.LASTNAME)) {
  218.                      this.user.u.cursor(this.EMAILADDR);
  219.                      return true;
  220.                   }
  221.  
  222.                   if (var1.target.equals(this.NEWSGROUP)) {
  223.                      this.user.u.cursor(this.LASTNAME);
  224.                      return true;
  225.                   }
  226.  
  227.                   if (var1.target.equals(this.fromUser)) {
  228.                      this.user.u.cursor(this.NEWSGROUP);
  229.                      return true;
  230.                   }
  231.  
  232.                   if (var1.target.equals(this.messageSubject)) {
  233.                      this.user.u.cursor(this.fromUser);
  234.                      return true;
  235.                   }
  236.  
  237.                   if (var1.target.equals(this.messageText)) {
  238.                      this.user.u.cursor(this.messageSubject);
  239.                      return true;
  240.                   }
  241.                }
  242.  
  243.                return true;
  244.             }
  245.  
  246.             return false;
  247.          case 1001:
  248.             if (var1.target instanceof List) {
  249.                this.sendConfirm = false;
  250.                if (var1.target.equals(this.searchResults.resultList)) {
  251.                   this.currentIndex = this.searchResults.resultList.getSelectedIndex();
  252.                   if (this.currentIndex == -1) {
  253.                      String var4 = (String)var1.arg;
  254.  
  255.                      for(int var5 = 0; var5 < this.searchResults.resultList.countItems(); ++var5) {
  256.                         if (this.searchResults.resultList.getItem(var5).compareTo(var4) == 0) {
  257.                            this.currentIndex = var5;
  258.                            this.loadData(this.currentIndex);
  259.                            break;
  260.                         }
  261.                      }
  262.                   } else {
  263.                      this.loadData(this.currentIndex);
  264.                   }
  265.  
  266.                   return true;
  267.                }
  268.             }
  269.  
  270.             if (!(var1.target instanceof Button)) {
  271.                if (var1.target instanceof JDPChoice) {
  272.                   this.sendConfirm = false;
  273.                   return true;
  274.                } else if (var1.target instanceof TextField) {
  275.                   this.sendConfirm = false;
  276.                   if (this.jdpWhereClause != null && var1.target.equals(this.jdpWhereClause.matchConstant)) {
  277.                      this.insertRequested = false;
  278.                      this.deleteRequested = false;
  279.                      this.newSearch();
  280.                      return true;
  281.                   } else {
  282.                      this.checkFields();
  283.                      return true;
  284.                   }
  285.                } else {
  286.                   if (var1.target instanceof TextArea) {
  287.                      this.sendConfirm = false;
  288.                   }
  289.  
  290.                   return false;
  291.                }
  292.             } else {
  293.                String var2 = (String)var1.arg;
  294.                if (var2.trim().compareTo("Send") == 0) {
  295.                   this.sendMail();
  296.                   return true;
  297.                } else if (var2.trim().compareTo("Batch Send") != 0) {
  298.                   if (var2.trim().compareTo("Apply") == 0) {
  299.                      if (this.checkFields()) {
  300.                         this.saveData();
  301.                         this.newSearch();
  302.                      }
  303.  
  304.                      this.sendConfirm = false;
  305.                      return true;
  306.                   } else if (var2.trim().compareTo("Reset") == 0) {
  307.                      this.loadData(this.currentIndex);
  308.                      this.sendConfirm = false;
  309.                      return true;
  310.                   } else if (var2.trim().compareTo("New") == 0) {
  311.                      this.insertRequested = true;
  312.                      this.clearFields();
  313.                      this.sendConfirm = false;
  314.                      return true;
  315.                   } else if (var2.trim().compareTo("Copy") == 0) {
  316.                      this.insertRequested = true;
  317.                      this.sendConfirm = false;
  318.                      return true;
  319.                   } else if (var2.trim().compareTo("Remove") == 0) {
  320.                      this.insertRequested = false;
  321.                      this.deleteRequested = true;
  322.                      this.saveData();
  323.                      this.sendConfirm = false;
  324.                      return true;
  325.                   } else if (var2.trim().compareTo("Search") == 0) {
  326.                      this.newSearch();
  327.                      this.sendConfirm = false;
  328.                      return true;
  329.                   } else {
  330.                      return true;
  331.                   }
  332.                } else {
  333.                   String var3 = "Press again to confirm Send";
  334.                   if (!var3.equals("") && !this.user.mainmsg.getStatusMsg().equals(var3)) {
  335.                      this.user.mainmsg.setStatusMsg(var3, 15);
  336.                   } else {
  337.                      this.batchEmail();
  338.                   }
  339.  
  340.                   return true;
  341.                }
  342.             }
  343.          default:
  344.             return false;
  345.       }
  346.    }
  347.  
  348.    void newSearch() {
  349.       String var1 = this.pfromWhereClause;
  350.       if (this.jdpWhereClause != null) {
  351.          var1 = var1 + " AND " + this.jdpWhereClause.whereClause;
  352.       }
  353.  
  354.       this.searchResults.setFromWhereClause(var1);
  355.       this.searchResults.clearList();
  356.       this.searchResults.loadList();
  357.    }
  358.  
  359.    void loadData(int var1) {
  360.       int var3 = 0;
  361.       Vector var4 = new Vector();
  362.       String var5 = this.jaggSQL.getSEP();
  363.       String var7 = "SELECT FIRSTNAME,EMAILADDR, LASTNAME,NEWSGROUP FROM EmailAddress WHERE EMAILADDR='" + this.searchResults.recordKey0[var1] + "'";
  364.       if (this.user.DEBUG) {
  365.          System.out.println("loadData SQL: " + var7);
  366.       }
  367.  
  368.       this.user.mainmsg.setStatusMsg("Accessing database...", 0);
  369.       var3 = this.jaggSQL.execSQL(var7, var4);
  370.       if (this.user.DEBUG) {
  371.          System.out.println("loadData CNT: " + Integer.toString(var3));
  372.       }
  373.  
  374.       if (var3 == -1) {
  375.          System.out.println("loadData SQL: " + var7);
  376.          this.user.mainmsg.setStatusMsg("SQL error. Contact the System Administrator", 20);
  377.       } else if (var3 >= 1) {
  378.          String var6 = (String)var4.elementAt(0);
  379.          if (var6 != null && var6.trim().compareTo("") != 0) {
  380.             StringTokenizer var2 = new StringTokenizer(var6);
  381.             this.FIRSTNAME.setText(var2.nextToken(var5).trim());
  382.             this.EMAILADDR.setText(var2.nextToken(var5).trim());
  383.             this.LASTNAME.setText(var2.nextToken(var5).trim());
  384.             this.NEWSGROUP.setText(var2.nextToken(var5).trim());
  385.          }
  386.  
  387.          this.user.mainmsg.clearStatusMsg();
  388.       } else {
  389.          this.user.mainmsg.setStatusMsg("Requested entry does not exist.", 10);
  390.          this.clearFields();
  391.       }
  392.    }
  393.  
  394.    boolean saveData() {
  395.       int var1 = 0;
  396.       Vector var2 = new Vector();
  397.       this.jaggSQL.getSEP();
  398.       String var3 = "";
  399.       if (this.insertRequested) {
  400.          var3 = "INSERT INTO EmailAddress (FIRSTNAME, EMAILADDR,LASTNAME,NEWSGROUP) VALUES('" + this.FIRSTNAME.getText() + "', " + "'" + this.EMAILADDR.getText() + "','" + this.LASTNAME.getText() + "', " + "'" + this.NEWSGROUP.getText() + "')";
  401.       } else {
  402.          this.itemIndex = this.searchResults.resultList.getSelectedIndex();
  403.          if (this.itemIndex < 0) {
  404.             this.user.mainmsg.setStatusMsg("You must first make a selection", 5);
  405.             return false;
  406.          }
  407.  
  408.          if (this.deleteRequested) {
  409.             var3 = "DELETE FROM BPCustMain WHERE EMAILADDR='" + this.searchResults.recordKey0[this.itemIndex] + "'";
  410.          } else {
  411.             var3 = "UPDATE BPCustMain SET FIRSTNAME = '" + this.FIRSTNAME.getText() + "'," + " LASTNAME = '" + this.LASTNAME.getText() + "' NEWSGROUP = '" + this.NEWSGROUP.getText() + "'" + " WHERE EMAILADDR='" + this.searchResults.recordKey0[this.itemIndex] + "'";
  412.          }
  413.       }
  414.  
  415.       if (this.user.DEBUG) {
  416.          System.out.println("saveData SQL: " + var3);
  417.       }
  418.  
  419.       this.user.mainmsg.setStatusMsg("Accessing database...", 0);
  420.       var1 = this.jaggSQL.execSQL(var3, var2);
  421.       if (this.user.DEBUG) {
  422.          System.out.println("saveData CNT: " + Integer.toString(var1));
  423.       }
  424.  
  425.       if (var1 == -1) {
  426.          System.out.println("saveData SQL: " + var3);
  427.          this.user.mainmsg.setStatusMsg("SQL error. Contact the System Administrator.", 10);
  428.          return false;
  429.       } else {
  430.          if (var1 == 1) {
  431.             if (this.insertRequested) {
  432.                this.user.mainmsg.setStatusMsg("Record successfully added.", 3);
  433.             } else if (this.deleteRequested) {
  434.                this.user.mainmsg.setStatusMsg("Record successfully removed.", 3);
  435.             } else {
  436.                this.user.mainmsg.setStatusMsg("Record successfully updated.", 3);
  437.             }
  438.          } else {
  439.             this.user.mainmsg.setStatusMsg("SQL failed. Contact the System Administrator.", 10);
  440.          }
  441.  
  442.          this.insertRequested = false;
  443.          this.deleteRequested = false;
  444.          return true;
  445.       }
  446.    }
  447.  
  448.    void clearFields() {
  449.       this.FIRSTNAME.setText("");
  450.       this.EMAILADDR.setText("");
  451.       this.LASTNAME.setText("");
  452.       this.NEWSGROUP.setText("");
  453.    }
  454.  
  455.    void loadChoices() {
  456.    }
  457.  
  458.    boolean checkFields() {
  459.       return true;
  460.    }
  461.  
  462.    void batchEmail() {
  463.       JDPSaveProps var1 = new JDPSaveProps(this.user);
  464.       String var2 = this.pfromWhereClause;
  465.       if (this.jdpWhereClause != null) {
  466.          var2 = var2 + " AND " + this.jdpWhereClause.whereClause;
  467.       }
  468.  
  469.       String[] var3 = new String[]{"firstname", "lastname", "emailaddr"};
  470.       var1.saveObject("SQL", "SELECT emailaddr,firstname,lastname,emailaddr ");
  471.       var1.saveObject("mailServer", this.moduleParameter);
  472.       var1.saveObject("fromuser", this.fromUser.getText());
  473.       var1.saveObject("returnAddress", this.fromUser.getText());
  474.       var1.saveObject("messageSubject", this.messageSubject.getText());
  475.       var1.saveObject("message", this.messageText.getText());
  476.       var1.saveObject("columns", var3);
  477.       var1.saveObject("messageFunction", "sendBulkMail");
  478.       var1.saveObject("whereClause", var2);
  479.       new JDPSubmitJob(this.user, this.jaggSQL, "JDPMessageSvr", var1, this);
  480.       this.user.mainmsg.setStatusMsg("Email job submitted", 5);
  481.    }
  482.  
  483.    boolean sendMail() {
  484.       int var2 = 0;
  485.       int var3 = 0;
  486.       String var4 = "";
  487.       String var5 = "";
  488.       if (!this.sendConfirm) {
  489.          this.sendConfirm = true;
  490.          if (!this.checkSubs(this.messageText.getText(), "@Firstname")) {
  491.             this.user.mainmsg.setStatusMsg("Warning: substitution value for @Firstname not found in message.", 10);
  492.             return false;
  493.          }
  494.  
  495.          this.user.mainmsg.setStatusMsg("Press Send once more to confirm request", 10);
  496.       } else {
  497.          JDPSendMail var1 = new JDPSendMail("mail.bulletproof.com");
  498.          this.sendConfirm = false;
  499.          int[] var6 = this.searchResults.resultList.getSelectedIndexes();
  500.          this.user.mainmsg.setStatusMsg("Preparing to send " + Integer.toString(var6.length) + " messages...", 10);
  501.  
  502.          for(int var7 = 0; var7 < var6.length; ++var7) {
  503.             String var8 = this.searchResults.recordKey0[var6[var7]];
  504.             if (var8.toUpperCase().equals(var5) && !var5.equals("")) {
  505.                ++var3;
  506.                this.searchResults.resultList.deselect(var6[var7]);
  507.             } else {
  508.                var4 = this.mailInsert(this.messageText.getText(), this.searchResults.recordKey1[var6[var7]]);
  509.                int var9 = var8.indexOf("@");
  510.                if (var9 < 0) {
  511.                   this.user.mainmsg.setStatusMsg("Invalid Email address: " + var8, 10);
  512.                } else {
  513.                   ++var2;
  514.                   this.user.mainmsg.setStatusMsg("Sending message " + Integer.toString(var2) + " of " + Integer.toString(var6.length) + "...", 0);
  515.                   if (!var1.mailMessage(var8, this.fromUser.getText(), this.messageSubject.getText(), var4)) {
  516.                      this.user.mainmsg.setStatusMsg(var1.result, 10);
  517.                   } else {
  518.                      this.searchResults.resultList.deselect(var6[var7]);
  519.                   }
  520.                }
  521.  
  522.                var5 = var8.toUpperCase();
  523.             }
  524.          }
  525.  
  526.          int var11 = this.searchResults.resultList.getSelectedIndexes().length;
  527.          this.user.mainmsg.clearStatusMsg();
  528.          this.user.mainmsg.setStatusMsg(Integer.toString(var11) + " not sent. " + Integer.toString(var3) + " duplicates. " + Integer.toString(var2 - var11) + " sent.", 0);
  529.          var1.closePort();
  530.       }
  531.  
  532.       return true;
  533.    }
  534.  
  535.    boolean checkSubs(String var1, String var2) {
  536.       int var3 = var1.indexOf(var2);
  537.       return var3 >= 0;
  538.    }
  539.  
  540.    String mailInsert(String var1, String var2) {
  541.       for(int var3 = var1.indexOf("@Firstname"); var3 >= 0; var3 = var1.indexOf("@Firstname")) {
  542.          String var4 = var2.trim();
  543.          if (var4.length() > 1) {
  544.             var4 = var4.substring(0, 1).toUpperCase() + var4.substring(1).toLowerCase();
  545.          }
  546.  
  547.          var1 = var1.substring(0, var3) + var4 + var1.substring(var3 + 10);
  548.       }
  549.  
  550.       return var1;
  551.    }
  552. }
  553.