Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/AbstractDiscoveryOptionsBlock.java')
-rw-r--r--build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/AbstractDiscoveryOptionsBlock.java132
1 files changed, 117 insertions, 15 deletions
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/AbstractDiscoveryOptionsBlock.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/AbstractDiscoveryOptionsBlock.java
index 9f081d561b3..892a5ff52f7 100644
--- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/AbstractDiscoveryOptionsBlock.java
+++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/dialogs/AbstractDiscoveryOptionsBlock.java
@@ -16,12 +16,18 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import org.eclipse.cdt.make.core.scannerconfig.IScannerConfigBuilderInfo2;
+import org.eclipse.cdt.make.internal.core.scannerconfig2.ScannerConfigProfileManager;
import org.eclipse.cdt.make.internal.ui.MakeUIPlugin;
-import org.eclipse.cdt.ui.dialogs.ICOptionPage;
+import org.eclipse.cdt.make.internal.ui.preferences.TabFolderLayout;
+import org.eclipse.cdt.ui.dialogs.AbstractCOptionPage;
+import org.eclipse.cdt.ui.dialogs.ICOptionContainer;
+import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtensionPoint;
import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Preferences;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.widgets.Composite;
@@ -30,30 +36,64 @@ import org.eclipse.swt.widgets.Composite;
*
* @author vhirsl
*/
-public abstract class AbstractDiscoveryOptionsBlock extends AbstractDiscoveryPage {
+public abstract class AbstractDiscoveryOptionsBlock extends AbstractCOptionPage {
+ private Preferences fPrefs;
+ private IScannerConfigBuilderInfo2 fBuildInfo;
+ private boolean fInitialized = false;
+
private Map fProfilePageMap = null;
// Composite parent provided by the block.
private Composite fCompositeParent;
- private ICOptionPage fCurrentPage;
+ private AbstractDiscoveryPage fCurrentPage;
/**
+ * @return Returns the project.
+ */
+ protected IProject getProject() {
+ return getContainer().getProject();
+ }
+ /**
+ * @return Returns the fPrefs.
+ */
+ protected Preferences getPrefs() {
+ return fPrefs;
+ }
+ /**
+ * @return Returns the fBuildInfo.
+ */
+ protected IScannerConfigBuilderInfo2 getBuildInfo() {
+ return fBuildInfo;
+ }
+ /**
+ * @return Returns the fInitialized.
+ */
+ protected boolean isInitialized() {
+ return fInitialized;
+ }
+ /**
+ * @param initialized The fInitialized to set.
+ */
+ protected void setInitialized(boolean initialized) {
+ fInitialized = initialized;
+ }
+ /**
* Create a profile page only on request
*
* @author vhirsl
*/
protected static class DiscoveryProfilePageConfiguration {
- ICOptionPage page;
+ AbstractDiscoveryPage page;
IConfigurationElement fElement;
public DiscoveryProfilePageConfiguration(IConfigurationElement element) {
fElement = element;
}
- public ICOptionPage getPage() throws CoreException {
+ public AbstractDiscoveryPage getPage() throws CoreException {
if (page == null) {
- page = (ICOptionPage) fElement.createExecutableExtension("class"); //$NON-NLS-1$
+ page = (AbstractDiscoveryPage) fElement.createExecutableExtension("class"); //$NON-NLS-1$
}
return page;
}
@@ -95,13 +135,73 @@ public abstract class AbstractDiscoveryOptionsBlock extends AbstractDiscoveryPag
}
}
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.ui.dialogs.ICOptionPage#setContainer(org.eclipse.cdt.ui.dialogs.ICOptionContainer)
+ */
+ public void setContainer(ICOptionContainer container) {
+ super.setContainer(container);
+
+ fPrefs = getContainer().getPreferences();
+ IProject project = getContainer().getProject();
+
+ fInitialized = true;
+ if (project != null) {
+ try {
+ fBuildInfo = ScannerConfigProfileManager.createScannerConfigBuildInfo2(project);
+ } catch (CoreException e) {
+ // missing builder information (builder disabled or legacy project)
+ fInitialized = false;
+ fBuildInfo = null;
+ }
+ } else {
+ fBuildInfo = ScannerConfigProfileManager.createScannerConfigBuildInfo2(fPrefs, false);
+ }
+ }
+
+ protected void updateContainer() {
+ getContainer().updateContainer();
+ }
+
+ /**
+ * @param project
+ */
+ protected void createBuildInfo() {
+ if (getProject() != null) {
+ try {
+ // get the project properties
+ fBuildInfo = ScannerConfigProfileManager.createScannerConfigBuildInfo2(getProject());
+ }
+ catch (CoreException e) {
+ fBuildInfo = null;
+ }
+ }
+ else {
+ // get the preferences
+ fBuildInfo = ScannerConfigProfileManager.createScannerConfigBuildInfo2(fPrefs, false);
+ }
+ }
+
+ /**
+ * Create build info based on preferences
+ */
+ protected void createDefaultBuildInfo() {
+ // Populate with the default values
+ if (getProject() != null) {
+ // get the preferences
+ fBuildInfo = ScannerConfigProfileManager.createScannerConfigBuildInfo2(fPrefs, false);
+ } else {
+ // get the defaults
+ fBuildInfo = ScannerConfigProfileManager.createScannerConfigBuildInfo2(fPrefs, true);
+ }
+ }
+
protected Composite getCompositeParent() {
return fCompositeParent;
}
protected void setCompositeParent(Composite parent) {
fCompositeParent = parent;
-// fCompositeParent.setLayout(new TabFolderLayout());
+ fCompositeParent.setLayout(new TabFolderLayout());
}
/* (non-Javadoc)
@@ -122,31 +222,32 @@ public abstract class AbstractDiscoveryOptionsBlock extends AbstractDiscoveryPag
return;
}
String profileId = getCurrentProfileId();
- ICOptionPage page = getDiscoveryProfilePage(profileId);
+ AbstractDiscoveryPage page = getDiscoveryProfilePage(profileId);
if (page != null) {
if (page.getControl() == null) {
Composite parent = getCompositeParent();
- page.setContainer(getContainer());
+ page.setContainer(this);
page.createControl(parent);
parent.layout(true);
- } else {
- page.setVisible(false);
+ }
+ if (fCurrentPage != null) {
+ fCurrentPage.setVisible(false);
}
page.setVisible(true);
}
setCurrentPage(page);
}
- protected ICOptionPage getCurrentPage() {
+ protected AbstractDiscoveryPage getCurrentPage() {
return fCurrentPage;
}
- protected void setCurrentPage(ICOptionPage page) {
+ protected void setCurrentPage(AbstractDiscoveryPage page) {
fCurrentPage = page;
}
/* (non-Javadoc)
- * @see org.eclipse.cdt.ui.dialogs.ICOptionPage#isValid()
+ * @see org.eclipse.cdt.ui.dialogs.AbstractDiscoveryPage#isValid()
*/
public boolean isValid() {
return (getCurrentPage() == null) ? true : getCurrentPage().isValid();
@@ -159,7 +260,7 @@ public abstract class AbstractDiscoveryOptionsBlock extends AbstractDiscoveryPag
return getCurrentPage().getErrorMessage();
}
- protected ICOptionPage getDiscoveryProfilePage(String profileId) {
+ protected AbstractDiscoveryPage getDiscoveryProfilePage(String profileId) {
DiscoveryProfilePageConfiguration configElement =
(DiscoveryProfilePageConfiguration) fProfilePageMap.get(profileId);
if (configElement != null) {
@@ -196,4 +297,5 @@ public abstract class AbstractDiscoveryOptionsBlock extends AbstractDiscoveryPag
}
protected abstract String getCurrentProfileId();
+
}

Back to the top