com.jaspersoft.studio.data.xvia.TrackViaDataAdapterComposite.java Source code

Java tutorial

Introduction

Here is the source code for com.jaspersoft.studio.data.xvia.TrackViaDataAdapterComposite.java

Source

/*******************************************************************************
 * Copyright (C) 2005 - 2014 TIBCO Software Inc. All rights reserved.
 * http://www.jaspersoft.com.
 * 
 * Unless you have purchased  a commercial license agreement from Jaspersoft,
 * the following license terms  apply:
 * 
 * This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 ******************************************************************************/
package com.jaspersoft.studio.data.xvia;

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 com.jaspersoft.studio.JaspersoftStudioPlugin;
import com.jaspersoft.studio.data.ADataAdapterComposite;
import com.jaspersoft.studio.data.DataAdapterDescriptor;
import com.jaspersoft.studio.data.secret.DataAdaptersSecretsProvider;
import com.jaspersoft.studio.data.xvia.adapter.TrackViaDataAdapter;
import com.jaspersoft.studio.data.xvia.messages.Messages;
import com.jaspersoft.studio.swt.widgets.WSecretText;

public class TrackViaDataAdapterComposite extends ADataAdapterComposite {
    private Text trackviaUriField;
    private Text usernameField;
    private WSecretText passwordField;

    private TrackViaDataAdapterDescriptor dataAdapterDescriptor;

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

    private void initComponents() {
        setLayout(new GridLayout(2, false));

        createLabel(Messages.TrackViaDataAdapterComposite_labelURI);
        trackviaUriField = new Text(this, SWT.BORDER);
        trackviaUriField.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));

        createLabel(Messages.TrackViaDataAdapterComposite_labelUsername);
        usernameField = new Text(this, SWT.BORDER);
        usernameField.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));

        createLabel(Messages.TrackViaDataAdapterComposite_labelPassword);
        passwordField = new WSecretText(this, SWT.BORDER | SWT.PASSWORD);
        passwordField.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    }

    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));
    }

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

    @Override
    public void setDataAdapter(DataAdapterDescriptor dataAdapterDescriptor) {
        super.setDataAdapter(dataAdapterDescriptor);
        this.dataAdapterDescriptor = (TrackViaDataAdapterDescriptor) dataAdapterDescriptor;
        TrackViaDataAdapter dataAdapter = (TrackViaDataAdapter) dataAdapterDescriptor.getDataAdapter();
        if (!passwordField.isWidgetConfigured()) {
            passwordField.loadSecret(DataAdaptersSecretsProvider.SECRET_NODE_ID, passwordField.getText());
        }
        bindWidgets(dataAdapter);
    }

    @Override
    protected void bindWidgets(DataAdapter dataAdapter) {
        bindingContext.bindValue(SWTObservables.observeText(trackviaUriField, SWT.Modify),
                PojoObservables.observeValue(dataAdapter, "trackViaURI")); //$NON-NLS-1$
        bindingContext.bindValue(SWTObservables.observeText(usernameField, SWT.Modify),
                PojoObservables.observeValue(dataAdapter, "username")); //$NON-NLS-1$
        bindingContext.bindValue(SWTObservables.observeText(passwordField, SWT.Modify),
                PojoObservables.observeValue(dataAdapter, "password")); //$NON-NLS-1$
    }

    @Override
    public void performAdditionalUpdates() {
        if (JaspersoftStudioPlugin.shouldUseSecureStorage()) {
            passwordField.persistSecret();
            // update the "password" replacing it with the UUID key saved in secure
            // preferences
            TrackViaDataAdapter trackviaDataAdapter = (TrackViaDataAdapter) dataAdapterDesc.getDataAdapter();
            trackviaDataAdapter.setPassword(passwordField.getUUIDKey());
        }
    }

    @Override
    public String getHelpContextId() {
        return PREFIX.concat("adapter_trackvia"); //$NON-NLS-1$
    }
}