view src/remoteeditor/action/RemoteEditorAction.java @ 194:f3a608f17a39

(no commit message)
author one
date Wed, 31 Dec 2008 16:27:59 +0900
parents 54c438d246a4
children bea1625524fe
line wrap: on
line source

package remoteeditor.action;

import org.eclipse.jface.action.IAction;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.internal.editors.text.UntitledTextFileWizard;
import org.eclipse.ui.texteditor.ITextEditor;

import remoteeditor.editors.REPEditor;
import remoteeditor.editors.REPTextImpl2;

@SuppressWarnings("restriction")
public class RemoteEditorAction implements IWorkbenchWindowActionDelegate {
	
	private IDocument document;

	public RemoteEditorAction(){
		
	}

	public void dispose() {

	}

	public void init(IWorkbenchWindow window) {

	}

	public void run(IAction action) {
		System.out.println(action.getId());
		if(action.getId().equals("EclipseRemoteEditor.action1")){
			IWorkbench workbench = PlatformUI.getWorkbench();
			IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
			IWorkbenchPage workbenchPage = workbenchWindow.getActivePage();
			IEditorPart editorPart = workbenchPage.getActiveEditor();
			IEditorInput editorinput = editorPart.getEditorInput();
			Display display = workbench.getDisplay();
			
//			TextEditor 外部から IDocument を取得する方法
			ITextEditor editor = (ITextEditor) editorPart;
			document = editor.getDocumentProvider().getDocument(editorinput);
			REPEditor repEditor = new REPEditor(new REPTextImpl2(document, display), true);
			repEditor.start();

//			workbenchPage.closeEditor(editorPart, true);
//			try {
//				editorPart = workbenchPage.openEditor(editorinput, "remoteeditor.editors.RemoteEditor");
//			} catch (PartInitException e) {
//				e.printStackTrace();
//			}
			
		}else if(action.getId().equals("EclipseRemoteEditor.action2")){
			IWorkbench workbench = PlatformUI.getWorkbench();
		
			UntitledTextFileWizard wizard = new UntitledTextFileWizard();
			wizard.init(workbench, null);
			wizard.performFinish();
			
			IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
			IWorkbenchPage workbenchPage = workbenchWindow.getActivePage();
			IEditorPart editorPart = workbenchPage.getActiveEditor();
			IEditorInput editorinput = editorPart.getEditorInput();
			Display display = workbench.getDisplay();
			
			ITextEditor editor = (ITextEditor) editorPart;
			document = editor.getDocumentProvider().getDocument(editorinput);
			REPEditor repEditor = new REPEditor(new REPTextImpl2(document, display), false);
			repEditor.start();
			
//			workbenchPage.closeEditor(editorPart, true);
//			try {
//				editorPart = workbenchPage.openEditor(editorinput, "remoteeditor.editors.RemoteEditor");
//			} catch (PartInitException e) {
//				e.printStackTrace();
//			}
		}
		/*
		IWorkbench workbench = PlatformUI.getWorkbench();
		//Display display = workbench.getDisplay();
		IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
		IWorkbenchPage workbenchPage = workbenchWindow.getActivePage();
		IEditorPart editorPart = workbenchPage.getActiveEditor();
		
		//System.out.println(editorPart.getEditorInput().toString());
		IEditorInput editorinput = editorPart.getEditorInput();
		
		workbenchPage.closeEditor(editorPart, true);
		
		System.out.println("ActionID: " + action.getId());
		*/
		
		/*** 危険 ***/
//		IWorkspace workspace = ResourcesPlugin.getWorkspace();
//		IWorkspaceRoot root = workspace.getRoot();
//		IProject project = root.getProject("Pin");
//		//IProject[] project = root.getProjects();
//		IContainer container = project;
//		System.out.println(project.getFullPath().toOSString());
//		IFile file = container.getFile(new Path("hoge.txt"));
//		String string = "hugo";
//		InputStream is = new ByteArrayInputStream(string.getBytes());
//		try {
//			file.create(is, false, null);
//		} catch (CoreException e1) {
//			e1.printStackTrace();
//		}
//		if(!project.exists()) {
//			try {
//				System.out.println("afro");
//				project.create(null);
//			} catch (CoreException e) {
//				e.printStackTrace();
//			}
//		}
		
		//org.eclipse.ui.part.FileEditorInput();
		
		//File file = new File("/Users/j02054/Desktop/SessionManager/sessionmanager.sh");
		
		//System.out.println(editorinput.getName());
		
		//ComboSample1 combo = new ComboSample1(display);
		//combo.addText();
		//combo.open();
		
		//IWorkbenchPage page = workbenchWindow.getActivePage();
		//editorPart = IDE.openEditor(workbenchPage,null);
		/*
		try {
			editorPart = workbenchPage.openEditor(editorinput, "remoteeditor.editors.RemoteEditor");
			//editorPart = workbenchPage.openEditor(null, "remoteeditor.editors.RemoteEditor");
			System.out.println("test");
		} catch (PartInitException e) {
			e.printStackTrace();
		}*/

	}

	public void selectionChanged(IAction action, ISelection selection) {

	}

}