net.wedjaa.jasper.elasticsearch.adapter.ESAdapterComposite.java Source code

Java tutorial

Introduction

Here is the source code for net.wedjaa.jasper.elasticsearch.adapter.ESAdapterComposite.java

Source

/****
 * 
 * Copyright 2013-2014 Wedjaa <http://www.wedjaa.net/>
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 *    http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 *
 */

package net.wedjaa.jasper.elasticsearch.adapter;

import com.jaspersoft.studio.data.ADataAdapterComposite;
import com.jaspersoft.studio.data.DataAdapterDescriptor;

import net.sf.jasperreports.data.DataAdapter;
import net.sf.jasperreports.engine.JasperReportsContext;

import org.eclipse.core.databinding.beans.PojoObservables;
import org.eclipse.jface.databinding.swt.SWTObservables;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Combo;

/**
 *
 * @author Fabio Torchetti
 */
public class ESAdapterComposite extends ADataAdapterComposite {

    private ESAdapterDescriptor dataAdapterDescriptor;
    private Text esHostField;
    private Text esPortField;
    private Text esClusterField;
    private Text esIndexesField;
    private Text esTypesField;
    private Text esUsernameField;
    private Text esPasswordField;
    private Combo esSearchModeField;

    public ESAdapterComposite(Composite parent, int style, JasperReportsContext jrContext) {
        super(parent, style, jrContext);
        initComponents();
    }

    private void initComponents() {
        setLayout(new GridLayout(2, false));
        createLabel("Indexes - comma separated");
        esIndexesField = createTextField(false);
        createLabel("Types - comma separated");
        esTypesField = createTextField(false);
        createLabel("Hostname");
        esHostField = createTextField(false);
        createLabel("Port");
        esPortField = createTextField(false);
        createLabel("Cluster");
        esClusterField = createTextField(false);
        createLabel("Username");
        esUsernameField = createTextField(false);
        createLabel("Password");
        esPasswordField = createTextField(true);
        createLabel("Query Mode");
        esSearchModeField = createComboField();

    }

    private void createLabel(String text) {
        Label label = new Label(this, SWT.NONE);
        label.setText(text);
        label.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1));
    }

    private Text createTextField(boolean password) {
        Text textField = new Text(this, !password ? SWT.BORDER : SWT.BORDER | SWT.PASSWORD);
        textField.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
        return textField;
    }

    private Combo createComboField() {
        Combo comboField = new Combo(this, SWT.BORDER);
        comboField.add("Hits Mode - Returns Hits Data", 0);
        comboField.add("Facets Mode - Returns Facets Data", 1);
        comboField.add("Aggregation Mode - Returns Aggregations Data", 2);
        comboField.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
        return comboField;
    }

    public DataAdapterDescriptor getDataAdapter() {
        if (dataAdapterDescriptor == null) {
            dataAdapterDescriptor = new ESAdapterDescriptor();
        }
        return dataAdapterDescriptor;
    }

    @Override
    public void setDataAdapter(DataAdapterDescriptor dataAdapterDescriptor) {
        super.setDataAdapter(dataAdapterDescriptor);

        this.dataAdapterDescriptor = (ESAdapterDescriptor) dataAdapterDescriptor;
        ESAdapter dataAdapter = (ESAdapter) dataAdapterDescriptor.getDataAdapter();
        bindWidgets(dataAdapter);
    }

    @Override
    protected void bindWidgets(DataAdapter dataAdapter) {
        bindingContext.bindValue(SWTObservables.observeText(esHostField, SWT.Modify),
                PojoObservables.observeValue(dataAdapter, "elasticSearchHost"));
        bindingContext.bindValue(SWTObservables.observeText(esPortField, SWT.Modify),
                PojoObservables.observeValue(dataAdapter, "elasticSearchPort"));
        bindingContext.bindValue(SWTObservables.observeText(esClusterField, SWT.Modify),
                PojoObservables.observeValue(dataAdapter, "elasticSearchCluster"));
        bindingContext.bindValue(SWTObservables.observeText(esIndexesField, SWT.Modify),
                PojoObservables.observeValue(dataAdapter, "elasticSearchIndexes"));
        bindingContext.bindValue(SWTObservables.observeText(esTypesField, SWT.Modify),
                PojoObservables.observeValue(dataAdapter, "elasticSearchTypes"));
        bindingContext.bindValue(SWTObservables.observeText(esUsernameField, SWT.Modify),
                PojoObservables.observeValue(dataAdapter, "elasticSearchUsername"));
        bindingContext.bindValue(SWTObservables.observeText(esPasswordField, SWT.Modify),
                PojoObservables.observeValue(dataAdapter, "elasticSearchPassword"));
        bindingContext.bindValue(SWTObservables.observeSingleSelectionIndex(esSearchModeField),
                PojoObservables.observeValue(dataAdapter, "elasticSearchMode"));
    }

    @Override
    public String getHelpContextId() {
        return PREFIX.concat("adapter_elasticsearch");
    }
}