improve UI layout of label and change id
diff --git a/src/main/java/com/googlesource/gerrit/plugins/chound/client/LabelPanel.java b/src/main/java/com/googlesource/gerrit/plugins/chound/client/LabelPanel.java index 1fb3a28..cd3fcfe 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/chound/client/LabelPanel.java +++ b/src/main/java/com/googlesource/gerrit/plugins/chound/client/LabelPanel.java
@@ -24,10 +24,12 @@ import com.google.gwt.regexp.shared.MatchResult; import com.google.gwt.regexp.shared.RegExp; import com.google.gwt.user.client.rpc.AsyncCallback; +import com.google.gwt.user.client.ui.Grid; import com.google.gwt.user.client.ui.HorizontalPanel; -import com.google.gwt.user.client.ui.InlineHyperlink; -import com.google.gwt.user.client.ui.InlineLabel; +import com.google.gwt.user.client.ui.Label; + import com.google.gwt.user.client.ui.VerticalPanel; +import com.google.gwtexpui.clippy.client.CopyableLabel; public class LabelPanel extends VerticalPanel { static class Factory implements Panel.EntryPoint { @@ -44,61 +46,66 @@ panel.getObject(GerritUiExtensionPoint.Key.REVISION_INFO).cast(); new RestApi("changes").id(change.id()).view("revisions").id(rev.id()) - .view("commit") - .get(new AsyncCallback<CommitInfo>() { - @Override - public void onSuccess(CommitInfo result) { - if (result != null) { - displayDependsOn(result); - } - } + .view("commit").get(new AsyncCallback<CommitInfo>() { + @Override + public void onSuccess(CommitInfo result) { + if (result != null) { + displayDependsOn(result); + } + } - @Override - public void onFailure(Throwable caught) { - // never invoked - } - }); + @Override + public void onFailure(Throwable caught) { + // never invoked + } + }); new RestApi("changes").view("?q=message:" + change.changeId()) - .view("+NOT+change:" + change.changeId()) - .get(new AsyncCallback<NativeMap<ChangeInfo>>() { - @Override - public void onSuccess(NativeMap<ChangeInfo> result) { - if (!result.isEmpty()) { - displayNeededBy(result); - } - } + .view("+NOT+change:" + change.changeId()) + .get(new AsyncCallback<NativeMap<ChangeInfo>>() { + @Override + public void onSuccess(NativeMap<ChangeInfo> result) { + if (!result.isEmpty()) { + displayNeededBy(result); + } + } - @Override - public void onFailure(Throwable caught) { - // never invoked - } - }); + @Override + public void onFailure(Throwable caught) { + // never invoked + } + }); } private void displayDependsOn(CommitInfo result) { + int row = 0; + int column = 1; + Grid grid = new Grid(row, column); String message = result.message(); if (message.toLowerCase().contains("depends-on:")) { - HorizontalPanel p = new HorizontalPanel(); - p.add(new InlineLabel("Depends-on")); MatchResult matcher; - RegExp pattern = RegExp.compile("[Dd]epends-[Oo]n:? (I[0-9a-f]{8,40})", "g"); + RegExp pattern = + RegExp.compile("[Dd]epends-[Oo]n:? (I[0-9a-f]{8,40})", "g"); while ((matcher = pattern.exec(message)) != null) { - p.add(new InlineLabel(matcher.getGroup(1))); + grid.insertRow(row); + HorizontalPanel p = new HorizontalPanel(); + p.addStyleName("infoBlock"); + p.add(new Label("Depends-on")); + p.add(new CopyableLabel(matcher.getGroup(1))); + grid.setWidget(row, 0, p); + row++; } - add(p); + add(grid); } } private void displayNeededBy(NativeMap<ChangeInfo> result) { HorizontalPanel p = new HorizontalPanel(); - InlineLabel il = new InlineLabel("Needed-by"); - p.add(il); + p.addStyleName("infoBlock"); + p.add(new Label("Needed-by")); for (String key : result.keySet()) { - InlineHyperlink ih = new InlineHyperlink( - result.get(key).changeId(), "/c/" + result.get(key)._number()); - p.add(ih); + p.add(new CopyableLabel(result.get(key).changeId())); } add(p); } -} \ No newline at end of file +}