home *** CD-ROM | disk | FTP | other *** search
Wrap
import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.Container; import java.awt.Event; import java.awt.Graphics; import java.awt.Panel; import java.awt.Rectangle; import java.awt.TextArea; import java.net.InetAddress; import java.util.Date; import java.util.StringTokenizer; public class JDPActiveUserMaint extends JDPClassLayout { JDPUser user; JDPJagg jaggSQL; JDPPopupMessage popuppanel; JDPMaskEdit JDPMaskEditMain; String moduleParameter; Panel Main; JDPPopupMenu PopupMenu1; JDPChiselFramePanel ChiselPanel1; Panel Panel1; JDPButtons JDPButtons1; JDPSplitPanel SplitPanel1; JDPTextGrid GridPanel1; TextArea jobLog; JDPDialog Dialog1; Panel Panel3; JDPChiselFramePanel ChiselPanel2; Panel Panel4; TextArea TextArea1; Panel Panel5; JDPButtons JDPButtons2; Thread thisThread; JDPJagg jaggSQL1; boolean firsttime = true; long waitSeconds = 60L; boolean jobLogShowing = true; boolean loading = false; String[][] data; String[][] cxnData; public void InitClass(JDPUser var1, Panel var2, String var3) { this.user = var1; this.moduleParameter = var3; super.targetPanel = var2; this.jaggSQL = new JDPJagg(var1.jaggPath); ((Container)this).setLayout(new BorderLayout()); this.popuppanel = new JDPPopupMessage(var1, this); ((Container)this).add(this.popuppanel); this.JDPMaskEditMain = new JDPMaskEdit(); this.Main = new Panel(); this.PopupMenu1 = new JDPPopupMenu(var1.getJDPUser(), this.Main); this.ChiselPanel1 = new JDPChiselFramePanel(var1, "Active Users Display"); this.Panel1 = new Panel(); String[] var4 = new String[]{"Refresh", "Hide Details"}; int[] var5 = new int[]{JDPButton.getIconValue("Undo"), JDPButton.getIconValue("Delete")}; this.JDPButtons1 = new JDPButtons(var1, var4, var5, JDPButtons.getAlignmentValue("Horizontal")); this.SplitPanel1 = new JDPSplitPanel(var1); this.GridPanel1 = new JDPTextGrid(var1); this.jobLog = new TextArea("", 3, 20); this.Dialog1 = new JDPDialog(var1, this); this.Panel3 = new Panel(); this.ChiselPanel2 = new JDPChiselFramePanel(var1, "Enter message:"); this.Panel4 = new Panel(); this.TextArea1 = new TextArea("", 5, 50); this.Panel5 = new Panel(); String[] var6 = new String[]{"Send/Reply", "Send Only", "Cancel"}; int[] var7 = new int[]{JDPButton.getIconValue("Go"), JDPButton.getIconValue("Go"), JDPButton.getIconValue("Delete")}; this.JDPButtons2 = new JDPButtons(var1, var6, var7, JDPButtons.getAlignmentValue("Horizontal")); this.Main.setLayout(new BorderLayout()); ((Container)this).add("Center", this.Main); this.Main.add("West", this.PopupMenu1); this.Main.add("Center", this.ChiselPanel1); this.ChiselPanel1.add("Center", this.Panel1); this.Panel1.setLayout(new BorderLayout()); this.Panel1.add("South", this.JDPButtons1); this.Panel1.add("Center", this.SplitPanel1); this.SplitPanel1.add("Left", this.GridPanel1); this.SplitPanel1.add("Left", this.jobLog); this.Dialog1.add("Center", this.Panel3); this.Panel3.setLayout(new BorderLayout()); this.Panel3.add("Center", this.ChiselPanel2); this.ChiselPanel2.add("Center", this.Panel4); this.Panel4.setLayout(new BorderLayout()); this.Panel4.add("Center", this.TextArea1); this.Panel4.add("South", this.Panel5); this.Panel5.setLayout(new BorderLayout()); this.Panel5.add("East", this.JDPButtons2); this.SplitPanel1.setLeftPercentage(50.0F); this.SplitPanel1.setTopPercentage(75.0F); this.GridPanel1.setBackground(var1.u._cvtcolor("LightGray")); this.popuppanel.addComponent(this.GridPanel1, "", "Click on a User, connection or the panel for Options. Hold down the Ctrl key to select multiple users."); this.GridPanel1.setTableDimensions(10, 50); this.GridPanel1.setColumnHeader(0, "User| Request"); this.GridPanel1.setColumnHeader(1, "IP Address|Request Detail"); this.GridPanel1.setColumnHeader(3, "Last connection|"); this.GridPanel1.setColumnHeader(4, "Duration|"); this.GridPanel1.setColumnHeader(5, "Idle for|"); this.GridPanel1.setColumnHeader(6, "#Requests|Priority"); this.GridPanel1.setColumnHeader(7, "Bytes TX|"); this.GridPanel1.setColumnHeader(8, "Bytes RX|"); this.GridPanel1.setColumnHeader(9, "System|"); this.GridPanel1.setColumnWidth(0, 100); this.GridPanel1.setColumnWidth(1, 100); this.GridPanel1.setColumnWidth(3, 100); this.GridPanel1.setColumnWidth(4, 60); this.GridPanel1.setColumnWidth(5, 90); this.GridPanel1.setColumnWidth(6, 70); this.GridPanel1.setColumnWidth(7, 60); this.GridPanel1.setColumnWidth(8, 60); this.GridPanel1.setColumnWidth(9, 50); this.GridPanel1.setColumnHeaderHeight(26); this.GridPanel1.setColumnHeader(2, "Status|"); this.GridPanel1.setColumnWidth(2, 80); this.jobLog.setBackground(var1.u._cvtcolor("LightGray")); this.jobLog.setEditable(false); this.Dialog1.setTitle("Send message to user(s)"); this.Dialog1.setResizable(true); var1.gParm.addElement(this); this.InitComponents(); } public boolean handleEvent(Event var1) { switch (var1.id) { case 503: case 504: case 505: this.popuppanel.postEvent(var1); return false; case 701: if (var1.target.equals(this.GridPanel1)) { if (!this.PopupMenu1LoadMenu()) { return true; } this.PopupMenu1.display(var1.x, var1.y); return true; } return false; case 1001: if (var1.target.equals(this.PopupMenu1)) { this.PopupMenu1HandleSelection(); return true; } else if (var1.target.equals(this.JDPButtons1.button[0])) { this.LoadGridWithUserData(); if (this.jobLog.isVisible()) { this.showDetails(Integer.parseInt(this.GridPanel1.getRowKey(this.GridPanel1.getCurrentRow(), 1))); } return true; } else if (var1.target.equals(this.JDPButtons1.button[1])) { this.setJobLogVisible(false); return true; } else if (var1.target.equals(this.JDPButtons2.button[0])) { int var11 = 0; for(int var12 = 0; var12 < this.GridPanel1.getTableRows(); ++var12) { if (this.GridPanel1.getRowSelected(var12)) { String var13 = this.GridPanel1.getText(1, var12); if (var13.indexOf(".") > 0) { String var14 = ""; try { int var18 = InetAddress.getLocalHost().hashCode(); var14 = (var18 >>> 24 & 255) + "." + (var18 >>> 16 & 255) + "." + (var18 >>> 8 & 255) + "." + (var18 & 255); } catch (Exception var10) { } String var19 = this.user.cust.getFirstname().trim() + " " + this.user.cust.getLastname().trim(); if (var19.equals(" ")) { var19 = this.user.cust.getUsername(); } String var20 = var19 + "|"; var20 = var20 + var13 + "|"; var20 = var20 + var14 + "|"; var20 = var20 + this.TextArea1.getText() + " |"; Event var24 = new Event(this, 1001, var20); this.user.mainmsg.setStatusMsg("Sending message to " + var13 + "...", 0); boolean var9 = this.jaggSQL.sendEventToClient(var13, "JDPSystemMessage", var24); if (var9) { this.user.mainmsg.clearStatusMsg(); } else { ++var11; this.user.mainmsg.setStatusMsg("Failed to send message to " + var13, 10); } } } } if (var11 == 0) { this.Dialog1.dispose(); } return true; } else if (var1.target.equals(this.JDPButtons2.button[1])) { int var2 = 0; for(int var3 = 0; var3 < this.GridPanel1.getTableRows(); ++var3) { if (this.GridPanel1.getRowSelected(var3)) { String var4 = this.GridPanel1.getText(1, var3); if (var4.indexOf(".") > 0) { String var5 = this.user.cust.getFirstname().trim() + " " + this.user.cust.getLastname().trim(); if (var5.equals(" ")) { var5 = this.user.cust.getUsername(); } String var6 = var5 + "|"; var6 = var6 + var4 + "|"; var6 = var6 + " |"; var6 = var6 + this.TextArea1.getText() + " |"; Event var7 = new Event(this, 1001, var6); this.user.mainmsg.setStatusMsg("Sending message to " + var4 + "...", 0); boolean var8 = this.jaggSQL.sendEventToClient(var4, "JDPSystemMessage", var7); if (var8) { this.user.mainmsg.clearStatusMsg(); } else { ++var2; this.user.mainmsg.setStatusMsg("Failed to send message to " + var4, 10); } } } } if (var2 == 0) { this.Dialog1.dispose(); } return true; } else { if (var1.target.equals(this.JDPButtons2.button[2])) { this.Dialog1.dispose(); return true; } return false; } default: return false; } } public void InitComponents() { this.setJobLogVisible(false); this.jaggSQL.loadSettings(this.user); this.jaggSQL.setKeepConnectionOpen(false); this.GridPanel1.setGridColor(Color.white); this.LoadGridWithUserData(); this.thisThread = new Thread(this); this.thisThread.start(); this.jaggSQL1 = new JDPJagg(this.user.jaggPath); this.jaggSQL1.loadSettings(this.user); Rectangle var1 = super.targetPanel.bounds(); if (var1.width - 765 > 170) { this.GridPanel1.setColumnWidth(1, var1.width - 765); } } public void ResetGridSize(int var1, int var2) { this.GridPanel1.setTableDimensions(var1, var2); for(int var3 = 0; var3 < var2; ++var3) { this.GridPanel1.setCellEnabled(0, var3, false); } for(int var4 = 1; var4 < var1; ++var4) { this.GridPanel1.setColumnEnabled(var4, false); } for(int var5 = 0; var5 < var2; ++var5) { this.GridPanel1.setRowHeader(var5, ""); } if (this.firsttime) { Graphics var6 = super.targetPanel.getGraphics(); int var7 = 2 * this.user.u.StringHeight(var6) - 2; if (var7 > 0) { this.GridPanel1.setColumnHeaderHeight(var7); } int var8 = this.user.u.StringWidth(this.user.mainmsg.message.getGraphics(), "O"); int var9 = this.user.u.StringWidth(var6, "O"); float var10 = (float)var9 / (float)var8; if (var10 != 1.0F && var10 != 0.0F) { for(int var11 = 0; var11 < var1; ++var11) { this.GridPanel1.setColumnWidth(var11, (int)((float)this.GridPanel1.getColumnWidth(var11) * var10)); } } if (var10 != 0.0F) { this.firsttime = false; } } } public void run() { while(true) { try { for(; this.waitSeconds > 0L; Thread.sleep(this.waitSeconds * 1000L)) { if (((Component)this).isShowing()) { this.LoadGridWithUserData(); } } Thread.sleep(600000L); } catch (Exception var1) { } } } public void setJobLogVisible(boolean var1) { if (var1) { if (!this.jobLogShowing) { this.jobLogShowing = true; this.jobLog.show(); this.SplitPanel1.layout(); this.SplitPanel1.paintAll(this.SplitPanel1.getGraphics()); this.JDPButtons1.button[1].show(); this.JDPButtons1.layout(); this.JDPButtons1.paintAll(this.JDPButtons1.getGraphics()); } } else if (this.jobLogShowing) { this.jobLogShowing = false; this.jobLog.hide(); this.SplitPanel1.layout(); this.SplitPanel1.paintAll(this.SplitPanel1.getGraphics()); this.JDPButtons1.button[1].hide(); this.JDPButtons1.layout(); this.JDPButtons1.paintAll(this.JDPButtons1.getGraphics()); } } public boolean LoadGridWithUserData() { if (this.loading) { return false; } else { this.loading = true; String var1 = this.jaggSQL.getSEP(); this.jaggSQL.setKeepConnectionOpen(true); this.user.mainmsg.setStatusMsg("Refreshing...", 0); String var2 = (String)this.jaggSQL.invoke("JDPJaggUserMgr", "getUsers"); if (var2 == null) { this.ResetGridSize(10, 10); this.loading = false; return false; } else { StringTokenizer var3 = new StringTokenizer(var2, var1); int var4 = var3.countTokens() / 29; this.data = new String[var4 + 1][29]; int var5 = 0; int var6 = 0; while(var3.hasMoreTokens()) { this.data[var5][var6] = var3.nextToken().trim(); ++var6; if (var6 == 29) { var6 = 0; ++var5; } } String var7 = (String)this.jaggSQL.invoke("JDPJaggCxnMgr", "getConnections"); if (var7 == null) { this.ResetGridSize(10, 10); this.loading = false; return false; } else { this.jaggSQL.setKeepConnectionOpen(false); var3 = new StringTokenizer(var7, var1); int var8 = var3.countTokens() / 20; this.cxnData = new String[var8 + 1][20]; int var9 = 0; var6 = 0; while(var3.hasMoreTokens()) { this.cxnData[var9][var6] = var3.nextToken().trim(); ++var6; if (var6 == 20) { var6 = 0; ++var9; } } int var10 = var5 + var9 + 4; this.ResetGridSize(10, var10); this.GridPanel1.setRowKeyArray(new String[var10][2]); int var11 = 0; for(int var18 = 0; var18 < var5; ++var18) { this.GridPanel1.setCellFont(0, var11, this.user.boldFont); if (this.data[var18][0].equals("-2")) { this.GridPanel1.setText("JDPSystemMgr", 0, var11); } else if (this.data[var18][0].equals("-1")) { this.GridPanel1.setText("Logging in", 0, var11); } else if (this.data[var18][0].equals("0")) { this.GridPanel1.setText("Html Page", 0, var11); } else if ((this.data[var18][12] + this.data[var18][15]).equals("")) { this.GridPanel1.setText(this.data[var18][13], 0, var11); } else { this.GridPanel1.setText(this.data[var18][12] + " " + this.data[var18][15], 0, var11); } this.GridPanel1.setText(this.data[var18][1], 1, var11); if (this.data[var18][10].equals("0")) { this.GridPanel1.setText("Active", 2, var11); } else if (this.data[var18][10].equals("1")) { this.GridPanel1.setText("Idle", 2, var11); } else if (this.data[var18][10].equals("2")) { this.GridPanel1.setText("Disconnected", 2, var11); } if (!this.data[var18][4].equals("0")) { Date var12 = new Date(Long.valueOf(this.data[var18][4])); this.GridPanel1.setText(JDPDate.format(var12, JDPDate.defaultFormat + " hh:mm am"), 3, var11); } else { this.GridPanel1.setText("", 3, var11); } this.GridPanel1.setText(this.convertTime(this.data[var18][5]), 4, var11); this.GridPanel1.setText(this.convertTime(this.data[var18][6]), 5, var11); this.GridPanel1.setText(this.data[var18][7], 6, var11); this.GridPanel1.setText(this.data[var18][8], 7, var11); this.GridPanel1.setText(this.data[var18][9], 8, var11); this.GridPanel1.setText(this.data[var18][3], 9, var11); for(int var19 = 0; var19 < var9; ++var19) { if (this.data[var18][0].equals(this.cxnData[var19][7]) && this.data[var18][1].equals(this.cxnData[var19][13])) { ++var11; this.GridPanel1.setCellFont(0, var11, this.user.plainFont); this.GridPanel1.setText(" " + this.cxnData[var19][0], 0, var11); this.GridPanel1.setText(this.cxnData[var19][1], 1, var11); if (!this.cxnData[var19][12].equals("0")) { Date var13 = new Date(Long.valueOf(this.cxnData[var19][12])); long var14 = Long.valueOf(this.cxnData[var19][19]); this.GridPanel1.setText(JDPDate.format(var13, JDPDate.defaultFormat + " hh:mm am"), 3, var11); this.GridPanel1.setText(this.convertTime(Long.toString(var14 - var13.getTime())), 4, var11); } else { this.GridPanel1.setText("", 3, var11); this.GridPanel1.setText("", 4, var11); } this.GridPanel1.setText(this.cxnData[var19][16], 6, var11); this.GridPanel1.setText(this.cxnData[var19][17].equals("Y") ? "Held" : "Active", 2, var11); this.GridPanel1.setRowKey(this.cxnData[var19][15], var11, 0); this.GridPanel1.setRowKey(Integer.toString(var19), var11, 1); } } ++var11; } this.user.mainmsg.clearStatusMsg(); this.user.JDesignerPro.gc(); this.loading = false; return true; } } } } public String convertTime(String var1) { long var2 = Long.valueOf(var1); long var4 = var2 / 86400000L; long var6 = (var2 - var4 * 24L * 3600000L) / 3600000L; long var8 = (var2 - var4 * 24L * 3600000L - var6 * 3600000L) / 60000L; long var10 = (var2 - var4 * 24L * 3600000L - var6 * 3600000L - var8 * 60000L) / 1000L; String var12 = ""; if (var4 > 0L) { var12 = var12 + Long.toString(var4) + "d "; } if (var6 > 0L) { var12 = var12 + Long.toString(var6) + "h "; } var12 = var12 + Long.toString(var8) + "m " + Long.toString(var10) + "s"; return var12; } public boolean PopupMenu1LoadMenu() { String var1 = this.GridPanel1.getText(0, this.GridPanel1.getCurrentRow()); this.PopupMenu1.clear(); if (var1.equals("")) { return false; } else { this.GridPanel1.setRowSelected(this.GridPanel1.getCurrentRow(), true); if (!var1.startsWith(" ")) { this.PopupMenu1.addEntry("Send message to..."); String[] var2 = new String[]{"Refresh Every", "10 Seconds"}; this.PopupMenu1.addEntry(var2); var2[1] = "30 Seconds"; this.PopupMenu1.addEntry(var2); var2[1] = "Minute"; this.PopupMenu1.addEntry(var2); var2[1] = "5 Minutes"; this.PopupMenu1.addEntry(var2); var2[1] = "10 Minutes"; this.PopupMenu1.addEntry(var2); var2[1] = "30 Minutes"; this.PopupMenu1.addEntry(var2); var2[1] = "Hour"; this.PopupMenu1.addEntry(var2); } else { if (this.GridPanel1.getText(2, this.GridPanel1.getCurrentRow()).equals("Active")) { this.PopupMenu1.addEntry("Hold"); } else { this.PopupMenu1.addEntry("Release"); } this.PopupMenu1.addEntry("Kill Request"); this.PopupMenu1.addEntry(""); this.PopupMenu1.addEntry("Display Details"); this.PopupMenu1.addEntry(""); String[] var4 = new String[]{"Set Priority", ""}; for(int var3 = 10; var3 >= 1; --var3) { var4[1] = Integer.toString(var3); this.PopupMenu1.addEntry(var4); } } return true; } } public void PopupMenu1HandleSelection() { String var1 = this.PopupMenu1.getSelectedMenu(0); String var2 = ""; if (this.PopupMenu1.getCurrentMenuLvl() == 1) { var2 = this.PopupMenu1.getSelectedMenu(1); } if (var1.equals("Send message to...")) { this.Dialog1.display(); } if (var1.equals("Refresh Every")) { if (var2.equals("10 Seconds")) { this.waitSeconds = 10L; } else if (var2.equals("30 Seconds")) { this.waitSeconds = 30L; } else if (var2.equals("Minute")) { this.waitSeconds = 60L; } else if (var2.equals("5 Minutes")) { this.waitSeconds = 300L; } else if (var2.equals("10 Minutes")) { this.waitSeconds = 600L; } else if (var2.equals("30 Minutes")) { this.waitSeconds = 1800L; } else if (var2.equals("Hour")) { this.waitSeconds = 3600L; } this.thisThread.interrupt(); } else { String var3 = this.GridPanel1.getText(0, this.GridPanel1.getCurrentRow()); if (var3.startsWith(" ")) { this.GridPanel1.getText(1, this.GridPanel1.getCurrentRow()); String var4 = this.GridPanel1.getRowKey(this.GridPanel1.getCurrentRow(), 0); if (var1.equals("Set Priority")) { String[] var5 = new String[]{"long", "int"}; String[] var6 = new String[]{var4, var2}; String var7 = (String)this.jaggSQL1.invoke("JDPJaggCxnMgr", "setRequestPriority", var5, var6); this.user.mainmsg.setStatusMsg(var7, 10); } if (var1.equals("Hold")) { String[] var8 = new String[]{"long", "boolean"}; String[] var11 = new String[]{var4, "true"}; String var14 = (String)this.jaggSQL1.invoke("JDPJaggCxnMgr", "setRequestHeld", var8, var11); this.user.mainmsg.setStatusMsg(var14, 10); } if (var1.equals("Release")) { String[] var9 = new String[]{"long", "boolean"}; String[] var12 = new String[]{var4, "false"}; String var15 = (String)this.jaggSQL1.invoke("JDPJaggCxnMgr", "setRequestHeld", var9, var12); this.user.mainmsg.setStatusMsg(var15, 10); } if (var1.equals("Kill Request")) { String[] var10 = new String[]{"long"}; String[] var13 = new String[]{var4}; String var16 = (String)this.jaggSQL1.invoke("JDPJaggCxnMgr", "killRequest", var10, var13); this.user.mainmsg.setStatusMsg(var16, 10); } if (var1.equals("Display Details")) { this.setJobLogVisible(true); this.showDetails(Integer.parseInt(this.GridPanel1.getRowKey(this.GridPanel1.getCurrentRow(), 1))); } } this.LoadGridWithUserData(); } } public void showDetails(int var1) { StringBuffer var2 = new StringBuffer(); var2.append("Request:\t\t"); var2.append(this.cxnData[var1][0] + "\n"); var2.append("Detail:\t\t"); var2.append(this.cxnData[var1][1] + "\n"); if (this.cxnData[var1][0].equals("SQL")) { var2.append("JDBC Driver:\t"); var2.append(this.cxnData[var1][2] + "\n"); var2.append("JDBC Prefix:\t"); var2.append(this.cxnData[var1][3] + "\n"); var2.append("JDBC Suffix:\t"); var2.append(this.cxnData[var1][4] + "\n"); var2.append("JDBC UID:\t"); var2.append(this.cxnData[var1][5] + "\n"); var2.append("Timeout After:\t"); var2.append(this.cxnData[var1][9] + "\n"); var2.append("Max Rows:\t"); var2.append(this.cxnData[var1][10] + "\n"); } this.jobLog.setText(var2.toString()); } }