diff options
5 files changed, 29 insertions, 7 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/AndroidXmlEditor.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/AndroidXmlEditor.java index 0873d37..6415110 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/AndroidXmlEditor.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/AndroidXmlEditor.java @@ -137,7 +137,7 @@ public abstract class AndroidXmlEditor extends FormEditor implements IResourceCh * so the document listeners can use this flag to skip updating the model when edits * are observed during a formatting operation */ - protected boolean mIgnoreXmlUpdate; + private boolean mIgnoreXmlUpdate; /** * Flag indicating we're inside {@link #wrapEditXmlModel(Runnable)}. @@ -232,9 +232,7 @@ public abstract class AndroidXmlEditor extends FormEditor implements IResourceCh * * @param xml_doc The XML document, if available, or null if none exists. */ - protected void xmlModelChanged(Document xml_doc) { - // pass - } + abstract protected void xmlModelChanged(Document xml_doc); /** * Controls whether XML models are ignored or not. diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/common/CommonXmlDelegate.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/common/CommonXmlDelegate.java index bcf9021..36e51e7 100755 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/common/CommonXmlDelegate.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/common/CommonXmlDelegate.java @@ -189,4 +189,14 @@ public abstract class CommonXmlDelegate { public IContentAssistProcessor getAndroidContentAssistProcessor() { return mContentAssist; } + + /** + * Does this editor participate in the "format GUI editor changes" option? + * + * @return false since editors do not support automatically formatting XML + * affected by GUI changes unless they explicitly opt in to it. + */ + public boolean supportsFormatOnGuiEdit() { + return false; + } } diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/common/CommonXmlEditor.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/common/CommonXmlEditor.java index f23fa20..afc7403 100755 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/common/CommonXmlEditor.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/common/CommonXmlEditor.java @@ -286,7 +286,6 @@ public class CommonXmlEditor extends AndroidXmlEditor implements IShowEditorInpu if (mDelegate != null) { mDelegate.xmlModelChanged(xml_doc); } - super.xmlModelChanged(xml_doc); } @Override @@ -333,6 +332,7 @@ public class CommonXmlEditor extends AndroidXmlEditor implements IShowEditorInpu } } + /* Implements showEditorInput(...) in IShowEditorInput */ @Override public void showEditorInput(IEditorInput editorInput) { if (mDelegate instanceof LayoutEditorDelegate) { @@ -340,6 +340,14 @@ public class CommonXmlEditor extends AndroidXmlEditor implements IShowEditorInpu } } + @Override + public boolean supportsFormatOnGuiEdit() { + if (mDelegate != null) { + return mDelegate.supportsFormatOnGuiEdit(); + } + return super.supportsFormatOnGuiEdit(); + } + // -------------------- // Base methods exposed so that XmlEditorDelegate can access them diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/LayoutEditorDelegate.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/LayoutEditorDelegate.java index ff77d09..cae0259 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/LayoutEditorDelegate.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/LayoutEditorDelegate.java @@ -183,6 +183,7 @@ public class LayoutEditorDelegate extends CommonXmlDelegate super.dispose(); if (mGraphicalEditor != null) { mGraphicalEditor.dispose(); + mGraphicalEditor = null; } getEditor().getSite().getPage().removePartListener(this); } @@ -362,6 +363,13 @@ public class LayoutEditorDelegate extends CommonXmlDelegate mGraphicalEditor.recomputeLayout(); } + /** + * Does this editor participate in the "format GUI editor changes" option? + * + * @return true since this editor supports automatically formatting XML + * affected by GUI changes + */ + @Override public boolean supportsFormatOnGuiEdit() { return true; } diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/manifest/ManifestEditor.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/manifest/ManifestEditor.java index 92f4d45..e36d988 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/manifest/ManifestEditor.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/manifest/ManifestEditor.java @@ -175,8 +175,6 @@ public final class ManifestEditor extends AndroidXmlEditor { initUiRootNode(false /*force*/); loadFromXml(xml_doc); - - super.xmlModelChanged(xml_doc); } private void loadFromXml(Document xmlDoc) { |