home *** CD-ROM | disk | FTP | other *** search
- import java.awt.BorderLayout;
- import java.awt.Button;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Event;
- import java.awt.List;
- import java.awt.Panel;
- import java.awt.TextArea;
- import java.awt.TextField;
- import java.util.StringTokenizer;
- import java.util.Vector;
-
- public class JDPEmailer extends JDPClassLayout {
- JDPUser user;
- String moduleParameter;
- JDPWhereClause jdpWhereClause;
- JDPSearchResults searchResults;
- String[] psortChoice;
- String[] pdisplayChoice;
- int itemIndex;
- boolean insertRequested = false;
- boolean deleteRequested = false;
- JDPJagg jaggSQL;
- TextField FIRSTNAME;
- TextField EMAILADDR;
- TextField LASTNAME;
- TextField NEWSGROUP;
- TextField fromUser;
- TextField messageSubject;
- TextArea messageText;
- JDPChoice daysDiff;
- String pfromWhereClause;
- boolean sendConfirm = false;
- int currentIndex = -1;
-
- public void InitClass(JDPUser var1, Panel var2, String var3) {
- this.user = var1;
- this.moduleParameter = var3;
- this.jaggSQL = new JDPJagg(var1.jaggPath);
- this.jaggSQL.setNULL("space");
- this.jaggSQL.setMRW("200");
- this.jaggSQL.setDSN("WSWServer");
- this.jaggSQL.setCSTR("DSN=WSWServer;UID=sa;PWD=dAtA4U;");
- ((Container)this).setLayout(new BorderLayout());
- ((Component)this).setFont(var1.plainFont);
- Panel var4 = new Panel();
- ((Container)var4).setLayout(new BorderLayout());
- Panel var5 = new Panel();
- ((Container)var5).setLayout(new BorderLayout());
- Panel var6 = new Panel();
- ((Container)var6).setLayout(new BorderLayout());
- Panel var7 = new Panel();
- ((Container)var7).setLayout(new BorderLayout());
- JDPScrollPanel var8 = new JDPScrollPanel();
- JDPWrapPanel var9 = new JDPWrapPanel();
- JDPWrapPanel var10 = new JDPWrapPanel();
- String var11 = "DISTINCT EMAILADDR";
- this.pfromWhereClause = "FROM EmailAddress WHERE (1=1)";
- this.psortChoice = new String[4];
- this.psortChoice[0] = "FIRSTNAME";
- this.psortChoice[1] = "EMAILADDR";
- this.psortChoice[2] = "LASTNAME";
- this.psortChoice[3] = "NEWSGROUP";
- String[] var12 = new String[]{"First Name", "E_mail", "Lastname", "News Group"};
- this.pdisplayChoice = this.psortChoice;
- boolean var13 = true;
- String var14 = "Total Entries:";
- this.FIRSTNAME = new TextField("", 50);
- this.EMAILADDR = new TextField("", 50);
- this.LASTNAME = new TextField("", 30);
- this.NEWSGROUP = new TextField("", 30);
- this.fromUser = new TextField("", 50);
- this.messageSubject = new TextField("", 50);
- this.messageText = new TextArea();
- this.daysDiff = new JDPChoice();
- this.daysDiff.addItem("0");
- this.daysDiff.addItem("1");
- this.daysDiff.addItem("5");
- this.daysDiff.addItem("10");
- this.daysDiff.addItem("20");
- this.daysDiff.addItem("30");
- this.daysDiff.addItem("60");
- this.daysDiff.addItem("120");
- this.daysDiff.addItem("180");
- this.daysDiff.addItem("360");
- this.daysDiff.select("30");
- this.loadChoices();
- ((Container)var8).add("Left", new JDPWrapLabel(var1, "First Name:", Color.black));
- ((Container)var8).add("Left", new JDPWrapLabel(var1, "Email:", Color.black));
- ((Container)var8).add("Left", new JDPWrapLabel(var1, "Lastname:", Color.black));
- ((Container)var8).add("Left", new JDPWrapLabel(var1, "News Group:", Color.black));
- ((Container)var8).add("Right", new JDPWrapField(var1, this.FIRSTNAME));
- ((Container)var8).add("Right", new JDPWrapField(var1, this.EMAILADDR));
- ((Container)var8).add("Right", new JDPWrapField(var1, this.LASTNAME));
- ((Container)var8).add("Right", new JDPWrapField(var1, this.NEWSGROUP));
- ((Container)var6).add("North", var8);
- Panel var15 = new Panel();
- ((Container)var15).setLayout(new BorderLayout());
- Panel var16 = new Panel();
- ((Container)var16).setLayout(new BorderLayout());
- var9.addNorth(new JDPWrapLabel(var1, "Return Email Address:"));
- var9.addNorth(new JDPWrapLabel(var1, "Subject:"));
- var9.addNorth(new JDPWrapLabel(var1, "Last mail days ago:"));
- var10.addNorth(new JDPWrapField(var1, this.fromUser));
- var10.addNorth(new JDPWrapField(var1, this.messageSubject));
- var10.addNorth(new JDPWrapField(var1, this.daysDiff));
- ((Container)var16).add("West", var9);
- ((Container)var16).add("Center", var10);
- ((Container)var15).add("North", var16);
- ((Container)var15).add("Center", this.messageText);
- ((Container)var6).add("Center", new JDPChiselFramePanel(var1, "Enter message (Substitution values: @firstname)", var15, "North"));
- if (var3.compareTo("Inquiry") == 0) {
- this.FIRSTNAME.setEditable(false);
- this.EMAILADDR.setEditable(false);
- this.LASTNAME.setEditable(false);
- String[] var17 = new String[]{"Send", "Batch Send"};
- ((Container)var6).add("South", new JDPButtons(var1, var17, JDPButtons.HORIZONTAL));
- } else {
- this.FIRSTNAME.setEditable(true);
- this.EMAILADDR.setEditable(true);
- this.LASTNAME.setEditable(true);
- String[] var23 = new String[]{"Send", "Batch Send", " Apply ", " Reset ", " New ", " Copy ", " Remove "};
- ((Container)var6).add("South", new JDPButtons(var1, var23, JDPButtons.HORIZONTAL));
- }
-
- ((Container)var4).add("Center", var6);
- String[] var24 = new String[]{"First Name", "Email Address", "Lastname", "News Group"};
- String[] var18 = new String[]{"FIRSTNAME", "EMAILADDR", "LASTNAME", "NEWSGROUP"};
- String[][] var19 = new String[4][8];
- var19[0][0] = "Begins with";
- var19[0][1] = "Contains";
- var19[0][2] = ">";
- var19[1][0] = "Begins with";
- var19[1][1] = "Contains";
- var19[2][0] = "Begins with";
- var19[2][1] = "Contains";
- var19[3][0] = "Begins with";
- var19[3][1] = "Contains";
- String[][] var20 = new String[4][8];
- var20[0][0] = " like ";
- var20[0][1] = " like ";
- var20[0][2] = ">";
- var20[1][0] = " like ";
- var20[1][1] = " like ";
- var20[2][0] = " like ";
- var20[2][1] = " like ";
- var20[3][0] = " like ";
- var20[3][1] = " like ";
- boolean[] var21 = new boolean[]{true, true, true, true};
- int[] var22 = new int[]{52, 52, 52, 52};
- if (var24.length > 0) {
- this.jdpWhereClause = new JDPWhereClause(var1, "JDPEmailer", true, "Newsgroup", var24, var18, var19, var20, (String[][])null, (String[][])null, var22, var21);
- ((Container)var7).add("North", this.jdpWhereClause);
- }
-
- if (this.psortChoice.length > 0) {
- this.searchResults = new JDPSearchResults(var1, this.jaggSQL, true, var11, this.pfromWhereClause, var12, this.psortChoice, this.pdisplayChoice, "E_mail", var13, var14);
- ((Container)var7).add("Center", this.searchResults);
- ((Container)var4).add("West", var7);
- }
-
- ((Container)this).add("Center", new JDPChiselFramePanel(var1, "Bulk Email from News group extract", var4, "North"));
- ((Component)var2).paintAll(((Component)var2).getGraphics());
- }
-
- public boolean handleEvent(Event var1) {
- switch (var1.id) {
- case 401:
- if (var1.key == 9) {
- if (var1.modifiers != 1) {
- if (var1.target.equals(this.FIRSTNAME)) {
- this.user.u.cursor(this.EMAILADDR);
- return true;
- }
-
- if (var1.target.equals(this.EMAILADDR)) {
- this.user.u.cursor(this.LASTNAME);
- return true;
- }
-
- if (var1.target.equals(this.LASTNAME)) {
- this.user.u.cursor(this.NEWSGROUP);
- return true;
- }
-
- if (var1.target.equals(this.NEWSGROUP)) {
- this.user.u.cursor(this.fromUser);
- return true;
- }
-
- if (var1.target.equals(this.fromUser)) {
- this.user.u.cursor(this.messageSubject);
- return true;
- }
-
- if (var1.target.equals(this.messageSubject)) {
- this.user.u.cursor(this.messageText);
- return true;
- }
-
- if (var1.target.equals(this.messageText)) {
- this.user.u.cursor(this.FIRSTNAME);
- return true;
- }
- } else {
- if (var1.target.equals(this.FIRSTNAME)) {
- this.user.u.cursor(this.messageText);
- return true;
- }
-
- if (var1.target.equals(this.EMAILADDR)) {
- this.user.u.cursor(this.FIRSTNAME);
- return true;
- }
-
- if (var1.target.equals(this.LASTNAME)) {
- this.user.u.cursor(this.EMAILADDR);
- return true;
- }
-
- if (var1.target.equals(this.NEWSGROUP)) {
- this.user.u.cursor(this.LASTNAME);
- return true;
- }
-
- if (var1.target.equals(this.fromUser)) {
- this.user.u.cursor(this.NEWSGROUP);
- return true;
- }
-
- if (var1.target.equals(this.messageSubject)) {
- this.user.u.cursor(this.fromUser);
- return true;
- }
-
- if (var1.target.equals(this.messageText)) {
- this.user.u.cursor(this.messageSubject);
- return true;
- }
- }
-
- return true;
- }
-
- return false;
- case 1001:
- if (var1.target instanceof List) {
- this.sendConfirm = false;
- if (var1.target.equals(this.searchResults.resultList)) {
- this.currentIndex = this.searchResults.resultList.getSelectedIndex();
- if (this.currentIndex == -1) {
- String var4 = (String)var1.arg;
-
- for(int var5 = 0; var5 < this.searchResults.resultList.countItems(); ++var5) {
- if (this.searchResults.resultList.getItem(var5).compareTo(var4) == 0) {
- this.currentIndex = var5;
- this.loadData(this.currentIndex);
- break;
- }
- }
- } else {
- this.loadData(this.currentIndex);
- }
-
- return true;
- }
- }
-
- if (!(var1.target instanceof Button)) {
- if (var1.target instanceof JDPChoice) {
- this.sendConfirm = false;
- return true;
- } else if (var1.target instanceof TextField) {
- this.sendConfirm = false;
- if (this.jdpWhereClause != null && var1.target.equals(this.jdpWhereClause.matchConstant)) {
- this.insertRequested = false;
- this.deleteRequested = false;
- this.newSearch();
- return true;
- } else {
- this.checkFields();
- return true;
- }
- } else {
- if (var1.target instanceof TextArea) {
- this.sendConfirm = false;
- }
-
- return false;
- }
- } else {
- String var2 = (String)var1.arg;
- if (var2.trim().compareTo("Send") == 0) {
- this.sendMail();
- return true;
- } else if (var2.trim().compareTo("Batch Send") != 0) {
- if (var2.trim().compareTo("Apply") == 0) {
- if (this.checkFields()) {
- this.saveData();
- this.newSearch();
- }
-
- this.sendConfirm = false;
- return true;
- } else if (var2.trim().compareTo("Reset") == 0) {
- this.loadData(this.currentIndex);
- this.sendConfirm = false;
- return true;
- } else if (var2.trim().compareTo("New") == 0) {
- this.insertRequested = true;
- this.clearFields();
- this.sendConfirm = false;
- return true;
- } else if (var2.trim().compareTo("Copy") == 0) {
- this.insertRequested = true;
- this.sendConfirm = false;
- return true;
- } else if (var2.trim().compareTo("Remove") == 0) {
- this.insertRequested = false;
- this.deleteRequested = true;
- this.saveData();
- this.sendConfirm = false;
- return true;
- } else if (var2.trim().compareTo("Search") == 0) {
- this.newSearch();
- this.sendConfirm = false;
- return true;
- } else {
- return true;
- }
- } else {
- String var3 = "Press again to confirm Send";
- if (!var3.equals("") && !this.user.mainmsg.getStatusMsg().equals(var3)) {
- this.user.mainmsg.setStatusMsg(var3, 15);
- } else {
- this.batchEmail();
- }
-
- return true;
- }
- }
- default:
- return false;
- }
- }
-
- void newSearch() {
- String var1 = this.pfromWhereClause;
- if (this.jdpWhereClause != null) {
- var1 = var1 + " AND " + this.jdpWhereClause.whereClause;
- }
-
- this.searchResults.setFromWhereClause(var1);
- this.searchResults.clearList();
- this.searchResults.loadList();
- }
-
- void loadData(int var1) {
- int var3 = 0;
- Vector var4 = new Vector();
- String var5 = this.jaggSQL.getSEP();
- String var7 = "SELECT FIRSTNAME,EMAILADDR, LASTNAME,NEWSGROUP FROM EmailAddress WHERE EMAILADDR='" + this.searchResults.recordKey0[var1] + "'";
- if (this.user.DEBUG) {
- System.out.println("loadData SQL: " + var7);
- }
-
- this.user.mainmsg.setStatusMsg("Accessing database...", 0);
- var3 = this.jaggSQL.execSQL(var7, var4);
- if (this.user.DEBUG) {
- System.out.println("loadData CNT: " + Integer.toString(var3));
- }
-
- if (var3 == -1) {
- System.out.println("loadData SQL: " + var7);
- this.user.mainmsg.setStatusMsg("SQL error. Contact the System Administrator", 20);
- } else if (var3 >= 1) {
- String var6 = (String)var4.elementAt(0);
- if (var6 != null && var6.trim().compareTo("") != 0) {
- StringTokenizer var2 = new StringTokenizer(var6);
- this.FIRSTNAME.setText(var2.nextToken(var5).trim());
- this.EMAILADDR.setText(var2.nextToken(var5).trim());
- this.LASTNAME.setText(var2.nextToken(var5).trim());
- this.NEWSGROUP.setText(var2.nextToken(var5).trim());
- }
-
- this.user.mainmsg.clearStatusMsg();
- } else {
- this.user.mainmsg.setStatusMsg("Requested entry does not exist.", 10);
- this.clearFields();
- }
- }
-
- boolean saveData() {
- int var1 = 0;
- Vector var2 = new Vector();
- this.jaggSQL.getSEP();
- String var3 = "";
- if (this.insertRequested) {
- var3 = "INSERT INTO EmailAddress (FIRSTNAME, EMAILADDR,LASTNAME,NEWSGROUP) VALUES('" + this.FIRSTNAME.getText() + "', " + "'" + this.EMAILADDR.getText() + "','" + this.LASTNAME.getText() + "', " + "'" + this.NEWSGROUP.getText() + "')";
- } else {
- this.itemIndex = this.searchResults.resultList.getSelectedIndex();
- if (this.itemIndex < 0) {
- this.user.mainmsg.setStatusMsg("You must first make a selection", 5);
- return false;
- }
-
- if (this.deleteRequested) {
- var3 = "DELETE FROM BPCustMain WHERE EMAILADDR='" + this.searchResults.recordKey0[this.itemIndex] + "'";
- } else {
- var3 = "UPDATE BPCustMain SET FIRSTNAME = '" + this.FIRSTNAME.getText() + "'," + " LASTNAME = '" + this.LASTNAME.getText() + "' NEWSGROUP = '" + this.NEWSGROUP.getText() + "'" + " WHERE EMAILADDR='" + this.searchResults.recordKey0[this.itemIndex] + "'";
- }
- }
-
- if (this.user.DEBUG) {
- System.out.println("saveData SQL: " + var3);
- }
-
- this.user.mainmsg.setStatusMsg("Accessing database...", 0);
- var1 = this.jaggSQL.execSQL(var3, var2);
- if (this.user.DEBUG) {
- System.out.println("saveData CNT: " + Integer.toString(var1));
- }
-
- if (var1 == -1) {
- System.out.println("saveData SQL: " + var3);
- this.user.mainmsg.setStatusMsg("SQL error. Contact the System Administrator.", 10);
- return false;
- } else {
- if (var1 == 1) {
- if (this.insertRequested) {
- this.user.mainmsg.setStatusMsg("Record successfully added.", 3);
- } else if (this.deleteRequested) {
- this.user.mainmsg.setStatusMsg("Record successfully removed.", 3);
- } else {
- this.user.mainmsg.setStatusMsg("Record successfully updated.", 3);
- }
- } else {
- this.user.mainmsg.setStatusMsg("SQL failed. Contact the System Administrator.", 10);
- }
-
- this.insertRequested = false;
- this.deleteRequested = false;
- return true;
- }
- }
-
- void clearFields() {
- this.FIRSTNAME.setText("");
- this.EMAILADDR.setText("");
- this.LASTNAME.setText("");
- this.NEWSGROUP.setText("");
- }
-
- void loadChoices() {
- }
-
- boolean checkFields() {
- return true;
- }
-
- void batchEmail() {
- JDPSaveProps var1 = new JDPSaveProps(this.user);
- String var2 = this.pfromWhereClause;
- if (this.jdpWhereClause != null) {
- var2 = var2 + " AND " + this.jdpWhereClause.whereClause;
- }
-
- String[] var3 = new String[]{"firstname", "lastname", "emailaddr"};
- var1.saveObject("SQL", "SELECT emailaddr,firstname,lastname,emailaddr ");
- var1.saveObject("mailServer", this.moduleParameter);
- var1.saveObject("fromuser", this.fromUser.getText());
- var1.saveObject("returnAddress", this.fromUser.getText());
- var1.saveObject("messageSubject", this.messageSubject.getText());
- var1.saveObject("message", this.messageText.getText());
- var1.saveObject("columns", var3);
- var1.saveObject("messageFunction", "sendBulkMail");
- var1.saveObject("whereClause", var2);
- new JDPSubmitJob(this.user, this.jaggSQL, "JDPMessageSvr", var1, this);
- this.user.mainmsg.setStatusMsg("Email job submitted", 5);
- }
-
- boolean sendMail() {
- int var2 = 0;
- int var3 = 0;
- String var4 = "";
- String var5 = "";
- if (!this.sendConfirm) {
- this.sendConfirm = true;
- if (!this.checkSubs(this.messageText.getText(), "@Firstname")) {
- this.user.mainmsg.setStatusMsg("Warning: substitution value for @Firstname not found in message.", 10);
- return false;
- }
-
- this.user.mainmsg.setStatusMsg("Press Send once more to confirm request", 10);
- } else {
- JDPSendMail var1 = new JDPSendMail("mail.bulletproof.com");
- this.sendConfirm = false;
- int[] var6 = this.searchResults.resultList.getSelectedIndexes();
- this.user.mainmsg.setStatusMsg("Preparing to send " + Integer.toString(var6.length) + " messages...", 10);
-
- for(int var7 = 0; var7 < var6.length; ++var7) {
- String var8 = this.searchResults.recordKey0[var6[var7]];
- if (var8.toUpperCase().equals(var5) && !var5.equals("")) {
- ++var3;
- this.searchResults.resultList.deselect(var6[var7]);
- } else {
- var4 = this.mailInsert(this.messageText.getText(), this.searchResults.recordKey1[var6[var7]]);
- int var9 = var8.indexOf("@");
- if (var9 < 0) {
- this.user.mainmsg.setStatusMsg("Invalid Email address: " + var8, 10);
- } else {
- ++var2;
- this.user.mainmsg.setStatusMsg("Sending message " + Integer.toString(var2) + " of " + Integer.toString(var6.length) + "...", 0);
- if (!var1.mailMessage(var8, this.fromUser.getText(), this.messageSubject.getText(), var4)) {
- this.user.mainmsg.setStatusMsg(var1.result, 10);
- } else {
- this.searchResults.resultList.deselect(var6[var7]);
- }
- }
-
- var5 = var8.toUpperCase();
- }
- }
-
- int var11 = this.searchResults.resultList.getSelectedIndexes().length;
- this.user.mainmsg.clearStatusMsg();
- this.user.mainmsg.setStatusMsg(Integer.toString(var11) + " not sent. " + Integer.toString(var3) + " duplicates. " + Integer.toString(var2 - var11) + " sent.", 0);
- var1.closePort();
- }
-
- return true;
- }
-
- boolean checkSubs(String var1, String var2) {
- int var3 = var1.indexOf(var2);
- return var3 >= 0;
- }
-
- String mailInsert(String var1, String var2) {
- for(int var3 = var1.indexOf("@Firstname"); var3 >= 0; var3 = var1.indexOf("@Firstname")) {
- String var4 = var2.trim();
- if (var4.length() > 1) {
- var4 = var4.substring(0, 1).toUpperCase() + var4.substring(1).toLowerCase();
- }
-
- var1 = var1.substring(0, var3) + var4 + var1.substring(var3 + 10);
- }
-
- return var1;
- }
- }
-