ADT: Fix some potential NPE in the configuration composite.

This is just based on Eclipse static analysis of potential null pointers.
It doesn't mean we were ever going to have any NPE there.

Change-Id: I2a326048d2eb6afff7598f9300f48e35495ff3c2
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 9e67be4..4ed96ae 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
@@ -57,6 +57,9 @@
 import java.util.Set;
 import java.util.SortedSet;
 
+/**
+ * A composite that displays the current configuration displayed in a Graphical Layout Editor.
+ */
 public class ConfigurationComposite extends Composite {
 
     private final static String THEME_SEPARATOR = "----------"; //$NON-NLS-1$
@@ -90,6 +93,12 @@
 
     private final IConfigListener mListener;
 
+    /**
+     * Interface implemented by the part which owns a {@link ConfigurationComposite}.
+     * This notifies the owners when the configuration change.
+     * The owner must also provide methods to provide the configuration that will
+     * be displayed.
+     */
     public interface IConfigListener {
         void onConfigurationChange();
         void onThemeChange();
@@ -386,7 +395,7 @@
         mLocale.add("Default");
         mLocaleList.add(new ResourceQualifier[] { null, null });
 
-        if (languages != null && languages.size() > 0) {
+        if (project != null && languages != null && languages.size() > 0) {
             for (String language : languages) {
                 // first the language alone
                 mLocale.add(language);
@@ -402,7 +411,6 @@
                 }
 
             }
-        } else {
         }
 
         mDisableUpdates = false;
@@ -701,14 +709,16 @@
                 }
             }
 
-            if (frameworkStyle) {
-                // if the parent is a framework style, it has to be 'Theme' or 'Theme.*'
-                return parentStyle.equals("Theme") || parentStyle.startsWith("Theme.");
-            } else {
-                // if it's a project style, we check this is a theme.
-                value = styleMap.get(parentStyle);
-                if (value != null) {
-                    return isTheme(value, styleMap);
+            if (parentStyle != null) {
+                if (frameworkStyle) {
+                    // if the parent is a framework style, it has to be 'Theme' or 'Theme.*'
+                    return parentStyle.equals("Theme") || parentStyle.startsWith("Theme.");
+                } else {
+                    // if it's a project style, we check this is a theme.
+                    value = styleMap.get(parentStyle);
+                    if (value != null) {
+                        return isTheme(value, styleMap);
+                    }
                 }
             }
         }