Переглянути джерело

Move suggestion popup width calculation from connector to VFilterSelect

Change-Id: I846b71c453524ecc525c6ab6c528dffcc7715558
tags/7.0.6
Henri Sara 11 роки тому
джерело
коміт
19e27a15ca

+ 23
- 0
client/src/com/vaadin/client/ui/VFilterSelect.java Переглянути файл

} }
} }


/**
* 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. * Calculate minimum width for FilterSelect textarea.
* <p> * <p>

+ 2
- 12
client/src/com/vaadin/client/ui/combobox/ComboBoxConnector.java Переглянути файл

import com.vaadin.client.ApplicationConnection; import com.vaadin.client.ApplicationConnection;
import com.vaadin.client.Paintable; import com.vaadin.client.Paintable;
import com.vaadin.client.UIDL; import com.vaadin.client.UIDL;
import com.vaadin.client.Util;
import com.vaadin.client.ui.AbstractFieldConnector; import com.vaadin.client.ui.AbstractFieldConnector;
import com.vaadin.client.ui.SimpleManagedLayout; import com.vaadin.client.ui.SimpleManagedLayout;
import com.vaadin.client.ui.VFilterSelect; import com.vaadin.client.ui.VFilterSelect;
getWidget().totalMatches = 0; getWidget().totalMatches = 0;
} }


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

for (final Iterator<?> i = options.getChildIterator(); i.hasNext();) { for (final Iterator<?> i = options.getChildIterator(); i.hasNext();) {
final UIDL optionUidl = (UIDL) i.next(); final UIDL optionUidl = (UIDL) i.next();
final FilterSelectSuggestion suggestion = getWidget().new FilterSelectSuggestion( final FilterSelectSuggestion suggestion = getWidget().new FilterSelectSuggestion(
getWidget().currentSuggestion = suggestion; getWidget().currentSuggestion = suggestion;
getWidget().setSelectedItemIcon(suggestion.getIconUri()); 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) if ((!getWidget().waitingForFilteringResponse || getWidget().popupOpenerClicked)
} }
} }


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


getWidget().popupOpenerClicked = false; getWidget().popupOpenerClicked = false;



Завантаження…
Відмінити
Зберегти