package kornell.gui.client.util.forms.formfield;
import com.github.gwtbootstrap.client.ui.ListBox;
import com.github.gwtbootstrap.client.ui.TextBox;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
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.Widget;
public class SimpleMultipleSelect extends Composite {
private TextBox search;
private ListBox multipleSelect;
public SimpleMultipleSelect() {
}
@Override
public Widget asWidget(){
return getCourseClassAdminsFieldPanel();
}
private FlowPanel getCourseClassAdminsFieldPanel() {
FlowPanel courseClassAdminsPanel = new FlowPanel();
courseClassAdminsPanel.addStyleName("fieldPanel");
courseClassAdminsPanel.add(getTypeAheadPanel());
FlowPanel multipleSelectPanel = getMultipleSelectPanel();
courseClassAdminsPanel.add(multipleSelectPanel);
return courseClassAdminsPanel;
}
private FlowPanel getMultipleSelectPanel() {
FlowPanel multipleSelectPanel = new FlowPanel();
multipleSelect = new ListBox(true);
multipleSelect.addStyleName("selectField");
multipleSelect.addStyleName("height200");
multipleSelectPanel.add(multipleSelect);
Button btnRemove = new Button("Remover");
btnRemove.addStyleName("btnSelected btnStandard");
btnRemove.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
while(multipleSelect.getSelectedIndex() != -1){
multipleSelect.removeItem(multipleSelect.getSelectedIndex());
}
}
});
multipleSelectPanel.add(btnRemove);
return multipleSelectPanel;
}
private FlowPanel getTypeAheadPanel() {
FlowPanel typeaheadPanel = new FlowPanel();
search = new TextBox();
search.addStyleName("textField");
search.setPlaceholder("Digite o nome do domÃnio a adicionar");
typeaheadPanel.add(search);
Button btnAdd = new Button("Adicionar");
btnAdd.addStyleName("btnAction btnStandard");
btnAdd.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
addAdmin();
}
});
typeaheadPanel.add(btnAdd);
return typeaheadPanel;
}
private void addAdmin() {
boolean found = false;
for (int i = 0; i < multipleSelect.getItemCount(); i++) {
if(multipleSelect.getValue(i).equals(search.getText())){
found = true;
break;
}
}
if(!found)
multipleSelect.addItem(search.getText(), search.getText());
search.setText("");
}
public ListBox getMultipleSelect() {
return multipleSelect;
}
public void addItem(String item, String uuid) {
multipleSelect.addItem(item, uuid);
}
}