Changeset 3136 for DataCleaner


Ignore:
Timestamp:
02/03/12 17:19:09 (4 months ago)
Author:
kasper
Message:
 
Location:
DataCleaner/trunk/core/src/main/java/org/eobjects/datacleaner
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • DataCleaner/trunk/core/src/main/java/org/eobjects/datacleaner/panels/datastructures/KeysAndTypesPropertyWidget.java

    r3135 r3136  
    2525 
    2626import javax.swing.JComponent; 
     27import javax.swing.event.DocumentEvent; 
    2728 
    2829import org.eobjects.analyzer.beans.datastructures.SelectFromMapTransformer; 
     
    3031import org.eobjects.analyzer.job.builder.AbstractBeanJobBuilder; 
    3132import org.eobjects.datacleaner.panels.DCPanel; 
     33import org.eobjects.datacleaner.util.DCDocumentListener; 
    3234import org.eobjects.datacleaner.widgets.DCComboBox; 
    3335import org.eobjects.datacleaner.widgets.DCComboBox.Listener; 
     
    3638import org.eobjects.datacleaner.widgets.properties.PropertyWidget; 
    3739import org.eobjects.datacleaner.widgets.properties.SingleClassPropertyWidget; 
     40import org.eobjects.metamodel.util.EqualsBuilder; 
    3841import org.jdesktop.swingx.JXTextField; 
    3942 
     
    6568                        @Override 
    6669                        public Class<?>[] getValue() { 
    67                                 final Class<?>[] result = new Class<?>[_comboBoxes.size()]; 
     70                                final String[] keys = KeysAndTypesPropertyWidget.this 
     71                                                .getValue(); 
     72                                final Class<?>[] result = new Class<?>[keys.length]; 
    6873                                for (int i = 0; i < result.length; i++) { 
    69                                         result[i] = _comboBoxes.get(i).getSelectedItem(); 
     74                                        final DCComboBox<Class<?>> comboBox = _comboBoxes.get(i); 
     75                                        result[i] = comboBox.getSelectedItem(); 
    7076                                } 
    7177                                return result; 
     
    7379 
    7480                        @Override 
     81                        public boolean isSet() { 
     82                                if (_comboBoxes.isEmpty()) { 
     83                                        return false; 
     84                                } 
     85                                for (DCComboBox<Class<?>> comboBox : _comboBoxes) { 
     86                                        if (comboBox.getSelectedItem() == null) { 
     87                                                return false; 
     88                                        } 
     89                                } 
     90                                return true; 
     91                        } 
     92 
     93                        @Override 
    7594                        protected void setValue(Class<?>[] value) { 
    76                                 // TODO Auto-generated method stub 
     95                                if (EqualsBuilder.equals(value, getValue())) { 
     96                                        return; 
     97                                } 
     98 
     99                                if (value == null) { 
     100                                        value = new Class[0]; 
     101                                } 
     102 
     103                                final String[] keys = KeysAndTypesPropertyWidget.this 
     104                                                .getValue(); 
     105                                if (keys.length != value.length) { 
     106                                        // disregard this invalid value update 
     107                                        return; 
     108                                } 
     109 
     110                                for (int i = 0; i < keys.length; i++) { 
     111                                        DCComboBox<Class<?>> comboBox = _comboBoxes.get(i); 
     112                                        Class<?> selectedClass = value[i]; 
     113                                        comboBox.setSelectedItem(selectedClass); 
     114                                } 
    77115                        } 
    78116                }; 
     
    88126                        @Override 
    89127                        public void onItemSelected(Class<?> item) { 
     128                                _typesPropertyWidget.fireValueChanged(); 
     129                        } 
     130                }); 
     131 
     132                textField.getDocument().addDocumentListener(new DCDocumentListener() { 
     133                        @Override 
     134                        protected void onChange(DocumentEvent event) { 
    90135                                _typesPropertyWidget.fireValueChanged(); 
    91136                        } 
     
    106151        } 
    107152 
     153        @Override 
     154        protected boolean isEmptyStringValid() { 
     155                return false; 
     156        } 
    108157} 
  • DataCleaner/trunk/core/src/main/java/org/eobjects/datacleaner/widgets/properties/MultipleMappedStringsPropertyWidget.java

    r3135 r3136  
    211211                                        return; 
    212212                                } 
     213                                 
     214                                if (value == null) { 
     215                                        value = new String[0]; 
     216                                } 
    213217 
    214218                                if (EqualsBuilder.equals(value, getValue())) { 
     
    218222                                                .getValue(); 
    219223 
    220                                 if (value != null && inputColumns.length != value.length) { 
     224                                if (inputColumns.length != value.length) { 
    221225                                        // disregard this invalid value update 
    222226                                        return; 
  • DataCleaner/trunk/core/src/main/java/org/eobjects/datacleaner/widgets/properties/MultipleStringPropertyWidget.java

    r3120 r3136  
    4848 * @author Kasper SÞrensen 
    4949 */ 
    50 public class MultipleStringPropertyWidget extends AbstractPropertyWidget<String[]> { 
     50public class MultipleStringPropertyWidget extends 
     51                AbstractPropertyWidget<String[]> { 
    5152 
    5253        private final DCPanel _textFieldPanel; 
     
    5455 
    5556        @Inject 
    56         public MultipleStringPropertyWidget(ConfiguredPropertyDescriptor propertyDescriptor, 
     57        public MultipleStringPropertyWidget( 
     58                        ConfiguredPropertyDescriptor propertyDescriptor, 
    5759                        AbstractBeanJobBuilder<?, ?, ?> beanJobBuilder) { 
    5860                super(beanJobBuilder, propertyDescriptor); 
     
    6365                _textFieldPanel.setLayout(new VerticalLayout(2)); 
    6466 
    65                 final JButton addButton = WidgetFactory.createSmallButton("images/actions/add.png"); 
     67                final JButton addButton = WidgetFactory 
     68                                .createSmallButton("images/actions/add.png"); 
    6669                addButton.addActionListener(new ActionListener() { 
    6770                        @Override 
     
    7275                }); 
    7376 
    74                 final JButton removeButton = WidgetFactory.createSmallButton("images/actions/remove.png"); 
     77                final JButton removeButton = WidgetFactory 
     78                                .createSmallButton("images/actions/remove.png"); 
    7579                removeButton.addActionListener(new ActionListener() { 
    7680                        @Override 
     
    115119                                if (!EqualsBuilder.equals(previousValues[i], values[i])) { 
    116120                                        Component decoration = _textFieldPanel.getComponent(i); 
    117                                         JXTextField component = _textFieldDecorations.get(decoration); 
     121                                        JXTextField component = _textFieldDecorations 
     122                                                        .get(decoration); 
    118123                                        component.setText(values[i]); 
    119124                                } 
     
    182187 
    183188        @Override 
     189        public boolean isSet() { 
     190                String[] value = getValue(); 
     191                if (value.length == 0) { 
     192                        return false; 
     193                } 
     194 
     195                if (!isEmptyStringValid()) { 
     196                        for (int i = 0; i < value.length; i++) { 
     197                                if (value[i].length() == 0) { 
     198                                        return false; 
     199                                } 
     200                        } 
     201                } 
     202 
     203                return true; 
     204        } 
     205 
     206        /** 
     207         * Method to be overridden by subclasses in case empty strings inside the 
     208         * arrays are not to be tolerated. 
     209         *  
     210         * @return 
     211         */ 
     212        protected boolean isEmptyStringValid() { 
     213                return true; 
     214        } 
     215 
     216        @Override 
    184217        protected void setValue(String[] value) { 
    185218                updateComponents(value); 
Note: See TracChangeset for help on using the changeset viewer.