1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-07 09:46:02 +02:00

Bug 368552 - Hooked up template wizard pages.

This commit is contained in:
Doug Schaefer 2012-01-27 14:25:44 -05:00
parent 0b6b6c8b99
commit 7585db1990
2 changed files with 46 additions and 3 deletions

View file

@ -18,9 +18,14 @@ import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.Status;
import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.ILabelProviderListener; 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.ITreeContentProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.wizard.IWizard;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.jface.wizard.WizardPage; import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT; import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.Image;
@ -78,10 +83,14 @@ public class TemplateSelectionPage extends WizardPage {
} }
} }
private final Node tree = new Node(null, null); private static Node tree;
private final TemplateEngine2 coreEngine = TemplateEngine2.getDefault(); private final TemplateEngine2 coreEngine = TemplateEngine2.getDefault();
private final TemplateEngineUI uiEngine = TemplateEngineUI.getDefault(); private final TemplateEngineUI uiEngine = TemplateEngineUI.getDefault();
private TreeViewer templateTree;
private IWizardPage[] nextPages;
public TemplateSelectionPage() { public TemplateSelectionPage() {
super("templateSelection"); //$NON-NLS-1$ super("templateSelection"); //$NON-NLS-1$
} }
@ -91,7 +100,7 @@ public class TemplateSelectionPage extends WizardPage {
Composite comp = new Composite(parent, SWT.NONE); Composite comp = new Composite(parent, SWT.NONE);
comp.setLayout(new GridLayout(1, false)); comp.setLayout(new GridLayout(1, false));
TreeViewer templateTree = new TreeViewer(comp); templateTree = new TreeViewer(comp);
templateTree.getTree().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); templateTree.getTree().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
templateTree.setContentProvider(new ITreeContentProvider() { templateTree.setContentProvider(new ITreeContentProvider() {
@Override @Override
@ -165,6 +174,28 @@ public class TemplateSelectionPage extends WizardPage {
return null; return null;
} }
}); });
templateTree.addSelectionChangedListener(new ISelectionChangedListener() {
@Override
public void selectionChanged(SelectionChangedEvent event) {
IStructuredSelection selection = (IStructuredSelection)templateTree.getSelection();
Object selObj = selection.getFirstElement();
if (selObj instanceof Node) {
Object object = ((Node)selObj).getObject();
if (object instanceof Template) {
IWizard wizard = getWizard();
nextPages = ((Template)object).getTemplateWizardPages(TemplateSelectionPage.this,
wizard.getNextPage(TemplateSelectionPage.this), wizard);
setPageComplete(true);
} else {
nextPages = null;
setPageComplete(false);
}
} else {
nextPages = null;
setPageComplete(false);
}
}
});
buildTree(); buildTree();
templateTree.setInput(tree); templateTree.setInput(tree);
@ -176,7 +207,18 @@ public class TemplateSelectionPage extends WizardPage {
return true; return true;
} }
@Override
public IWizardPage getNextPage() {
if (nextPages != null && nextPages.length > 0)
return nextPages[0];
return super.getNextPage();
}
private void buildTree() { private void buildTree() {
if (tree != null)
return;
tree = new Node(null, null);
Template[] templates = uiEngine.getTemplates(); Template[] templates = uiEngine.getTemplates();
for (Template template : templates) { for (Template template : templates) {
List<String> parentCategoryIds = ((TemplateInfo2)template.getTemplateInfo()).getParentCategoryIds(); List<String> parentCategoryIds = ((TemplateInfo2)template.getTemplateInfo()).getParentCategoryIds();

View file

@ -139,7 +139,8 @@ public class Template extends TemplateCore {
e.printStackTrace(); e.printStackTrace();
} }
followingPage.setPreviousPage(predatingPage); if (followingPage != null)
followingPage.setPreviousPage(predatingPage);
return pages.toArray(new IWizardPage[pages.size()]); return pages.toArray(new IWizardPage[pages.size()]);
} }