home *** CD-ROM | disk | FTP | other *** search
Wrap
import java.awt.BorderLayout; import java.awt.CardLayout; import java.awt.Container; import java.awt.Event; import java.awt.Font; import java.awt.Label; import java.awt.Panel; import java.awt.TextField; import java.util.StringTokenizer; import java.util.Vector; public class JDPComponentMaint extends JDPClassLayout implements Runnable { JDPLayoutMgr target; JDPUser user; JDPJagg jaggSQL; JDPPopupMessage popuppanel; Panel targetPanel; Panel cardPanel; Panel Main; JDPScrollPanel ScrollPanel1; Label Label1; TextField branchName; Label Label2; JDPChoice branchIcon; Vector valuebranchIcon; Label Label3; TextField classDescriptor; Label Label4; JDPTreePicker TreeStructure1; JDPButtons JDPButtons1; Vector eventVector; String mode = ""; String[] iconNames; JDPTreeBranch currentBranch; JDPFilePicker filePicker; JDPChiselFramePanel filePickerFrame; JDPFilePicker filePicker1; JDPChiselFramePanel filePickerFrame1; JDPFilePicker filePicker2; JDPChiselFramePanel filePickerFrame2; String className = ""; String singleClassName; String saveClassName = ""; String lastClassName; void setMode(String var1, JDPTreeBranch var2) { ((CardLayout)this.cardPanel.getLayout()).show(this.cardPanel, "Main"); this.mode = var1; this.Main.remove(this.ScrollPanel1); this.Label3.show(); this.classDescriptor.show(); this.Label4.show(); this.TreeStructure1.show(); if (!var1.equals("Add New Group...") && !var1.equals("Edit Group...")) { if (var1.equals("Import Jar File...")) { this.Label1.setText("Group Name:"); this.Label3.setText("JAR File:"); this.filePicker.selectFilter("JAR Files"); this.filePicker.setMultipleSelections(false); this.filePicker.reloadSelectedDirectory(); this.filePickerFrame.show(); } else if (var1.equals("Import Package...")) { this.Label1.setText("Group Name:"); this.Label3.setText("Package:"); this.filePicker.selectFilter("Java Class Files"); this.filePicker.setMultipleSelections(false); this.filePicker.reloadSelectedDirectory(); this.filePickerFrame.show(); } else if (var1.equals("Import Class...") || var1.equals("Edit...")) { this.Label1.setText("Description:"); this.Label3.setText("Class Name:"); if (var1.equals("Import Class...")) { this.filePicker.selectFilter("Java Class Files"); this.filePicker.setMultipleSelections(false); this.filePicker.reloadSelectedDirectory(); this.filePickerFrame.show(); } if (var1.equals("Edit...")) { this.filePickerFrame.hide(); } } } else { this.Label1.setText("Group Name:"); this.Label3.hide(); this.classDescriptor.hide(); this.Label4.hide(); this.TreeStructure1.hide(); this.filePickerFrame.hide(); } this.Main.add("North", this.ScrollPanel1); this.Main.layout(); this.Main.paintAll(this.Main.getGraphics()); this.setValues(var2); } public void saveChanges() { if (this.mode.equals("Edit...")) { this.currentBranch.name = this.branchName.getText(); this.currentBranch.icon = JDPTreePicker.getIconValue(this.branchIcon.getSelectedItem()); this.currentBranch.compType = this.classDescriptor.getText(); } else if (this.mode.equals("Import Class...")) { this.target.cMgr.tree.setCompType(this.classDescriptor.getText()); this.target.cMgr.tree.addBranch(this.currentBranch, this.branchName.getText(), JDPTreePicker.getIconValue(this.branchIcon.getSelectedItem()), false, "Components", (String)null, false); } else if (this.mode.equals("Import Package...")) { String[] var1 = this.filePicker.getFiles(); boolean var2 = true; for(int var3 = 0; var3 < var1.length; ++var3) { this.branchName.setText(""); this.classDescriptor.setText(this.filePicker.getSelectedDirectory() + this.filePicker.getSeparator() + var1[var3]); if (this.loadItem()) { this.classDescriptor.setText(this.className); if (var2) { this.target.cMgr.tree.setCompType((String)null); this.target.cMgr.tree.addBranch(this.currentBranch, this.classDescriptor.getText().substring(0, this.classDescriptor.getText().lastIndexOf(".")), 0, false, "Components", "Drop here to move this object to this Group", true); this.currentBranch = this.target.cMgr.tree.getLastAddedBranch(); var2 = false; } this.target.cMgr.tree.setCompType(this.classDescriptor.getText()); this.target.cMgr.tree.addBranch(this.currentBranch, this.branchName.getText(), JDPTreePicker.getIconValue(this.branchIcon.getSelectedItem()), false, "Components", (String)null, false); } } } else if (this.mode.equals("Import Jar File...")) { this.jaggSQL.setFCTN("JarListFiles"); this.jaggSQL.setFCTNP(this.filePicker.getSelectedFullPath() + ";"); Vector var5 = new Vector(); int var6 = this.jaggSQL.execSQL("", var5); if (var6 > 0) { this.jaggSQL.setFCTN("JarCommand"); this.jaggSQL.setFCTNP("xf;" + this.filePicker.getSelectedFullPath() + ";"); Vector var7 = new Vector(); this.user.mainmsg.setStatusMsg("Extracting classes from JAR file...", 0); int var4 = this.jaggSQL.execSQL("", var7); if (var4 != 0) { this.user.mainmsg.setStatusMsg("Failed to extract classes from JAR file.", 15); } else { this.user.mainmsg.setStatusMsg("Extract Complete. Use Import class to import the required main classes into the Object Tree.", 30); } } else if (var6 < 0) { this.user.mainmsg.setStatusMsg("Could not find requested JAR file.", 10); } else { this.user.mainmsg.setStatusMsg("Requested JAR file is empty.", 10); } } else if (this.mode.equals("Edit Group...")) { this.currentBranch.name = this.branchName.getText(); this.currentBranch.icon = JDPTreePicker.getIconValue(this.branchIcon.getSelectedItem()); this.currentBranch.dragAndDrop = true; } else if (this.mode.equals("Add New Group...")) { this.target.cMgr.tree.setCompType((String)null); this.target.cMgr.tree.addBranch(this.currentBranch, this.branchName.getText(), JDPTreePicker.getIconValue(this.branchIcon.getSelectedItem()), true, "Components", "Drop here to move this object to this Group", false); } this.target.cMgr.tree.reDraw(); } public void setValues(JDPTreeBranch var1) { this.currentBranch = var1; if (!this.mode.equals("Edit...") && !this.mode.equals("Edit Group...")) { this.branchName.setText(""); this.branchIcon.select(0); this.classDescriptor.setText(""); } else { this.branchName.setText(var1.name); if (var1.icon < 0) { this.branchIcon.select(0); } else { this.branchIcon.select(this.iconNames[var1.icon]); } this.classDescriptor.setText(var1.compType); if (this.mode.equals("Edit...")) { this.loadHierarchy(var1.compType); return; } } } public void promptSaveTree() { ((CardLayout)this.cardPanel.getLayout()).show(this.cardPanel, "TreeSave"); } void InitComponents() { this.branchIcon.addItem("Icon from BeanInfo"); this.iconNames = JDPTreePicker.getTreeIconList(); for(int var1 = 0; var1 < this.iconNames.length; ++var1) { if (!this.iconNames[var1].equals("")) { this.branchIcon.addItem(this.iconNames[var1]); } } } public boolean handleEvent(Event var1) { switch (var1.id) { case 401: if (var1.key == 9 && var1.modifiers != 1) { if (var1.target.equals(this.branchName)) { this.user.u.cursor(this.branchIcon); return true; } if (var1.target.equals(this.branchIcon)) { this.user.u.cursor(this.classDescriptor); return true; } if (var1.target.equals(this.classDescriptor)) { this.user.u.cursor(this.branchName); return true; } } if (var1.key == 9 && var1.modifiers == 1) { if (var1.target.equals(this.branchName)) { this.user.u.cursor(this.classDescriptor); return true; } if (var1.target.equals(this.branchIcon)) { this.user.u.cursor(this.branchName); return true; } if (var1.target.equals(this.classDescriptor)) { this.user.u.cursor(this.branchIcon); return true; } } return false; case 503: case 504: case 505: this.popuppanel.postEvent(var1); return false; case 701: if (var1.target.equals(this.filePicker)) { this.branchName.setText(""); this.classDescriptor.setText(this.filePicker.getSelectedFullPath()); if (this.filePicker.getSelectedFullPath().toLowerCase().indexOf(".jar") < 0) { this.loadItem(); } return true; } return false; case 1001: this.eventVector.addElement(var1); (new Thread(this)).start(); return true; default: return false; } } public void run() { Event var1 = (Event)this.eventVector.elementAt(0); this.eventVector.removeElementAt(0); if (var1.arg != null && var1.arg.equals("Cancel")) { this.target.saveTree(this.target.cMgr.tree.treeRoot, this.target.componentTreeFile); this.target.setButton("Layout"); } else { if (var1.target.equals(this.JDPButtons1.button[0].Button)) { if (this.mode.equals("Edit...") || this.mode.equals("Import Class...")) { if (this.loadItem()) { this.user.mainmsg.setStatusMsg("Class " + this.className + " successfully loaded.", 10); this.saveChanges(); } else { this.user.mainmsg.setStatusMsg("Class " + this.saveClassName + " not found or could not be instantiated.", 10); } this.TreeStructure1.nothingChanged = false; this.TreeStructure1.repaint(); return; } if (this.mode.equals("Add New Group...") || this.mode.equals("Edit Group...") || this.mode.equals("Import Package...") || this.mode.equals("Import Jar File...")) { this.saveChanges(); this.target.setButton("Layout"); return; } } if (var1.target.equals(this.filePicker)) { this.branchName.setText(""); this.classDescriptor.setText(this.filePicker.getSelectedFullPath()); if (this.filePicker.getSelectedFullPath().toLowerCase().indexOf(".jar") >= 0) { this.saveChanges(); this.target.setButton("Layout"); } else if (this.loadItem()) { this.classDescriptor.setText(this.className); this.user.mainmsg.setStatusMsg("Class " + this.className + " successfully loaded.", 10); this.saveChanges(); } else { this.user.mainmsg.setStatusMsg("Class " + this.saveClassName + " not found or could not be instantiated.", 10); } } else if (var1.target.equals(this.filePicker1)) { this.target.loadTree(this.target.cMgr.tree.treeRoot, this.filePicker1.getSelectedFullPath()); this.target.setButton("Layout"); } else if (var1.target.equals(this.filePicker2)) { if (this.filePicker2.getSelectedFile().equals("default.jot")) { this.user.mainmsg.setStatusMsg("You cannot replace the default Object tree. Please use another name.", 15); } else { this.target.saveTree(this.target.cMgr.tree.treeRoot, this.filePicker2.getSelectedFullPath()); this.filePicker1.setSelectedDirectory(this.filePicker2.getSelectedDirectory()); this.filePicker1.reloadSelectedDirectory(); this.filePicker2.reloadSelectedDirectory(); this.target.setButton("Layout"); } } else { if (var1.target.equals(this.classDescriptor)) { this.loadItem(); } } } } public void promptLoadTree() { ((CardLayout)this.cardPanel.getLayout()).show(this.cardPanel, "TreeLoad"); } public boolean loadItem() { String var1 = this.filePicker.getSeparator(); char var2 = var1.toCharArray()[0]; this.className = this.classDescriptor.getText(); if (this.className.endsWith(".class")) { this.className = this.className.substring(0, this.className.length() - 6); } this.saveClassName = this.className; this.singleClassName = null; int var3 = this.saveClassName.length(); boolean var4; for(var4 = false; !var4 && var3 >= 0; var4 = this.loadHierarchy(this.className)) { var3 = this.saveClassName.lastIndexOf(var1, var3 - 1); if (var3 >= 0) { this.className = this.saveClassName.substring(var3 + 1).replace(var2, '.'); } else { this.className = this.saveClassName; } if (this.singleClassName == null) { this.singleClassName = this.className; int var5 = this.singleClassName.lastIndexOf("."); if (var5 > 0) { this.singleClassName = this.singleClassName.substring(var5 + 1); } } } if (!var4) { return false; } else { this.classDescriptor.setText(this.className); if (this.branchName.getText().equals("")) { this.branchName.setText(this.singleClassName); this.branchIcon.select(6); for(int var6 = 0; var6 < this.branchIcon.countItems(); ++var6) { if (this.branchIcon.getItem(var6).length() > 4 && this.singleClassName.toLowerCase().indexOf(this.branchIcon.getItem(var6).substring(0, 4).toLowerCase()) >= 0) { this.branchIcon.select(var6); var6 = this.branchIcon.countItems() + 1; } } } return true; } } public void InitClass(JDPUser var1, JDPLayoutMgr var2, String var3) { this.user = var1; this.target = var2; this.targetPanel = this; this.jaggSQL = new JDPJagg(var1.jaggPath); this.eventVector = new Vector(); ((Container)this).setLayout(new BorderLayout()); this.popuppanel = new JDPPopupMessage(var1, this.targetPanel); this.targetPanel.add(this.popuppanel); this.cardPanel = new Panel(); this.cardPanel.setLayout(new CardLayout()); this.Main = new Panel(); this.ScrollPanel1 = new JDPScrollPanel(); this.Label1 = new Label("Name:", 0); this.branchName = new TextField("", 20); this.Label2 = new Label("Icon:", 0); this.branchIcon = new JDPChoice(); this.Label3 = new Label("Class:", 0); this.classDescriptor = new TextField("", 50); this.Label4 = new Label("Hierarchy:", 0); this.TreeStructure1 = new JDPTreePicker(var1); this.TreeStructure1.setRoot("Class Hierarchy", true); this.TreeStructure1.setMinWidth(324); this.TreeStructure1.setMinHeight(120); String[] var4 = new String[]{"Accept", "Cancel"}; int[] var5 = new int[]{JDPButton.getIconValue("Save"), JDPButton.getIconValue("Undo")}; this.JDPButtons1 = new JDPButtons(var1, var4, var5, JDPButtons.getAlignmentValue("Horizontal")); String var6 = var1.JDesignerPro.JDPDirectory + "System" + JDesignerPro.serverSeparator; var6 = var6 + "ObjectTrees" + JDesignerPro.serverSeparator; this.filePicker = new JDPFilePicker(); this.filePicker.InitClass(var1, this, ""); this.filePicker.addFilter("JAR Files", "*.jar"); this.filePicker.addFilter("Java Class Files", "*.class"); this.filePicker.setMode(0); this.filePicker.setMultipleSelections(false); this.filePicker.selectFilter("Java Class Files"); this.filePicker.loadFiles(var1.JDesignerPro.JDPDirectory, false); this.filePickerFrame = new JDPChiselFramePanel(var1, "Select class to import", this.filePicker, "North"); this.Main.setLayout(new BorderLayout()); this.Main.setFont(new Font("Helvetica", 0, 11)); this.Main.setForeground(var1.u._cvtcolor("Black")); this.Main.add("North", this.ScrollPanel1); this.ScrollPanel1.add("Left", this.Label1); this.ScrollPanel1.add("Right", this.branchName); this.ScrollPanel1.add("Left", this.Label2); this.ScrollPanel1.add("Right", this.branchIcon); this.ScrollPanel1.add("Left", this.Label3); this.ScrollPanel1.add("Right", this.classDescriptor); this.ScrollPanel1.add("Left", this.Label4); this.ScrollPanel1.add("Right", this.TreeStructure1); this.Main.add("South", this.JDPButtons1); this.Main.add("Center", this.filePickerFrame); this.filePicker1 = new JDPFilePicker(); this.filePicker1.InitClass(var1, this, ""); this.filePicker1.addFilter("JDP Object Tree", "*.jot"); this.filePicker1.setMode(0); this.filePicker1.setMultipleSelections(false); this.filePicker1.loadFiles(var6, false); this.filePickerFrame1 = new JDPChiselFramePanel(var1, "Select Object Tree to load", this.filePicker1, "North"); this.filePicker2 = new JDPFilePicker(); this.filePicker2.InitClass(var1, this, ""); this.filePicker2.addFilter("JDP Object Tree", "*.jot"); this.filePicker2.setMode(1); this.filePicker2.setMultipleSelections(false); this.filePicker2.loadFiles(var6, false); this.filePickerFrame2 = new JDPChiselFramePanel(var1, "Enter the file name to save tree as", this.filePicker2, "North"); this.cardPanel.add("Main", this.Main); this.cardPanel.add("TreeLoad", this.filePickerFrame1); this.cardPanel.add("TreeSave", this.filePickerFrame2); ((Container)this).add("Center", this.cardPanel); this.Label1.setFont(new Font("Helvetica", 1, 11)); this.popuppanel.addComponent(this.branchName, "Class Name", "Enter the name required to represent this object in the object tree"); this.Label2.setFont(new Font("Helvetica", 1, 11)); this.popuppanel.addComponent(this.branchIcon, "Class Icon", "Select the icon to represent this object in the object tree"); this.Label3.setFont(new Font("Helvetica", 1, 11)); this.popuppanel.addComponent(this.classDescriptor, "Class Descriptor", "Enter the class name or package name"); this.Label4.setFont(new Font("Helvetica", 1, 11)); this.popuppanel.addComponent(this.TreeStructure1, "Class Hierarchy", "This tree displays the class hierarchy for this class"); this.InitComponents(); var1.gParm.addElement(this); } public boolean loadHierarchy(String var1) { this.user.mainmsg.setStatusMsg("Checking class " + var1 + "...", 0); Vector var2 = new Vector(); this.jaggSQL.loadSettings(this.user); this.jaggSQL.setFCTN("JavaBeanGetParentClasses"); this.jaggSQL.setFCTNP(var1 + ";"); int var3 = this.jaggSQL.execSQL("", var2); if (var3 <= 0) { this.user.mainmsg.setStatusMsg("Class " + this.saveClassName + " not found or could not be instantiated.", 10); return false; } else if (this.lastClassName != null && var1.equals(this.lastClassName)) { this.user.mainmsg.clearStatusMsg(); return true; } else { this.lastClassName = var1; StringTokenizer var4 = new StringTokenizer((String)var2.elementAt(0), this.jaggSQL.getSEP()); int var5 = var4.countTokens() - 1; var4.nextToken(); String[] var6 = new String[var5 + 1]; int[] var7 = new int[var5 + 2]; boolean[] var8 = new boolean[var5 + 2]; for(int var9 = var5 - 2; var9 >= 0; --var9) { var7[var9 + 1] = 8; var8[var9 + 1] = true; var6[var9] = var4.nextToken(); } var7[0] = 8; this.TreeStructure1.setIcons(var7); String var17 = var4.nextToken(); if (var17 != null) { this.TreeStructure1.setRoot(var17, true); } else { this.TreeStructure1.setRoot("", true); } this.TreeStructure1.setExpanded(var8); this.TreeStructure1.addEntry(var6, var7, ""); this.jaggSQL.setFCTN("JavaBeanGetConstructors"); this.jaggSQL.setFCTNP(var1 + ";"); var2 = new Vector(); boolean var10 = false; this.jaggSQL.execSQL("", var2); for(int var11 = 0; var11 < var2.size(); ++var11) { if (!((String)var2.elementAt(var11)).equals(" ")) { var4 = new StringTokenizer((String)var2.elementAt(var11), this.jaggSQL.getSEP()); String var12 = "("; int var13 = var4.countTokens() - 1; var4.nextToken(); for(int var14 = 0; var14 < var13; ++var14) { if (var14 > 0) { var12 = var12 + ","; } var12 = var12 + JDPInteractionMgr.convertParm(var4.nextToken()); } var12 = var12 + ")"; var6[var5 - 1] = var12; var7[var5] = 2; var8[var5] = true; this.TreeStructure1.setExpanded(var8); this.TreeStructure1.addEntry(var6, var7, ""); var10 = true; } } this.TreeStructure1.reDraw(); if (!var10) { this.user.mainmsg.setStatusMsg("Cannot import class because it does not have a constructor", 10); return false; } else { this.user.mainmsg.setStatusMsg("Class " + var1 + " is valid.", 10); return true; } } } }