mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-02 10:23:51 +00:00
added placeholder support for StringListEditorComposite
This commit is contained in:
1 parent
381539e91a
commit
3c292093c1
7 files changed
+43
-49
No files matched your search
+3
-1
@@ -4,6 +4,7 @@ import com.google.gwt.event.dom.client.ClickEvent;
|
||||
import com.google.gwt.event.dom.client.ClickHandler;
|
||||
import com.google.gwt.resources.client.ImageResource;
|
||||
import com.google.gwt.user.client.ui.Grid;
|
||||
import com.google.gwt.user.client.ui.HTMLTable.Cell;
|
||||
import com.google.gwt.user.client.ui.Image;
|
||||
import com.google.gwt.user.client.ui.PushButton;
|
||||
import com.google.gwt.user.client.ui.ValueBoxBase;
|
||||
@@ -86,7 +87,8 @@ public abstract class ExpandedListEditorUi<ValueType> extends ListEditorUi<Value
|
||||
removeButton.addClickHandler(new ClickHandler() {
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
int rowToRemove = expandedValuesGrid.getCellForEvent(event).getRowIndex();
|
||||
final Cell cellForEvent = expandedValuesGrid.getCellForEvent(event);
|
||||
int rowToRemove = cellForEvent.getRowIndex();
|
||||
removeRow(rowToRemove);
|
||||
}
|
||||
});
|
||||
|
||||
+21
-1
@@ -27,6 +27,11 @@ public class StringListEditorComposite extends ListEditorComposite<String> {
|
||||
super(initialValues, new ExpandedUi(stringMessages, removeImage, suggestValues));
|
||||
}
|
||||
|
||||
public StringListEditorComposite(Iterable<String> initialValues, StringMessages stringMessages,
|
||||
ImageResource removeImage, Iterable<String> suggestValues, String placeholderTextForAddTextbox) {
|
||||
super(initialValues, new ExpandedUi(stringMessages, removeImage, suggestValues, placeholderTextForAddTextbox));
|
||||
}
|
||||
|
||||
public StringListEditorComposite(Iterable<String> initialValues, ListEditorUiStrategy<String> activeUi) {
|
||||
super(initialValues, activeUi);
|
||||
}
|
||||
@@ -59,9 +64,16 @@ public class StringListEditorComposite extends ListEditorComposite<String> {
|
||||
public static class ExpandedUi extends ExpandedListEditorUi<String> {
|
||||
|
||||
protected final MultiWordSuggestOracle inputOracle;
|
||||
protected final String placeholderTextForAddTextbox;
|
||||
|
||||
|
||||
public ExpandedUi(StringMessages stringMessages, ImageResource removeImage, Iterable<String> suggestValues) {
|
||||
this(stringMessages, removeImage, suggestValues, /* placeholderTextForAddTextbox */ null);
|
||||
}
|
||||
|
||||
public ExpandedUi(StringMessages stringMessages, ImageResource removeImage, Iterable<String> suggestValues, String placeholderTextForAddTextbox) {
|
||||
super(stringMessages, removeImage, /*canRemoveItems*/true);
|
||||
this.placeholderTextForAddTextbox = placeholderTextForAddTextbox;
|
||||
this.inputOracle = new MultiWordSuggestOracle();
|
||||
for (String suggestValue : suggestValues) {
|
||||
inputOracle.add(suggestValue);
|
||||
@@ -74,9 +86,17 @@ public class StringListEditorComposite extends ListEditorComposite<String> {
|
||||
inputOracle.addAll(context.getValue());
|
||||
}
|
||||
|
||||
protected SuggestBox createSuggestBox() {
|
||||
final SuggestBox result = new SuggestBox(inputOracle);
|
||||
if (placeholderTextForAddTextbox != null) {
|
||||
result.getElement().setAttribute("placeholder", placeholderTextForAddTextbox);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Widget createAddWidget() {
|
||||
final SuggestBox inputBox = new SuggestBox(inputOracle);
|
||||
final SuggestBox inputBox = createSuggestBox();
|
||||
inputBox.ensureDebugId("InputSuggestBox");
|
||||
final Button addButton = new Button(getStringMessages().add());
|
||||
addButton.ensureDebugId("AddButton");
|
||||
|
||||
+10
-43
@@ -3,16 +3,11 @@ package com.sap.sse.gwt.client.controls.listedit;
|
||||
import java.util.List;
|
||||
|
||||
import com.google.gwt.dom.client.InputElement;
|
||||
import com.google.gwt.event.dom.client.ClickEvent;
|
||||
import com.google.gwt.event.dom.client.ClickHandler;
|
||||
import com.google.gwt.event.dom.client.KeyUpEvent;
|
||||
import com.google.gwt.event.dom.client.KeyUpHandler;
|
||||
import com.google.gwt.event.logical.shared.ValueChangeEvent;
|
||||
import com.google.gwt.event.logical.shared.ValueChangeHandler;
|
||||
import com.google.gwt.resources.client.ImageResource;
|
||||
import com.google.gwt.user.client.ui.Button;
|
||||
import com.google.gwt.user.client.ui.HorizontalPanel;
|
||||
import com.google.gwt.user.client.ui.MultiWordSuggestOracle;
|
||||
import com.google.gwt.user.client.ui.SuggestBox;
|
||||
import com.google.gwt.user.client.ui.TextBox;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
@@ -45,52 +40,24 @@ public class StringListInlineEditorComposite extends StringListEditorComposite {
|
||||
}
|
||||
}
|
||||
|
||||
public static class ExpandedUi extends ExpandedListEditorUi<String> {
|
||||
private final MultiWordSuggestOracle inputOracle;
|
||||
public static class ExpandedUi extends StringListEditorComposite.ExpandedUi {
|
||||
private final int textBoxSize;
|
||||
|
||||
public ExpandedUi(StringMessages stringMessages, ImageResource removeImage, List<String> suggestValues, int textBoxSize) {
|
||||
super(stringMessages, removeImage, /*canRemoveItems*/true);
|
||||
this.inputOracle = new MultiWordSuggestOracle();
|
||||
this(stringMessages, removeImage, suggestValues, /* placeholderTextForAddTextbox */ null, textBoxSize);
|
||||
}
|
||||
|
||||
public ExpandedUi(StringMessages stringMessages, ImageResource removeImage, List<String> suggestValues, String placeholderTextForAddTextbox, int textBoxSize) {
|
||||
super(stringMessages, removeImage, suggestValues, placeholderTextForAddTextbox);
|
||||
this.textBoxSize = textBoxSize;
|
||||
inputOracle.addAll(suggestValues);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setContext(ListEditorComposite<String> context) {
|
||||
super.setContext(context);
|
||||
inputOracle.addAll(context.getValue());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Widget createAddWidget() {
|
||||
final SuggestBox inputBox = new SuggestBox(inputOracle);
|
||||
|
||||
InputElement inputElement = inputBox.getElement().cast();
|
||||
protected SuggestBox createSuggestBox() {
|
||||
SuggestBox result = super.createSuggestBox();
|
||||
InputElement inputElement = result.getElement().cast();
|
||||
inputElement.setSize(textBoxSize);
|
||||
|
||||
final Button addButton = new Button(getStringMessages().add());
|
||||
addButton.setEnabled(false);
|
||||
addButton.addClickHandler(new ClickHandler() {
|
||||
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
addValue(inputBox.getValue());
|
||||
inputBox.setText("");
|
||||
}
|
||||
});
|
||||
inputBox.addKeyUpHandler(new KeyUpHandler() {
|
||||
|
||||
@Override
|
||||
public void onKeyUp(KeyUpEvent event) {
|
||||
addButton.setEnabled(!inputBox.getValue().isEmpty());
|
||||
}
|
||||
});
|
||||
|
||||
HorizontalPanel panel = new HorizontalPanel();
|
||||
panel.add(inputBox);
|
||||
panel.add(addButton);
|
||||
return panel;
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+2
@@ -84,5 +84,7 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages {
|
||||
String edit();
|
||||
|
||||
String errorUpdatingRoles(String username, String message);
|
||||
|
||||
String enterRoleName();
|
||||
|
||||
}
|
||||
+2
-1
@@ -37,4 +37,5 @@ save=Save
|
||||
remove=Remove
|
||||
add=Add
|
||||
edit=Edit
|
||||
errorUpdatingRoles=Error updating roles for user {0}: {1}
|
||||
errorUpdatingRoles=Error updating roles for user {0}: {1}
|
||||
enterRoleName=Enter role name...
|
||||
+2
-1
@@ -37,4 +37,5 @@ save=Sichern
|
||||
remove=Löschen
|
||||
add=Hinzufügen
|
||||
edit=Bearbeiten
|
||||
errorUpdatingRoles=Fehler beim Aktualisieren der Rollen des Benutzers {0}: {1}
|
||||
errorUpdatingRoles=Fehler beim Aktualisieren der Rollen des Benutzers {0}: {1}
|
||||
enterRoleName=Rollennamen eingeben...
|
||||
+3
-2
@@ -59,9 +59,10 @@ public class UserDetailsView extends FlowPanel {
|
||||
addStyleName("userDetailsView");
|
||||
List<String> defaultRoleNames = new ArrayList<>();
|
||||
for (DefaultRoles defaultRole : DefaultRoles.values()) {
|
||||
defaultRoleNames.add(defaultRole.name());
|
||||
defaultRoleNames.add(defaultRole.getRolename());
|
||||
}
|
||||
rolesEditor = new StringListEditorComposite(user==null?Collections.<String>emptySet():user.getRoles(), stringMessages, IconResources.INSTANCE.remove(), defaultRoleNames);
|
||||
rolesEditor = new StringListEditorComposite(user==null?Collections.<String>emptySet():user.getRoles(), stringMessages, IconResources.INSTANCE.remove(), defaultRoleNames,
|
||||
stringMessages.enterRoleName());
|
||||
rolesEditor.addValueChangeHandler(new ValueChangeHandler<Iterable<String>>() {
|
||||
@Override
|
||||
public void onValueChange(ValueChangeEvent<Iterable<String>> event) {
|
||||
|
||||
Reference in new issue
Block a user