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

  1. import java.awt.BorderLayout;
  2. import java.awt.CardLayout;
  3. import java.awt.Container;
  4. import java.awt.Event;
  5. import java.awt.Label;
  6. import java.awt.Panel;
  7. import java.awt.TextField;
  8. import java.util.Date;
  9. import java.util.StringTokenizer;
  10. import java.util.Vector;
  11.  
  12. public class JDPFilePicker extends JDPClassLayout implements Runnable {
  13.    JDPUser user;
  14.    JDPJagg jaggSQL;
  15.    JDPPopupMessage popuppanel;
  16.    JDPDragItem dragPanel;
  17.    JDPSplitPanel Main;
  18.    JDPList List1;
  19.    JDPTreePicker TreeStructure1;
  20.    JDPStatusMessage mainmsg;
  21.    String lastDir = "";
  22.    String filter = "";
  23.    Label fileLabel;
  24.    Label fileTypeLabel;
  25.    TextField fileName;
  26.    JDPChoice fileType;
  27.    JDPButtons JDPButtons1;
  28.    JDPButtons JDPButtons2;
  29.    JDPButtons JDPButtonsF;
  30.    JDPButton newFolderButton;
  31.    Panel buttonPanel;
  32.    static Vector dirCache;
  33.    String dragKey;
  34.    String dropMessage;
  35.    String serverSeparator;
  36.    JDPTreeBranch lastSelectedBranch;
  37.    String saveFileName;
  38.    public static final int LOAD = 0;
  39.    public static final int SAVE = 1;
  40.    public static final int NEWFOLDER = 2;
  41.    int mode;
  42.    int prevMode;
  43.  
  44.    public String getFileName(JDPTreeBranch var1) {
  45.       JDPTreeBranch[] var2 = this.List1.getTreeBranch(var1);
  46.       if (var2 == null) {
  47.          return null;
  48.       } else {
  49.          String var3 = var1.name;
  50.          int var4 = var3.indexOf("|");
  51.          if (var4 >= 0) {
  52.             var3 = var3.substring(0, var4);
  53.          }
  54.  
  55.          return var3;
  56.       }
  57.    }
  58.  
  59.    public void clearFilter() {
  60.       this.fileType.clear();
  61.    }
  62.  
  63.    public String getSelectedFile() {
  64.       String var1 = this.fileName.getText();
  65.       if (!var1.equals("") && this.fileType.getItemCount() > 0) {
  66.          String var2 = this.user.u.replace(this.filter, "*", "");
  67.          if (var1.indexOf(var2) < 0) {
  68.             var1 = this.user.u.replace(this.filter, "*", var1);
  69.          }
  70.       }
  71.  
  72.       StringTokenizer var4 = new StringTokenizer(var1, ",~!@#$%^&*()+=|\\`'\":;{}[]?/<>");
  73.  
  74.       for(var1 = ""; var4.hasMoreTokens(); var1 = var1 + var4.nextToken()) {
  75.       }
  76.  
  77.       this.fileName.setText(var1);
  78.       return var1;
  79.    }
  80.  
  81.    Vector retrieveDir(String var1) {
  82.       if (dirCache == null) {
  83.          dirCache = new Vector();
  84.       }
  85.  
  86.       for(int var2 = 0; var2 < dirCache.size(); ++var2) {
  87.          Vector var3 = (Vector)dirCache.elementAt(var2);
  88.          String var4 = (String)var3.elementAt(0);
  89.          if (var4.equals(this.jaggSQL.getServer() + var1)) {
  90.             return (Vector)var3.elementAt(1);
  91.          }
  92.       }
  93.  
  94.       this.user.mainmsg.setStatusMsg("Retrieving directory listing...", 0);
  95.       this.jaggSQL.setDSN(this.user.jaggDSN);
  96.       this.jaggSQL.setFCTN("ListFiles");
  97.       this.jaggSQL.setFCTNP(var1 + ";");
  98.       Vector var5 = new Vector();
  99.       this.jaggSQL.execSQL("", var5);
  100.       Vector var6 = new Vector();
  101.       var6.addElement(this.jaggSQL.getServer() + var1);
  102.       var6.addElement(var5);
  103.       dirCache.addElement(var6);
  104.       return var5;
  105.    }
  106.  
  107.    void clearCachedFiles(String var1) {
  108.       if (dirCache != null) {
  109.          for(int var2 = 0; var2 < dirCache.size(); ++var2) {
  110.             Vector var3 = (Vector)dirCache.elementAt(var2);
  111.             String var4 = (String)var3.elementAt(0);
  112.             if (var4.equals(this.jaggSQL.getServer() + var1)) {
  113.                dirCache.removeElementAt(var2);
  114.             }
  115.          }
  116.  
  117.       }
  118.    }
  119.  
  120.    public String getSelectedItem() {
  121.       return this.List1.getSelectedKey();
  122.    }
  123.  
  124.    public void setDropMessage(String var1) {
  125.       this.dropMessage = var1;
  126.    }
  127.  
  128.    public String getDropMessage() {
  129.       return this.dropMessage;
  130.    }
  131.  
  132.    public JDPTreePicker getFolderTree() {
  133.       return this.TreeStructure1;
  134.    }
  135.  
  136.    public String getSelectedDirectory() {
  137.       return this.lastDir;
  138.    }
  139.  
  140.    public void setSelectedDirectory(String var1) {
  141.       this.lastDir = var1;
  142.       this.loadFiles(var1, true);
  143.    }
  144.  
  145.    public String getSeparator() {
  146.       if (this.serverSeparator != null) {
  147.          return this.serverSeparator;
  148.       } else {
  149.          if (!JDPJagg.useJaggServer) {
  150.             this.serverSeparator = "\\";
  151.          } else {
  152.             this.jaggSQL.setFCTN("GetPlatform");
  153.             this.jaggSQL.setFCTNP("");
  154.             Vector var1 = new Vector();
  155.             int var2 = this.jaggSQL.execSQL("", var1);
  156.             if (var2 >= 1) {
  157.                this.serverSeparator = (String)var1.elementAt(0);
  158.             } else {
  159.                this.serverSeparator = "\\";
  160.             }
  161.  
  162.             this.jaggSQL.setFCTN("");
  163.          }
  164.  
  165.          return this.serverSeparator;
  166.       }
  167.    }
  168.  
  169.    public String getSelectedFullPath() {
  170.       return this.getSelectedDirectory() + this.getSeparator() + this.getSelectedFile();
  171.    }
  172.  
  173.    public void setAutoScroll(boolean var1) {
  174.       this.TreeStructure1.autoScrollOn = var1;
  175.       this.List1.autoScrollOn = var1;
  176.    }
  177.  
  178.    public boolean getAutoScroll() {
  179.       return this.TreeStructure1.autoScrollOn;
  180.    }
  181.  
  182.    public void loadAllDrives() {
  183.       int[] var1 = new int[]{4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
  184.       String[] var2 = new String[32];
  185.       boolean[] var3 = new boolean[32];
  186.       String[] var4 = new String[32];
  187.       String[] var5 = new String[32];
  188.       this.TreeStructure1.setDropKeys(var4);
  189.       this.TreeStructure1.setDragAndDrop((boolean[])null);
  190.       this.TreeStructure1.setDropMessages(var5);
  191.       var3[1] = false;
  192.       this.TreeStructure1.setExpanded(var3);
  193.       var1[1] = 9;
  194.       JDPJagg var6 = new JDPJagg(this.user.jaggPath);
  195.       var6.setDSN(this.user.jaggDSN);
  196.       var6.setFCTN("GetDrives");
  197.       var6.setFCTNP("");
  198.       Vector var7 = new Vector();
  199.       int var8 = var6.execSQL("", var7);
  200.  
  201.       for(int var9 = 0; var9 < var8; ++var9) {
  202.          var2[0] = (String)var7.elementAt(var9);
  203.          this.TreeStructure1.addEntry(var2, var1, var2[0], false);
  204.       }
  205.  
  206.    }
  207.  
  208.    public String[] getFiles() {
  209.       return this.List1.getItemKeys(8);
  210.    }
  211.  
  212.    public void addFilter(String var1, String var2) {
  213.       this.fileType.addItem(var1, var2);
  214.       this.setFilter(this.fileType.getSelectedKey());
  215.       this.fileType.layoutChoice();
  216.    }
  217.  
  218.    public void setMultipleSelections(boolean var1) {
  219.       this.List1.setMultipleSelections(var1);
  220.    }
  221.  
  222.    public String getDirectoryPath(JDPTreeBranch var1) {
  223.       String var2 = null;
  224.       JDPTreeBranch[] var3 = this.TreeStructure1.getTreeBranch(var1);
  225.       if (var3 != null) {
  226.          var2 = "";
  227.  
  228.          for(int var4 = 0; var4 < var3.length; ++var4) {
  229.             if (var4 > 1) {
  230.                var2 = var2 + this.getSeparator() + var3[var4].name;
  231.             } else {
  232.                var2 = var2 + var3[var4].name;
  233.             }
  234.          }
  235.       } else {
  236.          var3 = this.List1.getTreeBranch(var1);
  237.          if (var3 != null) {
  238.             String var7 = var1.name;
  239.             int var5 = var7.indexOf("|");
  240.             if (var5 >= 0) {
  241.                var7 = var7.substring(0, var5);
  242.             }
  243.  
  244.             var2 = this.getSelectedDirectory() + this.getSeparator() + var7;
  245.          }
  246.       }
  247.  
  248.       return var2;
  249.    }
  250.  
  251.    public void setMode(int var1) {
  252.       if (var1 == 1) {
  253.          this.fileLabel.setText("File name:     ");
  254.          this.fileTypeLabel.show();
  255.          this.fileType.show();
  256.          ((CardLayout)this.buttonPanel.getLayout()).show(this.buttonPanel, "Save");
  257.       } else if (var1 == 0) {
  258.          this.fileLabel.setText("File name:     ");
  259.          this.fileTypeLabel.show();
  260.          this.fileType.show();
  261.          ((CardLayout)this.buttonPanel.getLayout()).show(this.buttonPanel, "Load");
  262.       } else if (var1 == 2) {
  263.          if (this.mode != 2) {
  264.             this.prevMode = this.mode;
  265.          }
  266.  
  267.          this.fileLabel.setText("New Directory:");
  268.          this.fileTypeLabel.hide();
  269.          this.fileType.hide();
  270.          ((CardLayout)this.buttonPanel.getLayout()).show(this.buttonPanel, "NewFolder");
  271.       }
  272.  
  273.       this.mode = var1;
  274.    }
  275.  
  276.    public void reloadSelectedDirectory() {
  277.       this.clearCachedFiles(this.getSelectedDirectory());
  278.       this.loadFiles(this.getSelectedDirectory(), false);
  279.    }
  280.  
  281.    void loadSelectedDirectory(JDPTreeBranch var1, boolean var2) {
  282.       String[] var3 = this.TreeStructure1.getTreeBranchNames(var1);
  283.       if (var3 != null) {
  284.          this.loadFiles(var3, var2);
  285.       }
  286.  
  287.    }
  288.  
  289.    public void selectFilter(String var1) {
  290.       this.fileType.select(var1);
  291.       this.setFilter(this.fileType.getSelectedKey());
  292.    }
  293.  
  294.    void setFilter(String var1) {
  295.       this.filter = var1;
  296.       if (var1 == null) {
  297.          this.List1.hide();
  298.          this.List1.clear();
  299.       } else {
  300.          this.List1.show();
  301.       }
  302.    }
  303.  
  304.    public String getFilter() {
  305.       return this.filter;
  306.    }
  307.  
  308.    public void loadFiles(String var1, boolean var2) {
  309.       int var3 = 0;
  310.       String[] var4 = new String[32];
  311.  
  312.       for(StringTokenizer var5 = new StringTokenizer(var1, this.getSeparator()); var5.hasMoreTokens(); var4[var3++] = var5.nextToken()) {
  313.       }
  314.  
  315.       this.loadFiles(var4, var2);
  316.    }
  317.  
  318.    public void setDragKey(String var1) {
  319.       this.dragKey = var1;
  320.    }
  321.  
  322.    public String getDragKey() {
  323.       return this.dragKey;
  324.    }
  325.  
  326.    public void loadFiles(String[] var1, boolean var2) {
  327.       int[] var3 = new int[]{4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
  328.       int var4 = 0;
  329.       String[] var5 = new String[32];
  330.       String var6 = "";
  331.       boolean[] var7 = new boolean[32];
  332.       String[] var8 = new String[32];
  333.       String[] var9 = new String[32];
  334.       if (!var2 || !var6.equals(this.lastDir)) {
  335.          this.List1.clear();
  336.       }
  337.  
  338.       if (this.getSeparator().equals("\\")) {
  339.          var3[1] = 9;
  340.       }
  341.  
  342.       if (this.getSeparator().equals("\\") && (var1[0] == null || var1[0].indexOf(":") < 0) && (var1.length <= 1 || var1[1] == null || var1[1].indexOf(":") < 0)) {
  343.          String[] var10 = new String[var1.length + 1];
  344.          var10[0] = "C:";
  345.          System.arraycopy(var1, 0, var10, 1, var1.length);
  346.          var1 = var10;
  347.       }
  348.  
  349.       for(int var25 = 0; var25 < var1.length; ++var25) {
  350.          if (var1[var25] != null && !var1[var25].equals("")) {
  351.             var7[var25] = true;
  352.             var5[var4++] = var1[var25];
  353.             if (var1[var25].indexOf(":") < 0) {
  354.                var6 = var6 + this.getSeparator() + var1[var25];
  355.             } else {
  356.                var6 = var6 + var1[var25];
  357.             }
  358.  
  359.             var8[var25] = this.dragKey;
  360.             var9[var25] = this.dropMessage;
  361.          }
  362.       }
  363.  
  364.       var8[var4] = this.dragKey;
  365.       var9[var4] = this.dropMessage;
  366.       var8[var4 + 1] = this.dragKey;
  367.       var9[var4 + 1] = this.dropMessage;
  368.       var8[var4 + 2] = this.dragKey;
  369.       var9[var4 + 2] = this.dropMessage;
  370.       this.TreeStructure1.setDropKeys(var8);
  371.       this.TreeStructure1.setDragAndDrop((boolean[])null);
  372.       this.TreeStructure1.setDropMessages(var9);
  373.       var5[var4 + 1] = "";
  374.       var7[var4] = false;
  375.       this.TreeStructure1.setExpanded(var7);
  376.       if (var6.length() == 0) {
  377.          var6 = this.getSeparator();
  378.          this.TreeStructure1.treeRoot.expanded = true;
  379.       }
  380.  
  381.       if (!var6.startsWith(this.getSeparator()) && var6.indexOf(":") < 0) {
  382.          var6 = this.getSeparator() + var6;
  383.       }
  384.  
  385.       this.lastDir = var6;
  386.       Vector var26 = this.retrieveDir(var6);
  387.       int var11 = var26.size();
  388.       String var12 = JDPDate.getDefaultFormat() + " hh:mm AM";
  389.       int var15 = 0;
  390.       int var16 = 0;
  391.       Long var17 = new Long(0L);
  392.       if (var11 > 0) {
  393.          var5[var4] = null;
  394.          this.TreeStructure1.addEntry(var5, var3, var5[0], true);
  395.  
  396.          for(int var18 = 0; var18 < var26.size(); ++var18) {
  397.             StringTokenizer var19 = new StringTokenizer((String)var26.elementAt(var18), this.jaggSQL.getSEP());
  398.             var5[var4] = var19.nextToken();
  399.             String var20 = var19.nextToken();
  400.             if (var20.equals("D")) {
  401.                this.TreeStructure1.addEntry(var5, var3, var5[0], false);
  402.                if (var2) {
  403.                   ++var15;
  404.                } else {
  405.                   this.List1.setDragKey(this.dragKey);
  406.                   this.List1.setDropMessage(this.dropMessage);
  407.                   Long var13 = Long.valueOf(var19.nextToken());
  408.                   Long var14 = Long.valueOf(var19.nextToken());
  409.                   Object[] var21 = new Object[]{" " + var5[var4], var17, var14};
  410.                   Long.toString((var13 + 512L) / 1024L);
  411.                   Date var22 = new Date(var14);
  412.                   String[] var23 = new String[]{var5[var4], "", JDPDate.format(var22, var12)};
  413.                   this.List1.addItem(var23, var5[var4], 0, var21);
  414.                   ++var16;
  415.                }
  416.             } else if (!var2 && (this.filter == null || this.filter.length() == 0 || var5[var4].endsWith(this.filter.substring(1)))) {
  417.                this.List1.setDragKey(this.dragKey);
  418.                this.List1.setDropMessage((String)null);
  419.                Long var27 = Long.valueOf(var19.nextToken());
  420.                Long var28 = Long.valueOf(var19.nextToken());
  421.                Object[] var31 = new Object[]{var5[var4], var27, var28};
  422.                String var32 = Long.toString((var27 + 512L) / 1024L);
  423.                Date var33 = new Date(var28);
  424.                String[] var24 = new String[]{var5[var4], var32 + "KB", JDPDate.format(var33, var12)};
  425.                this.List1.addItem(var24, var5[var4], 8, var31);
  426.                ++var15;
  427.             }
  428.          }
  429.       }
  430.  
  431.       String var29 = "";
  432.       if (var2) {
  433.          var29 = Integer.toString(var15) + " directories found.";
  434.          if (var15 == 1) {
  435.             var29 = "1 directory found.";
  436.          }
  437.  
  438.          if (var15 == 0) {
  439.             this.loadFiles(var1, false);
  440.             return;
  441.          }
  442.       } else {
  443.          if (var16 > 0) {
  444.             var29 = Integer.toString(var16) + " directories found.   ";
  445.             if (var15 == 1) {
  446.                var29 = "1 directory found.   ";
  447.             }
  448.          }
  449.  
  450.          if (var15 == 1) {
  451.             var29 = var29 + "1 file found.";
  452.          } else {
  453.             var29 = var29 + Integer.toString(var15) + " files found.";
  454.          }
  455.       }
  456.  
  457.       this.mainmsg.setInfoMsg(var29, 0);
  458.       this.TreeStructure1.sortTree(this.TreeStructure1.treeRoot, true);
  459.       this.TreeStructure1.select(var1);
  460.       this.user.mainmsg.clearStatusMsg();
  461.    }
  462.  
  463.    public JDPTreePicker getFileList() {
  464.       return this.List1;
  465.    }
  466.  
  467.    public void setDragPanel(JDPDragItem var1) {
  468.       this.dragPanel = var1;
  469.       if (this.TreeStructure1 != null) {
  470.          this.TreeStructure1.setDragPanel(var1);
  471.       }
  472.  
  473.       if (this.List1 != null) {
  474.          this.List1.setDragPanel(var1);
  475.       }
  476.  
  477.    }
  478.  
  479.    public JDPDragItem getDragPanel() {
  480.       return this.dragPanel;
  481.    }
  482.  
  483.    public void createNewFolder(String var1) {
  484.       var1 = this.user.u.replace(var1, ".", "");
  485.       this.user.mainmsg.setStatusMsg("Creating new folder...", 0);
  486.       this.jaggSQL.setFCTN("CreateFolder");
  487.       this.jaggSQL.setFCTNP(var1 + ";");
  488.       Vector var2 = new Vector();
  489.       this.jaggSQL.execSQL("", var2);
  490.       this.reloadSelectedDirectory();
  491.    }
  492.  
  493.    public void clear() {
  494.       this.TreeStructure1.clear();
  495.       this.List1.clear();
  496.    }
  497.  
  498.    public boolean handleEvent(Event var1) {
  499.       switch (var1.id) {
  500.          case 503:
  501.          case 504:
  502.          case 505:
  503.             this.popuppanel.postEvent(var1);
  504.             return false;
  505.          case 701:
  506.             if (var1.target instanceof JDPList) {
  507.                if (this.List1.getSelectedIcon() != 0) {
  508.                   this.fileName.setText(this.List1.getSelectedKey());
  509.                   Event var10 = new Event(this, var1.when, var1.id, var1.x, var1.y, var1.key, var1.modifiers);
  510.                   super.postEvent(var10);
  511.                   return true;
  512.                }
  513.  
  514.                return true;
  515.             } else {
  516.                if (var1.target instanceof JDPTreePicker) {
  517.                   String var9 = (String)var1.arg;
  518.                   if (var1.target.equals(this.TreeStructure1) && var9.equals("BranchOpen")) {
  519.                      this.loadSelectedDirectory(this.TreeStructure1.getCurrentBranch(), true);
  520.                      return true;
  521.                   }
  522.  
  523.                   if (var1.target.equals(this.TreeStructure1) && (var9.equals("BranchSelect") || var9.equals("LeafSelect"))) {
  524.                      JDPTreeBranch var3 = this.TreeStructure1.getCurrentBranch();
  525.                      if (this.lastSelectedBranch != null && this.lastSelectedBranch.equals(var3)) {
  526.                         this.reloadSelectedDirectory();
  527.                      } else {
  528.                         this.loadSelectedDirectory(this.TreeStructure1.getCurrentBranch(), false);
  529.                         this.lastSelectedBranch = var3;
  530.                      }
  531.  
  532.                      return true;
  533.                   }
  534.                }
  535.  
  536.                return false;
  537.             }
  538.          case 1001:
  539.             if (!var1.target.equals(this.TreeStructure1)) {
  540.                if (var1.target instanceof JDPList) {
  541.                   if (this.List1.getSelectedIcon() == 0) {
  542.                      this.loadFiles(this.getSelectedDirectory() + this.getSeparator() + this.List1.getSelectedKey(), false);
  543.                   } else {
  544.                      this.fileName.setText(this.List1.getSelectedKey());
  545.                      Event var8 = new Event(this, var1.when, var1.id, var1.x, var1.y, var1.key, var1.modifiers, "");
  546.                      super.postEvent(var8);
  547.                   }
  548.  
  549.                   return true;
  550.                }
  551.  
  552.                if (var1.target.equals(this.JDPButtons1.button[0])) {
  553.                   Event var7 = new Event(this, var1.when, var1.id, var1.x, var1.y, var1.key, var1.modifiers, var1.arg);
  554.                   super.postEvent(var7);
  555.                   return true;
  556.                }
  557.  
  558.                if (var1.target.equals(this.JDPButtons2.button[0])) {
  559.                   Event var6 = new Event(this, var1.when, var1.id, var1.x, var1.y, var1.key, var1.modifiers, var1.arg);
  560.                   super.postEvent(var6);
  561.                   return true;
  562.                }
  563.  
  564.                if (var1.target.equals(this.JDPButtons1.button[1])) {
  565.                   Event var5 = new Event(this, var1.when, var1.id, var1.x, var1.y, var1.key, var1.modifiers, var1.arg);
  566.                   super.postEvent(var5);
  567.                   return true;
  568.                }
  569.  
  570.                if (var1.target.equals(this.JDPButtons2.button[1])) {
  571.                   Event var4 = new Event(this, var1.when, var1.id, var1.x, var1.y, var1.key, var1.modifiers, var1.arg);
  572.                   super.postEvent(var4);
  573.                   return true;
  574.                }
  575.  
  576.                if (var1.target.equals(this.newFolderButton)) {
  577.                   this.saveFileName = this.fileName.getText();
  578.                   this.fileName.setText("");
  579.                   this.setMode(2);
  580.                   return true;
  581.                }
  582.  
  583.                if (var1.target.equals(this.JDPButtonsF.button[0])) {
  584.                   if (this.fileName.getText().equals("")) {
  585.                      this.mainmsg.setStatusMsg("You must first enter a Folder name.", 10);
  586.                      return true;
  587.                   }
  588.  
  589.                   this.createNewFolder(this.getSelectedDirectory() + this.getSeparator() + this.fileName.getText());
  590.                   this.setMode(this.prevMode);
  591.                   if (this.saveFileName != null) {
  592.                      this.fileName.setText(this.saveFileName);
  593.                   }
  594.  
  595.                   return true;
  596.                }
  597.  
  598.                if (var1.target.equals(this.JDPButtonsF.button[1])) {
  599.                   this.setMode(this.prevMode);
  600.                   return true;
  601.                }
  602.  
  603.                if (var1.target instanceof JDPChoice) {
  604.                   this.setFilter(this.fileType.getSelectedKey());
  605.                   this.loadSelectedDirectory(this.TreeStructure1.getCurrentBranch(), false);
  606.                   this.fileName.setText("");
  607.                   return true;
  608.                }
  609.  
  610.                return false;
  611.             }
  612.  
  613.             JDPTreeBranch var2 = this.TreeStructure1.getCurrentBranch();
  614.             if (this.lastSelectedBranch != null && this.lastSelectedBranch.equals(var2)) {
  615.                this.reloadSelectedDirectory();
  616.             } else {
  617.                this.loadSelectedDirectory(this.TreeStructure1.getCurrentBranch(), true);
  618.                this.loadSelectedDirectory(this.TreeStructure1.getCurrentBranch(), false);
  619.                this.lastSelectedBranch = var2;
  620.             }
  621.  
  622.             return true;
  623.          default:
  624.             return false;
  625.       }
  626.    }
  627.  
  628.    public void run() {
  629.       this.loadAllDrives();
  630.    }
  631.  
  632.    public String getFilePath(JDPTreeBranch var1) {
  633.       return this.getSelectedDirectory() + this.getSeparator() + this.getFileName(var1);
  634.    }
  635.  
  636.    public String[] getSelectedItems() {
  637.       return this.List1.getSelectedKeys();
  638.    }
  639.  
  640.    public void InitClass(JDPUser var1, Panel var2, String var3) {
  641.       this.user = var1;
  642.       this.jaggSQL = new JDPJagg(var1.jaggPath);
  643.       ((Container)this).setLayout(new BorderLayout());
  644.       this.popuppanel = new JDPPopupMessage(var1, this);
  645.       ((Container)this).add(this.popuppanel);
  646.       this.Main = new JDPSplitPanel(var1);
  647.       this.List1 = new JDPList(var1, var2, this.dragPanel);
  648.       this.TreeStructure1 = new JDPTreePicker(var1, var2, this.dragPanel);
  649.       int[] var4 = new int[]{4, 0, 0, 0, 0, 0, 0};
  650.       this.TreeStructure1.setIcons(var4);
  651.       this.TreeStructure1.setRoot("", true);
  652.       this.TreeStructure1.setMinWidth(200);
  653.       this.TreeStructure1.setResizingAllowed(false);
  654.       this.mainmsg = new JDPStatusMessage(var1);
  655.       this.mainmsg.remove(this.mainmsg.eastMessage);
  656.       this.fileName = new TextField("", 18);
  657.       this.fileType = new JDPChoice();
  658.       JDPScrollPanel var5 = new JDPScrollPanel();
  659.       String[] var6 = new String[]{"Open", "Cancel"};
  660.       int[] var7 = new int[]{JDPButton.getIconValue("Load"), JDPButton.getIconValue("Undo")};
  661.       this.JDPButtons1 = new JDPButtons(var1, var6, var7, JDPButtons.getAlignmentValue("Vertical"));
  662.       String[] var8 = new String[]{"Save", "Cancel"};
  663.       int[] var9 = new int[]{JDPButton.getIconValue("Save"), JDPButton.getIconValue("Undo")};
  664.       this.JDPButtons2 = new JDPButtons(var1, var8, var9, JDPButtons.getAlignmentValue("Vertical"));
  665.       String[] var10 = new String[]{"Create", "Cancel"};
  666.       int[] var11 = new int[]{JDPButton.getIconValue("Save"), JDPButton.getIconValue("Undo")};
  667.       this.JDPButtonsF = new JDPButtons(var1, var10, var11, JDPButtons.getAlignmentValue("Vertical"));
  668.       this.Main.add("Left", this.TreeStructure1);
  669.       this.Main.add("Right", this.List1);
  670.       this.fileLabel = new Label("File name:     ", 0);
  671.       this.fileTypeLabel = new Label("File type:     ", 0);
  672.       ((Container)var5).add("Left", this.fileLabel);
  673.       ((Container)var5).add("Right", this.fileName);
  674.       ((Container)var5).add("Left", this.fileTypeLabel);
  675.       ((Container)var5).add("Right", this.fileType);
  676.       Panel var12 = new Panel();
  677.       ((Container)var12).setLayout(new JDPLineLayout(2));
  678.       ((Container)var12).add("Left", var5);
  679.       this.buttonPanel = new Panel();
  680.       this.buttonPanel.setLayout(new CardLayout());
  681.       this.buttonPanel.add("Load", this.JDPButtons1);
  682.       this.buttonPanel.add("Save", this.JDPButtons2);
  683.       this.buttonPanel.add("NewFolder", this.JDPButtonsF);
  684.       this.buttonPanel.add("Blank", new Panel());
  685.       this.newFolderButton = new JDPButton(45, "NewFolder", 0);
  686.       ((Container)var12).add("Left", this.buttonPanel);
  687.       ((Container)var12).add("Left", this.newFolderButton);
  688.       Panel var13 = new Panel();
  689.       ((Container)var13).setLayout(new BorderLayout(1, 1));
  690.       ((Container)var13).add("South", var12);
  691.       ((Container)var13).add("Center", this.Main);
  692.       ((Container)this).add("Center", var13);
  693.       ((Container)this).add("South", this.mainmsg);
  694.       this.List1.setColumns(3);
  695.       this.List1.setColumnHeader(0, "Name");
  696.       this.List1.setColumnHeader(1, "Size");
  697.       this.List1.setColumnHeader(2, "Modified");
  698.       this.List1.setColumnWidth(0, 180);
  699.       this.List1.setColumnWidth(1, 60);
  700.       this.List1.setColumnWidth(2, 100);
  701.       this.List1.setRightJustify(1, true);
  702.       this.TreeStructure1.setBackground(var1.u._cvtcolor("White"));
  703.       this.popuppanel.addComponent(this.newFolderButton, "New Folder", "Create a new Folder in the current Directory");
  704.       var1.gParm.addElement(this);
  705.       (new Thread(this)).start();
  706.    }
  707.  
  708.    public void setSelectedFile(String var1) {
  709.       this.fileName.setText(var1);
  710.       int var2 = this.List1.getKeyItem(var1);
  711.       if (var2 >= 0) {
  712.          this.List1.select(var2);
  713.          this.List1.makeVisible(var2);
  714.       }
  715.  
  716.    }
  717. }
  718.