diff options
author | Oluwatobi Bashir-Bello <nbashirbello@google.com> | 2014-08-06 14:50:13 -0400 |
---|---|---|
committer | Oluwatobi Bashir-Bello <nbashirbello@google.com> | 2014-08-11 17:36:21 -0400 |
commit | 4d2dced49a83d3158e7dfdc61da94ea3b32f99e7 (patch) | |
tree | db01ee339da86af0c8616e4029c6ff160dea0316 | |
parent | 84da51682addb7f11b236ed02b4a94847bc0d57c (diff) | |
download | cloud-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.java | 37 | ||||
-rw-r--r-- | login/src/com/google/gct/login/ui/UsersListCellRenderer.java | 51 |
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; |