Parcourir la source

Allow referencing ComboBox menu items as VFilterSelect$SuggestionMenu[0]#itemX

svn changeset:13908/svn branch:6.4
tags/6.7.0.beta1
Artur Signell il y a 14 ans
Parent
révision
885bc4718c
1 fichiers modifiés avec 34 ajouts et 1 suppressions
  1. 34
    1
      src/com/vaadin/terminal/gwt/client/ui/VFilterSelect.java

+ 34
- 1
src/com/vaadin/terminal/gwt/client/ui/VFilterSelect.java Voir le fichier

@@ -491,7 +491,7 @@ public class VFilterSelect extends Composite implements Paintable, Field,
/**
* The menu where the suggestions are rendered
*/
public class SuggestionMenu extends MenuBar {
public class SuggestionMenu extends MenuBar implements SubPartAware {

/**
* Default constructor
@@ -659,6 +659,39 @@ public class VFilterSelect extends Composite implements Paintable, Field,
}
super.onBrowserEvent(event);
}

private static final String SUBPART_PREFIX = "item";

public Element getSubPartElement(String subPart) {
int index = Integer.parseInt(subPart.substring(SUBPART_PREFIX
.length()));

MenuItem item = (MenuItem) getItems().get(index);

return item.getElement();
}

public String getSubPartName(Element subElement) {
if (!getElement().isOrHasChild(subElement)) {
return null;
}

Element menuItemRoot = subElement;
while (menuItemRoot != null
&& !menuItemRoot.getTagName().equalsIgnoreCase("td")) {
menuItemRoot = menuItemRoot.getParentElement().cast();
}
// "menuItemRoot" is now the root of the menu item

final int itemCount = getItems().size();
for (int i = 0; i < itemCount; i++) {
if (((MenuItem) getItems().get(i)).getElement() == menuItemRoot) {
String name = SUBPART_PREFIX + i;
return name;
}
}
return null;
}
}

public static final int FILTERINGMODE_OFF = 0;

Chargement…
Annuler
Enregistrer