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:
parent
0b6b6c8b99
commit
7585db1990
2 changed files with 46 additions and 3 deletions
|
@ -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();
|
||||||
|
|
|
@ -139,6 +139,7 @@ public class Template extends TemplateCore {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (followingPage != null)
|
||||||
followingPage.setPreviousPage(predatingPage);
|
followingPage.setPreviousPage(predatingPage);
|
||||||
|
|
||||||
return pages.toArray(new IWizardPage[pages.size()]);
|
return pages.toArray(new IWizardPage[pages.size()]);
|
||||||
|
|
Loading…
Add table
Reference in a new issue