SearchApp.java

package sk.iway.iwcm.components.search;

import java.util.List;

import com.fasterxml.jackson.annotation.JsonProperty;

import lombok.Getter;
import lombok.Setter;
import sk.iway.iwcm.components.WebjetComponentAbstract;
import sk.iway.iwcm.doc.GroupDetails;
import sk.iway.iwcm.system.annotations.WebjetAppStore;
import sk.iway.iwcm.system.annotations.WebjetComponent;
import sk.iway.iwcm.system.datatable.DataTableColumnType;
import sk.iway.iwcm.system.datatable.annotations.DataTableColumn;
import sk.iway.iwcm.system.datatable.annotations.DataTableColumnEditor;
import sk.iway.iwcm.system.datatable.annotations.DataTableColumnEditorAttr;

@WebjetComponent("sk.iway.iwcm.components.search.SearchApp")
@WebjetAppStore(
    nameKey = "components.search.title",
    descKey = "components.search.desc",
    itemKey = "cmp_search",
    imagePath = "/components/search/editoricon.png",
    galleryImages = "/components/search/",
    componentPath = "/components/search/search.jsp,/components/search/lucene_search.jsp")
@Getter
@Setter
public class SearchApp extends WebjetComponentAbstract {

    @DataTableColumn(
        inputType = DataTableColumnType.JSON,
        title = "components.news.groupids",
        tab = "basic",
        sortAfter = "editorFields.groupDetails",
        className = "dt-tree-group-array")
    private List<GroupDetails> rootGroup;

    @DataTableColumn(inputType = DataTableColumnType.TEXT, tab = "basic", title="components.search.results_per_page", editor = {
        @DataTableColumnEditor(
            attr = {
                @DataTableColumnEditorAttr(key = "placeholder", value = "components.search.results_per_page")
            }
        )
    })
    private int perpage = 10;

    @DataTableColumn(
        inputType = DataTableColumnType.BOOLEAN_TEXT,
        title = "components.search.check_duplicty",
        tab = "basic"
    )
    private Boolean checkDuplicity;

    @DataTableColumn(
        inputType = DataTableColumnType.TEXT,
        title = "components.formsimple.placeholder",
        tab = "basic",
        editor = {
            @DataTableColumnEditor(
                message = "components.formsimple.placeholderComment",
                attr = {
                    @DataTableColumnEditorAttr(key = "placeholder", value = "components.search.title")
                }
            )
        }
    )
    private String inputText = "";

    @DataTableColumn(
        inputType = DataTableColumnType.SELECT,
        tab = "basic",
        title="components.search.order_by",
        editor = {
        @DataTableColumnEditor(
            options = {
                @DataTableColumnEditorAttr(key = "components.search.relevance", value = "sortPriority"),
                @DataTableColumnEditorAttr(key = "components.search.file_name", value = "title"),
                @DataTableColumnEditorAttr(key = "components.search.file_change", value = "lastUpdate")
            }
        )
    })
    private String orderType = "sortPriority";

    @DataTableColumn(
        inputType = DataTableColumnType.RADIO,
        title = "components.search.search_type",
        tab = "basic",
        editor = {
            @DataTableColumnEditor(
                options = {
                    @DataTableColumnEditorAttr(key = "components.inquiry.orderAsc", value = "asc"),
                    @DataTableColumnEditorAttr(key = "components.inquiry.orderDesc", value = "desc")
                }
            )
        }
    )
    private String order = "asc";

    @DataTableColumn(
        inputType = DataTableColumnType.RADIO,
        title = "editor.paste",
        tab = "basic",
        editor = {
            @DataTableColumnEditor(
                options = {
                    @DataTableColumnEditorAttr(key = "components.search.text_field", value = "form"),
                    @DataTableColumnEditorAttr(key = "components.search.results", value = "results"),
                    @DataTableColumnEditorAttr(key = "components.search.search_complete", value = "complete")
                }
            )
        }
    )
    @JsonProperty("sForm")
    private String sForm = "complete";
}