diff options
author | Oluwatobi Bashir-Bello <nbashirbello@google.com> | 2014-10-08 18:27:21 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2014-10-08 18:27:21 +0000 |
commit | 3269139e3b07984b8a9a2758ed64544dd66f3aee (patch) | |
tree | 29a67cbeed79d79e5206b30ce4be487db93d4e04 | |
parent | 4f93372cf58e72512a8a5651e974df9eb7bdf362 (diff) | |
parent | 615663a62f9097ba2d7cc1e8f16004cc428a2699 (diff) | |
download | login-3269139e3b07984b8a9a2758ed64544dd66f3aee.tar.gz |
Merge "Change the colors of the Google Login panel so that they match the current ide theme." into studio-1.0-dev
-rw-r--r-- | resources/icons/google.png | bin | 5302 -> 0 bytes | |||
-rw-r--r-- | resources/icons/google@2x.png | bin | 3626 -> 0 bytes | |||
-rw-r--r-- | resources/icons/googleColored.png | bin | 0 -> 2510 bytes | |||
-rw-r--r-- | resources/icons/googleWhite.png | bin | 0 -> 984 bytes | |||
-rw-r--r-- | src/com/google/gct/login/ui/UsersListCellRenderer.java | 153 |
5 files changed, 76 insertions, 77 deletions
diff --git a/resources/icons/google.png b/resources/icons/google.png Binary files differdeleted file mode 100644 index af0beb8..0000000 --- a/resources/icons/google.png +++ /dev/null diff --git a/resources/icons/google@2x.png b/resources/icons/google@2x.png Binary files differdeleted file mode 100644 index ad846a4..0000000 --- a/resources/icons/google@2x.png +++ /dev/null diff --git a/resources/icons/googleColored.png b/resources/icons/googleColored.png Binary files differnew file mode 100644 index 0000000..c8ae624 --- /dev/null +++ b/resources/icons/googleColored.png diff --git a/resources/icons/googleWhite.png b/resources/icons/googleWhite.png Binary files differnew file mode 100644 index 0000000..b37179c --- /dev/null +++ b/resources/icons/googleWhite.png diff --git a/src/com/google/gct/login/ui/UsersListCellRenderer.java b/src/com/google/gct/login/ui/UsersListCellRenderer.java index 46df2d1..928eeba 100644 --- a/src/com/google/gct/login/ui/UsersListCellRenderer.java +++ b/src/com/google/gct/login/ui/UsersListCellRenderer.java @@ -15,8 +15,10 @@ */ package com.google.gct.login.ui; +import com.intellij.ui.ColorUtil; import com.intellij.ui.JBColor; import com.intellij.util.ui.UIUtil; +import org.jetbrains.annotations.Nullable; import javax.swing.BorderFactory; import javax.swing.Box; @@ -50,55 +52,53 @@ public class UsersListCellRenderer extends JComponent implements ListCellRendere private final static String CLOUD_LABEL_TEXT = "Open Google Developers Console"; 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 GOOGLE_IMG_COL = "/icons/googleColored.png"; + private final static String GOOGLE_IMG_WHITE = "/icons/googleWhite.png"; 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; - private final int PLAIN_USER_IMAGE_HEIGHT = 48; - private final int ACTIVE_USER_IMAGE_WIDTH = 96; - private final int ACTIVE_USER_IMAGE_HEIGHT = 96; - private final int GOOGLE_IMAGE_WIDTH = 96; - private final int GOOGLE_IMAGE_HEIGHT = 35; - private final int GOOGLE_IMAGE_NORTH = 18; - 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 = 38; - private final int USER_LABEL_VERTICAL_STRUT = 3; - private final int HGAP = 10; - private final int VGAP = 10; - private final int GENERAL_FONT_HEIGHT; - private final Font NAME_FONT; - private final Font GENERAL_FONT; - private final Dimension MAIN_PANEL_DIMENSION; - 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; + private final Color myActiveColor; + private final Color myInactiveColor; + private static final int PLAIN_USER_IMAGE_WIDTH = 48; + private static final int PLAIN_USER_IMAGE_HEIGHT = 48; + private static final int ACTIVE_USER_IMAGE_WIDTH = 96; + private static final int ACTIVE_USER_IMAGE_HEIGHT = 96; + private static final int GOOGLE_IMAGE_WIDTH = 96; + private static final int GOOGLE_IMAGE_HEIGHT = 35; + private static final int GOOGLE_IMAGE_NORTH = 18; + private static final int GOOGLE_IMAGE_WEST = 18; + private static final int WELCOME_LABEL_NORTH = 15; + private static final int WELCOME_LABEL_SOUTH = 25; + private static final int WELCOME_LABEL_EAST = 38; + private static final int USER_LABEL_VERTICAL_STRUT = 3; + private static final int HGAP = 10; + private static final int VGAP = 10; + private final int myGeneralFontHeight; + private final Font myNameFont; + private final Font myGeneralFont; + private final Dimension myMainPanelDimension; + private final Dimension myActiveMainPanelDimension; + private final Dimension myCloudLabelDimension; + private final Dimension myPlayLabelDimension; + private final Dimension myLearnMoreLabelDimension; public UsersListCellRenderer() { - NAME_FONT = new Font("Helvetica", Font.BOLD, 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); - - FontMetrics fontMetrics = getFontMetrics(GENERAL_FONT); - 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); + myNameFont = new Font("Helvetica", Font.BOLD, 13); + myGeneralFont = new Font("Helvetica", Font.PLAIN, 13); + myMainPanelDimension = new Dimension(250, 68); + myActiveMainPanelDimension = new Dimension(250, 116); + Color bg = UIUtil.getTextFieldBackground(); + myActiveColor = UIUtil.isUnderDarcula() ? ColorUtil.shift(bg, 1.4) : new Color(0xffffff); + myInactiveColor = UIUtil.isUnderDarcula() ? bg : new Color(0xf5f5f5); + + FontMetrics fontMetrics = getFontMetrics(myGeneralFont); + myGeneralFontHeight = fontMetrics.getHeight(); + myCloudLabelDimension = new Dimension(fontMetrics.stringWidth(CLOUD_LABEL_TEXT), myGeneralFontHeight); + myPlayLabelDimension = new Dimension(fontMetrics.stringWidth(PLAY_LABEL_TEXT), myGeneralFontHeight); + myLearnMoreLabelDimension = new Dimension(fontMetrics.stringWidth(LEARN_MORE_TEXT), myGeneralFontHeight); } + @Nullable @Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { if(value instanceof NoUsersListItem) { @@ -118,11 +118,11 @@ public class UsersListCellRenderer extends JComponent implements ListCellRendere } JPanel mainPanel = new JPanel(new FlowLayout(FlowLayout.LEFT, HGAP, VGAP)); - mainPanel.setMinimumSize(calcIsSelected ? ACTIVE_MAIN_PANEL_DIMENSION : MAIN_PANEL_DIMENSION); + mainPanel.setMinimumSize(calcIsSelected ? myActiveMainPanelDimension : myMainPanelDimension); mainPanel.setAlignmentX(LEFT_ALIGNMENT); // Update colors - final Color bg = calcIsSelected ? ACTIVE_COLOR : INACTIVE_COLOR; + final Color bg = calcIsSelected ? myActiveColor : myInactiveColor; final Color fg = calcIsSelected ? UIUtil.getListSelectionForeground() : UIUtil.getListForeground(); mainPanel.setBackground(bg); mainPanel.setForeground(fg); @@ -137,7 +137,7 @@ public class UsersListCellRenderer extends JComponent implements ListCellRendere int imageWidth = calcIsSelected ? ACTIVE_USER_IMAGE_WIDTH : PLAIN_USER_IMAGE_WIDTH; int imageHeight = calcIsSelected ? ACTIVE_USER_IMAGE_HEIGHT : PLAIN_USER_IMAGE_HEIGHT; - Image scaledImage = image.getScaledInstance(imageWidth, imageHeight, java.awt.Image.SCALE_SMOOTH); + Image scaledImage = image.getScaledInstance(imageWidth, imageHeight, Image.SCALE_SMOOTH); JComponent textPanel; if (calcIsSelected) { @@ -155,12 +155,12 @@ public class UsersListCellRenderer extends JComponent implements ListCellRendere public boolean inPlayConsoleUrl(Point point, int activeIndex) { // 2 is for the number of labels before this one - double playYStart = VGAP + ACTIVE_USER_IMAGE_HEIGHT - PLAY_LABEL_DIMENSION.getHeight() - - CLOUD_LABEL_DIMENSION.getHeight() - 2 + (MAIN_PANEL_DIMENSION.getHeight() * activeIndex) + double playYStart = VGAP + ACTIVE_USER_IMAGE_HEIGHT - myPlayLabelDimension.getHeight() + - myCloudLabelDimension.getHeight() - 2 + (myMainPanelDimension.getHeight() * activeIndex) + USER_LABEL_VERTICAL_STRUT; - double playYEnd = playYStart + PLAY_LABEL_DIMENSION.getHeight(); + double playYEnd = playYStart + myPlayLabelDimension.getHeight(); double playXStart = ACTIVE_USER_IMAGE_WIDTH + HGAP + VGAP; - double playXEnd = playXStart + PLAY_LABEL_DIMENSION.getWidth(); + double playXEnd = playXStart + myPlayLabelDimension.getWidth(); if((point.getX() > playXStart) && (point.getX() < playXEnd) && (point.getY() > playYStart) && (point.getY() < playYEnd)) { @@ -172,11 +172,11 @@ public class UsersListCellRenderer extends JComponent implements ListCellRendere public boolean inCloudConsoleUrl(Point point, int activeIndex) { // 3 is for the number of labels before this one - double playYStart = VGAP + ACTIVE_USER_IMAGE_HEIGHT - CLOUD_LABEL_DIMENSION.getHeight() - - 3 + (MAIN_PANEL_DIMENSION.getHeight() * activeIndex) + (USER_LABEL_VERTICAL_STRUT * 2); - double playYEnd = playYStart + CLOUD_LABEL_DIMENSION.getHeight(); + double playYStart = VGAP + ACTIVE_USER_IMAGE_HEIGHT - myCloudLabelDimension.getHeight() + - 3 + (myMainPanelDimension.getHeight() * activeIndex) + (USER_LABEL_VERTICAL_STRUT * 2); + double playYEnd = playYStart + myCloudLabelDimension.getHeight(); double playXStart = ACTIVE_USER_IMAGE_WIDTH + HGAP + VGAP; - double playXEnd = playXStart + CLOUD_LABEL_DIMENSION.getWidth(); + double playXEnd = playXStart + myCloudLabelDimension.getWidth(); if((point.getX() > playXStart) && (point.getX() < playXEnd) && (point.getY() > playYStart) && (point.getY() < playYEnd)) { @@ -189,10 +189,10 @@ public class UsersListCellRenderer extends JComponent implements ListCellRendere 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(); + + (myGeneralFontHeight * 3) + 3; + double urlYEnd = urlYStart + myLearnMoreLabelDimension.getHeight(); double urlXStart = GOOGLE_IMAGE_WEST; - double urlXEnd = urlXStart + LEARN_MORE_LABEL_DIMENSION.getWidth(); + double urlXEnd = urlXStart + myLearnMoreLabelDimension.getWidth(); if((point.getX() > urlXStart) && (point.getX() < urlXEnd) && (point.getY() > urlYStart) && (point.getY() < urlYEnd)) { @@ -203,30 +203,29 @@ public class UsersListCellRenderer extends JComponent implements ListCellRendere } public int getMainPanelHeight() { - return (int)MAIN_PANEL_DIMENSION.getHeight(); + return (int)myMainPanelDimension.getHeight(); } public int getActivePanelHeight() { - return (int)ACTIVE_MAIN_PANEL_DIMENSION.getHeight(); + return (int)myActiveMainPanelDimension.getHeight(); } private JComponent createTextDisplay(boolean isSelected, UsersListItem usersListItem) { final JPanel panel = new JPanel(); panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); - final Color bg = isSelected ? ACTIVE_COLOR : INACTIVE_COLOR; + final Color bg = isSelected ? myActiveColor : myInactiveColor; final Color fg = isSelected ? UIUtil.getListSelectionForeground() : UIUtil.getListForeground(); panel.setBackground(bg); panel.setForeground(fg); JLabel nameLabel = new JLabel( usersListItem.getUserName()); - nameLabel.setFont(NAME_FONT); - nameLabel.setForeground(JBColor.BLACK); + nameLabel.setFont(myNameFont); panel.add(nameLabel); panel.add(Box.createVerticalStrut(USER_LABEL_VERTICAL_STRUT)); JLabel emailLabel = new JLabel(usersListItem.getUserEmail()); - emailLabel.setFont(GENERAL_FONT); + emailLabel.setFont(myGeneralFont); panel.add(emailLabel); return panel; @@ -236,27 +235,27 @@ public class UsersListCellRenderer extends JComponent implements ListCellRendere JPanel mainPanel = new JPanel(); mainPanel.setLayout(new GridBagLayout()); - mainPanel.setBackground(ACTIVE_COLOR); + mainPanel.setBackground(myActiveColor); mainPanel.setForeground(UIUtil.getListSelectionForeground()); mainPanel.setPreferredSize(new Dimension(220, ACTIVE_USER_IMAGE_HEIGHT)); JPanel bottomPanel = new JPanel(); bottomPanel.setLayout(new BoxLayout(bottomPanel, BoxLayout.PAGE_AXIS)); - bottomPanel.setBackground(ACTIVE_COLOR); + bottomPanel.setBackground(myActiveColor); bottomPanel.setForeground(UIUtil.getListSelectionForeground()); - bottomPanel.setPreferredSize(new Dimension(220, (GENERAL_FONT_HEIGHT * 2) + USER_LABEL_VERTICAL_STRUT)); + bottomPanel.setPreferredSize(new Dimension(220, (myGeneralFontHeight * 2) + USER_LABEL_VERTICAL_STRUT)); JLabel playLabel = new JLabel(PLAY_LABEL_TEXT); - playLabel.setFont(GENERAL_FONT); + playLabel.setFont(myGeneralFont); playLabel.setForeground(JBColor.BLUE); - playLabel.setPreferredSize(PLAY_LABEL_DIMENSION); + playLabel.setPreferredSize(myPlayLabelDimension); bottomPanel.add(playLabel, BOTTOM_ALIGNMENT); bottomPanel.add(Box.createVerticalStrut(USER_LABEL_VERTICAL_STRUT)); JLabel cloudLabel = new JLabel(CLOUD_LABEL_TEXT); - cloudLabel.setFont(GENERAL_FONT); + cloudLabel.setFont(myGeneralFont); cloudLabel.setForeground(JBColor.BLUE); - cloudLabel.setPreferredSize(CLOUD_LABEL_DIMENSION); + cloudLabel.setPreferredSize(myCloudLabelDimension); bottomPanel.add(cloudLabel, BOTTOM_ALIGNMENT); GridBagConstraints topConstraints = new GridBagConstraints(); @@ -281,25 +280,25 @@ public class UsersListCellRenderer extends JComponent implements ListCellRendere JPanel mainPanel = new JPanel(); BoxLayout layout = new BoxLayout(mainPanel, BoxLayout.Y_AXIS); mainPanel.setLayout(layout); - mainPanel.setBackground(Color.WHITE); + mainPanel.setBackground(JBColor.WHITE); mainPanel.setBorder(BorderFactory.createEmptyBorder(0, GOOGLE_IMAGE_WEST, 0, 0)); - URL url = UsersListCellRenderer.class.getResource(GOOGLE_IMG); + String googleIcon = UIUtil.isUnderDarcula() ? GOOGLE_IMG_WHITE : GOOGLE_IMG_COL; + URL url = UsersListCellRenderer.class.getResource(googleIcon); Image image = Toolkit.getDefaultToolkit().getImage(url); Image scaledImage = image.getScaledInstance( - GOOGLE_IMAGE_WIDTH, GOOGLE_IMAGE_HEIGHT, java.awt.Image.SCALE_SMOOTH); + GOOGLE_IMAGE_WIDTH, GOOGLE_IMAGE_HEIGHT, Image.SCALE_SMOOTH); JLabel imageLabel = new JLabel(new ImageIcon(scaledImage)); JLabel signInLabel = new JLabel(SIGN_IN_TEXT); - signInLabel.setFont(GENERAL_FONT); - signInLabel.setForeground(SIGN_IN_COLOR); + signInLabel.setFont(myGeneralFont); 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); + urlLabel.setFont(myGeneralFont); + urlLabel.setForeground(JBColor.BLUE); + urlLabel.setPreferredSize(myLearnMoreLabelDimension); mainPanel.add(Box.createVerticalStrut(GOOGLE_IMAGE_NORTH)); mainPanel.add(imageLabel); |