/**
* Aptana Studio
* Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved.
* Licensed under the terms of the GNU Public License (GPL) v3 (with exceptions).
* Please see the license.html included with this distribution for details.
* Any modifications to this file must keep this entire header intact.
*/
package com.aptana.ide.syncing.ui.editors;
import java.text.MessageFormat;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import com.aptana.core.logging.IdeLog;
import com.aptana.ide.syncing.core.ISiteConnection;
import com.aptana.ide.syncing.ui.SyncingUIPlugin;
import com.aptana.ui.util.UIUtils;
/**
* @author Michael Xia (mxia@aptana.com)
*/
public class EditorUtils
{
/**
* Opens the connection editor on a specific site connection.
*
* @param site
* the connection
*/
public static void openConnectionEditor(final ISiteConnection site)
{
UIUtils.getDisplay().asyncExec(new Runnable()
{
public void run()
{
IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
if (window != null)
{
IWorkbenchPage page = window.getActivePage();
try
{
IEditorPart editorPart = page.openEditor(new ConnectionEditorInput(site), ConnectionEditor.ID);
if (editorPart instanceof ConnectionEditor)
{
// in case the site information has changed
((ConnectionEditor) editorPart).setSelectedSite(site);
}
}
catch (PartInitException e)
{
IdeLog.logError(SyncingUIPlugin.getDefault(),
MessageFormat.format(Messages.EditorUtils_FailedToOpenEditor, site.getName()), e);
}
}
}
});
}
/**
* Closes the connection editor corresponding to the specific site connection.
*
* @param site
* the connection
*/
public static void closeConnectionEditor(final ISiteConnection site)
{
UIUtils.getDisplay().asyncExec(new Runnable()
{
public void run()
{
IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
if (window != null)
{
IWorkbenchPage page = window.getActivePage();
IEditorPart editor = page.findEditor(new ConnectionEditorInput(site));
if (editor != null)
{
page.closeEditor(editor, false);
}
}
}
});
}
}