summaryrefslogtreecommitdiffstats
path: root/src/main/java/com/google/gerrit/client/ui/AddMemberBox.java
blob: 83238b5271822939b02f41d5b3193d12fd95b7c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
package com.google.gerrit.client.ui;

import com.google.gerrit.client.admin.Util;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.FocusListenerAdapter;
import com.google.gwt.user.client.ui.SuggestBox;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;

public class AddMemberBox extends Composite {
  
  private final FlowPanel addPanel;
  private final Button addMember;
  private final TextBox nameTxtBox;
  private final SuggestBox nameTxt;
  
  public AddMemberBox() {
    addPanel = new FlowPanel();
    addMember = new Button(Util.C.buttonAddGroupMember());
    nameTxtBox = new TextBox();
    nameTxt = new SuggestBox(new AccountSuggestOracle(), nameTxtBox);
    
    nameTxtBox.setVisibleLength(50);
    nameTxtBox.setText(Util.C.defaultAccountName());
    nameTxtBox.addStyleName("gerrit-InputFieldTypeHint");
    nameTxtBox.addFocusListener(new FocusListenerAdapter() {
      @Override
      public void onFocus(Widget sender) {
        if (Util.C.defaultAccountName().equals(nameTxtBox.getText())) {
          nameTxtBox.setText("");
          nameTxtBox.removeStyleName("gerrit-InputFieldTypeHint");
        }
      }

      @Override
      public void onLostFocus(Widget sender) {
        if ("".equals(nameTxtBox.getText())) {
          nameTxtBox.setText(Util.C.defaultAccountName());
          nameTxtBox.addStyleName("gerrit-InputFieldTypeHint");
        }
      }
    });
    
    addPanel.setStyleName("gerrit-ProjectWatchPanel-AddPanel");
    addPanel.add(nameTxt);
    addPanel.add(addMember);
    
    initWidget(addPanel);
  }
  
  public void addClickListener(ClickListener listener) {
    addMember.addClickListener(listener);
  }
  
  public String getText() {
    return nameTxtBox.getText();
  }
  
  public void setEnabled(boolean enabled) {
    addMember.setEnabled(enabled);
    nameTxtBox.setEnabled(enabled);
  }
  
  public void setText(String text) {
    nameTxtBox.setText(text);
  }

}