diff options
author | Markus Keller | 2015-11-02 11:28:16 +0000 |
---|---|---|
committer | Markus Keller | 2015-11-02 11:28:16 +0000 |
commit | a6baa3f82147bb0751b5050bf2eb6c0c23891e78 (patch) | |
tree | 22ff313ffa3f63fd342c08b3e39c7dc330bbb2b4 | |
parent | e72b93fedb0ee392c7cbd9df98e9d836e44cad47 (diff) | |
download | eclipse.platform.text-a6baa3f82147bb0751b5050bf2eb6c0c23891e78.tar.gz eclipse.platform.text-a6baa3f82147bb0751b5050bf2eb6c0c23891e78.tar.xz eclipse.platform.text-a6baa3f82147bb0751b5050bf2eb6c0c23891e78.zip |
Bug 64510: [templates] "Restore Removed" button on template pref page could select restoredI20151103-0800
-rw-r--r-- | org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/templates/TemplatePreferencePage.java | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/templates/TemplatePreferencePage.java b/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/templates/TemplatePreferencePage.java index 80edecc2632..82f382363d9 100644 --- a/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/templates/TemplatePreferencePage.java +++ b/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/templates/TemplatePreferencePage.java @@ -21,6 +21,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; @@ -1300,6 +1301,7 @@ public abstract class TemplatePreferencePage extends PreferencePage implements I return; try { + ArrayList selection= new ArrayList(); TemplateReaderWriter reader= new TemplateReaderWriter(); File file= new File(path); if (file.exists()) { @@ -1309,6 +1311,15 @@ public abstract class TemplatePreferencePage extends PreferencePage implements I for (int i= 0; i < datas.length; i++) { TemplatePersistenceData data= datas[i]; fTemplateStore.add(data); + String id= data.getId(); + if (id == null) { + selection.add(data); + } else { + data= fTemplateStore.getTemplateData(id); + if (data != null) { + selection.add(data); + } + } } } finally { try { @@ -1322,6 +1333,8 @@ public abstract class TemplatePreferencePage extends PreferencePage implements I fTableViewer.refresh(); fTableViewer.setAllChecked(false); fTableViewer.setCheckedElements(getEnabledTemplates()); + fTableViewer.setSelection(new StructuredSelection(selection), true); + selectionChanged1(); } catch (FileNotFoundException e) { openReadErrorDialog(e); @@ -1406,10 +1419,16 @@ public abstract class TemplatePreferencePage extends PreferencePage implements I } private void restoreDeleted() { + TemplatePersistenceData[] oldTemplates= fTemplateStore.getTemplateData(false); fTemplateStore.restoreDeleted(); + TemplatePersistenceData[] newTemplates= fTemplateStore.getTemplateData(false); fTableViewer.refresh(); fTableViewer.setCheckedElements(getEnabledTemplates()); - updateButtons(); + ArrayList selection= new ArrayList(); + selection.addAll(Arrays.asList(newTemplates)); + selection.removeAll(Arrays.asList(oldTemplates)); + fTableViewer.setSelection(new StructuredSelection(selection), true); + selectionChanged1(); } private void revert() { |