summaryrefslogtreecommitdiffstats
path: root/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AccessRightEditor.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AccessRightEditor.java')
-rw-r--r--gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AccessRightEditor.java404
1 files changed, 0 insertions, 404 deletions
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AccessRightEditor.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AccessRightEditor.java
deleted file mode 100644
index 8f6831b645..0000000000
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AccessRightEditor.java
+++ /dev/null
@@ -1,404 +0,0 @@
-// Copyright (C) 2010 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.admin;
-
-import com.google.gerrit.client.Gerrit;
-import com.google.gerrit.client.rpc.GerritCallback;
-import com.google.gerrit.client.ui.AccountGroupSuggestOracle;
-import com.google.gerrit.client.ui.HintTextBox;
-import com.google.gerrit.client.ui.RPCSuggestOracle;
-import com.google.gerrit.common.data.ApprovalType;
-import com.google.gerrit.common.data.ProjectDetail;
-import com.google.gerrit.reviewdb.AccountGroup;
-import com.google.gerrit.reviewdb.ApprovalCategory;
-import com.google.gerrit.reviewdb.ApprovalCategoryValue;
-import com.google.gerrit.reviewdb.Project;
-import com.google.gerrit.reviewdb.RefRight;
-import com.google.gwt.event.dom.client.ChangeEvent;
-import com.google.gwt.event.dom.client.ChangeHandler;
-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.HasValueChangeHandlers;
-import com.google.gwt.event.logical.shared.ValueChangeEvent;
-import com.google.gwt.event.logical.shared.ValueChangeHandler;
-import com.google.gwt.event.shared.HandlerRegistration;
-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.Grid;
-import com.google.gwt.user.client.ui.ListBox;
-import com.google.gwt.user.client.ui.SuggestBox;
-
-public class AccessRightEditor extends Composite
- implements HasValueChangeHandlers<ProjectDetail> {
- private Project.NameKey projectKey;
- private ListBox catBox;
- private HintTextBox nameTxt;
- private SuggestBox nameSug;
- private HintTextBox referenceTxt;
- private ListBox topBox;
- private ListBox botBox;
- private Button addBut;
- private Button clearBut;
-
- public AccessRightEditor(final Project.NameKey key) {
- projectKey = key;
-
- initWidgets();
- initCategories();
-
- final Grid grid = new Grid(5, 2);
- grid.setText(0, 0, Util.C.columnApprovalCategory() + ":");
- grid.setWidget(0, 1, catBox);
-
- grid.setText(1, 0, Util.C.columnGroupName() + ":");
- grid.setWidget(1, 1, nameSug);
-
- grid.setText(2, 0, Util.C.columnRefName() + ":");
- grid.setWidget(2, 1, referenceTxt);
-
- grid.setText(3, 0, Util.C.columnRightRange() + ":");
- grid.setWidget(3, 1, topBox);
-
- grid.setText(4, 0, "");
- grid.setWidget(4, 1, botBox);
-
- FlowPanel fp = new FlowPanel();
- fp.setStyleName(Gerrit.RESOURCES.css().addSshKeyPanel());
-
- fp.add(grid);
- fp.add(addBut);
- fp.add(clearBut);
- initWidget(fp);
- }
-
- protected void initWidgets() {
- catBox = new ListBox();
- catBox.addChangeHandler(new ChangeHandler() {
- @Override
- public void onChange(final ChangeEvent event) {
- updateCategorySelection();
- }
- });
-
- nameTxt = new HintTextBox();
- nameSug = new SuggestBox(new RPCSuggestOracle(
- new AccountGroupSuggestOracle()), nameTxt);
- nameTxt.setVisibleLength(50);
- nameTxt.setHintText(Util.C.defaultAccountGroupName());
-
- referenceTxt = new HintTextBox();
- referenceTxt.setVisibleLength(50);
- referenceTxt.setText("");
- referenceTxt.addKeyPressHandler(new KeyPressHandler() {
- @Override
- public void onKeyPress(KeyPressEvent event) {
- if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ENTER) {
- doAddNewRight();
- }
- }
- });
-
- topBox = new ListBox();
- botBox = new ListBox();
-
- addBut = new Button(Util.C.buttonAddProjectRight());
- addBut.addClickHandler(new ClickHandler() {
- @Override
- public void onClick(final ClickEvent event) {
- doAddNewRight();
- }
- });
-
- clearBut = new Button(Util.C.buttonClearProjectRight());
- clearBut.addClickHandler(new ClickHandler() {
- @Override
- public void onClick(final ClickEvent event) {
- clear();
- }
- });
- }
-
- protected void initCategories() {
- for (final ApprovalType at : Gerrit.getConfig().getApprovalTypes()
- .getApprovalTypes()) {
- final ApprovalCategory c = at.getCategory();
- catBox.addItem(c.getName(), c.getId().get());
- }
- for (final ApprovalType at : Gerrit.getConfig().getApprovalTypes()
- .getActionTypes()) {
- final ApprovalCategory c = at.getCategory();
- if (Gerrit.getConfig().getWildProject().equals(projectKey)
- && !c.getId().canBeOnWildProject()) {
- // Giving out control of the WILD_PROJECT to other groups beyond
- // Administrators is dangerous. Having control over WILD_PROJECT
- // is about the same as having Administrator access as users are
- // able to affect grants in all projects on the system.
- //
- continue;
- }
- catBox.addItem(c.getName(), c.getId().get());
- }
-
- if (catBox.getItemCount() > 0) {
- catBox.setSelectedIndex(0);
- updateCategorySelection();
- }
- }
-
- public void enableForm(final boolean on) {
- final boolean canAdd = on && catBox.getItemCount() > 0;
- addBut.setEnabled(canAdd);
- clearBut.setEnabled(canAdd);
- nameTxt.setEnabled(canAdd);
- referenceTxt.setEnabled(canAdd);
- catBox.setEnabled(canAdd);
- topBox.setEnabled(canAdd);
- botBox.setEnabled(canAdd);
- }
-
- public void clear() {
- setCat(null);
- setName("");
- setReference("");
- }
-
- public void load(final RefRight right, final AccountGroup group) {
- final ApprovalType atype =
- Gerrit.getConfig().getApprovalTypes().getApprovalType(
- right.getApprovalCategoryId());
-
- setCat(atype != null ? atype.getCategory().getName()
- : right.getApprovalCategoryId().get() );
-
- setName(group.getName());
- setReference(right.getRefPatternForDisplay());
-
- setRange(atype.getCategory().isRange() ? atype.getValue(right.getMinValue())
- : null, atype.getValue(right.getMaxValue()) );
- }
-
- protected void doAddNewRight() {
- final ApprovalType at = getApprovalType();
- ApprovalCategoryValue min = getMin(at);
- ApprovalCategoryValue max = getMax(at);
-
- if (at == null || min == null || max == null) {
- return;
- }
-
- final String groupName = nameSug.getText();
- if ("".equals(groupName)
- || Util.C.defaultAccountGroupName().equals(groupName)) {
- return;
- }
-
- final String refPattern = referenceTxt.getText();
-
- addBut.setEnabled(false);
- Util.PROJECT_SVC.addRight(projectKey, at.getCategory().getId(),
- groupName, refPattern, min.getValue(), max.getValue(),
- new GerritCallback<ProjectDetail>() {
- public void onSuccess(final ProjectDetail result) {
- addBut.setEnabled(true);
- nameSug.setText("");
- referenceTxt.setText("");
- ValueChangeEvent.fire(AccessRightEditor.this, result);
- }
-
- @Override
- public void onFailure(final Throwable caught) {
- addBut.setEnabled(true);
- super.onFailure(caught);
- }
- });
- }
-
- protected void updateCategorySelection() {
- final ApprovalType at = getApprovalType();
-
- if (at == null || at.getValues().isEmpty()) {
- topBox.setEnabled(false);
- botBox.setEnabled(false);
- referenceTxt.setEnabled(false);
- addBut.setEnabled(false);
- clearBut.setEnabled(false);
- return;
- }
-
- updateRanges(at);
- }
-
- protected void updateRanges(final ApprovalType at) {
- ApprovalCategoryValue min = null, max = null, last = null;
-
- topBox.clear();
- botBox.clear();
-
- for(final ApprovalCategoryValue v : at.getValues()) {
- final int nval = v.getValue();
- final String vStr = String.valueOf(nval);
-
- String nStr = vStr + ": " + v.getName();
- if (nval > 0) {
- nStr = "+" + nStr;
- }
-
- topBox.addItem(nStr, vStr);
- botBox.addItem(nStr, vStr);
-
- if (min == null || nval < 0) {
- min = v;
- } else if (max == null && nval > 0) {
- max = v;
- }
- last = v;
- }
-
- if (max == null) {
- max = last;
- }
-
- if (ApprovalCategory.READ.equals(at.getCategory().getId())) {
- // Special case; for READ the most logical range is just
- // +1 READ, so assume that as the default for both.
- min = max;
- }
-
- if (! at.getCategory().isRange()) {
- max = null;
- }
-
- setRange(min, max);
- }
-
- protected void setCat(final String cat) {
- if (cat == null) {
- catBox.setSelectedIndex(0);
- } else {
- setSelectedText(catBox, cat);
- }
- updateCategorySelection();
- }
-
- protected void setName(final String name) {
- nameTxt.setText(name);
- }
-
- protected void setReference(final String ref) {
- referenceTxt.setText(ref);
- }
-
- protected void setRange(final ApprovalCategoryValue min,
- final ApprovalCategoryValue max) {
- if (min == null || max == null) {
- botBox.setVisible(false);
- if (max != null) {
- setSelectedValue(topBox, "" + max.getValue());
- return;
- }
- } else {
- botBox.setVisible(true);
- setSelectedValue(botBox, "" + max.getValue());
- }
- setSelectedValue(topBox, "" + min.getValue());
- }
-
- private ApprovalType getApprovalType() {
- int idx = catBox.getSelectedIndex();
- if (idx < 0) {
- return null;
- }
- return Gerrit.getConfig().getApprovalTypes().getApprovalType(
- new ApprovalCategory.Id(catBox.getValue(idx)));
- }
-
- public ApprovalCategoryValue getMin(ApprovalType at) {
- final ApprovalCategoryValue top = getTop(at);
- final ApprovalCategoryValue bot = getBot(at);
- if (bot == null) {
- for (final ApprovalCategoryValue v : at.getValues()) {
- if (0 <= v.getValue() && v.getValue() <= top.getValue()) {
- return v;
- }
- }
- return at.getMin();
- }
-
- if (top.getValue() > bot.getValue()) {
- return bot;
- }
- return top;
- }
-
- public ApprovalCategoryValue getMax(ApprovalType at) {
- final ApprovalCategoryValue top = getTop(at);
- final ApprovalCategoryValue bot = getBot(at);
- if (bot == null || bot.getValue() < top.getValue()) {
- return top;
- }
- return bot;
- }
-
- protected ApprovalCategoryValue getTop(ApprovalType at) {
- int idx = topBox.getSelectedIndex();
- if (idx < 0) {
- return null;
- }
- return at.getValue(Short.parseShort(topBox.getValue(idx)));
- }
-
- protected ApprovalCategoryValue getBot(ApprovalType at) {
- int idx = botBox.getSelectedIndex();
- if (idx < 0 || ! botBox.isVisible()) {
- return null;
- }
- return at.getValue(Short.parseShort(botBox.getValue(idx)));
- }
-
- public HandlerRegistration addValueChangeHandler(
- final ValueChangeHandler<ProjectDetail> handler) {
- return addHandler(handler, ValueChangeEvent.getType());
- }
-
- public static boolean setSelectedText(ListBox box, String text) {
- if (text == null) {
- return false;
- }
- for (int i =0 ; i < box.getItemCount(); i++) {
- if (text.equals(box.getItemText(i))) {
- box.setSelectedIndex(i);
- return true;
- }
- }
- return false;
- }
-
- public static boolean setSelectedValue(ListBox box, String value) {
- if (value == null) {
- return false;
- }
- for (int i =0 ; i < box.getItemCount(); i++) {
- if (value.equals(box.getValue(i))) {
- box.setSelectedIndex(i);
- return true;
- }
- }
- return false;
- }
-}