diff options
author | Edwin Kempin <edwin.kempin@sap.com> | 2011-06-29 14:34:33 +0200 |
---|---|---|
committer | Edwin Kempin <edwin.kempin@sap.com> | 2011-07-05 14:09:30 +0200 |
commit | c4af33451e10e3e23c8ee317fe9e4bd03ccc412a (patch) | |
tree | 4e3b510c380b145c9ee61b4958bfa9bffb2433fa | |
parent | a65637cccbc349e0d1aa072325aff16486202993 (diff) | |
download | gerrit-c4af33451e10e3e23c8ee317fe9e4bd03ccc412a.tar.gz |
Refactoring: Merge AddMemberBox and AddIncludedGroupBox
Merge AddMemberBox and AddIncludedGroupBox into one class since most
of the coding is identical.
This refactoring is a preparation for allowing groups being added as
reviewers for a change. Otherwise to implement this feature it would
be needed to introduce a third class AddAccountOrAccountGroupBox
which would again be almost identical in coding. The idea is to just
have one class which can be used for all three cases.
Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
Change-Id: I667b6ba1ce8390c18e6ec2f1ef16d64f93926c01
6 files changed, 22 insertions, 118 deletions
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 06e25df7..62ebb314 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 @@ -18,7 +18,7 @@ import com.google.gerrit.client.Dispatcher; import com.google.gerrit.client.Gerrit; import com.google.gerrit.client.rpc.GerritCallback; import com.google.gerrit.client.ui.AccountDashboardLink; -import com.google.gerrit.client.ui.AddIncludedGroupBox; +import com.google.gerrit.client.ui.AccountGroupSuggestOracle; import com.google.gerrit.client.ui.AddMemberBox; import com.google.gerrit.client.ui.FancyFlexTable; import com.google.gerrit.client.ui.Hyperlink; @@ -55,7 +55,7 @@ public class AccountGroupMembersScreen extends AccountGroupScreen { private Button delMember; private Panel includePanel; - private AddIncludedGroupBox addIncludeBox; + private AddMemberBox addIncludeBox; private Button delInclude; private FlowPanel noMembersInfo; @@ -109,7 +109,9 @@ public class AccountGroupMembersScreen extends AccountGroupScreen { } private void initIncludeList() { - addIncludeBox = new AddIncludedGroupBox(); + addIncludeBox = + new AddMemberBox(Util.C.buttonAddIncludedGroup(), + Util.C.defaultAccountGroupName(), new AccountGroupSuggestOracle()); addIncludeBox.addClickHandler(new ClickHandler() { @Override 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 26d4a12d..2e16addb 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 @@ -20,6 +20,7 @@ import com.google.gerrit.client.Gerrit; import com.google.gerrit.client.patches.PatchUtil; import com.google.gerrit.client.rpc.GerritCallback; import com.google.gerrit.client.ui.AccountDashboardLink; +import com.google.gerrit.client.ui.AccountSuggestOracle; import com.google.gerrit.client.ui.AddMemberBox; import com.google.gerrit.common.data.AccountInfoCache; import com.google.gerrit.common.data.ApprovalDetail; @@ -76,8 +77,10 @@ public class ApprovalTable extends Composite { addReviewer = new FlowPanel(); addReviewer.setStyleName(Gerrit.RESOURCES.css().addReviewer()); - addMemberBox = new AddMemberBox(); - addMemberBox.setAddButtonText(Util.C.approvalTableAddReviewer()); + addMemberBox = + new AddMemberBox(Util.C.approvalTableAddReviewer(), + Util.C.approvalTableAddReviewerHint(), + new AccountSuggestOracle()); addMemberBox.addClickHandler(new ClickHandler() { @Override public void onClick(final ClickEvent event) { diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeConstants.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeConstants.java index 0618294c..d9bd6a6f 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeConstants.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeConstants.java @@ -80,6 +80,7 @@ public interface ChangeConstants extends Constants { String approvalTableAddReviewer(); String approvalTableRemoveNotPermitted(); String approvalTableCouldNotRemove(); + String approvalTableAddReviewerHint(); String changeInfoBlockOwner(); String changeInfoBlockProject(); diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeConstants.properties b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeConstants.properties index e65832dc..ee452588 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeConstants.properties +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeConstants.properties @@ -57,6 +57,7 @@ approvalTableReviewer = Reviewer approvalTableAddReviewer = Add Reviewer approvalTableRemoveNotPermitted = Not allowed to remove reviewer approvalTableCouldNotRemove = Could not remove reviewer +approvalTableAddReviewerHint = Username or Email changeInfoBlockOwner = Owner changeInfoBlockProject = Project diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/AddIncludedGroupBox.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/AddIncludedGroupBox.java deleted file mode 100644 index 60b8ccb1..00000000 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/AddIncludedGroupBox.java +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright (C) 2011 The Android Open Source Project -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package com.google.gerrit.client.ui; - -import com.google.gerrit.client.admin.Util; -import com.google.gerrit.client.ui.HintTextBox; -import com.google.gerrit.client.ui.RPCSuggestOracle; -import com.google.gwt.event.dom.client.ClickEvent; -import com.google.gwt.event.dom.client.ClickHandler; -import com.google.gwt.event.dom.client.KeyCodes; -import com.google.gwt.event.dom.client.KeyPressEvent; -import com.google.gwt.event.dom.client.KeyPressHandler; -import com.google.gwt.event.logical.shared.SelectionEvent; -import com.google.gwt.event.logical.shared.SelectionHandler; -import com.google.gwt.user.client.ui.Button; -import com.google.gwt.user.client.ui.Composite; -import com.google.gwt.user.client.ui.FlowPanel; -import com.google.gwt.user.client.ui.SuggestBox; -import com.google.gwt.user.client.ui.SuggestBox.DefaultSuggestionDisplay; -import com.google.gwt.user.client.ui.SuggestOracle.Suggestion; - -public class AddIncludedGroupBox extends Composite { - private final FlowPanel addPanel; - private final Button addMember; - private final HintTextBox nameTxtBox; - private final SuggestBox nameTxt; - private boolean submitOnSelection; - - public AddIncludedGroupBox() { - addPanel = new FlowPanel(); - addMember = new Button(Util.C.buttonAddIncludedGroup()); - nameTxtBox = new HintTextBox(); - nameTxt = new SuggestBox(new RPCSuggestOracle( - new AccountGroupSuggestOracle()), nameTxtBox); - - nameTxtBox.setVisibleLength(50); - nameTxtBox.setHintText(Util.C.defaultAccountGroupName()); - nameTxtBox.addKeyPressHandler(new KeyPressHandler() { - @Override - public void onKeyPress(KeyPressEvent event) { - submitOnSelection = false; - - if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ENTER) { - if (((DefaultSuggestionDisplay) nameTxt.getSuggestionDisplay()) - .isSuggestionListShowing()) { - submitOnSelection = true; - } else { - doAdd(); - } - } - } - }); - nameTxt.addSelectionHandler(new SelectionHandler<Suggestion>() { - @Override - public void onSelection(SelectionEvent<Suggestion> event) { - if (submitOnSelection) { - submitOnSelection = false; - doAdd(); - } - } - }); - - addPanel.add(nameTxt); - addPanel.add(addMember); - - initWidget(addPanel); - } - - public void setAddButtonText(final String text) { - addMember.setText(text); - } - - public void addClickHandler(final ClickHandler handler) { - addMember.addClickHandler(handler); - } - - public String getText() { - String s = nameTxtBox.getText(); - return s == null ? "" : s; - } - - public void setEnabled(boolean enabled) { - addMember.setEnabled(enabled); - nameTxtBox.setEnabled(enabled); - } - - public void setText(String text) { - nameTxtBox.setText(text); - } - - private void doAdd() { - addMember.fireEvent(new ClickEvent() {}); - } -} diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/AddMemberBox.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/AddMemberBox.java index c63ae84a..f28a3843 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/AddMemberBox.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/AddMemberBox.java @@ -27,6 +27,7 @@ import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.SuggestBox; import com.google.gwt.user.client.ui.SuggestBox.DefaultSuggestionDisplay; +import com.google.gwt.user.client.ui.SuggestOracle; import com.google.gwt.user.client.ui.SuggestOracle.Suggestion; public class AddMemberBox extends Composite { @@ -37,14 +38,20 @@ public class AddMemberBox extends Composite { private boolean submitOnSelection; public AddMemberBox() { + this(Util.C.buttonAddGroupMember(), Util.C.defaultAccountName(), + new AccountSuggestOracle()); + } + + public AddMemberBox(final String buttonLabel, final String hint, + final SuggestOracle suggestOracle) { addPanel = new FlowPanel(); - addMember = new Button(Util.C.buttonAddGroupMember()); + addMember = new Button(buttonLabel); nameTxtBox = new HintTextBox(); nameTxt = new SuggestBox(new RPCSuggestOracle( - new AccountSuggestOracle()), nameTxtBox); + suggestOracle), nameTxtBox); nameTxtBox.setVisibleLength(50); - nameTxtBox.setHintText(Util.C.defaultAccountName()); + nameTxtBox.setHintText(hint); nameTxtBox.addKeyPressHandler(new KeyPressHandler() { @Override public void onKeyPress(KeyPressEvent event) { @@ -76,10 +83,6 @@ public class AddMemberBox extends Composite { initWidget(addPanel); } - public void setAddButtonText(final String text) { - addMember.setText(text); - } - public void addClickHandler(final ClickHandler handler) { addMember.addClickHandler(handler); } |