// buttonPane.setColor.red);< /font>
GridBagConstraints gbc_buttonPane = new GridBagConstraints();
gbc_buttonPane.fill = GridBagConstraints.HORIZONTAL;
gbc_buttonPane.insets = new Insets(0, 0, 5, 5);
gbc_buttonPane.gridx = 2;
gbc_buttonPane.gridy = 2;
mainPane.add(buttonPane, gbc_buttonPane);
createmd5Button = new JButton("create md5");
checkmd5Btn = new JButton("check");
checkmd5Btn.setEnabled(false);
buttonPane.add(createmd5Button);
buttonPane.add(checkmd5Btn);
createmd5Button.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
if (!validate3(true))
{
return;
}
sourceFileTF.setEditable(false);
new Thread(new Runnable()
{
@Override
public void run()
{
createmd5Button.setEnabled(false);
size_of_file = srcfile.length();
result = SystemUtil.getFileMD5(srcfile);
checkmd5Btn.setEnabled(true);
createmd5Button.setEnabled(true);
}
}).start();
}
});
checkmd5Btn.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
// if (!validate3(true))
// {
// return;
// }
long size_of_file2 = srcfile.length();
if (size_of_file2 != size_of_file)
{
System.out.println("by size");
GUIUtil23.errorDialog(MESG_DIFF);
return;
}
new Thread(new Runnable()
{
@Override
public void run()
{
checkmd5Btn.setEnabled(false);
String result2;
sourceFileTF.setEditable(true);
result2 = SystemUtil.getFileMD5(srcfile);
boolean isSame2=isSame(result2, result);
checkmd5Btn.setEnabled(true);
if (isSame2)
{
GUIUtil23.infoDialog(MESG_SAME);
}
else
{
GUIUtil23.errorDialog(MESG_DIFF);
}
}
}).start();
}
});
JLabel targetLabel = new JLabel("target file");
GridBagConstraints gbc_driveClassLabel = new GridBagConstraints();
gbc_driveClassLabel.anchor = GridBagConstraints.WEST;
gbc_driveClassLabel.insets = new Insets(0, 0, 5, 5);
gbc_driveClassLabel.gridx = 1;
gbc_driveClassLabel.gridy = 3;
mainPane.add(targetLabel, gbc_driveClassLabel);
targetFileTF = new JTextField();
if (!SystemUtil.isWindows)
{
targetFileTF.setText("/home/whuang2/bin/wh_dos2unix");
}
GridBagConstraints gbc_driveClassTF = new GridBagConstraints();
gbc_driveClassTF.insets = new Insets(0, 0, 5, 5);
gbc_driveClassTF.fill = GridBagConstraints.HORIZONTAL;
gbc_driveClassTF.gridx = 2;
gbc_driveClassTF.gridy = 3;
mainPane.add(targetFileTF, gbc_driveClassTF);
targetFileTF.setColumns(10);
browserTargetBtn = new JButton("browser target");
GridBagConstraints gbc_browserTargetBtn = new GridBagConstraints();
gbc_browserTargetBtn.fill = GridBagConstraints.EAST;
gbc_browserTargetBtn.insets = new Insets(0, 0, 5, 5);
gbc_browserTargetBtn.gridx = 3;
gbc_browserTargetBtn.gridy = 3;
mainPane.add(browserTargetBtn, gbc_browserTargetBtn);
browserTargetBtn.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
// System.out.println("target");
DialogUtil.browser3(targetFileTF,
JFileChooser.FILES_AND_DIRECTORIES, CheckSameApp.this);
}
});
compareBtn = new JButton("compare");
GridBagConstraints gbc_runBtn = new GridBagConstraints();
gbc_runBtn.fill = GridBagConstraints.EAST;
gbc_runBtn.insets = new Insets(0, 0, 5, 5);
gbc_runBtn.gridx = 4;
gbc_runBtn.gridy = 3;
mainPane.add(compareBtn, gbc_runBtn);
compareBtn.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
if (!validate3(false))
{
return;
}
long size_of_targfile = targfile.length();
long size_of_srcfile = srcfile.length();
if (size_of_targfile != size_of_srcfile)
{
System.out.println("by size");
GUIUtil23.errorDialog(MESG_DIFF);
return;
}
new Thread(new Runnable()
{
@Override
public void run()
{
compareBtn.setEnabled(false);
String result_source = SystemUtil.getFileMD5(srcfile);
String result_target;
result_target = SystemUtil.getFileMD5(targfile);
boolean isSame2=isSame(result_source, result_target);
compareBtn.setEnabled(true);
if (isSame2)
{
GUIUtil23.infoDialog(MESG_SAME);
}
else
{
GUIUtil23.errorDialog(MESG_DIFF);
}
}
}).start();
}
});
c.add(mainPane, BorderLayout.CENTER);
// System.out.println(c.getLayout());
//new JScrollPane(text)
}
// private String create_md5(String filePath)
// {
// try
// {
// return create_md5(filePath, null);
// }
// catch (IOException e)
// {
// e.printStackTrace();
// }
// return null;
// }
/***
*
* @param result_source : such as b79898bb7907648871745cd5422c79ce /home/whuang2/bin/ab.txt
* @param result_target
* @return
*/
private boolean isSame(String result_source, String result_target)
{
if (result_source == null || result_target == null)
{
return false;
}
return (result_source.split("[ \t]")[0].equals(result_target
.split("[ \t]")[0]));
}
// private String create_md5(String filePath, JButton button)
// throws IOException
// {
// // String sourceFile=sourceFileTF.getText();
// //
// if (!new File(filePath).exists())
// {
// System.out.println("does not exist");
// return null;
// }
// String result2 = null;
// String[] commands = null;
// if (SystemUtil.isWindows)
// {
// String md5deepPath = null;
// if (SystemUtil.isOS32bit)
// {
// md5deepPath = "win32\\md5deep.exe";
// }
// else
// {
// md5deepPath = "win64\\md5deep64.exe";
// }
//
// commands = new String[]
// { System.getProperty("user.dir") + "\\md5deep\\" + md5deepPath,
// "-b", filePath };
// }
// else
// {
// commands = new String[]
// { "md5sum", filePath };
// }
// ProcessBuilder pb = new ProcessBuilder(commands);
// // if (directory != null)
// // {
// // pb.directory(directory);
// // }
// // Map env = pb.environment();
// // env.put("$HOME", "/home/whuang2");
// MyProcess proc = null;
// try
// {
// proc = new MyProcess(pb.start());
// final CheckSameSwingWorker worker = new CheckSameSwingWorker(proc);
// worker.execute();
//
// proc.waitFor();
// if (button != null)
// {
// button.setEnabled(true);
// }
// result2 = worker.getStringbuf().toString();
// // System.out.println("before exitValue");
// // System.out.println("exit code:" + proc.exitValue());
// // System.out.println("result:" + result);
// // System.out.println("after exitValue");
// // return result2;
// }
// catch (InterruptedException e1)
// {
// e1.printStackTrace();
// }
// catch (IOException e2)
// {
// e2.printStackTrace();
// }
// return result2;
// }
private boolean validate3(boolean isSelf)
{
String sourceFile = sourceFileTF.getText();
String targetFile_dir = targetFileTF.getText();
if (sourceFile == null || sourceFile.equals(""))
{
GUIUtil23
.warningDialog("source file can not be empty,please select again !");
sourceFileTF.requestFocus();//focus
return false;
}
if (!isSelf)
{
if (targetFile_dir == null || targetFile_dir.equals(""))
{
GUIUtil23
.warningDialog("target file can not be empty,please select again !");
targetFileTF.requestFocus();//focus
return false;
}
}
// System.out.println("source file:" + sourceFile);
// System.out.println("target file:" + targetFile_dir);
srcfile = new File(sourceFile);
if (!srcfile.exists())
{
GUIUtil23
.warningDialog("source file does not exist,please select again!");
sourceFileTF.requestFocus();//focus
sourceFileTF.selectAll();
return false;
}
if (srcfile.exists() && srcfile.isDirectory())
{
GUIUtil23
.warningDialog("source file can not be directory,please select again!");
sourceFileTF.requestFocus();//focus
sourceFileTF.selectAll();
return false;
}
if (!isSelf)
{
{
targfile = new File(targetFile_dir);
if (!targfile.exists())
{
GUIUtil23
.warningDialog("target file does not exist,please select again!");
targetFileTF.requestFocus();//focus
targetFileTF.selectAll();
return false;
}
if (targfile.exists() && targfile.isDirectory())
{
GUIUtil23
.warningDialog("target file can not be directory,please select again!");
targetFileTF.requestFocus();//focus
targetFileTF.selectAll();
return false;
}
}
}
return true;
}
// public static void main2(String[] args)
// {
// String sourceFile = "/home/whuag2/workspace/io0007-find_progess/src/com/cmd/dos/hw/util/CMDUtil.java";
// md5(sourceFile);
// }
}