|
From: Matthias K <mat...@us...> - 2006-04-05 21:36:12
|
Update of /cvsroot/jcommander/plugins/org.jcommander.ui.compare/src/org/jcommander/compare In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24918/src/org/jcommander/compare Modified Files: ComparePlugin.java Log Message: Moved FileInput and the compare code to ComparePlugin Index: ComparePlugin.java =================================================================== RCS file: /cvsroot/jcommander/plugins/org.jcommander.ui.compare/src/org/jcommander/compare/ComparePlugin.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ComparePlugin.java 28 Mar 2006 13:54:49 -0000 1.1 --- ComparePlugin.java 5 Apr 2006 21:36:02 -0000 1.2 *************** *** 1,5 **** --- 1,8 ---- package org.jcommander.compare; + import java.io.IOException; import java.io.InputStream; + import java.io.OutputStream; + import java.lang.reflect.InvocationTargetException; import org.eclipse.swt.graphics.Image; *************** *** 10,17 **** --- 13,27 ---- import org.eclipse.ui.WorkbenchException; import org.eclipse.ui.plugin.*; + import org.eclipse.compare.CompareConfiguration; + import org.eclipse.compare.CompareEditorInput; + import org.eclipse.compare.CompareUI; + import org.eclipse.compare.IEditableContent; import org.eclipse.compare.IStreamContentAccessor; import org.eclipse.compare.ITypedElement; + import org.eclipse.compare.structuremergeviewer.DiffNode; + 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.resource.ImageDescriptor; import org.jcommander.ui.utils.EclipseBroker; *************** *** 36,40 **** * eclipse comparefunctions are able to use. */ ! private static class FileInput implements IStructureComparator, ITypedElement, IStreamContentAccessor { /** --- 46,51 ---- * eclipse comparefunctions are able to use. */ ! private static class FileInput implements IStructureComparator, ! ITypedElement, IStreamContentAccessor, IEditableContent { /** *************** *** 156,163 **** */ public String getType() { - // TODO Auto-generated method stub try { ! System.out.println((file.getType()==FileType.FOLDER)?FOLDER_TYPE:TEXT_TYPE); ! return (file.getType()==FileType.FOLDER)?FOLDER_TYPE:TEXT_TYPE; } catch (FileSystemException e) { // TODO Auto-generated catch block --- 167,181 ---- */ public String getType() { try { ! if (file.getType()==FileType.FOLDER) { ! System.out.println(FOLDER_TYPE); ! return FOLDER_TYPE; ! } else { ! String name=file.getName().getBaseName(); ! int dot=name.lastIndexOf('.'); ! return name.substring(dot+1); ! } ! //System.out.println((file.getType()==FileType.FOLDER)?FOLDER_TYPE:TEXT_TYPE); ! //return (file.getType()==FileType.FOLDER)?FOLDER_TYPE:TEXT_TYPE; } catch (FileSystemException e) { // TODO Auto-generated catch block *************** *** 171,175 **** */ public InputStream getContents() throws CoreException { - // TODO Auto-generated method stub try { if (file.getType()==FileType.FOLDER) return null; --- 189,192 ---- *************** *** 181,184 **** --- 198,268 ---- return null; } + + public boolean isEditable() { + // TODO Auto-generated method stub + return true; + } + + public void setContent(byte[] newContent) { + // TODO Auto-generated method stub + try { + System.out.println("setContent"); + String nC=new String(newContent); + System.out.println(nC); + OutputStream oStream=file.getContent().getOutputStream(); + oStream.write(nC.getBytes()); + oStream.close(); + } catch (FileSystemException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + public ITypedElement replace(ITypedElement dest, ITypedElement src) { + // TODO Implement! + // if ((dest==null)&&(src!=null)) { + // System.out.println("Add: "+((FileInput)src).file.getName().getURI()); + // } else if ((dest!=null)&&(src==null)) { + // System.out.println("Remove: "+((FileInput)src).file.getName().getURI()); + // } + System.out.println("replace"); + try{ + if (dest!=null) { + if (dest instanceof FileInput) { + FileInput fDest = (FileInput) dest; + if (src==null) { + fDest.file.delete(); + } else if (src instanceof FileInput) { + FileInput fSrc = (FileInput) src; + fDest.file.copyFrom(fSrc.file, null); + return fDest; + } else { + System.out.println("Error in FileInput.replace: Src no FileInput"); + } + } else { + System.out.println("Error in FileInput.replace: Dest no FileInput"); + } + } else if (src!=null) { + if (src instanceof FileInput) { + FileInput fSrc = (FileInput) src; + FileObject fDest=file.resolveFile(fSrc.file.getName().getBaseName()); + System.out.println("Copying to "+fDest.getName().getURI()); + fDest.copyFrom(fSrc.file,new AllFileSelector()); + return new FileInput(fDest,base); + } else { + System.out.println("Error in FileInput.replace: Src no FileInput"); + } + } else { + System.out.println("Error in FileInput.replace: Src and Dest null"); + } + } catch (FileSystemException e) { + // TODO: handle exception + e.printStackTrace(); + } + return null; + } *************** *** 228,239 **** public void compare(FileObject left, FileObject right){ try { IWorkbenchPage page = PlatformUI.getWorkbench().showPerspective(COMPARE_PERSPECTIVE_ID, EclipseBroker.getWorkbenchWindow()); ! System.out.println("Compare!!!"); ! } catch (WorkbenchException e) { ! // TODO Auto-generated catch block ! e.printStackTrace(); ! } ! System.out.println("ComparePlugin"); } } --- 312,377 ---- public void compare(FileObject left, FileObject right){ + try { IWorkbenchPage page = PlatformUI.getWorkbench().showPerspective(COMPARE_PERSPECTIVE_ID, EclipseBroker.getWorkbenchWindow()); ! } catch (WorkbenchException e) { ! // TODO Auto-generated catch block ! e.printStackTrace(); ! } ! ! CompareConfiguration cc = new CompareConfiguration() { ! ! /* (non-Javadoc) ! * @see org.eclipse.compare.CompareConfiguration#getRightLabel(java.lang.Object) ! */ ! @Override ! public String getRightLabel(Object element) { ! if (element!=null) { ! DiffNode diffNode = (DiffNode) element; ! if ((diffNode.getRight()!=null)&&(diffNode.getRight() instanceof FileInput)) { ! FileInput file = (FileInput) diffNode.getRight(); ! return file.file.getName().getURI(); ! } ! return super.getRightLabel(element); ! } ! else return super.getRightLabel(element); ! } ! ! /* (non-Javadoc) ! * @see org.eclipse.compare.CompareConfiguration#getLeftLabel(java.lang.Object) ! */ ! @Override ! public String getLeftLabel(Object element) { ! if (element!=null) { ! DiffNode diffNode = (DiffNode) element; ! if ((diffNode.getLeft()!=null)&&(diffNode.getLeft() instanceof FileInput)) { ! FileInput file = (FileInput) diffNode.getLeft(); ! return file.file.getName().getURI(); ! } ! return super.getLeftLabel(element); ! } ! else return super.getLeftLabel(element); ! } ! ! }; ! cc.setLeftEditable(true); ! cc.setRightEditable(true); ! final FileObject fLeftFile=left; ! final FileObject fRightFile=right; ! 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(fLeftFile), ! new FileInput(fRightFile)); ! //System.out.println("found diffs"); ! ! return fRoot; ! } ! }; ! CompareUI.openCompareEditor(input); } } |