use of org.eclipse.scout.rt.client.ui.form.fields.composer.internal.ComposerDisplayTextBuilder in project scout.rt by eclipse.
the class DefaultSearchFilterService method applySearchDelegate.
@Override
public void applySearchDelegate(IFormField field, SearchFilter search, boolean includeChildren) {
String label = field.getLabel();
if (field.getParentField() instanceof ISequenceBox && field.getParentField() instanceof AbstractFormField) {
AbstractFormField range = (AbstractFormField) field.getParentField();
if (range.getInitialLabel() != null) {
label = range.getInitialLabel() + (StringUtility.isNullOrEmpty(label) ? "" : " " + label);
}
}
// composer
if (field instanceof AbstractComposerField) {
AbstractComposerField composerField = (AbstractComposerField) field;
ITreeNode rootNode = composerField.getTree().getRootNode();
if (rootNode != null) {
StringBuilder buf = new StringBuilder();
new ComposerDisplayTextBuilder().build(rootNode, buf, "");
String s = buf.toString();
if (StringUtility.hasText(s)) {
search.addDisplayText(s);
}
}
return;
}
// list box
if (field instanceof AbstractListBox<?>) {
AbstractListBox<?> valueField = (AbstractListBox<?>) field;
if (!valueField.getValue().isEmpty()) {
search.addDisplayText(label + " " + TEXTS.get("LogicIn") + " " + valueField.getDisplayText());
}
return;
}
// tree box
if (field instanceof AbstractTreeBox<?>) {
AbstractTreeBox<?> valueField = (AbstractTreeBox<?>) field;
if (!valueField.getValue().isEmpty()) {
search.addDisplayText(label + " " + TEXTS.get("LogicIn") + " " + valueField.getDisplayText());
}
return;
}
// string, html, label field
if (field instanceof AbstractStringField || field instanceof AbstractHtmlField || field instanceof AbstractLabelField) {
AbstractValueField<?> valueField = (AbstractValueField<?>) field;
if (valueField.getValue() != null) {
search.addDisplayText(label + " " + TEXTS.get("LogicLike") + " " + valueField.getDisplayText());
}
return;
}
// boolean field
if (field instanceof AbstractBooleanField) {
AbstractBooleanField valueField = (AbstractBooleanField) field;
if (valueField.getValue() != null && valueField.getValue()) {
search.addDisplayText(label);
}
return;
}
// radiobuttongroup field
if (field instanceof AbstractRadioButtonGroup<?>) {
AbstractRadioButtonGroup<?> valueField = (AbstractRadioButtonGroup<?>) field;
if (valueField.getValue() != null) {
IButton selectedButton = valueField.getSelectedButton();
search.addDisplayText(label + " = " + (selectedButton != null ? selectedButton.getLabel() : ""));
}
return;
}
// value field
if (field instanceof AbstractValueField<?>) {
AbstractValueField<?> valueField = (AbstractValueField<?>) field;
if (valueField.getValue() != null) {
search.addDisplayText(label + " " + TEXTS.get("LogicEQ") + " " + valueField.getDisplayText());
}
return;
}
if (includeChildren) {
applySearchDelegateForChildren(field, search);
}
}
use of org.eclipse.scout.rt.client.ui.form.fields.composer.internal.ComposerDisplayTextBuilder in project scout.rt by eclipse.
the class DefaultSearchFilterServiceTest method testComposerField.
@Test
public void testComposerField() {
MyComposerField composer = new MyComposerField();
composer.initField();
runBasicAsserts(composer);
CarEntity carEntity = composer.new CarEntity();
ITreeNode carNode = composer.addEntityNode(composer.getTree().getRootNode(), carEntity, true, Collections.emptyList(), new ArrayList<String>());
composer.addAttributeNode(carNode, carEntity.new ColorAttribute(), DataModelConstants.AGGREGATION_NONE, DataModelAttributeOp.create(DataModelConstants.OPERATOR_EQ), CollectionUtility.arrayList("blue key"), CollectionUtility.arrayList("blue value"));
m_searchFilterService.applySearchDelegate(composer, m_searchFilter, false);
StringBuilder result = new StringBuilder();
new ComposerDisplayTextBuilder().build(composer.getTree().getRootNode(), result, "");
Assert.assertEquals(result.toString().trim(), m_searchFilter.getDisplayTextsPlain());
}
Aggregations