Explorar el Código

Move suggestion popup width calculation from connector to VFilterSelect

Change-Id: I846b71c453524ecc525c6ab6c528dffcc7715558
tags/7.0.6
Henri Sara hace 11 años
padre
commit
19e27a15ca

+ 23
- 0
client/src/com/vaadin/client/ui/VFilterSelect.java Ver fichero

@@ -1621,6 +1621,29 @@ public class VFilterSelect extends Composite implements Field, KeyDownHandler,
}
}

/**
* Update minimum width for FilterSelect textarea based on input prompt and
* suggestions.
* <p>
* For internal use only. May be removed or replaced in the future.
*/
public void updateSuggestionPopupMinWidth() {
// used only to calculate minimum width
String captions = Util.escapeHTML(inputPrompt);

for (FilterSelectSuggestion suggestion : currentSuggestions) {
// Collect captions so we can calculate minimum width for
// textarea
if (captions.length() > 0) {
captions += "|";
}
captions += Util.escapeHTML(suggestion.getReplacementString());
}

// Calculate minimum textarea width
suggestionPopupMinWidth = minWidth(captions);
}

/**
* Calculate minimum width for FilterSelect textarea.
* <p>

+ 2
- 12
client/src/com/vaadin/client/ui/combobox/ComboBoxConnector.java Ver fichero

@@ -20,7 +20,6 @@ import java.util.Iterator;
import com.vaadin.client.ApplicationConnection;
import com.vaadin.client.Paintable;
import com.vaadin.client.UIDL;
import com.vaadin.client.Util;
import com.vaadin.client.ui.AbstractFieldConnector;
import com.vaadin.client.ui.SimpleManagedLayout;
import com.vaadin.client.ui.VFilterSelect;
@@ -124,9 +123,6 @@ public class ComboBoxConnector extends AbstractFieldConnector implements
getWidget().totalMatches = 0;
}

// used only to calculate minimum popup width
String captions = Util.escapeHTML(getWidget().inputPrompt);

for (final Iterator<?> i = options.getChildIterator(); i.hasNext();) {
final UIDL optionUidl = (UIDL) i.next();
final FilterSelectSuggestion suggestion = getWidget().new FilterSelectSuggestion(
@@ -152,12 +148,6 @@ public class ComboBoxConnector extends AbstractFieldConnector implements
getWidget().currentSuggestion = suggestion;
getWidget().setSelectedItemIcon(suggestion.getIconUri());
}

// Collect captions so we can calculate minimum width for textarea
if (captions.length() > 0) {
captions += "|";
}
captions += Util.escapeHTML(suggestion.getReplacementString());
}

if ((!getWidget().waitingForFilteringResponse || getWidget().popupOpenerClicked)
@@ -222,8 +212,8 @@ public class ComboBoxConnector extends AbstractFieldConnector implements
}
}

// Calculate minumum textarea width
getWidget().suggestionPopupMinWidth = getWidget().minWidth(captions);
// Calculate minimum textarea width
getWidget().updateSuggestionPopupMinWidth();

getWidget().popupOpenerClicked = false;


Cargando…
Cancelar
Guardar