Mercurial > hg > RemoteEditor > Eclipse
view src/remoteeditor/action/RemoteEditorAction.java @ 213:bea1625524fe default tip
when you put and join to SessionManager, this plugin open a window for inputting address and port of SessionManager
author | kazz |
---|---|
date | Mon, 20 Dec 2010 14:14:41 +0900 |
parents | f3a608f17a39 |
children |
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.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; 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; private Shell shell; private Text hostname; private Text port; private IAction action; public RemoteEditorAction(){ Display display = Display.getDefault(); this.shell = new Shell(display); this.shell.setText("Connection To SessionManager"); this.shell.setLayout(new FillLayout()); this.hostname = new Text(shell, SWT.SINGLE|SWT.BORDER); hostname.setText("localhost"); this.port = new Text(shell, SWT.SINGLE|SWT.BORDER); port.setText("8766"); Button button = new Button(shell, SWT.NULL); button.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { connect(); shell.dispose(); } }); button.setText("connect"); } public void dispose() { } public void init(IWorkbenchWindow window) { } public void connect() { 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, hostname.getText(), new Integer(port.getText())); repEditor.start(); }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(); } } public void run(IAction action) { System.out.println(action.getId()); this.action = action; shell.pack(); shell.open(); /* 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) { } }