import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.KeyboardListener;
import com.google.gwt.user.client.ui.PopupPanel;
import com.google.gwt.user.client.ui.TextBox;
private String key;
private String caption;
+ private String iconUri;
public FilterSelectSuggestion(UIDL uidl) {
this.key = uidl.getStringAttribute("key");
this.caption = uidl.getStringAttribute("caption");
+ if(uidl.hasAttribute("icon")) {
+ this.iconUri = uidl.getStringAttribute("icon");
+ }
}
public String getDisplayString() {
- return caption;
+ StringBuffer sb = new StringBuffer();
+ if(iconUri != null) {
+ sb.append("<img src=\"");
+ sb.append(iconUri);
+ sb.append("\" alt=\"icon\" class=\"i-icon\" />");
+ }
+ sb.append(caption);
+ return sb.toString();
}
public String getReplacementString() {
return Integer.parseInt(key);
}
+ public String getIconUri() {
+ return iconUri;
+ }
+
public void execute() {
IFilterSelect.this.onSuggestionSelected(this);
}
private final HTML popupOpener = new HTML("v");
+ private final Image selectedItemIcon = new Image();
+
private ApplicationConnection client;
private String paintableId;
private ArrayList allSuggestions;
public IFilterSelect() {
+ selectedItemIcon.setVisible(false);
+ panel.add(selectedItemIcon);
panel.add(tb);
panel.add(popupOpener);
initWidget(panel);
currentSuggestion = suggestion;
String newKey = String.valueOf(suggestion.getOptionKey());
tb.setText(suggestion.getReplacementString());
- if(newKey.equals(selectedOptionKey))
- return;
- selectedOptionKey = newKey;
- client.updateVariable(
- paintableId,
- "selected",
- new String[] {selectedOptionKey} ,
- immediate);
- lastFilter = tb.getText();
+ setSelectedItemIcon(suggestion.getIconUri());
+ if(!newKey.equals(selectedOptionKey)) {
+ selectedOptionKey = newKey;
+ client.updateVariable(
+ paintableId,
+ "selected",
+ new String[] {selectedOptionKey} ,
+ immediate);
+ lastFilter = tb.getText();
+ }
suggestionPopup.hide();
}
+ private void setSelectedItemIcon(String iconUri) {
+ if(iconUri == null) {
+ selectedItemIcon.setVisible(false);
+ } else {
+ selectedItemIcon.setUrl(iconUri);
+ selectedItemIcon.setVisible(true);
+ }
+ }
+
public void onBrowserEvent(Event event) {
client.console.log("pöö");
}