org.fusesource.ide.sap.ui.properties.SncPropertySection.java Source code

Java tutorial

Introduction

Here is the source code for org.fusesource.ide.sap.ui.properties.SncPropertySection.java

Source

/*******************************************************************************
* Copyright (c) 2014 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is 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
*
* Contributors:
* Red Hat, Inc. - initial API and implementation
* William Collins punkhornsw@gmail.com
******************************************************************************/
package org.fusesource.ide.sap.ui.properties;

import org.eclipse.core.databinding.DataBindingContext;
import org.eclipse.core.databinding.UpdateValueStrategy;
import org.eclipse.core.databinding.observable.value.IObservableValue;
import org.eclipse.emf.databinding.FeaturePath;
import org.eclipse.emf.databinding.edit.EMFEditProperties;
import org.eclipse.jface.databinding.swt.WidgetProperties;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CCombo;
import org.eclipse.swt.custom.CLabel;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
import org.fusesource.camel.component.sap.model.rfc.RfcPackage.Literals;
import org.fusesource.ide.sap.ui.Messages;
import org.fusesource.ide.sap.ui.converter.Boolean2StringConverter;
import org.fusesource.ide.sap.ui.converter.SncQos2SncQosComboSelectionConverter;
import org.fusesource.ide.sap.ui.converter.SncQosComboSelection2SncQosConverter;
import org.fusesource.ide.sap.ui.converter.String2BooleanConverter;
import org.fusesource.ide.sap.ui.util.LayoutUtil;

public class SncPropertySection extends DestinationDataPropertySection {

    private Button sncModeBtn;
    private Text sncPartnernameText;
    private CCombo sncQopCombo;
    private Text sncMynameText;
    private Text sncLibraryText;

    @Override
    public void createControls(Composite parent, TabbedPropertySheetPage aTabbedPropertySheetPage) {
        super.createControls(parent, aTabbedPropertySheetPage);

        Composite sncContainer = createFlatFormComposite(parent);

        sncModeBtn = getWidgetFactory().createButton(sncContainer, Messages.SncPropertySection_SncModeLabel,
                SWT.CHECK);
        sncModeBtn.setToolTipText(Messages.SncPropertySection_SncModelToolTip);
        sncModeBtn.setLayoutData(LayoutUtil.firstEntryLayoutData());

        sncPartnernameText = getWidgetFactory().createText(sncContainer, "", SWT.BORDER); //$NON-NLS-1$
        sncPartnernameText.setToolTipText(Messages.SncPropertySection_SncPartnernameToolTip);
        sncPartnernameText.setLayoutData(LayoutUtil.entryLayoutData(sncModeBtn));

        CLabel sncPartnernameLbl = getWidgetFactory().createCLabel(sncContainer,
                Messages.SncPropertySection_SncPartnernameLabel, SWT.NONE);
        sncPartnernameLbl.setLayoutData(LayoutUtil.labelLayoutData(sncPartnernameText));
        sncPartnernameLbl.setAlignment(SWT.RIGHT);

        sncQopCombo = getWidgetFactory().createCCombo(sncContainer, SWT.READ_ONLY);
        sncQopCombo.setToolTipText(Messages.SncPropertySection_SncQopToolTip);
        sncQopCombo.setItems(new String[] { "", Messages.SncPropertySection_SncSecurityLevel1Label, //$NON-NLS-1$
                Messages.SncPropertySection_SncSecurityLevel2Label,
                Messages.SncPropertySection_SncSecurityLevel3Label,
                Messages.SncPropertySection_SncSecurityLevel8Label,
                Messages.SncPropertySection_SncSecurityLevel9Label });
        sncQopCombo.setLayoutData(LayoutUtil.entryLayoutData(sncPartnernameText));
        sncQopCombo.select(0);

        CLabel sncQopLbl = getWidgetFactory().createCLabel(sncContainer, Messages.SncPropertySection_SncQopLabel,
                SWT.NONE);
        sncQopLbl.setLayoutData(LayoutUtil.labelLayoutData(sncQopCombo));
        sncQopLbl.setAlignment(SWT.RIGHT);

        sncMynameText = getWidgetFactory().createText(sncContainer, "", SWT.BORDER); //$NON-NLS-1$
        sncMynameText.setToolTipText(Messages.SncPropertySection_SncMynameToolTip);
        sncMynameText.setLayoutData(LayoutUtil.entryLayoutData(sncQopCombo));

        CLabel sncMynameLbl = getWidgetFactory().createCLabel(sncContainer,
                Messages.SncPropertySection_SncMynameLabel, SWT.NONE);
        sncMynameLbl.setLayoutData(LayoutUtil.labelLayoutData(sncMynameText));
        sncMynameLbl.setAlignment(SWT.RIGHT);

        sncLibraryText = getWidgetFactory().createText(sncContainer, "", SWT.BORDER); //$NON-NLS-1$
        sncLibraryText.setToolTipText(Messages.SncPropertySection_SncLibraryToolTip);
        sncLibraryText.setLayoutData(LayoutUtil.entryLayoutData(sncMynameText));

        CLabel sncLibraryLbl = getWidgetFactory().createCLabel(sncContainer,
                Messages.SncPropertySection_SncLibraryLabel, SWT.NONE);
        sncLibraryLbl.setLayoutData(LayoutUtil.labelLayoutData(sncLibraryText));
        sncLibraryLbl.setAlignment(SWT.RIGHT);

    }

    protected DataBindingContext initDataBindings() {

        DataBindingContext bindingContext = super.initDataBindings();

        //
        IObservableValue observeSelectionSncModeBtnObserveWidget = WidgetProperties.selection().observe(sncModeBtn);
        IObservableValue managedConnectionFactorySncModeObserveValue = EMFEditProperties
                .value(editingDomain, FeaturePath.fromList(Literals.DESTINATION_DATA_STORE_ENTRY__VALUE,
                        Literals.DESTINATION_DATA__SNC_MODE))
                .observe(destinationDataStoreEntry);
        UpdateValueStrategy strategy_13 = new UpdateValueStrategy();
        strategy_13.setConverter(new Boolean2StringConverter());
        UpdateValueStrategy sncModeModelStrategy = new UpdateValueStrategy();
        sncModeModelStrategy.setConverter(new String2BooleanConverter());
        bindingContext.bindValue(observeSelectionSncModeBtnObserveWidget,
                managedConnectionFactorySncModeObserveValue, strategy_13, sncModeModelStrategy);
        //
        IObservableValue observeTextSncPartnernameTextObserveWidget = WidgetProperties.text(SWT.FocusOut)
                .observe(sncPartnernameText);
        IObservableValue managedConnectionFactorySncPartnernameObserveValue = EMFEditProperties
                .value(editingDomain, FeaturePath.fromList(Literals.DESTINATION_DATA_STORE_ENTRY__VALUE,
                        Literals.DESTINATION_DATA__SNC_PARTNERNAME))
                .observe(destinationDataStoreEntry);
        bindingContext.bindValue(observeTextSncPartnernameTextObserveWidget,
                managedConnectionFactorySncPartnernameObserveValue, null, null);
        //
        IObservableValue observeSingleSelectionIndexSncQopComboObserveWidget = WidgetProperties
                .singleSelectionIndex().observe(sncQopCombo);
        IObservableValue managedConnectionFactorySncQopObserveValue = EMFEditProperties
                .value(editingDomain, FeaturePath.fromList(Literals.DESTINATION_DATA_STORE_ENTRY__VALUE,
                        Literals.DESTINATION_DATA__SNC_QOP))
                .observe(destinationDataStoreEntry);
        UpdateValueStrategy strategy_14 = new UpdateValueStrategy();
        strategy_14.setConverter(new SncQosComboSelection2SncQosConverter());
        UpdateValueStrategy sncQopModelStrategy = new UpdateValueStrategy();
        sncQopModelStrategy.setConverter(new SncQos2SncQosComboSelectionConverter());
        bindingContext.bindValue(observeSingleSelectionIndexSncQopComboObserveWidget,
                managedConnectionFactorySncQopObserveValue, strategy_14, sncQopModelStrategy);
        //
        IObservableValue observeTextSncMynameTextObserveWidget = WidgetProperties.text(SWT.FocusOut)
                .observe(sncMynameText);
        IObservableValue managedConnectionFactorySncMynameObserveValue = EMFEditProperties
                .value(editingDomain, FeaturePath.fromList(Literals.DESTINATION_DATA_STORE_ENTRY__VALUE,
                        Literals.DESTINATION_DATA__SNC_MYNAME))
                .observe(destinationDataStoreEntry);
        bindingContext.bindValue(observeTextSncMynameTextObserveWidget,
                managedConnectionFactorySncMynameObserveValue, null, null);
        //
        IObservableValue observeTextSncLibraryTextObserveWidget = WidgetProperties.text(SWT.FocusOut)
                .observe(sncLibraryText);
        IObservableValue managedConnectionFactorySncLibraryObserveValue = EMFEditProperties
                .value(editingDomain, FeaturePath.fromList(Literals.DESTINATION_DATA_STORE_ENTRY__VALUE,
                        Literals.DESTINATION_DATA__SNC_LIBRARY))
                .observe(destinationDataStoreEntry);
        bindingContext.bindValue(observeTextSncLibraryTextObserveWidget,
                managedConnectionFactorySncLibraryObserveValue, null, null);

        return bindingContext;
    }

}