Package org.eobjects.datacleaner.widgets.properties

Source Code of org.eobjects.datacleaner.widgets.properties.SingleDictionaryPropertyWidget

/**
* eobjects.org DataCleaner
* Copyright (C) 2010 eobjects.org
*
* This copyrighted material is made available to anyone wishing to use, modify,
* copy, or redistribute it subject to the terms and conditions of the GNU
* Lesser General Public License, as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
* for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this distribution; if not, write to:
* Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor
* Boston, MA  02110-1301  USA
*/
package org.eobjects.datacleaner.widgets.properties;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.inject.Inject;
import javax.swing.JComboBox;

import org.eobjects.analyzer.descriptors.ConfiguredPropertyDescriptor;
import org.eobjects.analyzer.job.builder.AbstractBeanJobBuilder;
import org.eobjects.analyzer.reference.Dictionary;
import org.eobjects.analyzer.reference.ReferenceDataCatalog;
import org.eobjects.datacleaner.widgets.ReferenceDataComboBoxListRenderer;

public class SingleDictionaryPropertyWidget extends AbstractPropertyWidget<Dictionary> {

  private static final long serialVersionUID = 1L;
  private final JComboBox _comboBox;

  @Inject
  public SingleDictionaryPropertyWidget(ConfiguredPropertyDescriptor propertyDescriptor,
      AbstractBeanJobBuilder<?, ?, ?> beanJobBuilder, ReferenceDataCatalog referenceDataCatalog) {
    super(beanJobBuilder, propertyDescriptor);

    _comboBox = new JComboBox();
    _comboBox.setRenderer(new ReferenceDataComboBoxListRenderer());
    _comboBox.setEditable(false);

    if (!propertyDescriptor.isRequired()) {
      _comboBox.addItem(null);
    }

    final String[] dictionaryNames = referenceDataCatalog.getDictionaryNames();
    for (String name : dictionaryNames) {
      _comboBox.addItem(referenceDataCatalog.getDictionary(name));
    }

    Dictionary currentValue = (Dictionary) beanJobBuilder.getConfiguredProperty(propertyDescriptor);
    _comboBox.setSelectedItem(currentValue);

    _comboBox.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        fireValueChanged();
      }
    });
    add(_comboBox);
  }

  @Override
  public Dictionary getValue() {
    return (Dictionary) _comboBox.getSelectedItem();
  }

  @Override
  protected void setValue(Dictionary value) {
    _comboBox.setEditable(true);
    _comboBox.setSelectedItem(value);
    _comboBox.setEditable(false);
  }
}
TOP

Related Classes of org.eobjects.datacleaner.widgets.properties.SingleDictionaryPropertyWidget

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.