diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritCss.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritCss.java index d627b24a5b..d13c17c727 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritCss.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/GerritCss.java @@ -21,6 +21,7 @@ public interface GerritCss extends CssResource { String accountContactPrivacyDetails(); String accountDashboard(); String accountInfoBlock(); + String accountLinkPanel(); String accountName(); String accountPassword(); String accountUsername(); diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AccountGroupMembersScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AccountGroupMembersScreen.java index c276a89e3e..51ff978fa4 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AccountGroupMembersScreen.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AccountGroupMembersScreen.java @@ -23,7 +23,7 @@ import com.google.gerrit.client.groups.GroupInfo; import com.google.gerrit.client.rpc.GerritCallback; import com.google.gerrit.client.rpc.Natives; import com.google.gerrit.client.ui.AccountGroupSuggestOracle; -import com.google.gerrit.client.ui.AccountLink; +import com.google.gerrit.client.ui.AccountLinkPanel; import com.google.gerrit.client.ui.AddMemberBox; import com.google.gerrit.client.ui.FancyFlexTable; import com.google.gerrit.client.ui.Hyperlink; @@ -318,7 +318,7 @@ public class AccountGroupMembersScreen extends AccountGroupScreen { CheckBox checkBox = new CheckBox(); table.setWidget(row, 1, checkBox); checkBox.setEnabled(enabled); - table.setWidget(row, 2, new AccountLink(i)); + table.setWidget(row, 2, new AccountLinkPanel(i)); table.setText(row, 3, i.email()); final FlexCellFormatter fmt = table.getFlexCellFormatter(); diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ApprovalTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ApprovalTable.java index deb867ca43..08877d9044 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ApprovalTable.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ApprovalTable.java @@ -27,7 +27,7 @@ import com.google.gerrit.client.rpc.GerritCallback; import com.google.gerrit.client.rpc.NativeMap; import com.google.gerrit.client.rpc.NativeString; import com.google.gerrit.client.rpc.Natives; -import com.google.gerrit.client.ui.AccountLink; +import com.google.gerrit.client.ui.AccountLinkPanel; import com.google.gerrit.client.ui.AddMemberBox; import com.google.gerrit.client.ui.ReviewerSuggestOracle; import com.google.gerrit.common.data.ApprovalDetail; @@ -329,7 +329,7 @@ public class ApprovalTable extends Composite { final CellFormatter fmt = table.getCellFormatter(); int col = 0; - table.setWidget(row, col++, new AccountLink(account)); + table.setWidget(row, col++, new AccountLinkPanel(account)); rows.put(account._account_id(), row); if (ad.canRemove()) { diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeInfoBlock.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeInfoBlock.java index e4dbc3218d..b942824f73 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeInfoBlock.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeInfoBlock.java @@ -18,7 +18,7 @@ import static com.google.gerrit.client.FormatUtil.mediumFormat; import com.google.gerrit.client.Gerrit; import com.google.gerrit.client.rpc.GerritCallback; -import com.google.gerrit.client.ui.AccountLink; +import com.google.gerrit.client.ui.AccountLinkPanel; import com.google.gerrit.client.ui.BranchLink; import com.google.gerrit.client.ui.CommentedActionDialog; import com.google.gerrit.client.ui.InlineHyperlink; @@ -104,7 +104,7 @@ public class ChangeInfoBlock extends Composite { changeIdLabel.setPreviewText(chg.getKey().get()); table.setWidget(R_CHANGE_ID, 1, changeIdLabel); - table.setWidget(R_OWNER, 1, AccountLink.link(acc, chg.getOwner())); + table.setWidget(R_OWNER, 1, AccountLinkPanel.link(acc, chg.getOwner())); final FlowPanel p = new FlowPanel(); p.add(new ProjectSearchLink(chg.getProject())); diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable.java index 97a5a09dd5..3a65d20bb9 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable.java @@ -17,7 +17,7 @@ package com.google.gerrit.client.changes; import static com.google.gerrit.client.FormatUtil.shortFormat; import com.google.gerrit.client.Gerrit; -import com.google.gerrit.client.ui.AccountLink; +import com.google.gerrit.client.ui.AccountLinkPanel; import com.google.gerrit.client.ui.BranchLink; import com.google.gerrit.client.ui.ChangeLink; import com.google.gerrit.client.ui.NavigationTable; @@ -182,8 +182,8 @@ public class ChangeTable extends NavigationTable { } } - private AccountLink link(final Account.Id id) { - return AccountLink.link(accountCache, id); + private AccountLinkPanel link(final Account.Id id) { + return AccountLinkPanel.link(accountCache, id); } public void addSection(final Section s) { diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable2.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable2.java index 07f0c114db..4694272f07 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable2.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeTable2.java @@ -19,7 +19,7 @@ import static com.google.gerrit.client.FormatUtil.shortFormat; import com.google.gerrit.client.Gerrit; import com.google.gerrit.client.changes.ChangeInfo.LabelInfo; -import com.google.gerrit.client.ui.AccountLink; +import com.google.gerrit.client.ui.AccountLinkPanel; import com.google.gerrit.client.ui.BranchLink; import com.google.gerrit.client.ui.ChangeLink; import com.google.gerrit.client.ui.NavigationTable; @@ -198,7 +198,7 @@ public class ChangeTable2 extends NavigationTable { table.setWidget(row, C_SUBJECT, new TableChangeLink(subject, c)); if (c.owner() != null) { - table.setWidget(row, C_OWNER, new AccountLink(c.owner(), status)); + table.setWidget(row, C_OWNER, new AccountLinkPanel(c.owner(), status)); } else { table.setText(row, C_OWNER, ""); } diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PatchSetComplexDisclosurePanel.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PatchSetComplexDisclosurePanel.java index 0c94081401..2ed094d503 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PatchSetComplexDisclosurePanel.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/PatchSetComplexDisclosurePanel.java @@ -21,7 +21,7 @@ import com.google.gerrit.client.GitwebLink; import com.google.gerrit.client.download.DownloadPanel; import com.google.gerrit.client.patches.PatchUtil; import com.google.gerrit.client.rpc.GerritCallback; -import com.google.gerrit.client.ui.AccountLink; +import com.google.gerrit.client.ui.AccountLinkPanel; import com.google.gerrit.client.ui.CommentedActionDialog; import com.google.gerrit.client.ui.ComplexDisclosurePanel; import com.google.gerrit.client.ui.ListenableAccountDiffPreference; @@ -255,7 +255,7 @@ class PatchSetComplexDisclosurePanel extends ComplexDisclosurePanel fp.setStyleName(Gerrit.RESOURCES.css().patchSetUserIdentity()); if (who.getName() != null) { if (who.getAccount() != null) { - fp.add(new AccountLink(who)); + fp.add(new AccountLinkPanel(who)); } else { final InlineLabel lbl = new InlineLabel(who.getName()); lbl.setStyleName(Gerrit.RESOURCES.css().accountName()); diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/gerrit.css b/gerrit-gwtui/src/main/java/com/google/gerrit/client/gerrit.css index e426a86230..32d2960195 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/gerrit.css +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/gerrit.css @@ -86,6 +86,21 @@ a:hover { text-decoration: underline; } +.accountLinkPanel { + display: inline; +} + +.accountLinkPanel img { + margin-right: 0.2em; + position: relative; + top: 2px; +} + +.accountLinkPanel a { + position: relative; + top: -1px; +} + .accountName { white-space: nowrap; } diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/AccountLink.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/AccountLinkPanel.java similarity index 65% rename from gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/AccountLink.java rename to gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/AccountLinkPanel.java index fd52777112..ef5217619f 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/AccountLink.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/AccountLinkPanel.java @@ -14,6 +14,7 @@ package com.google.gerrit.client.ui; +import com.google.gerrit.client.AvatarImage; import com.google.gerrit.client.FormatUtil; import com.google.gerrit.client.Gerrit; import com.google.gerrit.client.account.AccountInfo; @@ -22,33 +23,46 @@ import com.google.gerrit.common.data.AccountInfoCache; import com.google.gerrit.reviewdb.client.Account; import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.reviewdb.client.UserIdentity; +import com.google.gwt.user.client.ui.FlowPanel; /** Link to any user's account dashboard. */ -public class AccountLink extends InlineHyperlink { +public class AccountLinkPanel extends FlowPanel { /** Create a link after locating account details from an active cache. */ - public static AccountLink link(AccountInfoCache cache, Account.Id id) { + public static AccountLinkPanel link(AccountInfoCache cache, Account.Id id) { com.google.gerrit.common.data.AccountInfo ai = cache.get(id); - return ai != null ? new AccountLink(ai) : null; + return ai != null ? new AccountLinkPanel(ai) : null; } - public AccountLink(com.google.gerrit.common.data.AccountInfo ai) { + public AccountLinkPanel(com.google.gerrit.common.data.AccountInfo ai) { this(FormatUtil.asInfo(ai)); } - public AccountLink(UserIdentity ident) { + public AccountLinkPanel(UserIdentity ident) { this(AccountInfo.create( ident.getAccount().get(), ident.getName(), ident.getEmail())); } - public AccountLink(AccountInfo info) { + public AccountLinkPanel(AccountInfo info) { this(info, Change.Status.NEW); } - public AccountLink(AccountInfo info, Change.Status status) { - super(FormatUtil.name(info), PageLinks.toAccountQuery(owner(info), status)); - setTitle(FormatUtil.nameEmail(info)); + public AccountLinkPanel(AccountInfo info, Change.Status status) { + addStyleName(Gerrit.RESOURCES.css().accountLinkPanel()); + + InlineHyperlink l = + new InlineHyperlink(FormatUtil.name(info), PageLinks.toAccountQuery( + owner(info), status)) { + @Override + public void go() { + Gerrit.display(getTargetHistoryToken()); + } + }; + l.setTitle(FormatUtil.nameEmail(info)); + + add(new AvatarImage(info, 16)); + add(l); } private static String owner(AccountInfo ai) { @@ -62,9 +76,4 @@ public class AccountLink extends InlineHyperlink { return ""; } } - - @Override - public void go() { - Gerrit.display(getTargetHistoryToken()); - } }