|
From: Matthias K <mat...@us...> - 2006-03-25 12:14:38
|
Update of /cvsroot/jcommander/incubator/matthias_kue/difftest/src/org/jcommander/ui/filepanel/actions In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3787/matthias_kue/difftest/src/org/jcommander/ui/filepanel/actions Added Files: CompareAction.java Log Message: Compare tests --- NEW FILE: CompareAction.java --- /** * */ package org.jcommander.ui.filepanel.actions; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.InputStream; import java.lang.reflect.InvocationTargetException; import org.eclipse.compare.*; import org.eclipse.compare.structuremergeviewer.Differencer; import org.eclipse.compare.structuremergeviewer.IStructureComparator; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jface.action.IAction; import org.eclipse.jface.viewers.ISelection; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.ImageData; import org.eclipse.swt.program.Program; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.IWorkbenchWindowActionDelegate; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.WorkbenchException; import org.jcommander.compare.ComparePlugin; import org.jcommander.compare.perspective.ComparePerspectiveFactory; import org.jcommander.ui.utils.EclipseBroker; import org.jcommander.ui.utils.ImageBroker; /** * @author MatthiasK * */ public class CompareAction implements IWorkbenchWindowActionDelegate { /* (non-Javadoc) * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#dispose() */ public void dispose() { // TODO Auto-generated method stub } private static class FileInput implements IStructureComparator, ITypedElement, IStreamContentAccessor { private File file; /** * */ public String base; //protected static final ImageRegistry imgRegistry = new ImageRegistry(); public boolean equals(Object other) { if (other instanceof ITypedElement) return getName().equals(((ITypedElement) other).getName()); return super.equals(other); } public int hashCode() { return getName().hashCode(); } public FileInput(File file, String base) { // TODO Auto-generated constructor stub System.out.println(file.getName()); this.file=file; this.base=base; } /* (non-Javadoc) * @see org.eclipse.compare.structuremergeviewer.IStructureComparator#getChildren() */ public Object[] getChildren() { //System.out.println("getchildren"); if (file.listFiles()==null) { //System.out.println("Keine Kinder"); return null; } //System.out.println("Kinder->"); //ArrayList list = new ArrayList(); Object[] children= new Object[file.listFiles().length]; File[] filelist = file.listFiles(); for (int i = 0; i < filelist.length; i++) { //list.add(new FileInput(filelist[i])); children[i]=new FileInput(filelist[i],base); } return children;//list.toArray(); } /* (non-Javadoc) * @see org.eclipse.compare.ITypedElement#getName() */ public String getName() { //return file.getAbsolutePath().substring(base.length()); return file.getName(); } public Image getIconFromProgram(Program program) { Image image;// = (Image) imgRegistry.get(program.getName()); //if (image == null) { ImageData imageData = program.getImageData(); if (imageData != null) { image = new Image(null, imageData, imageData.getTransparencyMask()); //imgRegistry.put(program.getName(), image); } else { image = ImageBroker.FILE_ICON; } //} return image; } /* (non-Javadoc) * @see org.eclipse.compare.ITypedElement#getImage() */ public Image getImage() { Image iconImage = null; if (file.isDirectory()) return ImageBroker.FOLDER_ICON; int dot = file.getName().lastIndexOf('.'); if (dot != -1) { String extension = file.getName().substring(dot); Program program = Program.findProgram(extension); if (program != null) { //typeString = program.getName(); //typeString = extension.toUpperCase(); iconImage = getIconFromProgram(program); } else { iconImage = ImageBroker.FILE_ICON; } } else { iconImage = ImageBroker.FILE_ICON; } return iconImage; } /* (non-Javadoc) * @see org.eclipse.compare.ITypedElement#getType() */ public String getType() { // TODO Auto-generated method stub System.out.println((file.isDirectory())?FOLDER_TYPE:TEXT_TYPE); return (file.isDirectory())?FOLDER_TYPE:TEXT_TYPE; } /* (non-Javadoc) * @see org.eclipse.compare.IStreamContentAccessor#getContents() */ public InputStream getContents() throws CoreException { // TODO Auto-generated method stub if (file.isDirectory()) return null; try { return new FileInputStream(file); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } } /* (non-Javadoc) * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#init(org.eclipse.ui.IWorkbenchWindow) */ public void init(IWorkbenchWindow window) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction) */ public void run(IAction action) { // TODO Auto-generated method stub System.out.println("ddd"); // ComparePlugin c=ComparePlugin.getDefault(); // // try { // IWorkbenchPage page = PlatformUI.getWorkbench().showPerspective(ComparePlugin.COMPARE_PERSPECTIVE_ID, EclipseBroker.getWorkbenchWindow()); // } catch (WorkbenchException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // // Shell shell = new Shell(); // CompareConfiguration cc = new CompareConfiguration(); // CompareEditorInput input = new CompareEditorInput(cc) { // protected Object prepareInput(IProgressMonitor monitor) throws // InvocationTargetException, InterruptedException { // Object fRoot; // Differencer d = new Differencer(); // System.out.println("Finding diffs"); // fRoot = d.findDifferences(false,monitor,null,null, // new FileInput(new File("D:\\Matthias\\Comp\\d1"),"D:\\Matthias\\Comp\\d1"), // new FileInput(new File("D:\\Matthias\\Comp\\d2"),"D:\\Matthias\\Comp\\d2")); // //r1, // //r2); // System.out.println("found diffs"); // // return fRoot; // /*return new DiffNode( // new ByteInput("left", // //"these\nare\nthe\ncontents"), // "c:\\Programm"), // new ByteInput("right", // //"theasdse\nare\nthe\ncontednts")); // "c:\\Programme"));*/ // } // }; // CompareUI.openCompareEditor(input); // /*TextEditor t = new TextEditor(); // try { // window.getActivePage().openEditor(null,"test"); // } catch (WorkbenchException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // }*/ // // //CompareUI.openCompareEditor(input) // ComparePlugin.getDefault().compare(null, null); } /* (non-Javadoc) * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection) */ public void selectionChanged(IAction action, ISelection selection) { // TODO Auto-generated method stub } } |