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

📄 dump3.java

📁 dump3 morpheus 0.2.9 src
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
/**
 * DuMP3 version morpheus_0.2.9 - a duplicate/similar file finder in Java<BR>
 * Copyright 2005 Alexander Gr&auml;sser<BR>
 * All Rights Reserved, http://dump3.sourceforge.net/<BR>
 * <BR>
 * This file is part of DuMP3.<BR>
 * <BR>
 * DuMP3 is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software
 * Foundation; either version 2 of the License, or (at your option) any later version.<BR>
 * <BR>
 * DuMP3 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 * PARTICULAR PURPOSE. See the GNU General Public License for more details.<BR>
 * <BR>
 * You should have received a copy of the GNU General Public License along with DuMP3; if not, write to the Free Software Foundation, Inc., 51 Franklin St,
 * Fifth Floor, Boston, MA 02110-1301 USA
 */
package net.za.grasser.duplicate;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Observable;
import java.util.Observer;
import java.util.Set;
import net.za.grasser.duplicate.compare.Comparer;
import net.za.grasser.duplicate.file.DirectoryInfo;
import net.za.grasser.duplicate.file.DirectoryReader;
import net.za.grasser.duplicate.file.ExtensionCount;
import net.za.grasser.duplicate.file.FingerprintFile;
import net.za.grasser.duplicate.file.WildcardFilter;
import net.za.grasser.duplicate.fingerprint.AbstractFingerprint;
import net.za.grasser.duplicate.fingerprint.FingerprintFactory;
import net.za.grasser.duplicate.gui.*;
import net.za.grasser.duplicate.gui.display.DoubleDisplay;
import net.za.grasser.duplicate.gui.display.DoubleDisplayFactory;
import net.za.grasser.duplicate.gui.info.DoubleInfo;
import net.za.grasser.duplicate.persist.DatabaseFactory;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.eclipse.jface.viewers.AbstractTreeViewer;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.ProgressBar;
import org.eclipse.swt.widgets.Sash;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;
import org.eclipse.swt.widgets.TreeColumn;
import com.cloudgarden.resource.SWTResourceManager;

/**
 * This code was edited or generated using CloudGarden's Jigloo SWT/Swing GUI Builder, which is free for non-commercial use. If Jigloo is being used
 * commercially (ie, by a corporation, company or business for any purpose whatever) then you should purchase a license for each developer using Jigloo. Please
 * visit www.cloudgarden.com for details. Use of Jigloo implies acceptance of these licensing terms. A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR THIS
 * MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
 * 
 * @author <a href="http://sourceforge.net/sendmessage.php?touser=733840">pyropunk at sourceforge dot net</a>
 * @version $Revision: 1.54 $
 */
public class DuMP3 extends org.eclipse.swt.widgets.Composite implements Observer {
  static {
    Configure.load();
    PropertyConfigurator.configure("./log4j.properties");
    log = Logger.getLogger(DuMP3.class);
  }
  /**
   * <code>VERSION</code> DuMP3 -
   */
  private static final String VERSION = "morpheus_0.2.9";
  /**
   * <code>log</code> DuMP3 -
   */
  private static Logger log;
  /**
   * <code>display</code> DuMP3 -
   */
  private static Display display = null;
  /**
   * <code>tableViewer5</code> DuMP3 -
   */
  private TableViewer tableViewer5;
  /**
   * <code>composite5topImage</code> DuMP3 -
   */
  private Composite composite5topImage;
  /**
   * <code>composite5bottomImage</code> DuMP3 -
   */
  private Composite composite5bottomImage;
  /**
   * <code>composite5right</code> DuMP3 -
   */
  Composite composite5right;
  /**
   * <code>trashDir</code> DuMP3 - save current move directory
   */
  String trashDir = "";

  /**
   * This method should return an instance of this class which does NOT initialize it's GUI elements. This method is ONLY required by Jigloo if the superclass
   * of this class is abstract or non-public. It is not needed in any other situation.
   * 
   * @param parent
   * @param style
   * @return instance of this class which does NOT initialize it's GUI elements
   */
  public static Object getGUIBuilderInstance(final org.eclipse.swt.widgets.Composite parent, final int style) {
    return new DuMP3(parent, style, Boolean.FALSE);
  }

  /**
   * Auto-generated main method to display this org.eclipse.swt.widgets.Composite inside a new Shell.
   * 
   * @param args
   */
  public static void main(final String[] args) {
    log.debug("DuMP3 version " + VERSION + " started");
    final SplashScreen s = new SplashScreen(0);
    s.showSplash();
    display = Display.getDefault();
    log.debug("display created");
    final Shell shell = new Shell(display);
    log.debug("shell created");
    final DuMP3 inst = new DuMP3(shell, SWT.NULL);
    log.debug("dump3 instance created");
    final Point size = inst.getSize();
    shell.setLayout(new FillLayout());
    shell.setText("DuMP3 - the ultimate duplicate finder");
    shell.setImage(SWTResourceManager.getImage("icons/main.ico"));
    shell.layout();
    if (size.x == 0 && size.y == 0) {
      inst.pack();
      shell.pack();
    } else {
      final Rectangle shellBounds = shell.computeTrim(0, 0, size.x, size.y);
      shell.setSize(shellBounds.width, shellBounds.height);
    }
    log.debug("shell configured");
    shell.open();
    log.debug("shell open");
    s.hideSplash();
    while (!shell.isDisposed()) {
      if (!display.readAndDispatch()) {
        display.sleep();
      }
    }
    log.debug("done");
    DatabaseFactory.getDatabase().close();
    log.debug("exit");
    // make sure all swing components are closed.
    System.exit(0);
  }

  {
    // Register as a resource user - SWTResourceManager will
    // handle the obtaining and disposing of resources
    SWTResourceManager.registerResourceUser(this);
  }
  /**
   * <code>treeViewer3</code> DuMP3 -
   */
  TreeViewer treeViewer3;
  /**
   * <code>composite5</code> DuMP3 -
   */
  Composite composite5;
  /**
   * <code>sash5</code> DuMP3 -
   */
  Sash sash5;
  /**
   * <code>sash5right</code> DuMP3 -
   */
  Sash sash5right;
  /**
   * <code>lblVersion</code> DuMP3 - version display bottom right
   */
  private Label lblVersion;
  /**
   * <code>toolItemLMove</code> DuMP3 -
   */
  ToolItem toolItemLMove;
  /**
   * <code>toolItemLDelete</code> DuMP3 -
   */
  ToolItem toolItemLDelete;
  /**
   * <code>toolItemLTrash</code> DuMP3 -
   */
  ToolItem toolItemLTrash;
  /**
   * <code>toolItemRTrash</code> DuMP3 -
   */
  ToolItem toolItemRTrash;
  /**
   * <code>toolItemRMove</code> DuMP3 -
   */
  ToolItem toolItemRMove;
  /**
   * <code>toolItemRDelete</code> DuMP3 -
   */
  ToolItem toolItemRDelete;
  /**
   * <code>toolBarLeft</code> DuMP3 -
   */
  private ToolBar toolBarLeft;
  /**
   * <code>toolBarRight</code> DuMP3 -
   */
  private ToolBar toolBarRight;
  /**
   * <code>fileList</code> DuMP3 - file list
   */
  private final List<File> fileList = Collections.synchronizedList(new ArrayList<File>());
  /**
   * <code>typeMap</code> DuMP3 - temporary file type list while collecting
   */
  private final Map<String, ExtensionCount> typeMap = Collections.synchronizedMap(new HashMap<String, ExtensionCount>());
  /**
   * <code>typeList</code> DuMP3 - displayed file type list
   */
  private final List<ExtensionCount> typeList = Collections.synchronizedList(new ArrayList<ExtensionCount>());
  /**
   * <code>duplicateList</code> DuMP3 - list of duplicates found
   */
  final List<FingerprintFile> duplicateList = Collections.synchronizedList(new ArrayList<FingerprintFile>());
  /**
   * <code>selectedTypeList</code> DuMP3 - selected file types
   */
  private final List<ExtensionCount> selectedTypeList = Collections.synchronizedList(new ArrayList<ExtensionCount>());
  /**
   * <code>prints</code> DuMP3 - fingerprint list
   */
  private final Set<Class< ? extends AbstractFingerprint>> prints = Collections.synchronizedSet(new HashSet<Class< ? extends AbstractFingerprint>>());
  /**
   * <code>tableViewer3</code> DuMP3 -
   */
  TableViewer tableViewer3;
  /**
   * <code>btnRem2</code> DuMP3 -
   */
  private Button btnRem2;
  /**
   * <code>btnAdd2</code> DuMP3 -
   */
  private Button btnAdd2;
  /**
   * <code>tableViewer2</code> DuMP3 -
   */
  private TableViewer tableViewer2;
  /**
   * <code>tableViewer4</code> DuMP3 -
   */
  private TableViewer tableViewer4;
  /**
   * <code>tableViewer1</code> DuMP3 -
   */
  TableViewer tableViewer1;
  /**
   * <code>composite2</code> DuMP3 -
   */
  private Composite composite2;
  /**
   * <code>composite3</code> DuMP3 -
   */
  private Composite composite3;
  /**
   * <code>buttonBar</code> DuMP3 -
   */
  private Composite buttonBar;
  /**
   * <code>btnRem1</code> DuMP3 -
   */
  private Button btnRem1;
  /**
   * <code>cTabItem3</code> DuMP3 -
   */
  CTabItem cTabItem3;
  /**
   * <code>lblStatus</code> DuMP3 -
   */
  Label lblStatus;
  /**
   * <code>cTabItem5</code> DuMP3 -
   */
  CTabItem cTabItem5;
  /**
   * <code>cTabItem6</code> DuMP3 -
   */
  private CTabItem cTabItem6;
  /**
   * <code>cTabItem4</code> DuMP3 -
   */
  private CTabItem cTabItem4;
  /**
   * <code>cTabItem2</code> DuMP3 -
   */
  CTabItem cTabItem2;
  /**
   * <code>btnAdd1</code> DuMP3 -
   */
  private Button btnAdd1;
  /**
   * <code>treeViewer1left</code> DuMP3 -
   */
  private TreeViewer treeViewer1left;
  /**
   * <code>treeViewer1right</code> DuMP3 -
   */
  private TreeViewer treeViewer1right;
  /**
   * <code>composite1</code> DuMP3 -
   */
  private Composite composite1;
  /**
   * <code>cTabItem1</code> DuMP3 -
   */
  private CTabItem cTabItem1;
  /**
   * <code>ctfMainTab</code> DuMP3 -
   */
  CTabFolder ctfMainTab;
  /**
   * <code>btnNext</code> DuMP3 -
   */
  Button btnNext;
  /**
   * <code>btnBack</code> DuMP3 -
   */
  Button btnBack;
  /**
   * <code>progressBar</code> DuMP3 -
   */
  ProgressBar progressBar;
  /**
   * <code>typeThreadsStarted</code> DuMP3 -
   */
  private int typeThreadsStarted = 0;
  /**
   * <code>progress</code> DuMP3 - finer control over the progress bar
   */
  double progress = 0.0;
  /**
   * <code>readers</code> DuMP3 -
   */
  private final List<DirectoryReader> readers = new ArrayList<DirectoryReader>();
  /**
   * <code>prevLeft</code> DuMP3 -
   */

⌨️ 快捷键说明

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