/*******************************************************************************
* Copyright (c) 2009 the CHISEL group and contributors.
* 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:
* Del Myers - initial API and implementation
*******************************************************************************/
package ca.uvic.chisel.javasketch.persistence.internal;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import ca.uvic.chisel.javasketch.IProgramSketch;
import ca.uvic.chisel.javasketch.SketchPlugin;
import ca.uvic.chisel.javasketch.persistence.ui.internal.FiltersComposite;
import ca.uvic.chisel.javasketch.ui.IFilterContext;
/**
* @author Del Myers
*
*/
public class ReanalyzeWizardPage extends WizardPage implements IFilterContext {
private IProgramSketch sketch;
/**
* @param pageName
*/
protected ReanalyzeWizardPage(IProgramSketch sketch) {
super("Reanalyze Trace");
this.sketch = sketch;
setImageDescriptor(SketchPlugin.imageDescriptorFromPlugin("images/wizban/analyze.png"));
setTitle("Reanalyze Trace");
setDescription("Reanalyze a trace using different filter settings");
}
/* (non-Javadoc)
* @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
*/
private FiltersComposite filterControl;
private String[] inclusion;
private String[] exclusion;
private boolean isUsingProjectClassesOnly;
// private IProgramSketch referencedSketch;
@Override
public void createControl(Composite parent) {
parent.setLayout(new FillLayout());
this.filterControl = new FiltersComposite(parent);
updateFromSketch();
filterControl.setParentContext(this);
filterControl.setJavaContext(sketch.getFilterSettings().getJavaProjects());
filterControl.setLaunchType(sketch.getFilterSettings().getLaunchType());
setControl(filterControl);
}
/**
*
*/
private void updateFromSketch() {
this.inclusion = sketch.getFilterSettings().getInclusionFilters();
this.exclusion = sketch.getFilterSettings().getExclusionFilters();
this.isUsingProjectClassesOnly = sketch.getFilterSettings().isUsingProjectClassesOnly();
// this.referencedSketch = sketch.getFilterSettings().getReferencedFilterSketch();
filterControl.setInclusionFilters(inclusion);
filterControl.setExclusionFilters(exclusion);
// if (referencedSketch != null) {
// filterControl.setReferencedFilterSketch(referencedSketch);
// }
if (isUsingProjectClassesOnly) {
filterControl.setFilterShortcut(FiltersComposite.SHORTCUT_PROJECT_CLASSES);
// } else if (referencedSketch != null) {
// filterControl.setFilterShortcut(FiltersComposite.SHORTCUT_PREVIOUS_SKETCH);
} else {
filterControl.setFilterShortcut(FiltersComposite.SHORTCUT_NONE);
}
}
/* (non-Javadoc)
* @see ca.uvic.chisel.javasketch.persistence.ui.internal.IFilterContext#filterChanged(ca.uvic.chisel.javasketch.persistence.ui.internal.FiltersComposite)
*/
@Override
public void filterChanged() {
this.inclusion = filterControl.getInclusionFilters();
this.exclusion = filterControl.getExclusionFilters();
this.isUsingProjectClassesOnly = filterControl.isUsingProjectClassesOnly();
// this.referencedSketch = composite.getReferencedFilterSketch();
}
/* (non-Javadoc)
* @see org.eclipse.jface.wizard.WizardPage#isPageComplete()
*/
@Override
public boolean isPageComplete() {
return true;
}
/**
* @return
*/
public String[] getInclusionFilters() {
return inclusion;
}
/**
* @return the isUsingProjectClassesOnly
*/
public boolean isUsingProjectClassesOnly() {
return isUsingProjectClassesOnly;
}
/**
* @return
*/
public String[] getExlusionFilters() {
return exclusion;
}
/* (non-Javadoc)
* @see ca.uvic.chisel.javasketch.ui.IFilterContext#contextChanged(org.eclipse.jdt.core.IJavaProject[])
*/
@Override
public void contextChanged(IJavaProject[] newProjects) {
filterControl.setJavaContext(newProjects);
}
/**
* @return the referencedSketch
*/
// public IProgramSketch getReferencedSketch() {
// return referencedSketch;
// }
}