home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / VCafe / main.bin / BrowseDialog.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-08-05  |  4.8 KB  |  171 lines

  1. package symantec.descfileconverter;
  2.  
  3. import java.awt.Button;
  4. import java.awt.Component;
  5. import java.awt.Container;
  6. import java.awt.Dialog;
  7. import java.awt.Event;
  8. import java.awt.Frame;
  9. import java.awt.LayoutManager;
  10. import java.awt.Rectangle;
  11. import java.io.File;
  12. import java.io.FilenameFilter;
  13. import symantec.itools.awt.TreeView;
  14.  
  15. public class BrowseDialog extends Dialog implements Runnable {
  16.    TreeView dirView;
  17.    Button selectButton;
  18.    Button cancelButton;
  19.    private FilenameFilter dirFilter;
  20.    private String[] directories;
  21.    private Object whoInvokedMe;
  22.    private Thread dlgThread;
  23.  
  24.    void cancelButton_Clicked(Event var1) {
  25.       ((Component)this).hide();
  26.       ((Component)this).getParent().requestFocus();
  27.    }
  28.  
  29.    void selectButton_Clicked(Event var1) {
  30.       if (this.whoInvokedMe == ((MainFrame)((Component)this).getParent()).descDirButton) {
  31.          ((MainFrame)((Component)this).getParent()).descDir.setText(((MyTreeNode)this.dirView.getSelectedNode()).getFullPath());
  32.          ((MainFrame)((Component)this).getParent()).listSelectedDir(((MyTreeNode)this.dirView.getSelectedNode()).getFullPath());
  33.          ((MainFrame)((Component)this).getParent()).selectAll_Checked(var1);
  34.       }
  35.  
  36.       if (this.whoInvokedMe == ((MainFrame)((Component)this).getParent()).iconDirButton) {
  37.          ((MainFrame)((Component)this).getParent()).iconDir.setText(((MyTreeNode)this.dirView.getSelectedNode()).getFullPath());
  38.       }
  39.  
  40.       if (this.whoInvokedMe == ((MainFrame)((Component)this).getParent()).beaninfoDirButton) {
  41.          ((MainFrame)((Component)this).getParent()).beaninfoDir.setText(((MyTreeNode)this.dirView.getSelectedNode()).getFullPath());
  42.       }
  43.  
  44.       ((Component)this).hide();
  45.    }
  46.  
  47.    void dirView_Clicked(Event var1) {
  48.       if (!this.dirView.getSelectedNode().isExpandable()) {
  49.          this.recurse((MyTreeNode)this.dirView.getSelectedNode());
  50.       }
  51.  
  52.    }
  53.  
  54.    public BrowseDialog(Frame var1, boolean var2) {
  55.       super(var1, var2);
  56.       ((Container)this).setLayout((LayoutManager)null);
  57.       ((Dialog)this).addNotify();
  58.       ((Component)this).resize(((Container)this).insets().left + ((Container)this).insets().right + 320, ((Container)this).insets().top + ((Container)this).insets().bottom + 240);
  59.       this.dirView = new TreeView();
  60.       this.dirView.reshape(((Container)this).insets().left + 12, ((Container)this).insets().top + 12, 220, 220);
  61.       ((Container)this).add(this.dirView);
  62.       this.selectButton = new Button("OK");
  63.       this.selectButton.reshape(((Container)this).insets().left + 240, ((Container)this).insets().top + 144, 72, 25);
  64.       ((Container)this).add(this.selectButton);
  65.       this.cancelButton = new Button("Cancel");
  66.       this.cancelButton.reshape(((Container)this).insets().left + 240, ((Container)this).insets().top + 180, 72, 25);
  67.       ((Container)this).add(this.cancelButton);
  68.       ((Dialog)this).setTitle("Browse Directories");
  69.       ((Dialog)this).setResizable(false);
  70.       this.dirFilter = new DirFilter();
  71.       if (this.dlgThread == null) {
  72.          this.dlgThread = new Thread(this);
  73.          this.dlgThread.start();
  74.       }
  75.  
  76.    }
  77.  
  78.    public BrowseDialog(Frame var1, String var2, boolean var3) {
  79.       this(var1, var3);
  80.       ((Dialog)this).setTitle(var2);
  81.    }
  82.  
  83.    public synchronized void show() {
  84.       Rectangle var1 = ((Component)this).getParent().bounds();
  85.       Rectangle var2 = ((Component)this).bounds();
  86.       ((Component)this).move(var1.x + (var1.width - var2.width) / 2, var1.y + (var1.height - var2.height) / 2);
  87.       this.dirView.getRootNode().expand();
  88.       super.show();
  89.    }
  90.  
  91.    public boolean handleEvent(Event var1) {
  92.       if (var1.id == 201) {
  93.          ((Component)this).hide();
  94.          return true;
  95.       } else if (var1.target == this.cancelButton && var1.id == 1001) {
  96.          this.cancelButton_Clicked(var1);
  97.          return true;
  98.       } else if (var1.target == this.selectButton && var1.id == 1001) {
  99.          this.selectButton_Clicked(var1);
  100.          return true;
  101.       } else if (var1.target == this.dirView && var1.id == 1006) {
  102.          this.dirView_Clicked(var1);
  103.          return true;
  104.       } else {
  105.          return super.handleEvent(var1);
  106.       }
  107.    }
  108.  
  109.    public void run() {
  110.       this.fillDirView((Frame)((Component)this).getParent());
  111.    }
  112.  
  113.    void whoIsShowingMe(Object var1) {
  114.       this.whoInvokedMe = var1;
  115.    }
  116.  
  117.    private void fillDirView(Frame var1) {
  118.       if (System.getProperty("os.name").startsWith("Windows")) {
  119.          for(short var6 = 0; var6 < 24; ++var6) {
  120.             Character var4 = new Character((char)(67 + var6));
  121.             String var5 = var4.toString() + ":";
  122.             File var8 = new File(var5 + "\\");
  123.             if (var8.exists()) {
  124.                MyTreeNode var7 = new MyTreeNode(var5, var5);
  125.                this.dirView.append(var7);
  126.             }
  127.          }
  128.  
  129.          this.recurse((MyTreeNode)this.dirView.getRootNode());
  130.       } else {
  131.          File var3 = new File(((MainFrame)var1).descDir.getText());
  132.  
  133.          do {
  134.             var3 = new File(var3.getParent());
  135.          } while(var3.getParent() != null);
  136.  
  137.          MyTreeNode var2 = new MyTreeNode(var3.getName(), var3.getPath());
  138.          this.dirView.append(var2);
  139.          this.recurse(var2);
  140.       }
  141.    }
  142.  
  143.    private void recurse(MyTreeNode var1) {
  144.       String[] var2 = (new File(var1.getFullPath())).list(this.dirFilter);
  145.       var2 = this.sort(var2);
  146.       if (var2.length > 0) {
  147.          for(int var5 = 0; var5 < var2.length; ++var5) {
  148.             File var3 = new File(var1.getFullPath(), var2[var5]);
  149.             MyTreeNode var4 = new MyTreeNode(var2[var5], var3.getPath());
  150.             this.dirView.insert(var4, var1, 0);
  151.          }
  152.       }
  153.  
  154.    }
  155.  
  156.    private String[] sort(String[] var1) {
  157.       for(int var3 = 0; var3 < var1.length; ++var3) {
  158.          for(int var4 = var3 + 1; var4 < var1.length; ++var4) {
  159.             int var2 = var1[var3].toLowerCase().compareTo(var1[var4].toLowerCase());
  160.             if (var2 > 0) {
  161.                String var5 = new String(var1[var3]);
  162.                var1[var3] = new String(var1[var4]);
  163.                var1[var4] = var5;
  164.             }
  165.          }
  166.       }
  167.  
  168.       return var1;
  169.    }
  170. }
  171.