⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dump3.java

📁 dump3 morpheus 0.2.9 src
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
  private FingerprintFile prevLeft = null;
  /**
   * <code>prevRight</code> DuMP3 -
   */
  private FingerprintFile prevRight = null;

  /**
   * @param parent
   * @param style
   */
  public DuMP3(final Composite parent, final int style) {
    super(parent, style);
    initGUI();
  }

  /**
   * This constructor is used by the getGUIBuilderInstance method to provide an instance of this class which has not had it's GUI elements initialized (ie,
   * initGUI is not called in this constructor).
   * 
   * @param parent
   * @param style
   * @param initGUI
   */
  public DuMP3(final org.eclipse.swt.widgets.Composite parent, final int style, final Boolean initGUI) {
    super(parent, style);
  }

  /**
   * @param evt
   */
  void btnAdd1WidgetSelected(final SelectionEvent evt) {
    if (!treeViewer1left.getSelection().isEmpty()) {
      final IStructuredSelection selection = (IStructuredSelection)treeViewer1left.getSelection();
      final File f = (File)selection.getFirstElement();
      boolean found = false;
      for (final File lFile : fileList) {
        if (f.equals(lFile) || lFile.getPath().length() < f.getPath().length() && lFile.getPath().equals(f.getPath().substring(0, lFile.getPath().length()))) {
          found = true;
          break;
        }
      }
      if (!found) {
        fileList.add(f);
        treeViewer1right.refresh();
        lblStatus.setText((f.isDirectory() ? "Folder" : "File") + " added.");
        clearTab(2);
        clearTab(3);
        clearTab(4);
        clearTab(5);
        clearTab(6);
      } else {
        lblStatus.setText((f.isDirectory() ? "Folder" : "File") + " already selected!");
        lblStatus.setToolTipText("You can not add files or folders more than once.");
      }
    } else {
      lblStatus.setText("Nothing selected!");
      lblStatus.setToolTipText("Please select a file or folder in the left tree.");
    }
    btnNext.setEnabled(!fileList.isEmpty());
  }

  /**
   * @param evt
   */
  @SuppressWarnings("unchecked")
  void btnAdd2WidgetSelected(final SelectionEvent evt) {
    if (!tableViewer1.getSelection().isEmpty()) {
      final IStructuredSelection selection = (IStructuredSelection)tableViewer1.getSelection();
      selectedTypeList.addAll(selection.toList());
      typeList.removeAll(selection.toList());
      tableViewer2.refresh();
      tableViewer1.refresh();
      lblStatus.setText("File type added.");
      clearTab(3);
      clearTab(4);
      clearTab(5);
      clearTab(6);
    } else {
      lblStatus.setText("Nothing selected!");
      lblStatus.setToolTipText("Please select a file type in the left list.");
    }
    btnNext.setEnabled(!selectedTypeList.isEmpty());
  }

  /**
   * @param evt
   */
  void btnBackWidgetSelected(final SelectionEvent evt) {
    if (ctfMainTab.getSelection() == cTabItem2) {
      ctfMainTab.setSelection(cTabItem1);
      btnNext.setEnabled(!fileList.isEmpty());
      btnBack.setEnabled(false);
    } else if (ctfMainTab.getSelection() == cTabItem3) {
      ctfMainTab.setSelection(cTabItem2);
      btnNext.setEnabled(!selectedTypeList.isEmpty());
      btnBack.setEnabled(true);
    }
  }

  /**
   * @param evt
   */
  void btnNextWidgetSelected(final SelectionEvent evt) {
    if (ctfMainTab.getSelection() == cTabItem1) {
      lblStatus.setText("Detecting file types...");
      final Iterator<File> it = fileList.iterator();
      clearTab(2);
      clearTab(3);
      clearTab(4);
      clearTab(5);
      clearTab(6);
      while (it.hasNext()) {
        File f = it.next();
        String wc = "*";
        if (f.isFile()) {
          wc = f.getName();
          f = f.getParentFile();
        }
        final DirectoryInfo df = new DirectoryInfo(f.getPath());
        final DirectoryReader dr;
        try {
          dr = new DirectoryReader(wc, df);
          readers.add(dr);
          dr.addObserver(this);
          dr.start();
          typeThreadsStarted++;
        } catch (final FileNotFoundException fnf) {
          log.error("Oops", fnf);
        }
      }
    } else if (ctfMainTab.getSelection() == cTabItem2) {
      lblStatus.setText("Selecting fingerprint algorithms.");
      prints.clear();
      final Iterator<ExtensionCount> it = selectedTypeList.iterator();
      while (it.hasNext()) {
        prints.addAll(FingerprintFactory.getFingerprintTypes(it.next().toString()));
      }
      ctfMainTab.setSelection(cTabItem3);
      btnNext.setEnabled(true);
      btnBack.setEnabled(true);
      progressBar.setSelection(0);
      progress = 0.0;
      lblStatus.setText("Configure the fingerprint algorithms.");
      tableViewer3.refresh();
    } else if (ctfMainTab.getSelection() == cTabItem3) {
      ctfMainTab.setSelection(cTabItem5);
      btnNext.setEnabled(false);
      btnBack.setEnabled(true);
      String wc = "";
      progress = 0.0;
      int count = 0;
      for (final ExtensionCount lExt : selectedTypeList) {
        wc += "(" + WildcardFilter.createRegEx(lExt.toString()) + ")|";
        count += lExt.getCount();
      }
      progressBar.setMaximum(count);
      lblStatus.setText("Comparing " + count + " files...");
      if (wc.endsWith("|")) {
        wc = wc.substring(0, wc.length() - 1);
      }
      final Comparer compare = Comparer.getInstance();
      compare.addObserver(this);
      compare.start();
      for (final DirectoryReader lDr : readers) {
        try {
          lDr.setWildcard(wc, true);
          lDr.deleteObserver(this);
          compare.addReader(lDr);
          lDr.start();
        } catch (final FileNotFoundException fnf) {
          log.error("Oops", fnf);
        }
      }
    }
  }

  /**
   * @param evt
   */
  void btnRem1WidgetSelected(final SelectionEvent evt) {
    if (!treeViewer1right.getSelection().isEmpty()) {
      final IStructuredSelection selection = (IStructuredSelection)treeViewer1right.getSelection();
      final File f = (File)selection.getFirstElement();
      final Iterator<File> it = fileList.iterator();
      boolean found = false;
      while (it.hasNext()) {
        if (f.equals(it.next())) {
          found = true;
          break;
        }
      }
      if (found) {
        fileList.remove(f);
        treeViewer1right.refresh();
        lblStatus.setText((f.isDirectory() ? "Folder" : "File") + " removed.");
        clearTab(2);
        clearTab(3);
        clearTab(4);
        clearTab(5);
        clearTab(6);
      } else {
        lblStatus.setText((f.isDirectory() ? "Folder" : "File") + " not removed.");
        lblStatus.setToolTipText("You can not remove subfolders or files. Choose something you have added.");
      }
    } else {
      lblStatus.setText("Nothing selected!");
      lblStatus.setToolTipText("Please select a file or folder in the right tree.");
    }
    btnNext.setEnabled(!fileList.isEmpty());
  }

  /**
   * @param evt
   */
  @SuppressWarnings("unchecked")
  void btnRem2WidgetSelected(final SelectionEvent evt) {
    if (!tableViewer2.getSelection().isEmpty()) {
      final IStructuredSelection selection = (IStructuredSelection)tableViewer2.getSelection();
      selectedTypeList.removeAll(selection.toList());
      typeList.addAll(selection.toList());
      tableViewer1.refresh();
      tableViewer2.refresh();
      lblStatus.setText("File type removed.");
      clearTab(3);
      clearTab(4);
      clearTab(5);
      clearTab(6);
    } else {
      lblStatus.setText("Nothing selected!");
      lblStatus.setToolTipText("Please select a file type in the right list.");
    }
    btnNext.setEnabled(!selectedTypeList.isEmpty());
  }

  /**
   * This method clears the selected items on the specified tab panel.
   * 
   * @param pTab
   */
  private void clearTab(final int pTab) {
    switch (pTab) {
      default:
      case 1:
        fileList.clear();
        getTreeViewer1right().refresh();
        break;
      case 2:
        readers.clear();
        typeMap.clear();
        typeList.clear();
        selectedTypeList.clear();
        getTableViewer1().refresh();
        getTableViewer2().refresh();
        break;
      case 3:
        prints.clear();
        getTableViewer3().refresh();
        getTableViewer4().setInput(null);
        getTableViewer4().refresh();
        break;
      case 4:
        break;
      case 5:
        duplicateList.clear();
        getTreeViewer3().refresh();
        break;
      case 6:
        break;
    }
  }

  /**
   * @param evt
   */
  void ctfMainTabWidgetSelected(final SelectionEvent evt) {
    if (evt.getSource() instanceof CTabFolder) {
      final CTabFolder tf = (CTabFolder)evt.getSource();
      final CTabItem ti = tf.getSelection();
      if (ti == cTabItem1) {
        btnBack.setEnabled(false);
        btnNext.setEnabled(!fileList.isEmpty());
      } else if (ti == cTabItem2) {
        btnBack.setEnabled(true);
        btnNext.setEnabled(!selectedTypeList.isEmpty());
      } else if (ti == cTabItem5) {
        btnBack.setEnabled(true);
        btnNext.setEnabled(false);
      } else {
        btnBack.setEnabled(true);
        btnNext.setEnabled(true);
      }
    }
  }

  /**
   * @return Button
   */
  public Button getBtnAdd1() {
    if (btnAdd1 == null) {
      btnAdd1 = new Button(composite1, SWT.PUSH | SWT.CENTER);
      btnAdd1.setText(">");
      final FormData button2LData = new FormData();
      button2LData.width = 71;
      button2LData.height = 27;
      button2LData.left = new FormAttachment(451, 1000, 0);
      button2LData.right = new FormAttachment(540, 1000, 0);
      button2LData.top = new FormAttachment(39, 1000, 0);
      button2LData.bottom = new FormAttachment(92, 1000, 0);
      btnAdd1.setLayoutData(button2LData);
      btnAdd1.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(final SelectionEvent evt) {
          btnAdd1WidgetSelected(evt);
        }
      });
    }
    return btnAdd1;
  }

  /**
   * @return Button
   */
  public Button getBtnAdd2() {
    if (btnAdd2 == null) {
      btnAdd2 = new Button(composite2, SWT.PUSH | SWT.CENTER);
      btnAdd2.setText(">");
      final FormData button1LData2 = new FormData();
      button1LData2.width = 71;
      button1LData2.height = 27;
      button1LData2.left = new FormAttachment(451, 1000, 0);
      button1LData2.right = new FormAttachment(540, 1000, 0);
      button1LData2.top = new FormAttachment(39, 1000, 0);
      button1LData2.bottom = new FormAttachment(92, 1000, 0);
      btnAdd2.setLayoutData(button1LData2);
      btnAdd2.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(final SelectionEvent evt) {
          btnAdd2WidgetSelected(evt);
        }
      });
    }
    return btnAdd2;
  }

  /**
   * @return Button
   */
  public Button getBtnBack() {
    if (btnBack == null) {
      btnBack = new Button(buttonBar, SWT.PUSH | SWT.CENTER);
      final FormData btnNextLData = new FormData();
      btnNextLData.width = 70;
      btnNextLData.height = 28;
      btnNextLData.left = new FormAttachment(814, 1000, 0);
      btnNextLData.right = new FormAttachment(901, 1000, 0);
      btnNextLData.top = new FormAttachment(0, 1000, 1);
      btnNextLData.bottom = new FormAttachment(814, 1000, 0);
      btnBack.setLayoutData(btnNextLData);
      btnBack.setText("&Back");
      btnBack.setEnabled(false);
      btnBack.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(final SelectionEvent evt) {
          btnBackWidgetSelected(evt);
        }
      });
    }
    return btnBack;
  }

  /**
   * @return Button
   */
  public Button getBtnNext() {
    if (btnNext == null) {
      btnNext = new Button(buttonBar, SWT.PUSH | SWT.CENTER);
      btnNext.setText("&Next");
      final FormData button1LData = new FormData();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -