diff --git a/bundles/org.eclipse.tools.templates.ui/src/org/eclipse/tools/templates/ui/TemplateSelectionPage.java b/bundles/org.eclipse.tools.templates.ui/src/org/eclipse/tools/templates/ui/TemplateSelectionPage.java index 67ba2e84bde..5100b4f3582 100644 --- a/bundles/org.eclipse.tools.templates.ui/src/org/eclipse/tools/templates/ui/TemplateSelectionPage.java +++ b/bundles/org.eclipse.tools.templates.ui/src/org/eclipse/tools/templates/ui/TemplateSelectionPage.java @@ -73,7 +73,11 @@ public class TemplateSelectionPage extends WizardPage { } } + Template selected = templateTable.getSelectedTemplate(); templateTable.setTemplates(selectedTemplates); + templateTable.selectTemplate(selected); + + updateButtons(); } }); @@ -81,8 +85,7 @@ public class TemplateSelectionPage extends WizardPage { templateTable.getTable().addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { - setPageComplete(templateTable.getSelectedTemplate() != null); - getContainer().updateButtons(); + updateButtons(); } @Override @@ -104,6 +107,11 @@ public class TemplateSelectionPage extends WizardPage { form.setWeights(new int[] { 20, 80 }); } + private void updateButtons() { + setPageComplete(templateTable.getSelectedTemplate() != null); + getContainer().updateButtons(); + } + @Override public IWizardPage getNextPage() { Template template = templateTable.getSelectedTemplate(); diff --git a/bundles/org.eclipse.tools.templates.ui/src/org/eclipse/tools/templates/ui/internal/TemplateTable.java b/bundles/org.eclipse.tools.templates.ui/src/org/eclipse/tools/templates/ui/internal/TemplateTable.java index 01013d53c0f..36ca41917ad 100644 --- a/bundles/org.eclipse.tools.templates.ui/src/org/eclipse/tools/templates/ui/internal/TemplateTable.java +++ b/bundles/org.eclipse.tools.templates.ui/src/org/eclipse/tools/templates/ui/internal/TemplateTable.java @@ -76,6 +76,21 @@ public class TemplateTable implements Listener { } } + public void selectTemplate(Template template) { + if (template == null) { + return; + } + + int i = 0; + for (TableItem item : table.getItems()) { + if (template.equals(item.getData())) { + table.select(i); + break; + } + i++; + } + } + @Override public void handleEvent(Event event) { switch (event.type) {