Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean Evoy2004-04-22 18:10:51 +0000
committerSean Evoy2004-04-22 18:10:51 +0000
commitae1b577d7241cbf3e6646e71038deadff6d964f7 (patch)
tree5db1bd540b4ca4efa1a58a7af8551867d515049c /build/org.eclipse.cdt.managedbuilder.ui/src
parent4528b2a06c2b3a5e31d804434337b1dcd2061ff0 (diff)
downloadorg.eclipse.cdt-ae1b577d7241cbf3e6646e71038deadff6d964f7.tar.gz
org.eclipse.cdt-ae1b577d7241cbf3e6646e71038deadff6d964f7.tar.xz
org.eclipse.cdt-ae1b577d7241cbf3e6646e71038deadff6d964f7.zip
External code commit from Leo Treggiari from Intel that adds support for adding and removing error psarser on a managed build project
Diffstat (limited to 'build/org.eclipse.cdt.managedbuilder.ui/src')
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/ErrorParserBlock.java86
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/ManagedBuilderUIPlugin.java41
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/ManagedProjectOptionBlock.java11
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/PluginResources.properties5
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildPropertyPage.java12
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ManagedBuilderPropertyPage.java173
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/CProjectPlatformPage.java20
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/NewManagedProjectOptionPage.java37
-rw-r--r--build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/NewManagedProjectWizard.java24
9 files changed, 387 insertions, 22 deletions
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/ErrorParserBlock.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/ErrorParserBlock.java
new file mode 100644
index 0000000000..319b10b349
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/ErrorParserBlock.java
@@ -0,0 +1,86 @@
+/**********************************************************************
+ * Copyright (c) 2002,2003 Rational Software Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v0.5
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v05.html
+ *
+ * Contributors:
+ * QNX Software Systems - Move to Make plugin
+ * Intel Corp - Use in Managed Make system
+***********************************************************************/
+package org.eclipse.cdt.managedbuilder.internal.ui;
+
+import org.eclipse.cdt.core.CCorePlugin;
+import org.eclipse.cdt.managedbuilder.core.ITarget;
+import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
+import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
+import org.eclipse.cdt.managedbuilder.ui.wizards.NewManagedProjectOptionPage;
+import org.eclipse.cdt.managedbuilder.ui.wizards.NewManagedProjectWizard;
+import org.eclipse.cdt.ui.dialogs.AbstractErrorParserBlock;
+import org.eclipse.cdt.ui.dialogs.ICOptionContainer;
+import org.eclipse.core.resources.IProject;
+
+public class ErrorParserBlock extends AbstractErrorParserBlock {
+
+ public ErrorParserBlock() {
+ super(null);
+ }
+
+ protected String[] getErrorParserIDs(ITarget target) {
+ // Get the list of error parsers specified with this Target
+ String[] errorParsers = target.getErrorParserList();
+ if (errorParsers != null) {
+ return errorParsers;
+ }
+ else {
+ // If no error parsers are specified by the target, the default is
+ // all error parsers
+ return CCorePlugin.getDefault().getAllErrorParsersIDs();
+ }
+ }
+
+ protected String[] getErrorParserIDs(IProject project) {
+ ITarget target = ManagedBuildManager.getSelectedTarget(project);
+ if (target == null) {
+ // This case occurs when modifying the properties of an existing
+ // managed build project, and the user selects the error parsers
+ // page before the "C/C++ Build" page.
+
+ // Get the build information
+ IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(project, true);
+ target = info.getDefaultTarget();
+ }
+ if (target != null) {
+ return getErrorParserIDs(target);
+ } else {
+ return CCorePlugin.getDefault().getAllErrorParsersIDs();
+ }
+ }
+
+ protected String[] getErrorParserIDs() {
+ // Get the currently selected target from the page's container
+ // This is invoked by the managed builder new project wizard before the
+ // project is created.
+ ICOptionContainer container = getContainer();
+ if (container instanceof NewManagedProjectOptionPage) {
+ NewManagedProjectOptionPage parent = (NewManagedProjectOptionPage)getContainer();
+ NewManagedProjectWizard wizard = (NewManagedProjectWizard)parent.getWizard();
+ ITarget target = wizard.getSelectedTarget();
+ return getErrorParserIDs(target);
+ }
+ return CCorePlugin.getDefault().getAllErrorParsersIDs();
+ }
+
+ public void saveErrorParsers(IProject project, String[] parsers) {
+ ITarget target = ManagedBuildManager.getSelectedTarget(project);
+ if (target != null) {
+ StringBuffer buf = new StringBuffer();
+ for (int i = 0; i < parsers.length; i++) {
+ if (i > 0) buf.append(';');
+ buf.append(parsers[i]);
+ }
+ target.setErrorParserIds(buf.toString());
+ }
+ }
+}
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/ManagedBuilderUIPlugin.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/ManagedBuilderUIPlugin.java
index 4e9d550841..93a6d5a22a 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/ManagedBuilderUIPlugin.java
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/ManagedBuilderUIPlugin.java
@@ -12,11 +12,18 @@ package org.eclipse.cdt.managedbuilder.internal.ui;
* **********************************************************************/
import java.text.MessageFormat;
+import java.lang.reflect.InvocationTargetException;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IPluginDescriptor;
import org.eclipse.core.runtime.Plugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.dialogs.ErrorDialog;
+import org.eclipse.swt.widgets.Shell;
public class ManagedBuilderUIPlugin extends Plugin {
@@ -76,4 +83,38 @@ public class ManagedBuilderUIPlugin extends Plugin {
return getDefault().getDescriptor().getUniqueIdentifier();
}
+ public static void log(IStatus status) {
+ ResourcesPlugin.getPlugin().getLog().log(status);
+ }
+
+ public static void log(Throwable e) {
+ if (e instanceof InvocationTargetException)
+ e = ((InvocationTargetException) e).getTargetException();
+ IStatus status = null;
+ if (e instanceof CoreException)
+ status = ((CoreException) e).getStatus();
+ else
+ status = new Status(IStatus.ERROR, getUniqueIdentifier(), IStatus.OK, e.getMessage(), e);
+ log(status);
+ }
+
+ /**
+ * Utility method with conventions
+ */
+ public static void errorDialog(Shell shell, String title, String message, Throwable t) {
+ log(t);
+ IStatus status;
+ if (t instanceof CoreException) {
+ status = ((CoreException) t).getStatus();
+ // if the 'message' resource string and the IStatus' message are the same,
+ // don't show both in the dialog
+ if (status != null && message.equals(status.getMessage())) {
+ message = null;
+ }
+ } else {
+ status = new Status(IStatus.ERROR, ManagedBuilderUIPlugin.getUniqueIdentifier(), -1, "Internal Error: ", t); //$NON-NLS-1$
+ }
+ ErrorDialog.openError(shell, title, message, status);
+ }
+
}
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/ManagedProjectOptionBlock.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/ManagedProjectOptionBlock.java
index ed3feeaccc..0c6a61694e 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/ManagedProjectOptionBlock.java
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/ManagedProjectOptionBlock.java
@@ -16,20 +16,25 @@ import org.eclipse.cdt.ui.dialogs.TabFolderOptionBlock;
public class ManagedProjectOptionBlock extends TabFolderOptionBlock {
+ ErrorParserBlock errParserBlock;
+
/**
* @param parent
*/
public ManagedProjectOptionBlock(ICOptionContainer parent) {
super(parent);
- // TODO Auto-generated constructor stub
}
/* (non-Javadoc)
* @see org.eclipse.cdt.ui.dialogs.TabFolderOptionBlock#addTabs()
*/
protected void addTabs() {
- // TODO Auto-generated method stub
-
+ errParserBlock = new ErrorParserBlock();
+ addTab(errParserBlock);
}
+ public ErrorParserBlock getErrorParserBlock() {
+ return errParserBlock;
+ }
+
}
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/PluginResources.properties b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/PluginResources.properties
index eecfa04b9f..808c14d2fd 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/PluginResources.properties
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/internal/ui/PluginResources.properties
@@ -113,5 +113,6 @@ FileListControl.deletedialog.title=Confirm Delete
FileListControl.editdialog.title=Edit Dialog
FileListControl.newdialog.title=New Dialog
-
-
+# ----------- Property Page ----------
+MngMakeProjectPropertyPage.closedproject=Project Closed
+MngMakeProjectPropertyPage.internalError=An Internal error has occur please check error log.
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildPropertyPage.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildPropertyPage.java
index 4ebc143e28..7b9e69d8f2 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildPropertyPage.java
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/BuildPropertyPage.java
@@ -171,6 +171,8 @@ public class BuildPropertyPage extends PropertyPage implements IWorkbenchPropert
protected Control createContents(Composite parent) {
// Initialize the key data
targets = ManagedBuildManager.getTargets(getProject());
+ IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(getProject(), true);
+ ITarget defaultTarget = info.getDefaultTarget();
// Create the container we return to the property page editor
Composite composite = ControlFactory.createComposite(parent, 1);
@@ -188,7 +190,7 @@ public class BuildPropertyPage extends PropertyPage implements IWorkbenchPropert
configGroup.setLayout(form);
Label platformLabel = ControlFactory.createLabel(configGroup, ManagedBuilderUIPlugin.getResourceString(PLATFORM_LABEL));
- targetSelector = ControlFactory.createSelectCombo(configGroup, getPlatformNames(), null);
+ targetSelector = ControlFactory.createSelectCombo(configGroup, getPlatformNames(), defaultTarget.getName());
targetSelector.addListener(SWT.Selection, new Listener () {
public void handleEvent(Event e) {
handleTargetSelection();
@@ -489,6 +491,13 @@ public class BuildPropertyPage extends PropertyPage implements IWorkbenchPropert
/* (non-Javadoc)
* @return
*/
+ public ITarget getSelectedTarget() {
+ return selectedTarget;
+ }
+
+ /* (non-Javadoc)
+ * @return
+ */
protected IConfiguration getSelectedConfiguration() {
return selectedConfiguration;
}
@@ -683,6 +692,7 @@ public class BuildPropertyPage extends PropertyPage implements IWorkbenchPropert
// Cache the platform at the selection index
selectedTarget = targets[targetSelector.getSelectionIndex()];
+ ManagedBuildManager.setSelectedTarget(getProject(), selectedTarget);
// Update the contents of the configuration widget
populateConfigurations();
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ManagedBuilderPropertyPage.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ManagedBuilderPropertyPage.java
new file mode 100644
index 0000000000..1aee14e922
--- /dev/null
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/ManagedBuilderPropertyPage.java
@@ -0,0 +1,173 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2003 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ * Intel Corp - use in Managed Make system
+ *******************************************************************************/
+package org.eclipse.cdt.managedbuilder.ui.properties;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.cdt.managedbuilder.internal.ui.ManagedProjectOptionBlock;
+import org.eclipse.cdt.managedbuilder.internal.ui.ManagedBuilderUIPlugin;
+import org.eclipse.cdt.managedbuilder.internal.ui.ErrorParserBlock;
+import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
+import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
+import org.eclipse.cdt.managedbuilder.core.ITarget;
+import org.eclipse.cdt.ui.dialogs.ICOptionContainer;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Preferences;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.preference.IPreferencePageContainer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation;
+import org.eclipse.ui.dialogs.PropertyPage;
+
+public class ManagedBuilderPropertyPage extends PropertyPage implements ICOptionContainer {
+
+ protected ManagedProjectOptionBlock fOptionBlock;
+ protected ITarget displayedTarget;
+
+ private static final String MSG_CLOSEDPROJECT = "MngMakeProjectPropertyPage.closedproject"; //$NON-NLS-1$
+
+ public ManagedBuilderPropertyPage() {
+ super();
+ }
+
+ public void setContainer(IPreferencePageContainer preferencePageContainer) {
+ super.setContainer(preferencePageContainer);
+ if (fOptionBlock == null) {
+ fOptionBlock = new ManagedProjectOptionBlock(this);
+ }
+ }
+
+ protected Control createContents(Composite parent) {
+ Composite composite = new Composite(parent, SWT.NONE);
+ composite.setLayout(new FillLayout());
+
+ IProject project = getProject();
+ if (!project.isOpen()) {
+ contentForClosedProject(composite);
+ } else {
+ contentForCProject(composite);
+ }
+
+ return composite;
+ }
+
+ private void contentForCProject(Composite parent) {
+ fOptionBlock.createContents(parent);
+ // WorkbenchHelp.setHelp(parent, ICMakeHelpContextIds.PROJECT_PROPERTY_PAGE);
+ }
+
+ private void contentForClosedProject(Composite parent) {
+ Label label = new Label(parent, SWT.LEFT);
+ label.setText(ManagedBuilderUIPlugin.getResourceString(MSG_CLOSEDPROJECT));
+ label.setFont(parent.getFont());
+
+ noDefaultAndApplyButton();
+ }
+
+ /**
+ * @see PreferencePage#performOk
+ */
+ public boolean performOk() {
+ IRunnableWithProgress runnable = new IRunnableWithProgress() {
+ public void run(IProgressMonitor monitor) {
+ fOptionBlock.performApply(monitor);
+ }
+ };
+
+ // If the user did not come to this page when the current selected target
+ // was the selected target, then there is nothing to do. The page was either
+ // never visited, or was visited for another target.
+ ITarget target = getSelectedTarget();
+ if (target != displayedTarget) return true;
+
+ IRunnableWithProgress op = new WorkspaceModifyDelegatingOperation(runnable);
+ try {
+ new ProgressMonitorDialog(getShell()).run(false, true, op);
+ } catch (InvocationTargetException e) {
+ Throwable e1 = e.getTargetException();
+ ManagedBuilderUIPlugin.errorDialog(getShell(), ManagedBuilderUIPlugin.getResourceString("ManagedProjectPropertyPage.internalError"),e1.toString(), e1); //$NON-NLS-1$
+ return false;
+ } catch (InterruptedException e) {
+ // cancelled
+ return false;
+ }
+
+ // Write out the build model info
+ IProject project = getProject();
+ ManagedBuildManager.saveBuildInfo(project, false);
+ return true;
+ }
+
+ public IProject getProject() {
+ Object element = getElement();
+ if (element instanceof IProject) {
+ return (IProject) element;
+ }
+ return null;
+ }
+
+ /**
+ * @see DialogPage#setVisible(boolean)
+ */
+ public void setVisible(boolean visible) {
+ super.setVisible(visible);
+ fOptionBlock.setVisible(visible);
+ if (visible) {
+ ErrorParserBlock errorParsers = fOptionBlock.getErrorParserBlock();
+ errorParsers.updateValues();
+ displayedTarget = getSelectedTarget();
+ }
+ }
+
+ protected ITarget getSelectedTarget() {
+ // If the selected target is not yet set, set it to the default target
+ // The selected target is needed for saving error parser information
+ IProject project = getProject();
+ ITarget target = ManagedBuildManager.getSelectedTarget(project);
+ if (target == null) {
+ IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(project, true);
+ target = info.getDefaultTarget();
+ ManagedBuildManager.setSelectedTarget(project, target);
+ }
+ return target;
+ }
+
+ public void updateContainer() {
+ fOptionBlock.update();
+ setValid(fOptionBlock.isValid());
+ setErrorMessage(fOptionBlock.getErrorMessage());
+ }
+
+ protected void performDefaults() {
+ fOptionBlock.performDefaults();
+ super.performDefaults();
+ }
+
+ public boolean isValid() {
+ updateContainer();
+ return super.isValid();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.ui.dialogs.ICOptionContainer#getPreferences()
+ */
+ public Preferences getPreferences() {
+ return null;
+ }
+
+}
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/CProjectPlatformPage.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/CProjectPlatformPage.java
index 4d8a8bd566..29e9384a7e 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/CProjectPlatformPage.java
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/CProjectPlatformPage.java
@@ -23,6 +23,7 @@ import org.eclipse.cdt.managedbuilder.internal.ui.ManagedBuilderHelpContextIds;
import org.eclipse.cdt.managedbuilder.internal.ui.ManagedBuilderUIPlugin;
import org.eclipse.cdt.utils.ui.controls.ControlFactory;
import org.eclipse.core.boot.BootLoader;
+import org.eclipse.core.resources.IProject;
import org.eclipse.jface.viewers.CheckboxTableViewer;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.SelectionChangedEvent;
@@ -37,6 +38,7 @@ import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Table;
import org.eclipse.ui.help.WorkbenchHelp;
+import org.eclipse.cdt.ui.wizards.NewCProjectWizard;
public class CProjectPlatformPage extends WizardPage {
/*
@@ -46,6 +48,7 @@ public class CProjectPlatformPage extends WizardPage {
protected ITarget selectedTarget;
protected String[] targetNames;
protected ArrayList targets;
+ protected NewManagedProjectWizard parentWizard;
/*
* Dialog variables and string constants
@@ -61,15 +64,16 @@ public class CProjectPlatformPage extends WizardPage {
/**
* Constructor.
- * @param wizard
* @param pageName
+ * @param wizard
*/
- public CProjectPlatformPage(String pageName) {
+ public CProjectPlatformPage(String pageName, NewManagedProjectWizard parentWizard) {
super(pageName);
setPageComplete(false);
populateTargets();
selectedTarget = null;
selectedConfigurations = new ArrayList(0);
+ this.parentWizard = parentWizard;
}
/**
@@ -174,7 +178,10 @@ public class CProjectPlatformPage extends WizardPage {
int index;
if (platformSelection != null
&& (index = platformSelection.getSelectionIndex()) != -1) {
- selectedTarget = (ITarget) targets.get(index);
+ if (selectedTarget != (ITarget) targets.get(index)) {
+ selectedTarget = (ITarget) targets.get(index);
+ parentWizard.updateTargetProperties();
+ }
}
populateConfigurations();
setPageComplete(validatePage());
@@ -226,4 +233,11 @@ public class CProjectPlatformPage extends WizardPage {
// TODO Auto-generated method stub
return true;
}
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.ui.dialogs.ICOptionContainer#getProject()
+ */
+ public IProject getProject() {
+ return ((NewCProjectWizard)getWizard()).getNewProject();
+ }
}
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/NewManagedProjectOptionPage.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/NewManagedProjectOptionPage.java
index 11a21b25bb..f89b3d85be 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/NewManagedProjectOptionPage.java
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/NewManagedProjectOptionPage.java
@@ -13,7 +13,7 @@ package org.eclipse.cdt.managedbuilder.ui.wizards;
import org.eclipse.cdt.managedbuilder.internal.ui.ManagedBuilderUIPlugin;
import org.eclipse.cdt.managedbuilder.internal.ui.ManagedProjectOptionBlock;
-import org.eclipse.cdt.ui.dialogs.ICOptionContainer;
+import org.eclipse.cdt.managedbuilder.internal.ui.ErrorParserBlock;
import org.eclipse.cdt.ui.dialogs.ReferenceBlock;
import org.eclipse.cdt.ui.dialogs.TabFolderOptionBlock;
import org.eclipse.cdt.ui.wizards.NewCProjectWizard;
@@ -24,28 +24,49 @@ import org.eclipse.core.runtime.Preferences;
public class NewManagedProjectOptionPage extends NewCProjectWizardOptionPage {
public class ManagedWizardOptionBlock extends ManagedProjectOptionBlock {
+
+ NewManagedProjectOptionPage parent;
+ ErrorParserBlock errorParsers;
- public ManagedWizardOptionBlock(ICOptionContainer parent) {
- super(parent);
+ public ManagedWizardOptionBlock(NewManagedProjectOptionPage parentPage) {
+ super(parentPage);
+ parent = parentPage;
+ }
+
+ public void updateTargetProperties() {
+ // Update the error parser list
+ if (errorParsers != null) {
+ errorParsers.updateValues();
+ }
}
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.ui.dialogs.TabFolderOptionBlock#addTabs()
+ */
protected void addTabs() {
addTab(new ReferenceBlock());
+ errorParsers = new ErrorParserBlock();
+ addTab(errorParsers);
}
}
+
+ protected ManagedWizardOptionBlock optionBlock;
+ protected NewManagedProjectWizard parentWizard;
/**
* @param pageName
*/
- public NewManagedProjectOptionPage(String pageName) {
+ public NewManagedProjectOptionPage(String pageName, NewManagedProjectWizard parentWizard) {
super(pageName);
+ this.parentWizard = parentWizard;
+ optionBlock = new ManagedWizardOptionBlock(this);
}
/* (non-Javadoc)
* @see org.eclipse.cdt.ui.wizards.NewCProjectWizardOptionPage#createOptionBlock()
*/
protected TabFolderOptionBlock createOptionBlock() {
- return new ManagedWizardOptionBlock(this);
+ return optionBlock;
}
/* (non-Javadoc)
@@ -61,5 +82,9 @@ public class NewManagedProjectOptionPage extends NewCProjectWizardOptionPage {
public Preferences getPreferences() {
return ManagedBuilderUIPlugin.getDefault().getPluginPreferences();
}
-
+
+ public void updateTargetProperties() {
+ // Update the error parser list
+ optionBlock.updateTargetProperties();
+ }
}
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/NewManagedProjectWizard.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/NewManagedProjectWizard.java
index 7f2a9d3688..37fde58738 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/NewManagedProjectWizard.java
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/NewManagedProjectWizard.java
@@ -64,17 +64,22 @@ public class NewManagedProjectWizard extends NewCProjectWizard {
super.addPages();
// Add the configuration selection page
- targetConfigurationPage = new CProjectPlatformPage(PREFIX);
+ targetConfigurationPage = new CProjectPlatformPage(PREFIX, this);
targetConfigurationPage.setTitle(ManagedBuilderUIPlugin.getResourceString(CONF_TITLE));
targetConfigurationPage.setDescription(ManagedBuilderUIPlugin.getResourceString(CONF_DESC));
addPage(targetConfigurationPage);
// Add the options (tabbed) page
- optionPage = new NewManagedProjectOptionPage(PREFIX);
+ optionPage = new NewManagedProjectOptionPage(PREFIX, this);
optionPage.setTitle(ManagedBuilderUIPlugin.getResourceString(OPTIONS_TITLE));
optionPage.setDescription(ManagedBuilderUIPlugin.getResourceString(OPTIONS_DESC));
addPage(optionPage);
}
+
+ public void updateTargetProperties() {
+ // Update the error parser list
+ optionPage.updateTargetProperties();
+ }
protected void doRun(IProgressMonitor monitor) throws CoreException {
if (monitor == null) {
@@ -98,11 +103,6 @@ public class NewManagedProjectWizard extends NewCProjectWizard {
} catch (CoreException e) {
// Bail out of the project creation
}
-
- // Modify the project settings
- if (newProject != null) {
- optionPage.performApply(new SubProgressMonitor(monitor, 2));
- }
// Add the target to the project
ITarget newTarget = null;
@@ -128,6 +128,7 @@ public class NewManagedProjectWizard extends NewCProjectWizard {
if (newConfigs.length > 0) {
ManagedBuildManager.setDefaultConfiguration(newProject, newConfigs[0]);
}
+ ManagedBuildManager.setSelectedTarget(newProject, newTarget);
}
} catch (BuildException e) {
// TODO Flag the error to the user
@@ -145,6 +146,11 @@ public class NewManagedProjectWizard extends NewCProjectWizard {
} catch (CoreException e) {
// TODO Flag the error to the user
}
+
+ // Modify the project settings
+ if (newProject != null) {
+ optionPage.performApply(new SubProgressMonitor(monitor, 2));
+ }
// Save the build options
monitor.subTask(ManagedBuilderUIPlugin.getResourceString(MSG_SAVE));
@@ -175,5 +181,9 @@ public class NewManagedProjectWizard extends NewCProjectWizard {
return "org.eclipse.cdt.make.core.make"; //$NON-NLS-1$
// return ManagedBuilderCorePlugin.getUniqueIdentifier() + ".make"; //$NON-NLS-1$
}
+
+ public ITarget getSelectedTarget() {
+ return targetConfigurationPage.getSelectedTarget();
+ }
}

Back to the top