From 0d3e110b36e23dd0e740c0d7f90657f8550d2706 Mon Sep 17 00:00:00 2001 From: Xavier Ducrohet Date: Wed, 23 Sep 2009 20:33:13 -0700 Subject: [PATCH] Disable clipping toggle when not supported. This is only supported in Eclair+, so the toggle button is disable if the edited file is donut or before. Change-Id: I8bf1f8a8aa3604f269cb226d788c5e1438a5ae0b --- .../editors/layout/GraphicalEditorPart.java | 16 +++++++++++++--- .../editors/layout/GraphicalLayoutEditor.java | 16 ++++++++++++++-- .../editors/layout/IGraphicalLayoutEditor.java | 2 ++ .../internal/editors/layout/LayoutEditor.java | 1 + .../configuration/ConfigurationComposite.java | 17 +++++++++++------ 5 files changed, 41 insertions(+), 11 deletions(-) diff --git a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/GraphicalEditorPart.java b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/GraphicalEditorPart.java index b2534f081..cab6829eb 100755 --- a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/GraphicalEditorPart.java +++ b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/GraphicalEditorPart.java @@ -41,7 +41,6 @@ import com.android.layoutlib.api.ILayoutResult; import com.android.layoutlib.api.IProjectCallback; import com.android.layoutlib.api.IResourceValue; import com.android.layoutlib.api.IXmlPullParser; -import com.android.layoutlib.api.ILayoutResult.ILayoutViewInfo; import com.android.sdklib.IAndroidTarget; import org.eclipse.core.resources.IFile; @@ -76,7 +75,6 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.PrintStream; -import java.util.List; import java.util.Map; /** @@ -484,7 +482,6 @@ public class GraphicalEditorPart extends EditorPart implements IGraphicalLayoutE // to trigger the edit of the new file. res.refreshLocal(IResource.DEPTH_INFINITE, new IProgressMonitor() { public void done() { - mConfigComposite.setConfig(config); mConfigComposite.getDisplay().asyncExec(new Runnable() { public void run() { onConfigurationChange(); @@ -970,6 +967,19 @@ public class GraphicalEditorPart extends EditorPart implements IGraphicalLayoutE } } + public void reloadConfigurationUi() { + // enable the clipping button if it's supported. + Sdk currentSdk = Sdk.getCurrent(); + if (currentSdk != null) { + IAndroidTarget target = currentSdk.getTarget(mEditedFile.getProject()); + AndroidTargetData data = currentSdk.getTargetData(target); + if (data != null) { + LayoutBridge bridge = data.getLayoutBridge(); + mConfigComposite.setClippingSupport(bridge.apiLevel >= 4); + } + } + } + /** * Used by LayoutEditor.UiEditorActions.selectUiNode to select a new UI Node * created by {@link ElementCreateCommand#execute()}. diff --git a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/GraphicalLayoutEditor.java b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/GraphicalLayoutEditor.java index 42c85e12a..1c9cac3cb 100644 --- a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/GraphicalLayoutEditor.java +++ b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/GraphicalLayoutEditor.java @@ -547,6 +547,8 @@ public class GraphicalLayoutEditor extends GraphicalEditorWithPalette // enable the create button if the current and edited config are not equals mConfigComposite.setEnabledCreate( mEditedConfig.equals(mConfigComposite.getCurrentConfig()) == false); + + reloadConfigurationUi(); } public Rectangle getBounds() { @@ -728,7 +730,18 @@ public class GraphicalLayoutEditor extends GraphicalEditorWithPalette PaletteFactory.createPaletteRoot(mPaletteRoot, mLayoutEditor.getTargetData()); } - + public void reloadConfigurationUi() { + // enable the clipping button if it's supported. + Sdk currentSdk = Sdk.getCurrent(); + if (currentSdk != null) { + IAndroidTarget target = currentSdk.getTarget(mEditedFile.getProject()); + AndroidTargetData data = currentSdk.getTargetData(target); + if (data != null) { + LayoutBridge bridge = data.getLayoutBridge(); + mConfigComposite.setClippingSupport(bridge.apiLevel >= 4); + } + } + } /** * Looks for a file matching the new {@link FolderConfiguration} and attempts to open it. @@ -1231,7 +1244,6 @@ public class GraphicalLayoutEditor extends GraphicalEditorWithPalette // to trigger the edit of the new file. res.refreshLocal(IResource.DEPTH_INFINITE, new IProgressMonitor() { public void done() { - mConfigComposite.setConfig(config); mParent.getDisplay().asyncExec(new Runnable() { public void run() { onConfigurationChange(); diff --git a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/IGraphicalLayoutEditor.java b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/IGraphicalLayoutEditor.java index 4c9c7142a..664edcb5f 100755 --- a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/IGraphicalLayoutEditor.java +++ b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/IGraphicalLayoutEditor.java @@ -82,4 +82,6 @@ import org.eclipse.ui.IEditorPart; abstract Clipboard getClipboard(); + abstract void reloadConfigurationUi(); + } diff --git a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/LayoutEditor.java b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/LayoutEditor.java index caa9658d6..ca11fc7bb 100644 --- a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/LayoutEditor.java +++ b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/LayoutEditor.java @@ -410,6 +410,7 @@ public class LayoutEditor extends AndroidEditor implements IShowEditorInput, IPa if (mGraphicalEditor != null) { mGraphicalEditor.reloadEditor(); mGraphicalEditor.reloadPalette(); + mGraphicalEditor.reloadConfigurationUi(); mGraphicalEditor.recomputeLayout(); } } diff --git a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/ConfigurationComposite.java b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/ConfigurationComposite.java index 52d1923e9..fe98ee81a 100644 --- a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/ConfigurationComposite.java +++ b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/ConfigurationComposite.java @@ -227,11 +227,6 @@ public class ConfigurationComposite extends Composite { onDeviceConfigChange(); } - public void setConfig(FolderConfiguration config) { -// mCurrentConfig.set(config); - throw new UnsupportedOperationException("setConfig"); - } - public FolderConfiguration getCurrentConfig() { return mCurrentConfig; } @@ -429,6 +424,17 @@ public class ConfigurationComposite extends Composite { mCreateButton.setEnabled(enabled); } + public void setClippingSupport(boolean b) { + mClippingButton.setEnabled(b); + if (b) { + mClippingButton.setToolTipText("Toggles screen clipping on/off"); + } else { + mClipping = true; + mClippingButton.setSelection(true); + mClippingButton.setToolTipText("Non clipped rendering is not supported"); + } + } + /** * Update the UI controls state with a given {@link FolderConfiguration}. *

If force is set to true the UI will be changed to exactly reflect @@ -596,5 +602,4 @@ public class ConfigurationComposite extends Composite { return false; } - }