Package devutilsplugin.views

Source Code of devutilsplugin.views.DigestUtilView

package devutilsplugin.views;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import java.util.Iterator;
import java.util.Map;

import org.apache.commons.codec.digest.DigestUtils;
import org.eclipse.swt.SWT;
import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.DropTarget;
import org.eclipse.swt.dnd.DropTargetEvent;
import org.eclipse.swt.dnd.DropTargetListener;
import org.eclipse.swt.dnd.FileTransfer;
import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
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.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.IViewPart;
import org.eclipse.ui.part.ViewPart;

import devutilsplugin.utils.ActionNewView;

public class DigestUtilView extends ViewPart {
  public static final String ID = "DevUtilsPlugin.views.DigestUtilView";
  final int pad_frame = 10;
  final int pad_ctrl = 5;
  final int DIGEST_MD5 = 0;
  final int DIGEST_SHA = 1;
  final int DIGEST_SHA256 = 2;
  final int DIGEST_SHA384 = 3;
  final int DIGEST_SHA512 = 4;

  public DigestUtilView() {
  }
  void setMultiView(final IViewPart view){
    try {
      Display.getDefault().asyncExec(new Runnable() {
        @Override
        public void run() {
          getViewSite().getPage().hideView(view);
          ActionNewView anv = new ActionNewView(getViewSite().getId());
          anv.run();
        }
      });
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  @Override
  public void createPartControl(final Composite parent) {
    String secondaryId = getViewSite().getSecondaryId();
    if (secondaryId == null) {
      setMultiView(this);
      return;
    }
   
    FormData layoutData = null;
    FormLayout layout = new FormLayout();
    parent.setLayout(layout);
   
    Label lblCharset = new Label(parent, SWT.NONE);
    Label lblDigest = new Label(parent, SWT.NONE);
    final Combo cboCharset = new Combo(parent, SWT.BORDER);
    final Combo cboDigest = new Combo(parent, SWT.BORDER|SWT.READ_ONLY);
    final Text txtDEC = new Text(parent, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.WRAP);
    final Text txtENC = new Text(parent, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL);
    Button btnENC = new Button(parent, SWT.PUSH);

    layoutData = new FormData();
    layoutData.top = new FormAttachment(0, pad_frame);
    layoutData.left = new FormAttachment(0, pad_ctrl);
    lblCharset.setLayoutData(layoutData);
    lblCharset.setText("Charset : ");
   
    layoutData = new FormData();
    layoutData.top = new FormAttachment(0, pad_frame);
    layoutData.left = new FormAttachment(lblCharset, pad_frame);
    layoutData.right = new FormAttachment(100, -pad_frame);
    layoutData.height = 100;
    cboCharset.setLayoutData(layoutData);

    layoutData = new FormData();
    layoutData.top = new FormAttachment(cboCharset, pad_ctrl);
    layoutData.left = new FormAttachment(0, pad_ctrl);
    lblDigest.setLayoutData(layoutData);
    lblDigest.setText("Digest : ");
   
    layoutData = new FormData();
    layoutData.top = new FormAttachment(cboCharset, pad_frame);
    layoutData.left = new FormAttachment(lblDigest, pad_frame);
    layoutData.right = new FormAttachment(100, -pad_frame);
    layoutData.height = 100;
    cboDigest.setLayoutData(layoutData);
   
    layoutData = new FormData();
    layoutData.top = new FormAttachment(cboDigest, pad_frame);
    layoutData.left = new FormAttachment(0, pad_frame);
    layoutData.right = new FormAttachment(50, -pad_ctrl-40);
    layoutData.bottom = new FormAttachment(100, -pad_frame);
    txtDEC.setFont(new Font(parent.getDisplay(), "Fixedsys", 12, SWT.NONE));
    txtDEC.setLayoutData(layoutData);
    txtDEC.setBackground(new Color(parent.getDisplay(), 243, 246, 250));
    txtDEC.setText("Input string or Drag&Drop File(s)!");

    layoutData = new FormData();
    layoutData.top = new FormAttachment(cboDigest, pad_frame);
    layoutData.left = new FormAttachment(50, pad_ctrl+40);
    layoutData.right = new FormAttachment(100, -pad_frame);
    layoutData.bottom = new FormAttachment(100, -pad_frame);
    txtENC.setFont(new Font(parent.getDisplay(), "Fixedsys", 12, SWT.NONE));
    txtENC.setBackground(new Color(parent.getDisplay(), 243, 246, 250));
    txtENC.setLayoutData(layoutData);

    layoutData = new FormData();
    layoutData.top = new FormAttachment(cboDigest, pad_frame);
    layoutData.left = new FormAttachment(txtDEC, pad_ctrl);
    layoutData.right = new FormAttachment(txtENC, -pad_ctrl);
    btnENC.setLayoutData(layoutData);
    btnENC.setText("=>encode");
   
    Map<String, Charset> charsets = Charset.availableCharsets();
      Iterator<Charset> iterator = charsets.values().iterator();
    while (iterator.hasNext()) {
      Charset cs = (Charset) iterator.next();
      cboCharset.add(cs.displayName());
//      System.out.print(cs.displayName());
//      if (cs.isRegistered()) {
//        System.out.print(" (registered): ");
//      } else {
//        System.out.print(" (unregistered): ");
//      }
//      System.out.print(cs.name());
//      Iterator names = cs.aliases().iterator();
//      while (names.hasNext()) {
//        System.out.print(", ");
//        System.out.print(names.next());
//      }
//      System.out.println();
    }
    cboCharset.setText(Charset.defaultCharset().displayName());

    cboDigest.add("md5", DIGEST_MD5);
    cboDigest.add("sha", DIGEST_SHA);
    cboDigest.add("sha256", DIGEST_SHA256);
    cboDigest.add("sha384", DIGEST_SHA384);
    cboDigest.add("sha512", DIGEST_SHA512);
    cboDigest.setText("md5");
    btnENC.addSelectionListener(new SelectionListener() {
      @Override
      public void widgetSelected(SelectionEvent e) {
       
        String decData = txtDEC.getText();
          String charName = cboCharset.getText();
          String encData = "";

          byte [] byteData = null;
          try {
          byteData = decData.getBytes(charName);
        } catch (UnsupportedEncodingException e2) {
          e2.printStackTrace();
        }

        int digestType = cboDigest.getSelectionIndex();
        encData = digest(byteData, digestType);

          txtENC.append(encData + "\n");
      }
     
      @Override
      public void widgetDefaultSelected(SelectionEvent e) {
      }
    });
   
   
   
   
   
   
    DropTargetListener dtl = new DropTargetListener() {

      @Override
      public void dropAccept(DropTargetEvent event) {
      }

      @Override
      public void drop(DropTargetEvent event) {
        if (FileTransfer.getInstance().isSupportedType(
            event.currentDataType)) {
            String encData = "";
          int digestType = cboDigest.getSelectionIndex();

            String[] files = (String[]) event.data;
          StringBuffer sb = new StringBuffer();
          for (int i = 0; i < files.length; i++) {
            File fd = new File(files[i]);
            FileInputStream is = null;
            try {
              is = new FileInputStream(fd);
              encData = digest(is, digestType);
              sb.append(encData + "\t" + fd.getAbsolutePath() + "\n");
            } catch (Exception e) {
              e.printStackTrace();
            } finally{
              if(is != null){
                try {
                  is.close();
                } catch (IOException e) {
                  e.printStackTrace();
                }
              }
            }
           
          }
          txtENC.append(sb.toString());
        }
      }

      @Override
      public void dragOver(DropTargetEvent event) {
      }

      @Override
      public void dragOperationChanged(DropTargetEvent event) {
      }

      @Override
      public void dragLeave(DropTargetEvent event) {
      }

      @Override
      public void dragEnter(DropTargetEvent event) {
        if (event.detail == DND.DROP_DEFAULT) {
          if ((event.operations & DND.DROP_COPY) != 0) {
            event.detail = DND.DROP_COPY;
          } else {
            event.detail = DND.DROP_NONE;
          }
        }
      }
    };
    DropTarget dropTarget = new DropTarget(txtDEC, DND.DROP_COPY
        | DND.DROP_DEFAULT);
    Transfer[] transfers = new Transfer[] { FileTransfer.getInstance() };

    dropTarget.setTransfer(transfers);
    dropTarget.addDropListener(dtl);

    dropTarget = new DropTarget(txtENC, DND.DROP_COPY
        | DND.DROP_DEFAULT);
    transfers = new Transfer[] { FileTransfer.getInstance() };

    dropTarget.setTransfer(transfers);
    dropTarget.addDropListener(dtl);
 

  }

  @Override
  public void setFocus() {

  }
 
  String digest(byte [] byteData, int digestType){
    String encData = "";
    try {
      switch (digestType) {
      case DIGEST_MD5:
        encData = DigestUtils.md5Hex(byteData);
        break;
      case DIGEST_SHA:
        encData = DigestUtils.shaHex(byteData);
        break;
      case DIGEST_SHA256:
        encData = DigestUtils.sha256Hex(byteData);
        break;
      case DIGEST_SHA384:
        encData = DigestUtils.sha384Hex(byteData);
        break;
      case DIGEST_SHA512:
        encData = DigestUtils.sha512Hex(byteData);
        break;
      }
    } catch (Exception e1) {
      e1.printStackTrace();
    }
    return encData;
  }

  String digest(InputStream is, int digestType){
    String encData = "";
    try {
      switch (digestType) {
      case DIGEST_MD5:
        encData = DigestUtils.md5Hex(is);
        break;
      case DIGEST_SHA:
        encData = DigestUtils.shaHex(is);
        break;
      case DIGEST_SHA256:
        encData = DigestUtils.sha256Hex(is);
        break;
      case DIGEST_SHA384:
        encData = DigestUtils.sha384Hex(is);
        break;
      case DIGEST_SHA512:
        encData = DigestUtils.sha512Hex(is);
        break;
      }
    } catch (Exception e1) {
      e1.printStackTrace();
    }
    return encData;
  }
 
 
}
TOP

Related Classes of devutilsplugin.views.DigestUtilView

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.