blob: dcd2da9868587525b602c84710512d538596523a [file] [log] [blame]
/**
* Copyright (c) 2009, 2011 Mia-Software.
* 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:
* Romain DERVAUX (Mia-Software) - initial API and implementation
* Fabien GIQUEL (Mia-Software) - initial API and implementation
*******************************************************************************/
package org.eclipse.gmt.modisco.java.actions.ui;
import java.io.File;
import java.util.Collection;
import java.util.LinkedHashSet;
import java.util.Map;
import java.util.Set;
import org.eclipse.gmt.modisco.java.JavaActivator;
import org.eclipse.gmt.modisco.java.Messages;
import org.eclipse.gmt.modisco.java.actions.DiscoveryParametersBean;
import org.eclipse.gmt.modisco.java.io.library.LibraryReaderOptions;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IPackageFragmentRoot;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.ui.JavaElementLabelProvider;
import org.eclipse.jface.viewers.CellLabelProvider;
import org.eclipse.jface.viewers.CheckStateChangedEvent;
import org.eclipse.jface.viewers.CheckboxTreeViewer;
import org.eclipse.jface.viewers.ColumnLabelProvider;
import org.eclipse.jface.viewers.ICheckStateListener;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.TreeViewerColumn;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerCell;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.TreeItem;
import org.eclipse.ui.PlatformUI;
/**
* The page of the Java Wizard.
* @deprecated the whole plug-in is replaced by "org.eclipse.modisco.java.discoverer" (without the "gmt" part)
*/
@Deprecated
public class JavaWizardFirstPage extends WizardPage {
private static final int COLUMN_USE_SOURCE_WIDTH = 120;
private static final int COLUMN_DEPENDENCY_SHORTNAME_WIDTH = 400;
private static final int COLUMN_DEPENDENCY_LONGNAME_WIDTH = 200;
private Button btnMemberAnalyseJavaFiles;
private Button btnFullAnalyseJavaFiles;
/**
* the tree to selected the dependencies to discover
*/
private CheckboxTreeViewer dependenciesTree;
/**
* The selected java project
*/
private IJavaProject javaProject;
/**
* The button which allows to discover attached sources of a library instead
* of the java model created by the jdt.
*/
private Button btnUseSource;
/**
* The button for incremental mode
*/
private Button btnIncrementalMode;
/**
* the label which shows the number of selected projects/libraries.
*/
private Label textNumberElementsSelected;
private Collection<Object> discoverableElements;
private DiscoveryParametersBean discoveryParameters;
/**
* the entry fields where the user indicate the types and packages to
* exclude/include during analysis
*/
private Text elementsToExcludeFilter;
private Text elementsToIncludeFilter;
private Button btnAnalyzeAllFilter;
private Button btnExcludeFilter;
private Button btnIncludeFilter;
public static final String PATH_WIZARD_IMAGE = "icons/ModelWizardBanner.png"; //$NON-NLS-1$
public JavaWizardFirstPage(final IJavaProject javaProject, final String pageName,
final Collection<Object> discoverableElements,
final DiscoveryParametersBean discoveryParameters) {
super(pageName);
setTitle(pageName);
setDescription(Messages.JavaWizardFirstPage_settingsLabel);
setImageDescriptor(JavaActivator.getImageDescriptor(JavaWizardFirstPage.PATH_WIZARD_IMAGE));
setJavaProject(javaProject);
setDiscoverableElements(discoverableElements);
setDiscoveryParameters(discoveryParameters);
}
/**
* The tree content provider for the Dependencies Tree.
*/
class MyTreeContentProvider implements ITreeContentProvider {
public Object[] getChildren(final Object element) {
Set<IPackageFragmentRoot> libraries = new LinkedHashSet<IPackageFragmentRoot>();
if (element instanceof IJavaProject) {
for (Object tmp : getDiscoverableElements()) {
if (tmp instanceof IPackageFragmentRoot) {
IPackageFragmentRoot lib = (IPackageFragmentRoot) tmp;
if (lib.getJavaProject().equals(element)) {
libraries.add(lib);
}
}
}
}
return libraries.toArray();
}
public Object getParent(final Object element) {
if (element instanceof IPackageFragmentRoot) {
return ((IPackageFragmentRoot) element).getJavaProject();
}
return null;
}
public boolean hasChildren(final Object element) {
if (element instanceof IJavaProject) {
return true;
}
return false;
}
public Object[] getElements(final Object inputElement) {
Set<IJavaProject> projects = new LinkedHashSet<IJavaProject>();
projects.add(getJavaProject());
for (Object element : getDiscoverableElements()) {
if (element instanceof IJavaProject) {
projects.add((IJavaProject) element);
}
}
return projects.toArray();
}
public void dispose() {
// Nothing
}
public void inputChanged(final Viewer viewer, final Object oldInput, final Object newInput) {
// Nothing
}
}
public void createControl(final Composite parent) {
Composite composite = new Composite(parent, SWT.NONE);
GridLayout formLayout = new GridLayout();
composite.setLayout(formLayout);
createDependenciesPanel(composite);
createIncrementalPanel(composite);
createJavaAnalysisLevelPanel(composite);
createJavaFilterPanel(composite);
// refreshDependenciesPanel();
refreshInformationLabel();
// refreshAnalysisLevelPanel();
validatePage();
setControl(composite);
}
private void createDependenciesPanel(final Composite composite) {
// //////////////////////////////
// the Dependencies Panel
// //////////////////////////////
Group dependencies = new Group(composite, SWT.NONE);
dependencies.setText(Messages.JavaWizardFirstPage_dependencies);
GridLayout layout = new GridLayout();
layout.numColumns = 2;
dependencies.setLayout(layout);
GridData gridData = new GridData();
gridData.grabExcessHorizontalSpace = true;
gridData.grabExcessVerticalSpace = true;
gridData.horizontalAlignment = SWT.FILL;
gridData.verticalAlignment = SWT.FILL;
dependencies.setLayoutData(gridData);
Label l = new Label(dependencies, SWT.NONE);
l.setText(Messages.JavaWizardFirstPage_selectProjects);
gridData = new GridData();
gridData.horizontalSpan = 2;
l.setLayoutData(gridData);
// //////////////////
// Dependencies Tree
// /////////////////
setDependenciesTree(new CheckboxTreeViewer(dependencies, SWT.BORDER | SWT.H_SCROLL
| SWT.V_SCROLL | SWT.SINGLE | SWT.FULL_SELECTION));
getDependenciesTree().addCheckStateListener(new ICheckStateListener() {
public void checkStateChanged(final CheckStateChangedEvent event) {
Object element = event.getElement();
if (JavaWizardFirstPage.this.getDiscoveryParameters().getElementsToDiscover()
.contains(element)) {
JavaWizardFirstPage.this.getDiscoveryParameters().removeElementToDiscover(
element);
} else {
JavaWizardFirstPage.this.getDiscoveryParameters().addElementToDiscover(element);
}
JavaWizardFirstPage.this.getDependenciesTree().update(event.getElement(), null);
refreshBtnUseSources();
refreshInformationLabel();
validatePage();
}
});
getDependenciesTree().getTree().setLinesVisible(false);
getDependenciesTree().getTree().setHeaderVisible(true);
TreeViewerColumn column1 = new TreeViewerColumn(getDependenciesTree(), SWT.NONE);
column1.getColumn().setWidth(JavaWizardFirstPage.COLUMN_DEPENDENCY_SHORTNAME_WIDTH);
column1.getColumn().setText(Messages.JavaWizardFirstPage_name);
column1.setLabelProvider(new JDTDelegateCellLabelProvider(true));
TreeViewerColumn column2 = new TreeViewerColumn(getDependenciesTree(), SWT.NONE);
column2.getColumn().setWidth(JavaWizardFirstPage.COLUMN_USE_SOURCE_WIDTH);
column2.getColumn().setText(Messages.JavaWizardFirstPage_useSources);
column2.getColumn().setAlignment(SWT.CENTER);
column2.setLabelProvider(new CellLabelProvider() {
@Override
public void update(final ViewerCell cell) {
if (cell.getElement() instanceof IPackageFragmentRoot
&& JavaWizardFirstPage.this.getDiscoveryParameters()
.getElementsToDiscover().contains(cell.getElement())) {
Map<String, Object> options = JavaWizardFirstPage.this.getDiscoveryParameters()
.getDiscoveryOptions(cell.getElement());
boolean useSources = Boolean.TRUE.equals(options
.get(LibraryReaderOptions.USE_SOURCES.toString()));
if (useSources) {
cell.setText(Messages.JavaWizardFirstPage_useSourceOn);
return;
}
}
cell.setText(""); //$NON-NLS-1$
}
});
TreeViewerColumn column3 = new TreeViewerColumn(getDependenciesTree(), SWT.NONE);
column3.getColumn().setWidth(JavaWizardFirstPage.COLUMN_DEPENDENCY_LONGNAME_WIDTH);
column3.getColumn().setText(Messages.JavaWizardFirstPage_Path);
column3.setLabelProvider(new JDTDelegateCellLabelProvider(false));
getDependenciesTree().addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(final SelectionChangedEvent e) {
refreshBtnUseSources();
}
});
gridData = new GridData();
gridData.grabExcessVerticalSpace = true;
gridData.grabExcessHorizontalSpace = true;
gridData.horizontalAlignment = SWT.FILL;
gridData.verticalAlignment = SWT.FILL;
gridData.horizontalSpan = 2;
getDependenciesTree().getTree().setLayoutData(gridData);
configureButtonSource(dependencies);
gridData = new GridData();
gridData.horizontalSpan = 2;
this.btnUseSource.setLayoutData(gridData);
getDependenciesTree().setContentProvider(new MyTreeContentProvider());
getDependenciesTree().setInput(new Object());
// check the elements which are already known to be discovered
for (TreeItem treeitem : getDependenciesTree().getTree().getItems()) {
recursiveCheckItem(treeitem);
}
// /////////////
Composite cLabels = new Composite(dependencies, SWT.NONE);
gridData = new GridData();
gridData.horizontalSpan = 2;
gridData.horizontalAlignment = SWT.FILL;
gridData.grabExcessHorizontalSpace = true;
cLabels.setLayoutData(gridData);
RowLayout rowLayout = new RowLayout();
rowLayout.wrap = false;
cLabels.setLayout(rowLayout);
// //
Label imageInformationNumberElementsSelected = new Label(cLabels, SWT.NONE);
imageInformationNumberElementsSelected.setImage(PlatformUI.getWorkbench().getSharedImages()
.getImage(org.eclipse.ui.ISharedImages.IMG_OBJS_INFO_TSK));
this.textNumberElementsSelected = new Label(cLabels, SWT.NONE);
}
private void configureButtonSource(final Group dependencies) {
// ////
this.btnUseSource = new Button(dependencies, SWT.CHECK);
this.btnUseSource.setText(Messages.JavaWizardFirstPage_useSources);
this.btnUseSource.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(final SelectionEvent e) {
if (JavaWizardFirstPage.this.getDependenciesTree().getTree().getSelection().length == 1) {
Object elt = JavaWizardFirstPage.this.getDependenciesTree().getTree()
.getSelection()[0].getData();
if (elt != null && elt instanceof IPackageFragmentRoot) {
Map<String, Object> options = JavaWizardFirstPage.this
.getDiscoveryParameters().getDiscoveryOptions(elt);
boolean useSource = Boolean.TRUE.equals(options
.get(LibraryReaderOptions.USE_SOURCES.toString()));
options.put(LibraryReaderOptions.USE_SOURCES.toString(), new Boolean(
!useSource));
JavaWizardFirstPage.this.getDependenciesTree().update(elt, null);
}
}
refreshBtnUseSources();
}
});
this.btnUseSource.setSelection(false);
this.btnUseSource.setEnabled(false);
}
private void createIncrementalPanel(final Composite composite) {
GridLayout layout;
GridData gridData;
// //////////////////////////////
// the Incremental mode
// //////////////////////////////
Group mode = new Group(composite, SWT.NONE);
mode.setText(Messages.JavaWizardFirstPage_mode);
layout = new GridLayout();
layout.numColumns = 2;
mode.setLayout(layout);
gridData = new GridData();
gridData.grabExcessHorizontalSpace = true;
gridData.horizontalAlignment = SWT.FILL;
gridData.verticalAlignment = SWT.FILL;
mode.setLayoutData(gridData);
// //// Incremental mode
setBtnIncrementalMode(new Button(mode, SWT.CHECK));
getBtnIncrementalMode().setText(Messages.JavaWizardFirstPage_useIncremental);
getBtnIncrementalMode().setSelection(getDiscoveryParameters().isIncrementalMode());
getBtnIncrementalMode().setEnabled(true);
gridData = new GridData();
gridData.horizontalSpan = 2;
getBtnIncrementalMode().setLayoutData(gridData);
getBtnIncrementalMode().addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(final SelectionEvent e) {
JavaWizardFirstPage.this.getDiscoveryParameters().setIncrementalMode(
JavaWizardFirstPage.this.getBtnIncrementalMode().getSelection());
}
});
}
private void createJavaAnalysisLevelPanel(final Composite composite) {
GridData gridData;
// //////////////////////////////
// the Java Analysis Level panel
// //////////////////////////////
Group analysisLevel = new Group(composite, SWT.NONE);
analysisLevel.setText(Messages.JavaWizardFirstPage_analysisLevel);
GridLayout myLayout = new GridLayout();
myLayout.numColumns = 1;
analysisLevel.setLayout(myLayout);
gridData = new GridData();
gridData.grabExcessHorizontalSpace = true;
gridData.horizontalAlignment = SWT.FILL;
gridData.verticalAlignment = SWT.FILL;
analysisLevel.setLayoutData(gridData);
SelectionListener listener = new SelectionAdapter() {
@Override
public void widgetSelected(final SelectionEvent e) {
JavaWizardFirstPage.this.getDiscoveryParameters().setFullJavaLevel(
JavaWizardFirstPage.this.getBtnFullAnalyseJavaFiles().getSelection());
}
};
setBtnFullAnalyseJavaFiles(new Button(analysisLevel, SWT.RADIO));
getBtnFullAnalyseJavaFiles().setText(Messages.JavaWizardFirstPage_fullAnalysis);
getBtnFullAnalyseJavaFiles().setLayoutData(new GridData());
getBtnFullAnalyseJavaFiles().setSelection(
JavaWizardFirstPage.this.getDiscoveryParameters().isFullJavaLevel());
getBtnFullAnalyseJavaFiles().addSelectionListener(listener);
this.btnMemberAnalyseJavaFiles = new Button(analysisLevel, SWT.RADIO);
this.btnMemberAnalyseJavaFiles.setText(Messages.JavaWizardFirstPage_limitedAnalysis);
this.btnMemberAnalyseJavaFiles.setLayoutData(new GridData());
this.btnMemberAnalyseJavaFiles.addSelectionListener(listener);
this.btnMemberAnalyseJavaFiles.setSelection(!JavaWizardFirstPage.this
.getDiscoveryParameters().isFullJavaLevel());
}
private void recursiveCheckItem(final TreeItem treeitem) {
if (getDiscoveryParameters().getElementsToDiscover().contains(treeitem.getData())) {
treeitem.setChecked(true);
// expanded the libraries of the selected java project
if (treeitem.getData() == getJavaProject()) {
treeitem.setExpanded(true);
}
getDependenciesTree().refresh(treeitem.getData());
}
for (TreeItem child : treeitem.getItems()) {
recursiveCheckItem(child);
}
}
private void createJavaFilterPanel(final Composite composite) {
GridData gridData;
// //////////////////////////////
// the Java Filter panel
// //////////////////////////////
Group filter = new Group(composite, SWT.NONE);
filter.setText(Messages.JavaWizardFirstPage_filter);
GridLayout myLayout = new GridLayout();
myLayout.numColumns = 1;
filter.setLayout(myLayout);
gridData = new GridData();
gridData.grabExcessHorizontalSpace = true;
gridData.horizontalAlignment = SWT.FILL;
gridData.verticalAlignment = SWT.FILL;
filter.setLayoutData(gridData);
ModifyListener fieldListener = new ModifyListener() {
public void modifyText(final ModifyEvent arg0) {
validatePage();
}
};
// the entry field to type the regex for packages and types to exclude
// from analysis
gridData = new GridData();
gridData.grabExcessHorizontalSpace = true;
gridData.horizontalAlignment = SWT.FILL;
SelectionAdapter buttonListener = new SelectionAdapter() {
@Override
public void widgetSelected(final SelectionEvent e) {
JavaWizardFirstPage.this.getElementsToExcludeFilter().setEnabled(
JavaWizardFirstPage.this.isButtonExcludeFilterSelected());
JavaWizardFirstPage.this.getElementsToIncludeFilter().setEnabled(
JavaWizardFirstPage.this.isButtonIncludeFilterSelected());
//validate the page
validatePage();
}
};
//Analyze All radio button
this.btnAnalyzeAllFilter = new Button(filter, SWT.RADIO);
this.btnAnalyzeAllFilter.setText(Messages.JavaWizardFirstPage_analyseAllElements0);
this.btnAnalyzeAllFilter.setLayoutData(new GridData());
this.btnAnalyzeAllFilter.addSelectionListener(buttonListener);
//Excluded elements radio button
this.btnExcludeFilter = new Button(filter, SWT.RADIO);
this.btnExcludeFilter.setText(Messages.JavaWizardFirstPage_excludedElements);
this.btnExcludeFilter.setLayoutData(new GridData());
this.btnExcludeFilter.addSelectionListener(buttonListener);
//Excluded elements text field
this.elementsToExcludeFilter = new Text(filter, SWT.SINGLE | SWT.BORDER);
this.elementsToExcludeFilter.setLayoutData(gridData);
this.elementsToExcludeFilter.addModifyListener(fieldListener);
//Included elements radio button
this.btnIncludeFilter = new Button(filter, SWT.RADIO);
this.btnIncludeFilter
.setText(Messages.JavaWizardFirstPage_JavaWizardFirstPage_includedElements);
this.btnIncludeFilter.setLayoutData(new GridData());
this.btnIncludeFilter.addSelectionListener(buttonListener);
//Included elements text field
this.elementsToIncludeFilter = new Text(filter, SWT.SINGLE | SWT.BORDER);
this.elementsToIncludeFilter.setLayoutData(gridData);
this.elementsToIncludeFilter.addModifyListener(fieldListener);
if (getDiscoveryParameters().getExcludedElementsRegEx() != null) {
this.btnExcludeFilter.setSelection(true);
this.btnIncludeFilter.setSelection(false);
this.btnAnalyzeAllFilter.setSelection(false);
getElementsToExcludeFilter().setEnabled(true);
getElementsToExcludeFilter().setText(
getDiscoveryParameters().getExcludedElementsRegEx());
getElementsToIncludeFilter().setEnabled(false);
} else if (getDiscoveryParameters().getIncludedElementsRegEx() != null) {
this.btnExcludeFilter.setSelection(false);
this.btnIncludeFilter.setSelection(true);
this.btnAnalyzeAllFilter.setSelection(false);
getElementsToIncludeFilter().setEnabled(true);
getElementsToIncludeFilter().setText(
getDiscoveryParameters().getIncludedElementsRegEx());
getElementsToExcludeFilter().setEnabled(false);
} else {
this.btnAnalyzeAllFilter.setSelection(true);
this.btnExcludeFilter.setSelection(false);
this.btnIncludeFilter.setSelection(false);
getElementsToIncludeFilter().setEnabled(false);
getElementsToExcludeFilter().setEnabled(false);
}
}
protected boolean isButtonExcludeFilterSelected() {
return this.btnExcludeFilter.getSelection();
}
protected boolean isButtonIncludeFilterSelected() {
return this.btnIncludeFilter.getSelection();
}
/**
* change the state of the "use attached sources"
*/
void refreshBtnUseSources() {
IStructuredSelection selection = (IStructuredSelection) getDependenciesTree()
.getSelection();
Object element = selection.getFirstElement();
if (element instanceof IPackageFragmentRoot) {
IPackageFragmentRoot lib = (IPackageFragmentRoot) element;
if (getDiscoveryParameters().getElementsToDiscover().contains(lib)) {
Map<String, Object> options = getDiscoveryParameters().getDiscoveryOptions(lib);
boolean useSources = Boolean.TRUE.equals(options
.get(LibraryReaderOptions.USE_SOURCES.toString()));
if (useSources) {
this.btnUseSource.setEnabled(true);
this.btnUseSource.setSelection(true);
return;
}
boolean hasSourceAttached = false;
try {
hasSourceAttached = (lib.getSourceAttachmentPath() != null);
} catch (JavaModelException e) {
// nothing
assert (true); // dummy code for "EmptyBlock"
}
this.btnUseSource.setSelection(false);
this.btnUseSource.setEnabled(hasSourceAttached);
return;
}
}
this.btnUseSource.setEnabled(false);
this.btnUseSource.setSelection(false);
}
/**
* validate the page
*/
void validatePage() {
// check that the selected java project is checked in the tree
for (TreeItem treeitem : getDependenciesTree().getTree().getItems()) {
if (treeitem.getData() == getJavaProject() && !treeitem.getChecked()) {
setErrorMessage(Messages.JavaWizardFirstPage_firstProjectSelection);
setPageComplete(false);
return;
}
}
// check the filter elements
if (isButtonExcludeFilterSelected()) {
//Excluded elements
String text = getElementsToExcludeFilter().getText().trim();
if (text.length() > 0) {
//save the entered regexp it in the bean
getDiscoveryParameters().setExcludedElementsRegEx(text);
getDiscoveryParameters().setIncludedElementsRegEx(null);
} else {
//error ! the button is selected but no text in the text field
setErrorMessage(Messages.JavaWizardFirstPage_regExpExcludedElementsNecessary0);
setPageComplete(false);
return;
}
} else if (isButtonIncludeFilterSelected()) {
//Included elements
String text = getElementsToIncludeFilter().getText().trim();
if (text.length() > 0) {
//save the entered regexp it in the bean
getDiscoveryParameters().setIncludedElementsRegEx(text);
getDiscoveryParameters().setExcludedElementsRegEx(null);
} else {
//error ! the button is selected but no text in the text field
setErrorMessage(Messages.JavaWizardFirstPage_regExpIncludedElementsNecessary0);
setPageComplete(false);
return;
}
} else {
getDiscoveryParameters().setIncludedElementsRegEx(null);
getDiscoveryParameters().setExcludedElementsRegEx(null);
}
// no problems encountered
setErrorMessage(null);
setMessage(null);
setPageComplete(true);
}
/**
* Refresh the label on the number of elements checked
*/
void refreshInformationLabel() {
int nbProjectsSelected = 0;
int nbLibrariesSelected = 0;
// we count the checked elements in the tree
// if the user wants to discover dependencies
for (Object element : getDependenciesTree().getCheckedElements()) {
if (element instanceof IJavaProject) {
nbProjectsSelected++;
} else if (element instanceof IPackageFragmentRoot) {
nbLibrariesSelected++;
}
}
StringBuilder sb = new StringBuilder();
sb.append(nbProjectsSelected);
if (nbProjectsSelected > 1) {
sb.append(Messages.JavaWizardFirstPage_projects);
} else {
sb.append(Messages.JavaWizardFirstPage_project);
}
sb.append(Messages.JavaWizardFirstPage_and);
sb.append(nbLibrariesSelected);
if (nbLibrariesSelected > 1) {
sb.append(Messages.JavaWizardFirstPage_libraries);
} else {
sb.append(Messages.JavaWizardFirstPage_library);
}
sb.append(Messages.JavaWizardFirstPage_selected);
this.textNumberElementsSelected.setText(sb.toString());
this.textNumberElementsSelected.pack(true);
}
public void setDiscoverableElements(final Collection<Object> discoverableElements) {
this.discoverableElements = discoverableElements;
}
public Collection<Object> getDiscoverableElements() {
return this.discoverableElements;
}
public void setJavaProject(final IJavaProject javaProject) {
this.javaProject = javaProject;
}
public IJavaProject getJavaProject() {
return this.javaProject;
}
public void setDiscoveryParameters(final DiscoveryParametersBean discoveryParameters) {
this.discoveryParameters = discoveryParameters;
}
public DiscoveryParametersBean getDiscoveryParameters() {
return this.discoveryParameters;
}
public void setDependenciesTree(final CheckboxTreeViewer dependenciesTree) {
this.dependenciesTree = dependenciesTree;
}
public CheckboxTreeViewer getDependenciesTree() {
return this.dependenciesTree;
}
public void setBtnIncrementalMode(final Button btnIncrementalMode) {
this.btnIncrementalMode = btnIncrementalMode;
}
public Button getBtnIncrementalMode() {
return this.btnIncrementalMode;
}
public void setBtnFullAnalyseJavaFiles(final Button btnFullAnalyseJavaFiles) {
this.btnFullAnalyseJavaFiles = btnFullAnalyseJavaFiles;
}
public Button getBtnFullAnalyseJavaFiles() {
return this.btnFullAnalyseJavaFiles;
}
public Text getElementsToExcludeFilter() {
return this.elementsToExcludeFilter;
}
public Text getElementsToIncludeFilter() {
return this.elementsToIncludeFilter;
}
/**
* A column label provider which extends the jdt label provider.
*/
class JDTDelegateCellLabelProvider extends ColumnLabelProvider {
private final JavaElementLabelProvider delegate = new JavaElementLabelProvider();
private boolean displayShortName = true;
public JDTDelegateCellLabelProvider(final boolean displayShortName) {
this.displayShortName = displayShortName;
}
@Override
public void addListener(final ILabelProviderListener listener) {
this.delegate.addListener(listener);
}
@Override
public void dispose() {
this.delegate.dispose();
}
@Override
public boolean equals(final Object obj) {
return this.delegate.equals(obj);
}
@Override
public Image getImage(final Object element) {
if (this.displayShortName) {
return this.delegate.getImage(element);
}
return null;
}
@Override
public String getText(final Object element) {
String qualifiedName = this.delegate.getText(element);
int lastSegmentindex = qualifiedName.lastIndexOf(File.separator);
String text = null;
if (this.displayShortName) {
text = qualifiedName.substring(lastSegmentindex + 1);
} else if (lastSegmentindex > -1) {
text = qualifiedName.substring(0, lastSegmentindex);
} else {
text = ""; //$NON-NLS-1$
}
return text;
}
@Override
public int hashCode() {
return this.delegate.hashCode();
}
@Override
public boolean isLabelProperty(final Object element, final String property) {
return this.delegate.isLabelProperty(element, property);
}
@Override
public void removeListener(final ILabelProviderListener listener) {
this.delegate.removeListener(listener);
}
@Override
public String toString() {
return this.delegate.toString();
}
}
}