core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/sdk/ui/shared/BuildTargetsPage.java
--- a/core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/sdk/ui/shared/BuildTargetsPage.java Fri Apr 23 09:37:47 2010 -0500
+++ b/core/com.nokia.carbide.cpp.sdk.ui/src/com/nokia/carbide/cpp/sdk/ui/shared/BuildTargetsPage.java Fri Apr 23 11:41:51 2010 -0500
@@ -18,14 +18,24 @@
package com.nokia.carbide.cpp.sdk.ui.shared;
import java.text.MessageFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
+import java.util.Map;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.jface.dialogs.DialogPage;
import org.eclipse.jface.dialogs.IDialogPage;
-import org.eclipse.jface.viewers.*;
+import org.eclipse.jface.viewers.CheckStateChangedEvent;
+import org.eclipse.jface.viewers.ICheckStateListener;
+import org.eclipse.jface.viewers.IFilter;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.TreeNode;
+import org.eclipse.jface.viewers.TreeNodeContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.window.Window;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
@@ -33,9 +43,14 @@
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Link;
+import org.eclipse.swt.widgets.TreeItem;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.dialogs.ContainerCheckedTreeViewer;
+import org.eclipse.ui.dialogs.PreferencesUtil;
import com.nokia.carbide.cpp.internal.api.sdk.ui.TemplateUtils;
import com.nokia.carbide.cpp.internal.sdk.ui.Messages;
@@ -192,20 +207,7 @@
configLabel.setText(Messages.getString("BuildTargetsPage.BuildConfigsLabel")); //$NON-NLS-1$
configLabel.setToolTipText(Messages.getString("BuildTargetsPage.BuildConfigsToolTip")); //$NON-NLS-1$
- viewer = new ContainerCheckedTreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
- viewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
- viewer.setLabelProvider(new LabelProvider());
- TreeNodeContentProvider treeNodeContentProvider = new TreeNodeContentProvider();
- filteringContentProviderWrapper =
- new FilteringContentProviderWrapper(treeNodeContentProvider);
- viewer.setContentProvider(filteringContentProviderWrapper);
- viewer.addCheckStateListener(new ICheckStateListener() {
- public void checkStateChanged(CheckStateChangedEvent event) {
- setPageComplete(validatePage());
- }
- });
- viewer.getControl().setData(UID, "buildConfigsTree"); //$NON-NLS-1$
- viewer.getControl().setData("viewer", viewer); //$NON-NLS-1$
+ drawSDKConfigView(parent);
filterCheckbox = new Button(parent, SWT.CHECK);
filterCheckbox.setText(Messages.getString("BuildTargetsPage.FilterText")); //$NON-NLS-1$
@@ -224,11 +226,54 @@
});
filterCheckbox.setData(UID, "filterCheckbox"); //$NON-NLS-1$
+ Link fLink = new Link(parent, SWT.WRAP);
+ fLink.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ fLink.setText(Messages.getString("BuildTargetsPage.Select_Filtering_Prefs_Link")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ fLink.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 3, 1));
+ fLink.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent e) {
+ // I don't see a way to open it to a specific tab, only the page
+ if (Window.OK == PreferencesUtil.createPreferenceDialogOn(getShell(), "com.nokia.carbide.cpp.sdk.ui.preferences.BuildPlatformFilterPage", null, null, 0).open()){ //$NON-NLS-1$
+ inited = false;
+ setVisible(true);
+ drawSDKConfigView(getControl().getParent());
+ TemplateSDKFilter filter = filterCheckbox.getSelection() ? templateFilter
+ : null;
+ filteringContentProviderWrapper.setFilter(filter);
+ viewer.getTree().clearAll(true);
+ viewer.refresh();
+ setPageComplete(validatePage());
+ }
+ }
+
+ });
+
addOtherControls(parent);
setPageComplete(validatePage());
}
+ private void drawSDKConfigView(Composite parent) {
+
+ if (viewer == null){
+ viewer = new ContainerCheckedTreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
+ viewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
+ viewer.setLabelProvider(new LabelProvider());
+ }
+ TreeNodeContentProvider treeNodeContentProvider = new TreeNodeContentProvider();
+ filteringContentProviderWrapper =
+ new FilteringContentProviderWrapper(treeNodeContentProvider);
+ viewer.setContentProvider(filteringContentProviderWrapper);
+ viewer.addCheckStateListener(new ICheckStateListener() {
+ public void checkStateChanged(CheckStateChangedEvent event) {
+ setPageComplete(validatePage());
+ }
+ });
+ viewer.getControl().setData(UID, "buildConfigsTree"); //$NON-NLS-1$
+ viewer.getControl().setData("viewer", viewer); //$NON-NLS-1$
+
+ }
+
/**
* Add more controls after the tree and filter checkbox. Allows subclasses to add
* more controls.