/**
* 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.syncing.ui.wizards;
import java.io.File;
import java.text.MessageFormat;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.ui.IExportWizard;
import org.eclipse.ui.IWorkbench;
import org.osgi.service.prefs.BackingStoreException;
import com.aptana.core.logging.IdeLog;
import com.aptana.core.util.EclipseUtil;
import com.aptana.ide.core.io.CoreIOPlugin;
import com.aptana.ide.syncing.ui.SyncingUIPlugin;
import com.aptana.ide.syncing.ui.preferences.IPreferenceConstants;
/**
* @author Michael Xia (mxia@appcelerator.com)
*/
public class ExportConnectionsWizard extends Wizard implements IExportWizard
{
private ExportConnectionsPage mainPage;
public void init(IWorkbench workbench, IStructuredSelection selection)
{
}
@Override
public void addPages()
{
addPage(mainPage = new ExportConnectionsPage());
}
@Override
public boolean performFinish()
{
IPath path = mainPage.getLocation();
boolean isOverwriting = mainPage.isOverwritingExistingFile();
// saves the preferences
IEclipsePreferences prefs = EclipseUtil.instanceScope().getNode(SyncingUIPlugin.PLUGIN_ID);
prefs.put(IPreferenceConstants.EXPORT_INITIAL_PATH, path.toOSString());
prefs.putBoolean(IPreferenceConstants.EXPORT_OVEWRITE_FILE_WITHOUT_WARNING, isOverwriting);
try
{
prefs.flush();
}
catch (BackingStoreException e)
{
IdeLog.logError(SyncingUIPlugin.getDefault(), Messages.ExportConnectionsWizard_ERR_FailSaveExportPrefs, e);
}
File file = path.toFile();
if (file.exists())
{
if (!isOverwriting)
{
if (!MessageDialog
.openConfirm(
getShell(),
Messages.ExportConnectionsWizard_Overwrite_Title,
MessageFormat.format(Messages.ExportConnectionsWizard_Overwrite_Message,
file.getAbsolutePath())))
{
return false;
}
}
if (!file.canWrite())
{
MessageDialog.openError(getShell(), Messages.ExportConnectionsWizard_Error_Title,
MessageFormat.format(Messages.ExportConnectionsWizard_Error_Message, file.getAbsolutePath()));
return false;
}
}
CoreIOPlugin.getConnectionPointManager().saveState(path);
return true;
}
}