use of org.eclipse.ui.part.FileEditorInput in project gemoc-studio by eclipse.
the class GexpressionsEditor method doSaveAs.
/**
* This also changes the editor's input.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public void doSaveAs() {
SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell());
saveAsDialog.open();
IPath path = saveAsDialog.getResult();
if (path != null) {
IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
if (file != null) {
doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file));
}
}
}
use of org.eclipse.ui.part.FileEditorInput in project titan.EclipsePlug-ins by eclipse.
the class OpenDeclaration method selectAndRevealDeclaration.
/**
* Opens an editor for the provided declaration, and in this editor the
* location of the declaration is revealed and selected.
*
* @param declaration
* the declaration to reveal
*/
private void selectAndRevealDeclaration(final Location location) {
IEditorDescriptor desc = PlatformUI.getWorkbench().getEditorRegistry().getDefaultEditor(location.getFile().getName());
if (desc == null) {
targetEditor.getEditorSite().getActionBars().getStatusLineManager().setErrorMessage(TTCNPPEDITORNOTFOUND);
return;
}
try {
IWorkbenchPage page = targetEditor.getSite().getPage();
IEditorPart editorPart = page.openEditor(new FileEditorInput((IFile) location.getFile()), desc.getId());
if (editorPart != null && (editorPart instanceof AbstractTextEditor)) {
((AbstractTextEditor) editorPart).selectAndReveal(location.getOffset(), location.getEndOffset() - location.getOffset());
}
} catch (PartInitException e) {
ErrorReporter.logExceptionStackTrace(e);
}
}
use of org.eclipse.ui.part.FileEditorInput in project mdw-designer by CenturyLinkCloud.
the class ArtifactEditor method openTempFile.
public void openTempFile(IProgressMonitor monitor) {
tempFileEditor = null;
try {
IFolder folder = getTempFolder();
if (!folder.exists())
PluginUtil.createFoldersAsNeeded(getElement().getProject().getSourceProject(), folder, monitor);
final IFile file = getTempFile(folder);
final IWorkbenchPage activePage = MdwPlugin.getActivePage();
if (file.exists()) {
IEditorInput editorInput = new FileEditorInput(file);
tempFileEditor = activePage.findEditor(editorInput);
if (tempFileEditor == null) {
// we'll refresh from attribute value
new TempFileRemover(folder, file).remove(monitor);
} else {
// activate existing editor
tempFileEditor = IDE.openEditor(activePage, file, true);
}
}
if (tempFileEditor == null) {
// either the file didn't exist or it was not currently open,
// set from value
byte[] value = valueProvider.getArtifactContent();
if (value == null)
value = "".getBytes();
InputStream source = new ByteArrayInputStream(value);
file.create(source, true, monitor);
if (getElement().isReadOnly()) {
ResourceAttributes resourceAttrs = file.getResourceAttributes();
resourceAttrs.setReadOnly(true);
file.setResourceAttributes(resourceAttrs);
}
final Display display = Display.getCurrent();
if (display != null) {
display.syncExec(new Runnable() {
public void run() {
try {
if (!valueProvider.beforeTempFileOpened())
return;
tempFileEditor = IDE.openEditor(activePage, file, true);
if (tempFileEditor != null) {
// listen for artifact made dirty and
// propagate to process canvas
tempFileEditor.addPropertyListener(new IPropertyListener() {
public void propertyChanged(Object source, int propId) {
if (source instanceof EditorPart && propId == IWorkbenchPartConstants.PROP_DIRTY) {
if (((EditorPart) source).isDirty())
// process
fireValueChanged(null, true);
// editor
// should
// show
// dirty
}
}
});
// listen for artifact resource changes
ArtifactResourceListener resourceListener = new ArtifactResourceListener(getElement(), valueProvider, file);
getProject().addArtifactResourceListener(resourceListener);
// listen for workbench closed to prevent
// re-opening editor when the workbench is
// next opened
PlatformUI.getWorkbench().addWorkbenchListener(new ArtifactEditorWorkbenchListener(tempFileEditor));
}
valueProvider.afterTempFileOpened(tempFileEditor);
} catch (PartInitException ex) {
PluginMessages.log(ex);
}
}
});
}
// register to listen to process editor events
WorkflowProcess processVersion = null;
if (getElement() instanceof Activity)
processVersion = ((Activity) getElement()).getProcess();
else if (getElement() instanceof WorkflowProcess)
processVersion = (WorkflowProcess) getElement();
if (processVersion != null) {
IEditorPart processEditor = activePage.findEditor(processVersion);
if (processEditor != null && tempFileEditor != null)
((ProcessEditor) processEditor).addActiveScriptEditor(tempFileEditor);
}
}
} catch (Exception ex) {
PluginMessages.uiError(ex, "Open Temp File", getElement().getProject());
}
}
use of org.eclipse.ui.part.FileEditorInput in project mdw-designer by CenturyLinkCloud.
the class WorkflowAsset method openFile.
public void openFile(IProgressMonitor monitor) {
if (!isRawEdit()) {
openTempFile(monitor);
return;
}
assetFileEditor = null;
try {
final IFile file = getAssetFile();
file.refreshLocal(0, monitor);
boolean readOnly = getProject().isReadOnly() || !isUserAuthorized(UserRoleVO.ASSET_DESIGN);
PluginUtil.setReadOnly(file, readOnly);
final IWorkbenchPage activePage = MdwPlugin.getActivePage();
IEditorInput editorInput = new FileEditorInput(file);
assetFileEditor = activePage.findEditor(editorInput);
if (assetFileEditor != null) {
// activate
assetFileEditor = IDE.openEditor(activePage, file, true);
// existing
// editor
} else {
load();
final Display display = Display.getCurrent();
if (display != null) {
display.syncExec(new Runnable() {
public void run() {
try {
final IWorkbenchPage activePage = MdwPlugin.getActivePage();
beforeFileOpened();
if (isForceExternalEditor()) {
activePage.openEditor(new FileEditorInput(file), IEditorRegistry.SYSTEM_EXTERNAL_EDITOR_ID, true);
} else {
assetFileEditor = IDE.openEditor(activePage, file, true);
}
afterFileOpened(assetFileEditor);
} catch (PartInitException ex) {
PluginMessages.log(ex);
}
}
});
}
}
} catch (Exception ex) {
PluginMessages.uiError(ex, "Open Asset File", getProject());
}
}
use of org.eclipse.ui.part.FileEditorInput in project mdw-designer by CenturyLinkCloud.
the class WorkflowAsset method openTempFile.
@SuppressWarnings("restriction")
public void openTempFile(IProgressMonitor monitor) {
assetFileEditor = null;
try {
IFolder folder = getTempFolder();
folder.refreshLocal(IResource.DEPTH_INFINITE, monitor);
if (!folder.exists())
PluginUtil.createFoldersAsNeeded(getProject().getSourceProject(), folder, monitor);
final IFile file = getTempFile(folder);
final IWorkbenchPage activePage = MdwPlugin.getActivePage();
boolean externalEditorAlreadyOpen = false;
if (file.exists()) {
IEditorInput editorInput = new FileEditorInput(file);
assetFileEditor = activePage.findEditor(editorInput);
if (assetFileEditor == null) {
// we'll refresh from saved value
WorkflowAssetFactory.deRegisterWorkbenchListener(file);
try {
new TempFileRemover(folder, file).remove(monitor);
} catch (org.eclipse.core.internal.resources.ResourceException ex) {
if (isForceExternalEditor()) {
// assume this is because the temp file is already
// open in an external editor; reactivate
PluginMessages.log(ex);
externalEditorAlreadyOpen = true;
activePage.openEditor(new FileEditorInput(file), IEditorRegistry.SYSTEM_EXTERNAL_EDITOR_ID, true);
} else {
throw ex;
}
}
} else {
// activate existing editor
assetFileEditor = IDE.openEditor(activePage, file, true);
}
}
if (assetFileEditor == null) {
// set from value
if (!externalEditorAlreadyOpen)
createTempFile(file, monitor);
final Display display = Display.getCurrent();
if (display != null) {
display.syncExec(new Runnable() {
public void run() {
try {
beforeFileOpened();
if (isForceExternalEditor())
activePage.openEditor(new FileEditorInput(file), IEditorRegistry.SYSTEM_EXTERNAL_EDITOR_ID, true);
else
assetFileEditor = IDE.openEditor(activePage, file, true);
if (assetFileEditor != null) {
assetFileEditor.addPropertyListener(new AssetEditorPropertyListener(assetFileEditor));
WorkflowAssetFactory.registerWorkbenchListener(file, new AssetWorkbenchListener(assetFileEditor));
}
afterFileOpened(assetFileEditor);
} catch (PartInitException ex) {
PluginMessages.log(ex);
}
}
});
}
}
} catch (Exception ex) {
PluginMessages.uiError(ex, "Open Temp File", getProject());
}
}
Aggregations