summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOluwatobi Bashir-Bello <nbashirbello@google.com>2014-08-06 14:50:13 -0400
committerOluwatobi Bashir-Bello <nbashirbello@google.com>2014-08-11 17:36:21 -0400
commit4d2dced49a83d3158e7dfdc61da94ea3b32f99e7 (patch)
treedb01ee339da86af0c8616e4029c6ff160dea0316
parent84da51682addb7f11b236ed02b4a94847bc0d57c (diff)
downloadcloud-4d2dced49a83d3158e7dfdc61da94ea3b32f99e7.tar.gz
Updates to the Google login non-signed in dialog.
Change-Id: I1b5461bee42968e578531e6b3c9c89e48fc240e4
-rw-r--r--login/src/com/google/gct/login/ui/GoogleLoginUsersPanel.java37
-rw-r--r--login/src/com/google/gct/login/ui/UsersListCellRenderer.java51
2 files changed, 65 insertions, 23 deletions
diff --git a/login/src/com/google/gct/login/ui/GoogleLoginUsersPanel.java b/login/src/com/google/gct/login/ui/GoogleLoginUsersPanel.java
index 764880d..6536283 100644
--- a/login/src/com/google/gct/login/ui/GoogleLoginUsersPanel.java
+++ b/login/src/com/google/gct/login/ui/GoogleLoginUsersPanel.java
@@ -49,6 +49,7 @@ import java.util.LinkedHashMap;
public class GoogleLoginUsersPanel extends JPanel implements ListSelectionListener {
private static final String PLAY_CONSOLE_URL = "https://play.google.com/apps/publish/#ProfilePlace";
private static final String CLOUD_CONSOLE_URL = "https://console.developers.google.com/accountsettings";
+ private final static String LEARN_MORE_URL = "https://developers.google.com/cloud/devtools/android_studio_templates/";
private JBList list;
private DefaultListModel listModel;
private static final int MAX_VISIBLE_ROW_COUNT = 3;
@@ -101,17 +102,25 @@ public class GoogleLoginUsersPanel extends JPanel implements ListSelectionListen
public void mouseClicked(MouseEvent mouseEvent) {
list.updateUI();
- if(!valueChanged) {
- // Clicking on an already active user
- int index = list.locationToIndex(mouseEvent.getPoint());
- if (index >= 0) {
- boolean inPlayUrl = usersListCellRenderer.inPlayConsoleUrl(mouseEvent.getPoint(), index);
- if(inPlayUrl){
- BrowserUtil.browse(PLAY_CONSOLE_URL);
- } else {
- boolean inCloudUrl = usersListCellRenderer.inCloudConsoleUrl(mouseEvent.getPoint(), index);
- if(inCloudUrl) {
- BrowserUtil.browse(CLOUD_CONSOLE_URL);
+ if(listModel.getSize() == 1 && (listModel.get(0) instanceof NoUsersListItem)) {
+ // When there are no users available
+ if(usersListCellRenderer.inLearnMoreUrl(mouseEvent.getPoint())){
+ BrowserUtil.browse(LEARN_MORE_URL);
+ }
+ } else {
+ // When users are available
+ if(!valueChanged) {
+ // Clicking on an already active user
+ int index = list.locationToIndex(mouseEvent.getPoint());
+ if (index >= 0) {
+ boolean inPlayUrl = usersListCellRenderer.inPlayConsoleUrl(mouseEvent.getPoint(), index);
+ if(inPlayUrl){
+ BrowserUtil.browse(PLAY_CONSOLE_URL);
+ } else {
+ boolean inCloudUrl = usersListCellRenderer.inCloudConsoleUrl(mouseEvent.getPoint(), index);
+ if(inCloudUrl) {
+ BrowserUtil.browse(CLOUD_CONSOLE_URL);
+ }
}
}
}
@@ -129,7 +138,11 @@ public class GoogleLoginUsersPanel extends JPanel implements ListSelectionListen
// If current object is the non-user list item, use default cursor
Object currentObject = listModel.get(index);
if(currentObject instanceof NoUsersListItem) {
- list.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
+ if(usersListCellRenderer.inLearnMoreUrl(mouseEvent.getPoint())) {
+ list.setCursor(new Cursor(Cursor.HAND_CURSOR));
+ } else {
+ list.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
+ }
return;
}
diff --git a/login/src/com/google/gct/login/ui/UsersListCellRenderer.java b/login/src/com/google/gct/login/ui/UsersListCellRenderer.java
index 0a239b4..e6fee90 100644
--- a/login/src/com/google/gct/login/ui/UsersListCellRenderer.java
+++ b/login/src/com/google/gct/login/ui/UsersListCellRenderer.java
@@ -52,7 +52,11 @@ public class UsersListCellRenderer extends JComponent implements ListCellRendere
private final static String PLAY_LABEL_TEXT = "Open Play Developer Console";
private final static String DEFAULT_AVATAR = "/icons/loginAvatar@2x.png";
private final static String GOOGLE_IMG = "/icons/google.png";
- private final static String SIGN_IN_TEXT = "Sign in with your Google account";
+ private final static String SIGN_IN_TEXT = "<HTML> Sign in with your Google account to start <br> adding "
+ + "Cloud functionality to your <br> Android applications from Android Studio. </HTML>";
+ private final static String LEARN_MORE_TEXT = "Learn more";
+ private final Color LEARN_MORE_COLOR;
+ private final Color SIGN_IN_COLOR;
private final Color ACTIVE_COLOR;
private final Color INACTIVE_COLOR;
private final int PLAIN_USER_IMAGE_WIDTH = 48;
@@ -65,8 +69,7 @@ public class UsersListCellRenderer extends JComponent implements ListCellRendere
private final int GOOGLE_IMAGE_WEST = 18;
private final int WELCOME_LABEL_NORTH = 15;
private final int WELCOME_LABEL_SOUTH = 25;
- private final int WELCOME_LABEL_EAST = 19;
- private final int WELCOME_LABEL_WEST = 21;
+ private final int WELCOME_LABEL_EAST = 38;
private final int USER_LABEL_VERTICAL_STRUT = 3;
private final int HGAP = 10;
private final int VGAP = 10;
@@ -77,12 +80,15 @@ public class UsersListCellRenderer extends JComponent implements ListCellRendere
private final Dimension ACTIVE_MAIN_PANEL_DIMENSION;
private final Dimension CLOUD_LABEL_DIMENSION;
private final Dimension PLAY_LABEL_DIMENSION;
+ private final Dimension LEARN_MORE_LABEL_DIMENSION;
public UsersListCellRenderer() {
NAME_FONT = new Font("Helvetica", Font.BOLD, 13);
- GENERAL_FONT = new Font("Helvetica", Font.PLAIN, 13);;
+ GENERAL_FONT = new Font("Helvetica", Font.PLAIN, 13);
MAIN_PANEL_DIMENSION = new Dimension(250, 68);
ACTIVE_MAIN_PANEL_DIMENSION = new Dimension(250, 116);
+ SIGN_IN_COLOR = new Color(666666);
+ LEARN_MORE_COLOR = new Color(666);
ACTIVE_COLOR = new Color(0xffffff);
INACTIVE_COLOR = new Color(0xf5f5f5);
@@ -91,6 +97,7 @@ public class UsersListCellRenderer extends JComponent implements ListCellRendere
GENERAL_FONT_HEIGHT = fontMetrics.getHeight();
CLOUD_LABEL_DIMENSION = new Dimension(fontMetrics.stringWidth(CLOUD_LABEL_TEXT), GENERAL_FONT_HEIGHT);
PLAY_LABEL_DIMENSION = new Dimension(fontMetrics.stringWidth(PLAY_LABEL_TEXT), GENERAL_FONT_HEIGHT);
+ LEARN_MORE_LABEL_DIMENSION = new Dimension(fontMetrics.stringWidth(LEARN_MORE_TEXT), GENERAL_FONT_HEIGHT);
}
@Override
@@ -180,6 +187,22 @@ public class UsersListCellRenderer extends JComponent implements ListCellRendere
return false;
}
+ public boolean inLearnMoreUrl(Point point) {
+ // 3 is for the number of labels and row of texts
+ double urlYStart = GOOGLE_IMAGE_NORTH + GOOGLE_IMAGE_HEIGHT + WELCOME_LABEL_NORTH
+ + (GENERAL_FONT_HEIGHT * 3) + 3;
+ double urlYEnd = urlYStart + LEARN_MORE_LABEL_DIMENSION.getHeight();
+ double urlXStart = GOOGLE_IMAGE_WEST;
+ double urlXEnd = urlXStart + LEARN_MORE_LABEL_DIMENSION.getWidth();
+
+ if((point.getX() > urlXStart) && (point.getX() < urlXEnd)
+ && (point.getY() > urlYStart) && (point.getY() < urlYEnd)) {
+ return true;
+ }
+
+ return false;
+ }
+
public int getMainPanelHeight() {
return (int)MAIN_PANEL_DIMENSION.getHeight();
}
@@ -260,6 +283,7 @@ public class UsersListCellRenderer extends JComponent implements ListCellRendere
BoxLayout layout = new BoxLayout(mainPanel, BoxLayout.Y_AXIS);
mainPanel.setLayout(layout);
mainPanel.setBackground(JBColor.WHITE);
+ mainPanel.setBorder(BorderFactory.createEmptyBorder(0, GOOGLE_IMAGE_WEST, 0, 0));
URL url = UsersListCellRenderer.class.getResource(GOOGLE_IMG);
Image image = Toolkit.getDefaultToolkit().getImage(url);
@@ -267,17 +291,22 @@ public class UsersListCellRenderer extends JComponent implements ListCellRendere
GOOGLE_IMAGE_WIDTH, GOOGLE_IMAGE_HEIGHT, java.awt.Image.SCALE_SMOOTH);
JLabel imageLabel = new JLabel(new ImageIcon(scaledImage));
- JLabel textLabel = new JLabel(SIGN_IN_TEXT);
- Dimension textSize = textLabel.getPreferredSize();
- textLabel.setPreferredSize(new Dimension((int)textSize.getWidth() + WELCOME_LABEL_EAST,
- (int)textSize.getHeight()));
+ JLabel signInLabel = new JLabel(SIGN_IN_TEXT);
+ signInLabel.setFont(GENERAL_FONT);
+ signInLabel.setForeground(SIGN_IN_COLOR);
+ Dimension textSize = signInLabel.getPreferredSize();
+ signInLabel.setPreferredSize(new Dimension((int)textSize.getWidth() + WELCOME_LABEL_EAST, (int)textSize.getHeight()));
+
+ JLabel urlLabel = new JLabel(LEARN_MORE_TEXT);
+ urlLabel.setFont(GENERAL_FONT);
+ urlLabel.setForeground(LEARN_MORE_COLOR);
+ urlLabel.setPreferredSize(LEARN_MORE_LABEL_DIMENSION);
mainPanel.add(Box.createVerticalStrut(GOOGLE_IMAGE_NORTH));
- mainPanel.add(Box.createHorizontalStrut(GOOGLE_IMAGE_WEST));
mainPanel.add(imageLabel);
mainPanel.add(Box.createVerticalStrut(WELCOME_LABEL_NORTH));
- mainPanel.add(Box.createHorizontalStrut(WELCOME_LABEL_WEST - GOOGLE_IMAGE_WEST));
- mainPanel.add(textLabel);
+ mainPanel.add(signInLabel);
+ mainPanel.add(urlLabel);
mainPanel.add(Box.createVerticalStrut(WELCOME_LABEL_SOUTH));
return mainPanel;