Merge "Google Login - when the datastore is corrupt (i.e when the set active user is not a logged in user), an exception is thrown. Fix this by properly logging the error and setting no active user." into idea133
diff --git a/login/src/META-INF/plugin.xml b/login/src/META-INF/plugin.xml
index 1bd7803..09e0281 100644
--- a/login/src/META-INF/plugin.xml
+++ b/login/src/META-INF/plugin.xml
@@ -34,7 +34,8 @@
     <action id="GoogleLogin.LoginService"
             class="com.google.gct.login.ui.GoogleLoginAction"
             text="Google Login">
-      <add-to-group group-id="MainToolBar" anchor="first"  />
+      <add-to-group group-id="MainToolBar" anchor="last"  />
+      <add-to-group group-id="NavBarToolBar" anchor="last"  />
     </action>
   </actions>
 
diff --git a/login/src/com/google/gct/login/ui/GoogleLoginAction.java b/login/src/com/google/gct/login/ui/GoogleLoginAction.java
index 51ac706..10e7c0c 100644
--- a/login/src/com/google/gct/login/ui/GoogleLoginAction.java
+++ b/login/src/com/google/gct/login/ui/GoogleLoginAction.java
@@ -15,10 +15,7 @@
  */
 package com.google.gct.login.ui;
 
-import com.intellij.openapi.actionSystem.ActionToolbar;
-import com.intellij.openapi.actionSystem.AnAction;
-import com.intellij.openapi.actionSystem.AnActionEvent;
-import com.intellij.openapi.actionSystem.Presentation;
+import com.intellij.openapi.actionSystem.*;
 import com.intellij.openapi.actionSystem.ex.CustomComponentAction;
 import com.intellij.openapi.actionSystem.impl.ActionButton;
 import com.intellij.openapi.ui.popup.ComponentPopupBuilder;
@@ -32,7 +29,7 @@
 /**
  * Action to open the Google Login panel.
  */
-public class GoogleLoginAction extends AnAction implements CustomComponentAction {
+public class GoogleLoginAction extends AnAction implements CustomComponentAction, RightAlignedToolbarAction {
 
   @Override
   public void actionPerformed(AnActionEvent e) {
@@ -50,8 +47,7 @@
   private void showPopup(AnActionEvent e) {
     GoogleLoginUsersPanel usersPanel = new GoogleLoginUsersPanel();
     ComponentPopupBuilder popup = JBPopupFactory.getInstance().createComponentPopupBuilder(usersPanel, usersPanel.getList());
-    ActionButton source = (ActionButton)e.getInputEvent().getSource();
+    JComponent source = (JComponent)e.getInputEvent().getSource();
     popup.createPopup().show(new RelativePoint(source, new Point(0, source.getHeight() - 1)));
   }
-
 }
diff --git a/src/META-INF/plugin.xml b/src/META-INF/plugin.xml
index c6bc850..771cf17 100644
--- a/src/META-INF/plugin.xml
+++ b/src/META-INF/plugin.xml
@@ -110,10 +110,6 @@
   </extensions>
 
   <actions>
-    <action id="GoogleCloudTools.InstallClientLibraries"
-            class="com.google.gct.idea.appengine.gradle.action.InstallClientLibrariesAction"
-            text="Install Client Libraries"
-            icon="/icons/cloudEndpoints.png"/>
     <action id="GoogleCloudTools.GenerateEndpoint"
             class="com.google.gct.idea.appengine.gradle.action.GenerateEndpointAction"
             text="Generate Endpoint"
@@ -123,7 +119,6 @@
            description="Endpoints Actions"
            popup="true"
            icon="/icons/cloudPlatform.png">
-      <reference id="GoogleCloudTools.InstallClientLibraries"/>
       <reference id="GoogleCloudTools.GenerateEndpoint"/>
       <add-to-group group-id="ToolsMenu" anchor="last"/>
     </group>
diff --git a/src/com/google/gct/idea/appengine/gradle/action/GenerateEndpointAction.java b/src/com/google/gct/idea/appengine/gradle/action/GenerateEndpointAction.java
index f442f43..7e236b2 100644
--- a/src/com/google/gct/idea/appengine/gradle/action/GenerateEndpointAction.java
+++ b/src/com/google/gct/idea/appengine/gradle/action/GenerateEndpointAction.java
@@ -83,6 +83,7 @@
     try {
       if (!AppEngineUtils.isAppEngineModule(project, module)) {
         Messages.showErrorDialog(project, "Endpoints can only be generated for App Engine projects.", ERROR_MESSAGE_TITLE);
+        return;
       }
     }
     catch (FileNotFoundException error) {
diff --git a/src/com/google/gct/idea/appengine/gradle/action/InstallClientLibrariesAction.java b/src/com/google/gct/idea/appengine/gradle/action/InstallClientLibrariesAction.java
deleted file mode 100644
index c90e040..0000000
--- a/src/com/google/gct/idea/appengine/gradle/action/InstallClientLibrariesAction.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.google.gct.idea.appengine.gradle.action;
-
-import com.android.tools.idea.gradle.invoker.GradleInvoker;
-
-import com.intellij.openapi.actionSystem.AnAction;
-import com.intellij.openapi.actionSystem.AnActionEvent;
-import com.intellij.openapi.actionSystem.LangDataKeys;
-import com.intellij.openapi.module.Module;
-import com.intellij.openapi.project.Project;
-import com.intellij.openapi.ui.Messages;
-
-import java.util.Arrays;
-
-/**
- * Action to generate client libraries for an AppEngine endpoints project and copy them to an associated android project
- */
-public class InstallClientLibrariesAction extends AnAction {
-
-  private static final String ERROR_MSG_TITLE = "Install Client Libraries";
-
-  @Override
-  public void actionPerformed(AnActionEvent e) {
-    final Project project = e.getProject();
-    final Module appEngineModule = e.getData(LangDataKeys.MODULE);
-
-    if (project == null || appEngineModule == null) {
-      Messages.showErrorDialog(project, "Please select an App Engine module.", ERROR_MSG_TITLE);
-      return;
-    }
-    // TODO : check if module is App Engine Module or not
-
-    GradleInvoker.getInstance(project).executeTasks(Arrays.asList(appEngineModule.getName() + ":appengineEndpointsInstallClientLibs"));
-  }
-}