mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-08 10:16:03 +02:00
update to use new IPathEntryContainerPage
This commit is contained in:
parent
022ed4b8eb
commit
45787ce6ed
10 changed files with 285 additions and 52 deletions
|
@ -39,7 +39,7 @@ import org.eclipse.cdt.make.internal.ui.MakeUIPlugin;
|
||||||
import org.eclipse.cdt.make.internal.ui.scannerconfig.DiscoveredElement;
|
import org.eclipse.cdt.make.internal.ui.scannerconfig.DiscoveredElement;
|
||||||
import org.eclipse.cdt.make.internal.ui.scannerconfig.DiscoveredElementLabelProvider;
|
import org.eclipse.cdt.make.internal.ui.scannerconfig.DiscoveredElementLabelProvider;
|
||||||
import org.eclipse.cdt.make.internal.ui.scannerconfig.DiscoveredElementSorter;
|
import org.eclipse.cdt.make.internal.ui.scannerconfig.DiscoveredElementSorter;
|
||||||
import org.eclipse.cdt.ui.wizards.ICPathContainerPage;
|
import org.eclipse.cdt.ui.wizards.IPathEntryContainerPage;
|
||||||
import org.eclipse.core.runtime.CoreException;
|
import org.eclipse.core.runtime.CoreException;
|
||||||
import org.eclipse.jface.action.Action;
|
import org.eclipse.jface.action.Action;
|
||||||
import org.eclipse.jface.action.IAction;
|
import org.eclipse.jface.action.IAction;
|
||||||
|
@ -71,7 +71,7 @@ import org.eclipse.ui.contexts.IWorkbenchContextSupport;
|
||||||
*
|
*
|
||||||
* @author vhirsl
|
* @author vhirsl
|
||||||
*/
|
*/
|
||||||
public class DiscoveredPathContainerPage extends WizardPage implements ICPathContainerPage {
|
public class DiscoveredPathContainerPage extends WizardPage implements IPathEntryContainerPage {
|
||||||
private static final String PREFIX = "DiscoveredScannerConfigurationContainerPage"; //$NON-NLS-1$
|
private static final String PREFIX = "DiscoveredScannerConfigurationContainerPage"; //$NON-NLS-1$
|
||||||
|
|
||||||
private static final String DISC_COMMON_PREFIX = "ManageScannerConfigDialogCommon"; //$NON-NLS-1$
|
private static final String DISC_COMMON_PREFIX = "ManageScannerConfigDialogCommon"; //$NON-NLS-1$
|
||||||
|
@ -214,18 +214,16 @@ public class DiscoveredPathContainerPage extends WizardPage implements ICPathCon
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see org.eclipse.cdt.ui.wizards.ICPathContainerPage#getContainerEntries()
|
* @see org.eclipse.cdt.ui.wizards.ICPathContainerPage#getContainerEntries()
|
||||||
*/
|
*/
|
||||||
public IPathEntry[] getContainerEntries() {
|
public IContainerEntry[] getNewContainers() {
|
||||||
return new IPathEntry[] { fPathEntry };
|
return new IContainerEntry[] { fPathEntry };
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see org.eclipse.cdt.ui.wizards.ICPathContainerPage#setSelection(org.eclipse.cdt.core.model.IPathEntry)
|
* @see org.eclipse.cdt.ui.wizards.ICPathContainerPage#setSelection(org.eclipse.cdt.core.model.IPathEntry)
|
||||||
*/
|
*/
|
||||||
public void setSelection(IPathEntry containerEntry) {
|
public void setSelection(IContainerEntry containerEntry) {
|
||||||
if (containerEntry != null) {
|
if (containerEntry != null) {
|
||||||
if (containerEntry.getEntryKind() == IPathEntry.CDT_CONTAINER) {
|
fPathEntry = containerEntry;
|
||||||
fPathEntry = (IContainerEntry) containerEntry;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
fPathEntry = CoreModel.newContainerEntry(DiscoveredPathContainer.CONTAINER_ID);
|
fPathEntry = CoreModel.newContainerEntry(DiscoveredPathContainer.CONTAINER_ID);
|
||||||
|
|
|
@ -12,6 +12,7 @@ import java.util.ArrayList;
|
||||||
|
|
||||||
import org.eclipse.cdt.core.model.CoreModel;
|
import org.eclipse.cdt.core.model.CoreModel;
|
||||||
import org.eclipse.cdt.core.model.ICProject;
|
import org.eclipse.cdt.core.model.ICProject;
|
||||||
|
import org.eclipse.cdt.core.model.IContainerEntry;
|
||||||
import org.eclipse.cdt.core.model.IPathEntry;
|
import org.eclipse.cdt.core.model.IPathEntry;
|
||||||
import org.eclipse.cdt.internal.ui.CPluginImages;
|
import org.eclipse.cdt.internal.ui.CPluginImages;
|
||||||
import org.eclipse.cdt.internal.ui.dialogs.StatusInfo;
|
import org.eclipse.cdt.internal.ui.dialogs.StatusInfo;
|
||||||
|
@ -20,7 +21,7 @@ import org.eclipse.cdt.internal.ui.wizards.dialogfields.DialogField;
|
||||||
import org.eclipse.cdt.internal.ui.wizards.dialogfields.IDialogFieldListener;
|
import org.eclipse.cdt.internal.ui.wizards.dialogfields.IDialogFieldListener;
|
||||||
import org.eclipse.cdt.internal.ui.wizards.dialogfields.LayoutUtil;
|
import org.eclipse.cdt.internal.ui.wizards.dialogfields.LayoutUtil;
|
||||||
import org.eclipse.cdt.internal.ui.wizards.dialogfields.StringDialogField;
|
import org.eclipse.cdt.internal.ui.wizards.dialogfields.StringDialogField;
|
||||||
import org.eclipse.cdt.ui.wizards.ICPathContainerPage;
|
import org.eclipse.cdt.ui.wizards.IPathEntryContainerPage;
|
||||||
import org.eclipse.core.runtime.IPath;
|
import org.eclipse.core.runtime.IPath;
|
||||||
import org.eclipse.core.runtime.Path;
|
import org.eclipse.core.runtime.Path;
|
||||||
import org.eclipse.jface.dialogs.Dialog;
|
import org.eclipse.jface.dialogs.Dialog;
|
||||||
|
@ -30,7 +31,7 @@ import org.eclipse.swt.widgets.Composite;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
public class CPathContainerDefaultPage extends NewElementWizardPage implements ICPathContainerPage {
|
public class CPathContainerDefaultPage extends NewElementWizardPage implements IPathEntryContainerPage {
|
||||||
|
|
||||||
private StringDialogField fEntryField;
|
private StringDialogField fEntryField;
|
||||||
private ArrayList fUsedPaths;
|
private ArrayList fUsedPaths;
|
||||||
|
@ -103,8 +104,8 @@ public class CPathContainerDefaultPage extends NewElementWizardPage implements I
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see IClasspathContainerPage#getSelection()
|
* @see IClasspathContainerPage#getSelection()
|
||||||
*/
|
*/
|
||||||
public IPathEntry[] getContainerEntries() {
|
public IContainerEntry[] getNewContainers() {
|
||||||
return new IPathEntry[] {CoreModel.newContainerEntry(new Path(fEntryField.getText()))};
|
return new IContainerEntry[] {CoreModel.newContainerEntry(new Path(fEntryField.getText()))};
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
|
@ -122,7 +123,7 @@ public class CPathContainerDefaultPage extends NewElementWizardPage implements I
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see IClasspathContainerPage#setSelection(IClasspathEntry)
|
* @see IClasspathContainerPage#setSelection(IClasspathEntry)
|
||||||
*/
|
*/
|
||||||
public void setSelection(IPathEntry containerEntry) {
|
public void setSelection(IContainerEntry containerEntry) {
|
||||||
if (containerEntry != null) {
|
if (containerEntry != null) {
|
||||||
fUsedPaths.remove(containerEntry.getPath());
|
fUsedPaths.remove(containerEntry.getPath());
|
||||||
fEntryField.setText(containerEntry.getPath().toString());
|
fEntryField.setText(containerEntry.getPath().toString());
|
||||||
|
|
|
@ -12,10 +12,12 @@ import java.net.MalformedURLException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.core.model.ICProject;
|
||||||
|
import org.eclipse.cdt.core.model.IContainerEntry;
|
||||||
import org.eclipse.cdt.core.model.IPathEntry;
|
import org.eclipse.cdt.core.model.IPathEntry;
|
||||||
import org.eclipse.cdt.internal.ui.util.CoreUtility;
|
import org.eclipse.cdt.internal.ui.util.CoreUtility;
|
||||||
import org.eclipse.cdt.ui.CUIPlugin;
|
import org.eclipse.cdt.ui.CUIPlugin;
|
||||||
import org.eclipse.cdt.ui.wizards.ICPathContainerPage;
|
import org.eclipse.cdt.ui.wizards.IPathEntryContainerPage;
|
||||||
import org.eclipse.core.runtime.CoreException;
|
import org.eclipse.core.runtime.CoreException;
|
||||||
import org.eclipse.core.runtime.IConfigurationElement;
|
import org.eclipse.core.runtime.IConfigurationElement;
|
||||||
import org.eclipse.core.runtime.IExtension;
|
import org.eclipse.core.runtime.IExtension;
|
||||||
|
@ -24,12 +26,211 @@ import org.eclipse.core.runtime.IStatus;
|
||||||
import org.eclipse.core.runtime.Platform;
|
import org.eclipse.core.runtime.Platform;
|
||||||
import org.eclipse.core.runtime.Status;
|
import org.eclipse.core.runtime.Status;
|
||||||
import org.eclipse.jface.resource.ImageDescriptor;
|
import org.eclipse.jface.resource.ImageDescriptor;
|
||||||
|
import org.eclipse.jface.wizard.IWizard;
|
||||||
|
import org.eclipse.jface.wizard.IWizardPage;
|
||||||
import org.eclipse.swt.SWTException;
|
import org.eclipse.swt.SWTException;
|
||||||
import org.eclipse.swt.graphics.Image;
|
import org.eclipse.swt.graphics.Image;
|
||||||
|
import org.eclipse.swt.widgets.Composite;
|
||||||
|
import org.eclipse.swt.widgets.Control;
|
||||||
import org.osgi.framework.Bundle;
|
import org.osgi.framework.Bundle;
|
||||||
|
|
||||||
public class CPathContainerDescriptor implements IContainerDescriptor {
|
public class CPathContainerDescriptor implements IContainerDescriptor {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adapter class to adapter deprecated ICPathContainerPage to new IPathEntryContainerPage
|
||||||
|
* @author Dave
|
||||||
|
* @deprecated
|
||||||
|
*/
|
||||||
|
public class PathEntryContainerPageAdapter implements IWizardPage, IPathEntryContainerPage {
|
||||||
|
private final org.eclipse.cdt.ui.wizards.ICPathContainerPage fPage;
|
||||||
|
/**
|
||||||
|
* @param pageName
|
||||||
|
*/
|
||||||
|
protected PathEntryContainerPageAdapter(org.eclipse.cdt.ui.wizards.ICPathContainerPage page) {
|
||||||
|
fPage = page;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.cdt.ui.wizards.IPathEntryContainerPage#initialize(org.eclipse.cdt.core.model.ICProject, org.eclipse.cdt.core.model.IPathEntry[])
|
||||||
|
*/
|
||||||
|
public void initialize(ICProject project, IPathEntry[] currentEntries) {
|
||||||
|
fPage.initialize(project, currentEntries);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.cdt.ui.wizards.IPathEntryContainerPage#finish()
|
||||||
|
*/
|
||||||
|
public boolean finish() {
|
||||||
|
return fPage.finish();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.cdt.ui.wizards.IPathEntryContainerPage#getNewContainers()
|
||||||
|
*/
|
||||||
|
public IContainerEntry[] getNewContainers() {
|
||||||
|
IPathEntry[] entries = fPage.getContainerEntries();
|
||||||
|
IContainerEntry[] containers = new IContainerEntry[entries.length];
|
||||||
|
System.arraycopy(entries, 0, containers, 0, entries.length);
|
||||||
|
return containers;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.cdt.ui.wizards.IPathEntryContainerPage#setSelection(org.eclipse.cdt.core.model.IContainerEntry)
|
||||||
|
*/
|
||||||
|
public void setSelection(IContainerEntry containerEntry) {
|
||||||
|
fPage.setSelection(containerEntry);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
|
||||||
|
*/
|
||||||
|
public void createControl(Composite parent) {
|
||||||
|
fPage.createControl(parent);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.jface.wizard.IWizardPage#canFlipToNextPage()
|
||||||
|
*/
|
||||||
|
public boolean canFlipToNextPage() {
|
||||||
|
return fPage.canFlipToNextPage();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.jface.wizard.IWizardPage#getName()
|
||||||
|
*/
|
||||||
|
public String getName() {
|
||||||
|
return fPage.getName();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.jface.wizard.IWizardPage#getNextPage()
|
||||||
|
*/
|
||||||
|
public IWizardPage getNextPage() {
|
||||||
|
return fPage.getNextPage();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.jface.wizard.IWizardPage#getPreviousPage()
|
||||||
|
*/
|
||||||
|
public IWizardPage getPreviousPage() {
|
||||||
|
return fPage.getPreviousPage();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.jface.wizard.IWizardPage#getWizard()
|
||||||
|
*/
|
||||||
|
public IWizard getWizard() {
|
||||||
|
return fPage.getWizard();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.jface.wizard.IWizardPage#isPageComplete()
|
||||||
|
*/
|
||||||
|
public boolean isPageComplete() {
|
||||||
|
return fPage.isPageComplete();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.jface.wizard.IWizardPage#setPreviousPage(org.eclipse.jface.wizard.IWizardPage)
|
||||||
|
*/
|
||||||
|
public void setPreviousPage(IWizardPage page) {
|
||||||
|
fPage.setPreviousPage(page);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.jface.wizard.IWizardPage#setWizard(org.eclipse.jface.wizard.IWizard)
|
||||||
|
*/
|
||||||
|
public void setWizard(IWizard newWizard) {
|
||||||
|
fPage.setWizard(newWizard);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.jface.dialogs.IDialogPage#dispose()
|
||||||
|
*/
|
||||||
|
public void dispose() {
|
||||||
|
fPage.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.jface.dialogs.IDialogPage#getControl()
|
||||||
|
*/
|
||||||
|
public Control getControl() {
|
||||||
|
return fPage.getControl();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.jface.dialogs.IDialogPage#getDescription()
|
||||||
|
*/
|
||||||
|
public String getDescription() {
|
||||||
|
return fPage.getDescription();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.jface.dialogs.IDialogPage#getErrorMessage()
|
||||||
|
*/
|
||||||
|
public String getErrorMessage() {
|
||||||
|
return fPage.getErrorMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.jface.dialogs.IDialogPage#getImage()
|
||||||
|
*/
|
||||||
|
public Image getImage() {
|
||||||
|
return fPage.getImage();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.jface.dialogs.IDialogPage#getMessage()
|
||||||
|
*/
|
||||||
|
public String getMessage() {
|
||||||
|
return fPage.getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.jface.dialogs.IDialogPage#getTitle()
|
||||||
|
*/
|
||||||
|
public String getTitle() {
|
||||||
|
return fPage.getTitle();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.jface.dialogs.IDialogPage#performHelp()
|
||||||
|
*/
|
||||||
|
public void performHelp() {
|
||||||
|
fPage.performHelp();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.jface.dialogs.IDialogPage#setDescription(java.lang.String)
|
||||||
|
*/
|
||||||
|
public void setDescription(String description) {
|
||||||
|
fPage.setDescription(description);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.jface.dialogs.IDialogPage#setImageDescriptor(org.eclipse.jface.resource.ImageDescriptor)
|
||||||
|
*/
|
||||||
|
public void setImageDescriptor(ImageDescriptor image) {
|
||||||
|
fPage.setImageDescriptor(image);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.jface.dialogs.IDialogPage#setTitle(java.lang.String)
|
||||||
|
*/
|
||||||
|
public void setTitle(String title) {
|
||||||
|
fPage.setTitle(title);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.eclipse.jface.dialogs.IDialogPage#setVisible(boolean)
|
||||||
|
*/
|
||||||
|
public void setVisible(boolean visible) {
|
||||||
|
fPage.setVisible(visible);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
private IConfigurationElement fConfigElement;
|
private IConfigurationElement fConfigElement;
|
||||||
|
|
||||||
private static final String ATT_EXTENSION = "PathContainerPage"; //$NON-NLS-1$
|
private static final String ATT_EXTENSION = "PathContainerPage"; //$NON-NLS-1$
|
||||||
|
@ -59,11 +260,13 @@ public class CPathContainerDescriptor implements IContainerDescriptor {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ICPathContainerPage createPage() throws CoreException {
|
public IPathEntryContainerPage createPage() throws CoreException {
|
||||||
Object elem = CoreUtility.createExtension(fConfigElement, ATT_PAGE_CLASS);
|
Object elem = CoreUtility.createExtension(fConfigElement, ATT_PAGE_CLASS);
|
||||||
if (elem instanceof ICPathContainerPage) {
|
if (elem instanceof IPathEntryContainerPage) {
|
||||||
return (ICPathContainerPage) elem;
|
return (IPathEntryContainerPage) elem;
|
||||||
}
|
} else if (elem instanceof org.eclipse.cdt.ui.wizards.ICPathContainerPage) {
|
||||||
|
return new PathEntryContainerPageAdapter((org.eclipse.cdt.ui.wizards.ICPathContainerPage)elem);
|
||||||
|
}
|
||||||
String id = fConfigElement.getAttribute(ATT_ID);
|
String id = fConfigElement.getAttribute(ATT_ID);
|
||||||
throw new CoreException(new Status(IStatus.ERROR, CUIPlugin.PLUGIN_ID, 0,
|
throw new CoreException(new Status(IStatus.ERROR, CUIPlugin.PLUGIN_ID, 0,
|
||||||
"Invalid extension (page not of type IClasspathContainerPage): " + id, null)); //$NON-NLS-1$
|
"Invalid extension (page not of type IClasspathContainerPage): " + id, null)); //$NON-NLS-1$
|
||||||
|
|
|
@ -12,6 +12,7 @@ import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.eclipse.cdt.core.model.ICProject;
|
import org.eclipse.cdt.core.model.ICProject;
|
||||||
|
import org.eclipse.cdt.core.model.IContainerEntry;
|
||||||
import org.eclipse.cdt.core.model.IPathEntry;
|
import org.eclipse.cdt.core.model.IPathEntry;
|
||||||
import org.eclipse.cdt.internal.ui.ICHelpContextIds;
|
import org.eclipse.cdt.internal.ui.ICHelpContextIds;
|
||||||
import org.eclipse.cdt.internal.ui.util.PixelConverter;
|
import org.eclipse.cdt.internal.ui.util.PixelConverter;
|
||||||
|
@ -396,13 +397,13 @@ public class CPathContainerEntryPage extends CPathBasePage {
|
||||||
}
|
}
|
||||||
|
|
||||||
private CPElement[] openContainerSelectionDialog(CPElement existing) {
|
private CPElement[] openContainerSelectionDialog(CPElement existing) {
|
||||||
IPathEntry elem = null;
|
IContainerEntry elem = null;
|
||||||
String title;
|
String title;
|
||||||
if (existing == null) {
|
if (existing == null) {
|
||||||
title = CPathEntryMessages.getString("ContainerEntryPage.ContainerDialog.new.title"); //$NON-NLS-1$
|
title = CPathEntryMessages.getString("ContainerEntryPage.ContainerDialog.new.title"); //$NON-NLS-1$
|
||||||
} else {
|
} else {
|
||||||
title = CPathEntryMessages.getString("ContainerEntryPage.ContainerDialog.edit.title"); //$NON-NLS-1$
|
title = CPathEntryMessages.getString("ContainerEntryPage.ContainerDialog.edit.title"); //$NON-NLS-1$
|
||||||
elem = existing.getPathEntry();
|
elem = (IContainerEntry)existing.getPathEntry();
|
||||||
}
|
}
|
||||||
CPathContainerWizard wizard = new CPathContainerWizard(elem, fCurrCProject, getRawClasspath());
|
CPathContainerWizard wizard = new CPathContainerWizard(elem, fCurrCProject, getRawClasspath());
|
||||||
wizard.setWindowTitle(title);
|
wizard.setWindowTitle(title);
|
||||||
|
|
|
@ -13,10 +13,12 @@ import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.eclipse.cdt.core.model.ICElement;
|
import org.eclipse.cdt.core.model.ICElement;
|
||||||
|
import org.eclipse.cdt.core.model.IContainerEntry;
|
||||||
import org.eclipse.cdt.core.model.IPathEntry;
|
import org.eclipse.cdt.core.model.IPathEntry;
|
||||||
|
import org.eclipse.cdt.core.model.IProjectEntry;
|
||||||
import org.eclipse.cdt.internal.ui.util.ExceptionHandler;
|
import org.eclipse.cdt.internal.ui.util.ExceptionHandler;
|
||||||
import org.eclipse.cdt.internal.ui.util.PixelConverter;
|
import org.eclipse.cdt.internal.ui.util.PixelConverter;
|
||||||
import org.eclipse.cdt.ui.wizards.ICPathContainerPage;
|
import org.eclipse.cdt.ui.wizards.IPathEntryContainerPage;
|
||||||
import org.eclipse.core.runtime.CoreException;
|
import org.eclipse.core.runtime.CoreException;
|
||||||
import org.eclipse.jface.wizard.IWizardPage;
|
import org.eclipse.jface.wizard.IWizardPage;
|
||||||
import org.eclipse.jface.wizard.Wizard;
|
import org.eclipse.jface.wizard.Wizard;
|
||||||
|
@ -28,11 +30,13 @@ import org.eclipse.swt.widgets.Shell;
|
||||||
public class CPathContainerWizard extends Wizard {
|
public class CPathContainerWizard extends Wizard {
|
||||||
|
|
||||||
private IContainerDescriptor fPageDesc;
|
private IContainerDescriptor fPageDesc;
|
||||||
private IPathEntry fEntryToEdit;
|
private IContainerEntry fEntryToEdit;
|
||||||
|
|
||||||
private IPathEntry[] fNewEntries;
|
private IPathEntry[] fNewEntries;
|
||||||
private IPathEntry[] fContainerEntries;
|
private IContainerEntry[] fContainerEntries;
|
||||||
private ICPathContainerPage fContainerPage;
|
private IProjectEntry fProjectEntry;
|
||||||
|
|
||||||
|
private IPathEntryContainerPage fContainerPage;
|
||||||
private ICElement fCurrElement;
|
private ICElement fCurrElement;
|
||||||
private IPathEntry[] fCurrCPath;
|
private IPathEntry[] fCurrCPath;
|
||||||
private CPathFilterPage fFilterPage;
|
private CPathFilterPage fFilterPage;
|
||||||
|
@ -43,7 +47,7 @@ public class CPathContainerWizard extends Wizard {
|
||||||
/**
|
/**
|
||||||
* Constructor for ClasspathContainerWizard.
|
* Constructor for ClasspathContainerWizard.
|
||||||
*/
|
*/
|
||||||
public CPathContainerWizard(IPathEntry entryToEdit, ICElement currElement, IPathEntry[] currEntries) {
|
public CPathContainerWizard(IContainerEntry entryToEdit, ICElement currElement, IPathEntry[] currEntries) {
|
||||||
this(entryToEdit, null, currElement, currEntries, null);
|
this(entryToEdit, null, currElement, currEntries, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,7 +58,7 @@ public class CPathContainerWizard extends Wizard {
|
||||||
this(null, pageDesc, currElement, currEntries, null);
|
this(null, pageDesc, currElement, currEntries, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public CPathContainerWizard(IPathEntry entryToEdit, IContainerDescriptor pageDesc, ICElement currElement,
|
public CPathContainerWizard(IContainerEntry entryToEdit, IContainerDescriptor pageDesc, ICElement currElement,
|
||||||
IPathEntry[] currEntries, int[] filterType) {
|
IPathEntry[] currEntries, int[] filterType) {
|
||||||
fEntryToEdit = entryToEdit;
|
fEntryToEdit = entryToEdit;
|
||||||
fPageDesc = pageDesc;
|
fPageDesc = pageDesc;
|
||||||
|
@ -66,6 +70,9 @@ public class CPathContainerWizard extends Wizard {
|
||||||
}
|
}
|
||||||
|
|
||||||
public IPathEntry getEntriesParent() {
|
public IPathEntry getEntriesParent() {
|
||||||
|
if (fProjectEntry != null) {
|
||||||
|
return fProjectEntry;
|
||||||
|
}
|
||||||
return fContainerEntries[0];
|
return fContainerEntries[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,7 +80,7 @@ public class CPathContainerWizard extends Wizard {
|
||||||
return fNewEntries;
|
return fNewEntries;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IPathEntry[] getContainers() {
|
public IContainerEntry[] getContainers() {
|
||||||
return fContainerEntries;
|
return fContainerEntries;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,7 +92,11 @@ public class CPathContainerWizard extends Wizard {
|
||||||
public boolean performFinish() {
|
public boolean performFinish() {
|
||||||
if (fContainerPage != null) {
|
if (fContainerPage != null) {
|
||||||
if (fContainerPage.finish()) {
|
if (fContainerPage.finish()) {
|
||||||
fContainerEntries = fContainerPage.getContainerEntries();
|
if (fContainerPage instanceof ProjectContainerPage) {
|
||||||
|
fProjectEntry = ((ProjectContainerPage)fContainerPage).getProjectEntry();
|
||||||
|
} else {
|
||||||
|
fContainerEntries = fContainerPage.getNewContainers();
|
||||||
|
}
|
||||||
if (fFilterPage != null && fFilterPage.isPageComplete()) {
|
if (fFilterPage != null && fFilterPage.isPageComplete()) {
|
||||||
fNewEntries = fFilterPage.getSelectedEntries();
|
fNewEntries = fFilterPage.getSelectedEntries();
|
||||||
}
|
}
|
||||||
|
@ -131,8 +142,8 @@ public class CPathContainerWizard extends Wizard {
|
||||||
super.addPages();
|
super.addPages();
|
||||||
}
|
}
|
||||||
|
|
||||||
private ICPathContainerPage getContainerPage(IContainerDescriptor pageDesc) {
|
private IPathEntryContainerPage getContainerPage(IContainerDescriptor pageDesc) {
|
||||||
ICPathContainerPage containerPage = null;
|
IPathEntryContainerPage containerPage = null;
|
||||||
if (pageDesc != null) {
|
if (pageDesc != null) {
|
||||||
try {
|
try {
|
||||||
containerPage = pageDesc.createPage();
|
containerPage = pageDesc.createPage();
|
||||||
|
@ -145,7 +156,9 @@ public class CPathContainerWizard extends Wizard {
|
||||||
containerPage = new CPathContainerDefaultPage();
|
containerPage = new CPathContainerDefaultPage();
|
||||||
}
|
}
|
||||||
containerPage.initialize(fCurrElement.getCProject(), fCurrCPath);
|
containerPage.initialize(fCurrElement.getCProject(), fCurrCPath);
|
||||||
containerPage.setSelection(fEntryToEdit);
|
if (!(containerPage instanceof ProjectContainerPage)) {
|
||||||
|
containerPage.setSelection(fEntryToEdit);
|
||||||
|
}
|
||||||
containerPage.setWizard(this);
|
containerPage.setWizard(this);
|
||||||
return containerPage;
|
return containerPage;
|
||||||
}
|
}
|
||||||
|
@ -162,9 +175,15 @@ public class CPathContainerWizard extends Wizard {
|
||||||
fContainerPage = getContainerPage(selected);
|
fContainerPage = getContainerPage(selected);
|
||||||
return fContainerPage;
|
return fContainerPage;
|
||||||
} else if (page == fContainerPage && fFilterPage != null) {
|
} else if (page == fContainerPage && fFilterPage != null) {
|
||||||
if (fContainerPage.finish() && fContainerPage.getContainerEntries().length > 0
|
if (fContainerPage.finish() && fContainerPage.getNewContainers().length > 0
|
||||||
&& fContainerPage.getContainerEntries()[0] != null) {
|
&& fContainerPage.getNewContainers()[0] != null) {
|
||||||
fFilterPage.setParentEntry(fContainerPage.getContainerEntries()[0]);
|
IPathEntry entry;
|
||||||
|
if (fContainerPage instanceof ProjectContainerPage) {
|
||||||
|
entry = ((ProjectContainerPage)fContainerPage).getProjectEntry();
|
||||||
|
} else {
|
||||||
|
entry = fContainerPage.getNewContainers()[0];
|
||||||
|
}
|
||||||
|
fFilterPage.setParentEntry(entry);
|
||||||
}
|
}
|
||||||
return fFilterPage;
|
return fFilterPage;
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,7 @@ import org.eclipse.cdt.core.model.CoreModelUtil;
|
||||||
import org.eclipse.cdt.core.model.ICContainer;
|
import org.eclipse.cdt.core.model.ICContainer;
|
||||||
import org.eclipse.cdt.core.model.ICElement;
|
import org.eclipse.cdt.core.model.ICElement;
|
||||||
import org.eclipse.cdt.core.model.ICProject;
|
import org.eclipse.cdt.core.model.ICProject;
|
||||||
|
import org.eclipse.cdt.core.model.IContainerEntry;
|
||||||
import org.eclipse.cdt.core.model.IIncludeEntry;
|
import org.eclipse.cdt.core.model.IIncludeEntry;
|
||||||
import org.eclipse.cdt.core.model.IMacroEntry;
|
import org.eclipse.cdt.core.model.IMacroEntry;
|
||||||
import org.eclipse.cdt.core.model.IPathEntry;
|
import org.eclipse.cdt.core.model.IPathEntry;
|
||||||
|
@ -991,13 +992,13 @@ public class CPathIncludeSymbolEntryPage extends CPathBasePage {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected CPElement[] openContainerSelectionDialog(CPElement existing) {
|
protected CPElement[] openContainerSelectionDialog(CPElement existing) {
|
||||||
IPathEntry elem = null;
|
IContainerEntry elem = null;
|
||||||
String title;
|
String title;
|
||||||
if (existing == null) {
|
if (existing == null) {
|
||||||
title = CPathEntryMessages.getString("IncludeSymbolEntryPage.ContainerDialog.new.title"); //$NON-NLS-1$
|
title = CPathEntryMessages.getString("IncludeSymbolEntryPage.ContainerDialog.new.title"); //$NON-NLS-1$
|
||||||
} else {
|
} else {
|
||||||
title = CPathEntryMessages.getString("IncludeSymbolEntryPage.ContainerDialog.edit.title"); //$NON-NLS-1$
|
title = CPathEntryMessages.getString("IncludeSymbolEntryPage.ContainerDialog.edit.title"); //$NON-NLS-1$
|
||||||
elem = existing.getPathEntry();
|
elem = (IContainerEntry)existing.getPathEntry();
|
||||||
}
|
}
|
||||||
CPathContainerWizard wizard = new CPathContainerWizard(elem, null, fCurrCProject, getRawPathEntries(), new int[]{
|
CPathContainerWizard wizard = new CPathContainerWizard(elem, null, fCurrCProject, getRawPathEntries(), new int[]{
|
||||||
IPathEntry.CDT_INCLUDE, IPathEntry.CDT_MACRO});
|
IPathEntry.CDT_INCLUDE, IPathEntry.CDT_MACRO});
|
||||||
|
|
|
@ -15,6 +15,7 @@ import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.eclipse.cdt.core.model.ICProject;
|
import org.eclipse.cdt.core.model.ICProject;
|
||||||
|
import org.eclipse.cdt.core.model.IContainerEntry;
|
||||||
import org.eclipse.cdt.core.model.ILibraryEntry;
|
import org.eclipse.cdt.core.model.ILibraryEntry;
|
||||||
import org.eclipse.cdt.core.model.IPathEntry;
|
import org.eclipse.cdt.core.model.IPathEntry;
|
||||||
import org.eclipse.cdt.internal.ui.CPluginImages;
|
import org.eclipse.cdt.internal.ui.CPluginImages;
|
||||||
|
@ -505,13 +506,13 @@ public class CPathLibraryEntryPage extends CPathBasePage {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected CPElement[] openContainerSelectionDialog(CPElement existing) {
|
protected CPElement[] openContainerSelectionDialog(CPElement existing) {
|
||||||
IPathEntry elem = null;
|
IContainerEntry elem = null;
|
||||||
String title;
|
String title;
|
||||||
if (existing == null) {
|
if (existing == null) {
|
||||||
title = CPathEntryMessages.getString("LibrariesEntryPage.ContainerDialog.new.title"); //$NON-NLS-1$
|
title = CPathEntryMessages.getString("LibrariesEntryPage.ContainerDialog.new.title"); //$NON-NLS-1$
|
||||||
} else {
|
} else {
|
||||||
title = CPathEntryMessages.getString("LibrariesEntryPage.ContainerDialog.edit.title"); //$NON-NLS-1$
|
title = CPathEntryMessages.getString("LibrariesEntryPage.ContainerDialog.edit.title"); //$NON-NLS-1$
|
||||||
elem = existing.getPathEntry();
|
elem = (IContainerEntry)existing.getPathEntry();
|
||||||
}
|
}
|
||||||
CPathContainerWizard wizard = new CPathContainerWizard(elem, null, fCurrCProject, getRawPathEntries(),
|
CPathContainerWizard wizard = new CPathContainerWizard(elem, null, fCurrCProject, getRawPathEntries(),
|
||||||
new int[] {IPathEntry.CDT_LIBRARY});
|
new int[] {IPathEntry.CDT_LIBRARY});
|
||||||
|
|
|
@ -9,13 +9,13 @@
|
||||||
package org.eclipse.cdt.internal.ui.dialogs.cpaths;
|
package org.eclipse.cdt.internal.ui.dialogs.cpaths;
|
||||||
|
|
||||||
import org.eclipse.cdt.core.model.IPathEntry;
|
import org.eclipse.cdt.core.model.IPathEntry;
|
||||||
import org.eclipse.cdt.ui.wizards.ICPathContainerPage;
|
import org.eclipse.cdt.ui.wizards.IPathEntryContainerPage;
|
||||||
import org.eclipse.core.runtime.CoreException;
|
import org.eclipse.core.runtime.CoreException;
|
||||||
import org.eclipse.swt.graphics.Image;
|
import org.eclipse.swt.graphics.Image;
|
||||||
|
|
||||||
public interface IContainerDescriptor {
|
public interface IContainerDescriptor {
|
||||||
|
|
||||||
public ICPathContainerPage createPage() throws CoreException;
|
public IPathEntryContainerPage createPage() throws CoreException;
|
||||||
public String getName();
|
public String getName();
|
||||||
public Image getImage();
|
public Image getImage();
|
||||||
public boolean canEdit(IPathEntry entry);
|
public boolean canEdit(IPathEntry entry);
|
||||||
|
|
|
@ -10,7 +10,7 @@ package org.eclipse.cdt.internal.ui.dialogs.cpaths;
|
||||||
|
|
||||||
import org.eclipse.cdt.core.model.IPathEntry;
|
import org.eclipse.cdt.core.model.IPathEntry;
|
||||||
import org.eclipse.cdt.ui.CUIPlugin;
|
import org.eclipse.cdt.ui.CUIPlugin;
|
||||||
import org.eclipse.cdt.ui.wizards.ICPathContainerPage;
|
import org.eclipse.cdt.ui.wizards.IPathEntryContainerPage;
|
||||||
import org.eclipse.core.runtime.CoreException;
|
import org.eclipse.core.runtime.CoreException;
|
||||||
import org.eclipse.swt.graphics.Image;
|
import org.eclipse.swt.graphics.Image;
|
||||||
import org.eclipse.ui.ide.IDE;
|
import org.eclipse.ui.ide.IDE;
|
||||||
|
@ -22,7 +22,7 @@ public class ProjectContainerDescriptor implements IContainerDescriptor {
|
||||||
fFilterType = filterType;
|
fFilterType = filterType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ICPathContainerPage createPage() throws CoreException {
|
public IPathEntryContainerPage createPage() throws CoreException {
|
||||||
return new ProjectContainerPage(fFilterType);
|
return new ProjectContainerPage(fFilterType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,11 +14,13 @@ import java.util.List;
|
||||||
import org.eclipse.cdt.core.model.CModelException;
|
import org.eclipse.cdt.core.model.CModelException;
|
||||||
import org.eclipse.cdt.core.model.CoreModel;
|
import org.eclipse.cdt.core.model.CoreModel;
|
||||||
import org.eclipse.cdt.core.model.ICProject;
|
import org.eclipse.cdt.core.model.ICProject;
|
||||||
|
import org.eclipse.cdt.core.model.IContainerEntry;
|
||||||
import org.eclipse.cdt.core.model.IPathEntry;
|
import org.eclipse.cdt.core.model.IPathEntry;
|
||||||
|
import org.eclipse.cdt.core.model.IProjectEntry;
|
||||||
import org.eclipse.cdt.internal.ui.CPluginImages;
|
import org.eclipse.cdt.internal.ui.CPluginImages;
|
||||||
import org.eclipse.cdt.internal.ui.util.SelectionUtil;
|
import org.eclipse.cdt.internal.ui.util.SelectionUtil;
|
||||||
import org.eclipse.cdt.internal.ui.viewsupport.ListContentProvider;
|
import org.eclipse.cdt.internal.ui.viewsupport.ListContentProvider;
|
||||||
import org.eclipse.cdt.ui.wizards.ICPathContainerPage;
|
import org.eclipse.cdt.ui.wizards.IPathEntryContainerPage;
|
||||||
import org.eclipse.jface.viewers.ISelection;
|
import org.eclipse.jface.viewers.ISelection;
|
||||||
import org.eclipse.jface.viewers.ISelectionChangedListener;
|
import org.eclipse.jface.viewers.ISelectionChangedListener;
|
||||||
import org.eclipse.jface.viewers.SelectionChangedEvent;
|
import org.eclipse.jface.viewers.SelectionChangedEvent;
|
||||||
|
@ -34,7 +36,7 @@ import org.eclipse.swt.widgets.Composite;
|
||||||
import org.eclipse.swt.widgets.Label;
|
import org.eclipse.swt.widgets.Label;
|
||||||
import org.eclipse.ui.model.WorkbenchLabelProvider;
|
import org.eclipse.ui.model.WorkbenchLabelProvider;
|
||||||
|
|
||||||
public class ProjectContainerPage extends WizardPage implements ICPathContainerPage {
|
public class ProjectContainerPage extends WizardPage implements IPathEntryContainerPage {
|
||||||
|
|
||||||
private int[] fFilterType;
|
private int[] fFilterType;
|
||||||
private TableViewer viewer;
|
private TableViewer viewer;
|
||||||
|
@ -57,22 +59,29 @@ public class ProjectContainerPage extends WizardPage implements ICPathContainerP
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IPathEntry[] getContainerEntries() {
|
public IContainerEntry[] getNewContainers() {
|
||||||
|
return new IContainerEntry[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
IProjectEntry getProjectEntry() {
|
||||||
if (viewer != null) {
|
if (viewer != null) {
|
||||||
ISelection selection = viewer.getSelection();
|
ISelection selection = viewer.getSelection();
|
||||||
ICProject project = (ICProject)SelectionUtil.getSingleElement(selection);
|
ICProject project = (ICProject)SelectionUtil.getSingleElement(selection);
|
||||||
if (project != null) {
|
if (project != null) {
|
||||||
return new IPathEntry[]{CoreModel.newProjectEntry(project.getPath())};
|
return CoreModel.newProjectEntry(project.getPath());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new IPathEntry[0];
|
return null;
|
||||||
|
|
||||||
}
|
}
|
||||||
public void setSelection(IPathEntry containerEntry) {
|
|
||||||
if (containerEntry != null) {
|
void setProjectEntry(IProjectEntry entry) {
|
||||||
viewer.setSelection(new StructuredSelection(containerEntry));
|
if (entry != null) {
|
||||||
|
viewer.setSelection(new StructuredSelection(entry));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setSelection(IContainerEntry containerEntry) {
|
||||||
|
}
|
||||||
|
|
||||||
public void createControl(Composite parent) {
|
public void createControl(Composite parent) {
|
||||||
// create a composite with standard margins and spacing
|
// create a composite with standard margins and spacing
|
||||||
|
@ -147,6 +156,6 @@ public class ProjectContainerPage extends WizardPage implements ICPathContainerP
|
||||||
}
|
}
|
||||||
|
|
||||||
private IPathEntry getSelected() {
|
private IPathEntry getSelected() {
|
||||||
return getContainerEntries().length > 0 ? getContainerEntries()[0] : null;
|
return getProjectEntry();
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Add table
Reference in a new issue