From 18db6609fe6fc47e98769ace65e8b10bd7365ac3 Mon Sep 17 00:00:00 2001 From: Milos Kleint Date: Wed, 20 Jul 2011 17:30:10 +0200 Subject: 352604 fix AOOBE that caused the dirty state of the editor not to be updated in some cases of external change --- .../org/eclipse/m2e/editor/pom/MavenPomEditor.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/org.eclipse.m2e.editor/src/org/eclipse/m2e/editor/pom/MavenPomEditor.java b/org.eclipse.m2e.editor/src/org/eclipse/m2e/editor/pom/MavenPomEditor.java index ebef4b0f..1e554620 100644 --- a/org.eclipse.m2e.editor/src/org/eclipse/m2e/editor/pom/MavenPomEditor.java +++ b/org.eclipse.m2e.editor/src/org/eclipse/m2e/editor/pom/MavenPomEditor.java @@ -139,7 +139,7 @@ public class MavenPomEditor extends FormEditor implements IResourceChangeListene StructuredTextEditor effectivePomSourcePage; - List pages = new ArrayList(); + private List mavenpomEditorPages = new ArrayList(); private Map rootNodes = new HashMap(); @@ -300,7 +300,7 @@ public class MavenPomEditor extends FormEditor implements IResourceChangeListene Display.getDefault().asyncExec(new Runnable() { public void run() { - for(MavenPomEditorPage page : pages) { + for(MavenPomEditorPage page : getMavenPomEditorPages()) { page.setErrorMessage(msg, msg == null ? IMessageProvider.NONE : severity); } } @@ -322,8 +322,11 @@ public class MavenPomEditor extends FormEditor implements IResourceChangeListene public void reload() { int active = getActivePage(); - if (active > -1) { - MavenPomEditorPage page = getPages().get(active); + //this code assumes the MavenPomEditorPages are the first ones in the list.. + //currenty the case, effective+xml editor are at the end.. + //if this constraint changes, we need to find the active page in the super.pages list first and check for instanceof + if (active > -1 && active < getMavenPomEditorPages().size()) { + MavenPomEditorPage page = getMavenPomEditorPages().get(active); page.loadData(); } if(isEffectiveActive()){ @@ -666,7 +669,7 @@ public class MavenPomEditor extends FormEditor implements IResourceChangeListene private int addPomPage(IFormPage page) { try { if(page instanceof MavenPomEditorPage) { - pages.add((MavenPomEditorPage) page); + mavenpomEditorPages.add((MavenPomEditorPage) page); } if (page instanceof IPomFileChangedListener) { fileChangeListeners.add((IPomFileChangedListener) page); @@ -858,8 +861,8 @@ public class MavenPomEditor extends FormEditor implements IResourceChangeListene return sourcePage.isDirty(); } - public List getPages() { - return pages; + public List getMavenPomEditorPages() { + return mavenpomEditorPages; } public void showDependencyHierarchy(ArtifactKey artifactKey) { @@ -1089,7 +1092,7 @@ public class MavenPomEditor extends FormEditor implements IResourceChangeListene if (getContainer() != null && !getContainer().isDisposed()) getContainer().getDisplay().asyncExec(new Runnable() { public void run() { - for (MavenPomEditorPage page : getPages()) { + for (MavenPomEditorPage page : getMavenPomEditorPages()) { page.mavenProjectHasChanged(); } } -- cgit v1.2.3