aboutsummaryrefslogtreecommitdiffstats
path: root/eclipse
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2012-11-28 16:38:50 -0800
committerXavier Ducrohet <xav@android.com>2012-11-29 12:56:09 -0800
commitd09b8a2d6ce570cc81ec6678b07f40541f4657f4 (patch)
tree08de690cd224142213c60321419dabd699ad97a9 /eclipse
parent79a4aff85957ef993e46dbbbe1f1ae0bab632d90 (diff)
downloadsdk-d09b8a2d6ce570cc81ec6678b07f40541f4657f4.zip
sdk-d09b8a2d6ce570cc81ec6678b07f40541f4657f4.tar.gz
sdk-d09b8a2d6ce570cc81ec6678b07f40541f4657f4.tar.bz2
Add support for layout dir qualifiers.
Change-Id: I6da728d079975fa19f1ae816fa585031a9c6fe75
Diffstat (limited to 'eclipse')
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/icons/bidi.pngbin0 -> 162 bytes
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/ResourceHelper.java2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/ui/ConfigurationSelector.java63
3 files changed, 65 insertions, 0 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/icons/bidi.png b/eclipse/plugins/com.android.ide.eclipse.adt/icons/bidi.png
new file mode 100644
index 0000000..4ffe131
--- /dev/null
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/icons/bidi.png
Binary files differ
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/ResourceHelper.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/ResourceHelper.java
index 6b09b34..9695318 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/ResourceHelper.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/ResourceHelper.java
@@ -40,6 +40,7 @@ import com.android.ide.common.resources.configuration.DensityQualifier;
import com.android.ide.common.resources.configuration.FolderConfiguration;
import com.android.ide.common.resources.configuration.KeyboardStateQualifier;
import com.android.ide.common.resources.configuration.LanguageQualifier;
+import com.android.ide.common.resources.configuration.LayoutDirectionQualifier;
import com.android.ide.common.resources.configuration.NavigationMethodQualifier;
import com.android.ide.common.resources.configuration.NavigationStateQualifier;
import com.android.ide.common.resources.configuration.NetworkCodeQualifier;
@@ -127,6 +128,7 @@ public class ResourceHelper {
sIconMap.put(NetworkCodeQualifier.class, factory.getIcon("mnc")); //$NON-NLS-1$
sIconMap.put(LanguageQualifier.class, factory.getIcon("language")); //$NON-NLS-1$
sIconMap.put(RegionQualifier.class, factory.getIcon("region")); //$NON-NLS-1$
+ sIconMap.put(LayoutDirectionQualifier.class, factory.getIcon("bidi")); //$NON-NLS-1$
sIconMap.put(ScreenSizeQualifier.class, factory.getIcon("size")); //$NON-NLS-1$
sIconMap.put(ScreenRatioQualifier.class, factory.getIcon("ratio")); //$NON-NLS-1$
sIconMap.put(ScreenOrientationQualifier.class, factory.getIcon("orientation")); //$NON-NLS-1$
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/ui/ConfigurationSelector.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/ui/ConfigurationSelector.java
index ce36457..15453fb 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/ui/ConfigurationSelector.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/ui/ConfigurationSelector.java
@@ -22,6 +22,7 @@ import com.android.ide.common.resources.configuration.DensityQualifier;
import com.android.ide.common.resources.configuration.FolderConfiguration;
import com.android.ide.common.resources.configuration.KeyboardStateQualifier;
import com.android.ide.common.resources.configuration.LanguageQualifier;
+import com.android.ide.common.resources.configuration.LayoutDirectionQualifier;
import com.android.ide.common.resources.configuration.NavigationMethodQualifier;
import com.android.ide.common.resources.configuration.NavigationStateQualifier;
import com.android.ide.common.resources.configuration.NetworkCodeQualifier;
@@ -44,6 +45,7 @@ import com.android.ide.eclipse.adt.internal.resources.ResourceHelper;
import com.android.resources.Density;
import com.android.resources.Keyboard;
import com.android.resources.KeyboardState;
+import com.android.resources.LayoutDirection;
import com.android.resources.Navigation;
import com.android.resources.NavigationState;
import com.android.resources.NightMode;
@@ -433,6 +435,8 @@ public class ConfigurationSelector extends Composite {
mUiMap.put(NetworkCodeQualifier.class, new MNCEdit(mQualifierEditParent));
mUiMap.put(LanguageQualifier.class, new LanguageEdit(mQualifierEditParent));
mUiMap.put(RegionQualifier.class, new RegionEdit(mQualifierEditParent));
+ mUiMap.put(LayoutDirectionQualifier.class,
+ new LayoutDirectionEdit(mQualifierEditParent));
mUiMap.put(SmallestScreenWidthQualifier.class,
new SmallestScreenWidthEdit(mQualifierEditParent));
mUiMap.put(ScreenWidthQualifier.class, new ScreenWidthEdit(mQualifierEditParent));
@@ -1017,6 +1021,65 @@ public class ConfigurationSelector extends Composite {
}
/**
+ * Edit widget for {@link LayoutDirectionQualifier}.
+ */
+ private class LayoutDirectionEdit extends QualifierEditBase {
+
+ private Combo mDirection;
+
+ public LayoutDirectionEdit(Composite parent) {
+ super(parent, LayoutDirectionQualifier.NAME);
+
+ mDirection = new Combo(this, SWT.DROP_DOWN | SWT.READ_ONLY);
+ fillCombo(mDirection, LayoutDirection.values());
+
+ mDirection.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ mDirection.addSelectionListener(new SelectionListener() {
+ @Override
+ public void widgetDefaultSelected(SelectionEvent e) {
+ onDirectionChange();
+ }
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ onDirectionChange();
+ }
+ });
+ }
+
+ protected void onDirectionChange() {
+ // update the current config
+ int index = mDirection.getSelectionIndex();
+
+ if (index != -1) {
+ mSelectedConfiguration.setLayoutDirectionQualifier(new LayoutDirectionQualifier(
+ LayoutDirection.getByIndex(index)));
+ } else {
+ // empty selection, means no qualifier.
+ // Since the qualifier classes are immutable, and we don't want to
+ // remove the qualifier from the configuration, we create a new default one.
+ mSelectedConfiguration.setLayoutDirectionQualifier(
+ new LayoutDirectionQualifier());
+ }
+
+ // notify of change
+ onChange(true /* keepSelection */);
+ }
+
+ @Override
+ public void setQualifier(ResourceQualifier qualifier) {
+ LayoutDirectionQualifier q = (LayoutDirectionQualifier)qualifier;
+
+ LayoutDirection value = q.getValue();
+ if (value == null) {
+ mDirection.clearSelection();
+ } else {
+ mDirection.select(LayoutDirection.getIndex(value));
+ }
+ }
+ }
+
+
+ /**
* Edit widget for {@link SmallestScreenWidthQualifier}.
*/
private class SmallestScreenWidthEdit extends QualifierEditBase {