/*******************************************************************************
* Copyright (c) 2013, 2014 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
* accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Matthew Khouzam - Initial API and implementation
*******************************************************************************/
package fr.inria.linuxtools.internal.tmf.ui.project.wizards.importtrace;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.dialogs.WizardResourceImportPage;
import fr.inria.linuxtools.tmf.core.TmfProjectNature;
import fr.inria.linuxtools.tmf.ui.project.model.TmfTraceFolder;
import fr.inria.linuxtools.tmf.ui.project.model.TmfTracesFolder;
/**
* The abstract import trace wizard page, the base for the import trace wizard
* pages.
*
* @author Matthew Khouzam
* @since 2.0
*/
abstract class AbstractImportTraceWizardPage extends WizardResourceImportPage {
/**
* Import String
*/
protected static final String BATCH_IMPORT_WIZARD_PAGE = "BatchImportWizardPage"; //$NON-NLS-1$
/**
* The trace folder, something like "/<project name>/Traces/"
*/
protected IFolder fTargetFolder;
/**
* The project "/<project name>"
*/
protected IProject fProject;
/**
* The batch import trace wizard (parent)
*/
private BatchImportTraceWizard fBatchImportTraceWizard;
/**
* @param name
* the name of the page
* @param selection
* The current selection
*/
protected AbstractImportTraceWizardPage(String name, IStructuredSelection selection) {
super(name, selection);
}
/**
* Constructor
*
* @param workbench
* The workbench reference.
* @param selection
* The current selection
*/
public AbstractImportTraceWizardPage(IWorkbench workbench, IStructuredSelection selection) {
this(BATCH_IMPORT_WIZARD_PAGE, selection);
setTitle(null);
setDescription(null);
// Locate the target trace folder
IFolder traceFolder = null;
Object element = selection.getFirstElement();
if (element instanceof TmfTraceFolder) {
TmfTraceFolder tmfTraceFolder = (TmfTraceFolder) element;
fProject = (tmfTraceFolder.getProject().getResource());
traceFolder = tmfTraceFolder.getResource();
} else if (element instanceof IProject) {
IProject project = (IProject) element;
try {
if (project.hasNature(TmfProjectNature.ID)) {
traceFolder = (IFolder) project.findMember(TmfTracesFolder.TRACES_FOLDER_NAME);
}
} catch (CoreException e) {
}
}
// Set the target trace folder
if (traceFolder != null) {
fTargetFolder = (traceFolder);
String path = traceFolder.getFullPath().toOSString();
setContainerFieldValue(path);
}
}
/**
* The Batch Import Wizard
*
* @return the Batch Import Wizard
*/
public BatchImportTraceWizard getBatchWizard() {
return fBatchImportTraceWizard;
}
@Override
public void createControl(Composite parent) {
Composite composite = new Composite(parent, SWT.NULL);
composite.setLayout(new GridLayout());
composite.setFont(parent.getFont());
// arbitrary size
final GridData layoutData = new GridData();
parent.getShell().setLayoutData(layoutData);
parent.getShell().redraw();
this.setControl(composite);
// arbitrary sizes
parent.getShell().setMinimumSize(new Point(525, 400));
fBatchImportTraceWizard = (BatchImportTraceWizard) getWizard();
}
// the following methods are stubbed out on purpose.
@Override
protected void createSourceGroup(Composite parent) {
// do nothing
}
@Override
protected ITreeContentProvider getFileProvider() {
// do nothing
return null;
}
@Override
protected ITreeContentProvider getFolderProvider() {
// do nothing
return null;
}
}