Search in sources :

Example 1 with ComposerDisplayTextBuilder

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);
    }
}
Also used : AbstractFormField(org.eclipse.scout.rt.client.ui.form.fields.AbstractFormField) AbstractHtmlField(org.eclipse.scout.rt.client.ui.form.fields.htmlfield.AbstractHtmlField) AbstractStringField(org.eclipse.scout.rt.client.ui.form.fields.stringfield.AbstractStringField) ISequenceBox(org.eclipse.scout.rt.client.ui.form.fields.sequencebox.ISequenceBox) ITreeNode(org.eclipse.scout.rt.client.ui.basic.tree.ITreeNode) AbstractValueField(org.eclipse.scout.rt.client.ui.form.fields.AbstractValueField) AbstractLabelField(org.eclipse.scout.rt.client.ui.form.fields.labelfield.AbstractLabelField) IButton(org.eclipse.scout.rt.client.ui.form.fields.button.IButton) AbstractRadioButtonGroup(org.eclipse.scout.rt.client.ui.form.fields.radiobuttongroup.AbstractRadioButtonGroup) AbstractListBox(org.eclipse.scout.rt.client.ui.form.fields.listbox.AbstractListBox) AbstractComposerField(org.eclipse.scout.rt.client.ui.form.fields.composer.AbstractComposerField) ComposerDisplayTextBuilder(org.eclipse.scout.rt.client.ui.form.fields.composer.internal.ComposerDisplayTextBuilder) AbstractBooleanField(org.eclipse.scout.rt.client.ui.form.fields.booleanfield.AbstractBooleanField) AbstractTreeBox(org.eclipse.scout.rt.client.ui.form.fields.treebox.AbstractTreeBox)

Example 2 with ComposerDisplayTextBuilder

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());
}
Also used : CarEntity(org.eclipse.scout.rt.client.services.common.search.DefaultSearchFilterServiceTest.MyComposerField.CarEntity) ITreeNode(org.eclipse.scout.rt.client.ui.basic.tree.ITreeNode) ComposerDisplayTextBuilder(org.eclipse.scout.rt.client.ui.form.fields.composer.internal.ComposerDisplayTextBuilder) Test(org.junit.Test)

Aggregations

ITreeNode (org.eclipse.scout.rt.client.ui.basic.tree.ITreeNode)2 ComposerDisplayTextBuilder (org.eclipse.scout.rt.client.ui.form.fields.composer.internal.ComposerDisplayTextBuilder)2 CarEntity (org.eclipse.scout.rt.client.services.common.search.DefaultSearchFilterServiceTest.MyComposerField.CarEntity)1 AbstractFormField (org.eclipse.scout.rt.client.ui.form.fields.AbstractFormField)1 AbstractValueField (org.eclipse.scout.rt.client.ui.form.fields.AbstractValueField)1 AbstractBooleanField (org.eclipse.scout.rt.client.ui.form.fields.booleanfield.AbstractBooleanField)1 IButton (org.eclipse.scout.rt.client.ui.form.fields.button.IButton)1 AbstractComposerField (org.eclipse.scout.rt.client.ui.form.fields.composer.AbstractComposerField)1 AbstractHtmlField (org.eclipse.scout.rt.client.ui.form.fields.htmlfield.AbstractHtmlField)1 AbstractLabelField (org.eclipse.scout.rt.client.ui.form.fields.labelfield.AbstractLabelField)1 AbstractListBox (org.eclipse.scout.rt.client.ui.form.fields.listbox.AbstractListBox)1 AbstractRadioButtonGroup (org.eclipse.scout.rt.client.ui.form.fields.radiobuttongroup.AbstractRadioButtonGroup)1 ISequenceBox (org.eclipse.scout.rt.client.ui.form.fields.sequencebox.ISequenceBox)1 AbstractStringField (org.eclipse.scout.rt.client.ui.form.fields.stringfield.AbstractStringField)1 AbstractTreeBox (org.eclipse.scout.rt.client.ui.form.fields.treebox.AbstractTreeBox)1 Test (org.junit.Test)1