Open Atl Editor Through Line Code [message #77570] |
Wed, 26 March 2008 18:47 |
Eclipse User |
|
|
|
Originally posted by: narciso.martins.yahoo.com.br
Hello,
I couldn't find any topics about executing actions of Atl plugin through
java code. Could someone help me out?
I would like to open the Atl Editor on Eclipse throgh java code.
Best regards,
Narciso Martins
|
|
|
|
Re: Open Atl Editor Through Line Code [message #80006 is a reply to message #77676] |
Thu, 24 April 2008 17:44 |
Eclipse User |
|
|
|
Originally posted by: narciso.martins.yahoo.com.br
Actually, I want to open the ATL editor in a RCP application. I've added
the ATL plugins to my project but when I try to open the ATL editor I get
this error message:
org.eclipse.core.runtime.CoreException: Text editor does not have a
document provider (...)
Well, to open a text editor I use a class called OpenAction that calls the
text editor itself. So to open the class that you mentioned "AtlEditor" I
would have to have a class like the "OpenAction" one, right? So if it's
right, which class is that?
Thank you,
best regards!
Narciso Martins.
|
|
|
[ATL] Re: Open Atl Editor Through Line Code [message #80021 is a reply to message #77676] |
Thu, 24 April 2008 18:43 |
Eclipse User |
|
|
|
Originally posted by: narciso.martins.yahoo.com.br
Hey, it's me again!
The class that I talked about in the last message that I sent you is this
one:
I use this class to open text editors, XML editors and HTML editors.
package org.eclipse.ui.examples.rcp.texteditor.actions;
import java.io.File;
import java.text.MessageFormat;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.ui.IEditorDescriptor;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorRegistry;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.examples.rcp.texteditor.editors.PathEditorInp ut;
/**
* @since 3.0
*/
public class OpenFileAction extends Action implements
IWorkbenchWindowActionDelegate {
private IWorkbenchWindow fWindow;
public OpenFileAction() {
setEnabled(true);
}
/*
* @see org.eclipse.ui.IWorkbenchWindowActionDelegate#dispose()
*/
public void dispose() {
fWindow= null;
}
/*
* @see
org.eclipse.ui.IWorkbenchWindowActionDelegate#init(org.eclip se.ui.IWorkbenchWindow)
*/
public void init(IWorkbenchWindow window) {
fWindow= window;
}
/*
* @see
org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action. IAction)
*/
public void run(IAction action) {
run();
}
/*
* @see
org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse. jface.action.IAction,
org.eclipse.jface.viewers.ISelection)
*/
public void selectionChanged(IAction action, ISelection selection) {
}
private File queryFile() {
FileDialog dialog= new FileDialog(fWindow.getShell(), SWT.OPEN);
dialog.setText("Open File"); //$NON-NLS-1$
String path= dialog.open();
if (path != null && path.length() > 0)
return new File(path);
return null;
}
/*
* @see org.eclipse.jface.action.Action#run()
*/
public void run() {
File file= queryFile();
if (file != null) {
IEditorInput input= createEditorInput(file);
String editorId= getEditorId(file);
IWorkbenchPage page= fWindow.getActivePage();
try {
page.openEditor(input, editorId);
} catch (PartInitException e) {
e.printStackTrace();
}
} else if (file != null) {
String msg = MessageFormat.format("File is null: {0}", new String[]
{file.getName()}); //$NON-NLS-1$
MessageDialog.openWarning(fWindow.getShell(), "Problem", msg);
//$NON-NLS-1$
}
}
private String getEditorId(File file) {
IWorkbench workbench= fWindow.getWorkbench();
IEditorRegistry editorRegistry= workbench.getEditorRegistry();
IEditorDescriptor descriptor=
editorRegistry.getDefaultEditor(file.getName());
if (descriptor != null)
return descriptor.getId();
return "org.eclipse.ui.examples.rcp.texteditor.editors.SimpleEditor ";
//$NON-NLS-1$
}
private IEditorInput createEditorInput(File file) {
IPath location= new Path(file.getAbsolutePath());
PathEditorInput input= new PathEditorInput(location);
return input;
}
}
Thank you again,
Best regards!
Narciso Martins.
|
|
|
Powered by
FUDForum. Page generated in 0.03420 seconds