org.dynaresume.common.address.AddressCompositeController.java Source code

Java tutorial

Introduction

Here is the source code for org.dynaresume.common.address.AddressCompositeController.java

Source

/*****************************************************************************
 * Copyright (c) 2009
 * All rights reserved. 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
 *
 * Contributors:
 *     Angelo Zerr <angelo.zerr@gmail.com>
 *     Jawher Moussa <jawher.moussa@gmail.com>
 *     Nicolas Inchauspe <nicolas.inchauspe@gmail.com>
 *     Pascal Leclercq <pascal.leclercq@gmail.com>
 *******************************************************************************/
package org.dynaresume.common.address;

import java.util.Collection;
import java.util.List;

import org.dynaresume.core.domain.Country;
import org.eclipse.core.databinding.DataBindingContext;
import org.eclipse.core.databinding.beans.BeansObservables;
import org.eclipse.core.databinding.observable.value.IObservableValue;
import org.eclipse.jface.databinding.swt.SWTObservables;
import org.eclipse.jface.databinding.viewers.ViewersObservables;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.ComboViewer;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.SWT;

public class AddressCompositeController {
    private AddressComposite m_addressComposite;
    private ComboViewer countryViewer;
    private DataBindingContext m_bindingContext;
    private org.dynaresume.core.domain.Address address = new org.dynaresume.core.domain.Address();

    public AddressCompositeController(AddressComposite addressComposite,
            org.dynaresume.core.domain.Address newAddress) {
        m_addressComposite = addressComposite;
        setAddress(newAddress);
    }

    public AddressCompositeController(AddressComposite addressComposite) {
        m_addressComposite = addressComposite;

    }

    public DataBindingContext initDataBindings() {
        IObservableValue cityObserveWidget = SWTObservables.observeText(m_addressComposite.getCityText(),
                SWT.Modify);
        IObservableValue cityObserveValue = BeansObservables.observeValue(address, "city");
        IObservableValue faxObserveWidget = SWTObservables.observeText(m_addressComposite.getFaxText(), SWT.Modify);
        IObservableValue faxObserveValue = BeansObservables.observeValue(address, "fax");
        IObservableValue telephoneObserveWidget = SWTObservables.observeText(m_addressComposite.getTelephoneText(),
                SWT.Modify);
        IObservableValue telephoneObserveValue = BeansObservables.observeValue(address, "telephone");
        IObservableValue zipCodeObserveWidget = SWTObservables.observeText(m_addressComposite.getZipCodeText(),
                SWT.Modify);
        IObservableValue zipCodeObserveValue = BeansObservables.observeValue(address, "zipCode");
        //PLQ hand coded
        IObservableValue countryObserveWidget = ViewersObservables.observeSingleSelection(countryViewer);
        IObservableValue countryObserveValue = BeansObservables.observeValue(address, "country");
        //PLQ
        //
        DataBindingContext bindingContext = new DataBindingContext();
        //
        bindingContext.bindValue(cityObserveWidget, cityObserveValue, null, null);
        bindingContext.bindValue(faxObserveWidget, faxObserveValue, null, null);
        bindingContext.bindValue(telephoneObserveWidget, telephoneObserveValue, null, null);
        bindingContext.bindValue(zipCodeObserveWidget, zipCodeObserveValue, null, null);
        bindingContext.bindValue(countryObserveWidget, countryObserveValue, null, null);
        //
        return bindingContext;
    }

    public org.dynaresume.core.domain.Address getAddress() {
        return address;
    }

    public void setAddress(org.dynaresume.core.domain.Address newAddress) {
        setAddress(newAddress, true);
    }

    public void setAddress(org.dynaresume.core.domain.Address newAddress, boolean update) {
        address = newAddress;
        if (update) {
            if (m_bindingContext != null) {
                m_bindingContext.dispose();
                m_bindingContext = null;
            }
            if (address != null) {
                m_bindingContext = initDataBindings();
            }
        }
    }

    public void initCountryViewer(List<Country> countries) {
        countryViewer = new ComboViewer(m_addressComposite.getCountryCombo());
        countryViewer.setContentProvider(new ArrayContentProvider() {
            @Override
            public Object[] getElements(Object inputElement) {
                Collection res = (Collection) inputElement;

                return res.toArray();

            }
        });
        countryViewer.setLabelProvider(new LabelProvider() {
            @Override
            public String getText(Object element) {
                Country country = (Country) element;
                return country.getLabel();
            }
        });
        countryViewer.setInput(countries);
    }
}