Revision 38552 branches/v2_0_0_prep/extensions/extDalTransformJoin/src/org/gvsig/app/join/daltransform/SelectParametersWizardPanel.java

View differences:

SelectParametersWizardPanel.java
27 27

  
28 28
package org.gvsig.app.join.daltransform;
29 29

  
30
import java.awt.event.ActionEvent;
31
import java.awt.event.ActionListener;
32
import java.util.ArrayList;
33

  
34
import javax.swing.JOptionPane;
35

  
36
import org.slf4j.Logger;
37
import org.slf4j.LoggerFactory;
38

  
30 39
import org.gvsig.andami.PluginServices;
40
import org.gvsig.app.ApplicationLocator;
41
import org.gvsig.app.join.utils.TransformUtils;
31 42
import org.gvsig.daltransform.swing.DataTransformWizardPanel;
32 43
import org.gvsig.daltransform.swing.impl.AbstractDataTransformWizardPanel;
33 44
import org.gvsig.daltransform.swing.impl.components.FeatureTypeAttributesCombo;
34 45
import org.gvsig.daltransform.swing.impl.components.FeatureTypeAttributesList;
35 46
import org.gvsig.fmap.dal.exception.DataException;
47
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
36 48
import org.gvsig.fmap.dal.feature.FeatureStore;
49
import org.gvsig.fmap.dal.feature.FeatureType;
50
import org.gvsig.i18n.Messages;
37 51

  
38 52

  
39 53
/**
40 54
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
41 55
 */
42
public class SelectParametersWizardPanel extends AbstractDataTransformWizardPanel implements DataTransformWizardPanel{
56
public class SelectParametersWizardPanel extends AbstractDataTransformWizardPanel
57
implements DataTransformWizardPanel, ActionListener{
58
    
59
    private static Logger logger =
60
        LoggerFactory.getLogger(SelectParametersWizardPanel.class);
61
    
43 62
	private javax.swing.JLabel attributesLabel;
44 63
	private FeatureTypeAttributesList attributesList;
45 64
	private javax.swing.JScrollPane attributesScroll;
46 65
	private FeatureTypeAttributesCombo key1Combo;
47 66
	private javax.swing.JLabel key1Label;
48
	private FeatureTypeAttributesCombo key2Combo;
67
	private FeatureTypeAttributesCombo key2_Combo;
49 68
	private javax.swing.JLabel key2Label;
50 69
	private javax.swing.JLabel prefix1Label;
51 70
	private javax.swing.JTextField prefix1Text;
52 71
	private javax.swing.JLabel prefix2Label;
53 72
	private javax.swing.JTextField prefix2Text; 
73
	
74
	private FeatureStore secondFeatStore = null;
54 75

  
55 76
	/**
56 77
	 * @param featureTransformWizardModel
......
73 94
		java.awt.GridBagConstraints gridBagConstraints;
74 95

  
75 96
		prefix2Text = new javax.swing.JTextField();
76
		key2Combo = new FeatureTypeAttributesCombo();
97
		key2_Combo = new FeatureTypeAttributesCombo();
77 98
		prefix1Text = new javax.swing.JTextField();
78 99
		key1Label = new javax.swing.JLabel();
100
		
79 101
		key1Combo = new FeatureTypeAttributesCombo();
102
		// listen to changes in first combo
103
		// we'll update second combo leaving
104
		// fields of same type
105
		key1Combo.addActionListener(this);
106
		
80 107
		key2Label = new javax.swing.JLabel();
81 108
		prefix1Label = new javax.swing.JLabel();
82 109
		prefix2Label = new javax.swing.JLabel();
......
99 126
		gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
100 127
		gridBagConstraints.weightx = 1.0;
101 128
		gridBagConstraints.insets = new java.awt.Insets(2, 2, 3, 2);
102
		add(key2Combo, gridBagConstraints);
129
		add(key2_Combo, gridBagConstraints);
103 130
		gridBagConstraints = new java.awt.GridBagConstraints();
104 131
		gridBagConstraints.gridx = 0;
105 132
		gridBagConstraints.gridy = 5;
......
179 206
	 * @return
180 207
	 */
181 208
	public String getkeyAtrr2() {
182
		return key2Combo.getSelectedFeatureAttributeDescriptor().getName();
209
		return key2_Combo.getSelectedFeatureAttributeDescriptor().getName();
183 210
	}
184 211

  
185 212
	/**
......
208 235
	 * @throws DataException 
209 236
	 */
210 237
	public void updateFeatureStores(FeatureStore selectedFeatureStore) throws DataException {
238
	    secondFeatStore = selectedFeatureStore;
211 239
		key1Combo.addFeatureAttributes(getFeatureStore().getDefaultFeatureType());
212
		key2Combo.addFeatureAttributes(selectedFeatureStore.getDefaultFeatureType());
213 240
		attributesList.addFeatureAttributes(selectedFeatureStore.getDefaultFeatureType());
241
		
242
		if (key1Combo.getItemCount() == 0) {
243
		    
244
            String _msg =
245
                Messages.getText("_First_table_has_no_fields");
246
            String _tit = Messages.getText("_Join");
247
            
248
            JOptionPane.showMessageDialog(
249
                this, _msg, _tit,
250
                JOptionPane.ERROR_MESSAGE);
251
            
252
		    getDataTransformWizard().setApplicable(false);
253
        } else {
254
            key1Combo.setSelectedIndex(0);
255
		}
214 256
	}
257

  
258

  
259
	/**
260
	 * Listen to changes in first combo box (key1)
261
	 */
262
    public void actionPerformed(ActionEvent e) {
263
        
264
        Object src = e.getSource();
265
        if (src == key1Combo
266
            && key1Combo != null
267
            && key2_Combo != null
268
            && secondFeatStore != null) {
269
            
270
            FeatureAttributeDescriptor att =
271
                key1Combo.getSelectedFeatureAttributeDescriptor();
272
            if (att != null) {
273
                
274
                int the_type = att.getType();
275
                key2_Combo.removeAllItems();
276
                FeatureType ft = null;
277
                
278
                try {
279
                    ft = secondFeatStore.getDefaultFeatureType();
280
                } catch (DataException de) {
281
                    logger.info("While getting feat type: " + de.getMessage());
282
                    getDataTransformWizard().setApplicable(false);
283
                    ApplicationLocator.getManager().message(
284
                        Messages.getText("_Error_getting_attributes"),
285
                        JOptionPane.ERROR_MESSAGE);
286
                    return;
287
                }
288
                
289
                ArrayList<Integer> comparable_types =
290
                    TransformUtils.getComparableDataTypes(ft, the_type);
291
                
292
                if (key2_Combo.addFeatureAttributes(ft, comparable_types) == 0) {
293
                    getDataTransformWizard().setApplicable(false);
294
                    
295
                    String _msg =
296
                        Messages.getText("_No_compatible_field_in_second_table");
297
                    String _tit = Messages.getText("_Join");
298
                    
299
                    JOptionPane.showMessageDialog(
300
                        this, _msg, _tit,
301
                        JOptionPane.ERROR_MESSAGE);
302
                } else {
303
                    getDataTransformWizard().setApplicable(true);
304
                    // JOptionPane.showMessageDialog(this, "(2) OK !!");
305
                }
306
            }
307
        }
308
        
309
    }
215 310
}
216 311

  

Also available in: Unified diff