sysperfana/perfinvestigator/com.nokia.carbide.cpp.pi.button/src/com/nokia/carbide/cpp/internal/pi/button/ui/ExportBupMapWizard.java
author Matti Laitinen <matti.t.laitinen@nokia.com>
Thu, 11 Feb 2010 15:32:31 +0200
changeset 2 b9ab3b238396
permissions -rw-r--r--
Initial version of Performance Investigator under EPL

/*
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
 * which accompanies this distribution, and is available
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
 * Initial Contributors:
 * Nokia Corporation - initial contribution.
 *
 * Contributors:
 *
 * Description: 
 *
 */

package com.nokia.carbide.cpp.internal.pi.button.ui;

import java.util.ArrayList;

import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.ui.IExportWizard;
import org.eclipse.ui.IWorkbench;

import com.nokia.carbide.cpp.internal.pi.util.config.gen.PIConfig.ButtonEventProfileType;
import com.nokia.carbide.cpp.pi.button.BupEventMapManager;
import com.nokia.carbide.cpp.pi.button.IBupEventMap;
import com.nokia.carbide.cpp.pi.button.IBupEventMapProfile;
import com.nokia.carbide.cpp.pi.util.GeneralMessages;


public class ExportBupMapWizard extends Wizard implements IExportWizard {

	private ExportBupMapGetXmlTask exportPage;
	
	public ExportBupMapWizard() {
		setWindowTitle(Messages.getString("ExportBupMapWizard.0"));   //$NON-NLS-1$
	}
	
	/* (non-Javadoc)
	 * @see org.eclipse.jface.wizard.Wizard#addPages()
	 */
	public void addPages() {
		addPage(exportPage = new ExportBupMapGetXmlTask());
	}

	/* (non-Javadoc)
	 * @see org.eclipse.jface.wizard.Wizard#performFinish()
	 */
	@Override
	public boolean performFinish() {
		ArrayList<IBupEventMapProfile> workspacePrefProfiles = BupEventMapManager.getInstance().getProfilesFromWorkspacePref();
		if (workspacePrefProfiles.size() <= 0) {
			GeneralMessages.showErrorMessage(Messages.getString("ExportBupMapWizard.1"));   //$NON-NLS-1$
			return false;
		}

		java.io.File file = new java.io.File(exportPage.getExportXml());
		ArrayList<ButtonEventProfileType> profileList = new ArrayList<ButtonEventProfileType>();
		for (IBupEventMapProfile profile : workspacePrefProfiles) {
			IBupEventMap map = BupEventMapManager.getInstance().captureMap(profile);
			profileList.add(map.toEmfModel());
			BupEventMapManager.getInstance().releaseMap(map);
		}
		BupEventMapManager.getInstance().saveMap(file.toURI(), profileList);	

		return true;
	}

	/* (non-Javadoc)
	 * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
	 */
	public void init(IWorkbench arg0, IStructuredSelection arg1) {
	}
}