Revision 44801 trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.impl/src/main/java/org/gvsig/export/swing/impl/panels/SelectAttributesPanel.java

View differences:

SelectAttributesPanel.java
67 67
    private static final int COLUMN_FIELD_EXPORT = 0;
68 68
    private static final int COLUMN_FIELD_TYPE = 1;
69 69
    private static final int COLUMN_FIELD_SIZE = 2;
70
    private static final int COLUMN_FIELD_CALCULATED = 3;
71
    private static final int COLUMN_FIELD_NAME = 4;
72
    private static final int COLUMN_FIELD_NEW_NAME = 5;
70
    private static final int COLUMN_FIELD_ORIGIN = 3;
71
    private static final int COLUMN_FIELD_CALCULATED = 4;
72
    private static final int COLUMN_FIELD_NAME = 5;
73
    private static final int COLUMN_FIELD_NEW_NAME =6;
74
    
75
    private static final int COLUMN_FIELD_COUNT = 7;
76
    
77
    private static final int ORIGIN_REAL = 0;
78
    private static final int ORIGIN_CALCULATED = 1;
79
    private static final int ORIGIN_EXTRA = 2;
80
            
73 81

  
74
    private static final int COLUMN_FIELD_COUNT = 6;
75

  
76 82
    private static class AttributesTableModel
77 83
            extends AbstractTableModel
78 84
            implements TableModel {
......
87 93
            this.dataManager = ToolsLocator.getDataTypesManager();
88 94
            I18nManager i18nManager = ToolsLocator.getI18nManager();
89 95
            columnNames[COLUMN_FIELD_NAME] = i18nManager.getTranslation("_name");
90
            columnNames[COLUMN_FIELD_NEW_NAME] = i18nManager.getTranslation("_new_name");
96
            columnNames[COLUMN_FIELD_NEW_NAME] = i18nManager.getTranslation("_New_name");
97
            columnNames[COLUMN_FIELD_ORIGIN] = i18nManager.getTranslation("_Origin");
91 98
            columnNames[COLUMN_FIELD_TYPE] = i18nManager.getTranslation("_type");
92
            columnNames[COLUMN_FIELD_SIZE] = i18nManager.getTranslation("_size");
93
            columnNames[COLUMN_FIELD_CALCULATED] = i18nManager.getTranslation("_virtual");
99
            columnNames[COLUMN_FIELD_SIZE] = i18nManager.getTranslation("_Size");
100
            columnNames[COLUMN_FIELD_CALCULATED] = i18nManager.getTranslation("_Virtual");
94 101
            columnNames[COLUMN_FIELD_EXPORT] = "";
95 102

  
96 103
            columnClases[COLUMN_FIELD_NAME] = String.class;
97 104
            columnClases[COLUMN_FIELD_NEW_NAME] = String.class;
105
            columnClases[COLUMN_FIELD_ORIGIN] = String.class;
98 106
            columnClases[COLUMN_FIELD_TYPE] = String.class;
99 107
            columnClases[COLUMN_FIELD_SIZE] = Integer.class;
100 108
            columnClases[COLUMN_FIELD_EXPORT] = Boolean.class;
......
126 134
            switch (columnIndex) {
127 135
                case COLUMN_FIELD_NAME:
128 136
                    return false;
137
                case COLUMN_FIELD_ORIGIN:
138
                    return false;
129 139
                case COLUMN_FIELD_CALCULATED: {
130 140
                    ExportAttribute attr = this.attributes.get(rowIndex);
131 141
                    DataType dataType = attr.getDescriptor().getDataType();
......
134 144
                        dataType.isDynObject() ) {
135 145
                        return false;
136 146
                    }
137
                    return true;
147
                    if (attr.getDescriptor().isComputed()) {
148
                        return true;
149
                    }
150
                    return false;
138 151
                }
139 152
                default:
140 153
                    return true;
......
149 162
                    return attr.getName();
150 163
                case COLUMN_FIELD_NEW_NAME:
151 164
                    return attr.getNewName();
165
                case COLUMN_FIELD_ORIGIN:
166
                    if (attr.getDescriptor().isComputed()) {
167
                       if (attr.getDescriptor().getFeatureType()!=null) {
168
                           return ORIGIN_CALCULATED;
169
                       } else {
170
                           return ORIGIN_EXTRA;
171
                       }
172
                    } else {
173
                        return ORIGIN_REAL;
174
                    }
152 175
                case COLUMN_FIELD_TYPE:
153 176
                    return dataManager.getTypeName(attr.getNewDataType());
154 177
                case COLUMN_FIELD_SIZE:
......
256 279
        }
257 280
    }
258 281

  
282
    
259 283
    private class DataTypeCellRenderer
260 284
            extends JLabel
261 285
            implements TableCellRenderer {
......
281 305
        }
282 306
    }
283 307

  
308
        
309
    private class OriginCellRenderer
310
            extends JLabel
311
            implements TableCellRenderer {
312

  
313
        public OriginCellRenderer() {
314
        }
315

  
316
        @Override
317
        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
318
            if (column == COLUMN_FIELD_ORIGIN) {
319
                int origin = (int) table.getModel().getValueAt(row, COLUMN_FIELD_ORIGIN);
320
                IconTheme iconManager = ToolsSwingLocator.getIconThemeManager().getDefault();
321
                I18nManager i18Manager = ToolsLocator.getI18nManager();
322
                this.setHorizontalAlignment(JLabel.CENTER);
323
                switch (origin) {
324
                    case ORIGIN_CALCULATED:
325
                        this.setToolTipText(i18Manager.getTranslation("_Calculated_field"));
326
                        this.setIcon((iconManager.get("column-calculated")));
327
                        break;
328
                    case ORIGIN_EXTRA:
329
                        this.setToolTipText(i18Manager.getTranslation("_Extra_field"));
330
                        this.setIcon((iconManager.get("column-extra")));
331
                        break;
332
                    case ORIGIN_REAL:
333
                        this.setToolTipText(i18Manager.getTranslation("_Real_field"));
334
                        this.setIcon((iconManager.get("column-true")));
335
                        break;
336
                    default:
337
                        this.setText(value.toString());
338
                        break;
339
                }
340
                return this;
341
            }
342
            return this;
343
        }
344
    }
345

  
284 346
    private class DataTypeCellEditor extends DefaultCellEditor {
285 347

  
286 348
        private int currentRow = -1;
......
302 364
                return label;
303 365
            }
304 366
        }
305

  
367
        
306 368
        public DataTypeCellEditor() {
307 369
            super(new JComboBox());
308 370
            JComboBox combo = (JComboBox) this.getComponent();
......
448 510
        this.tableFilterController.setModel(this.tableModel);
449 511

  
450 512
        TableColumnModel columnModel = this.tblAttributes.getColumnModel();
513
        columnModel.getColumn(COLUMN_FIELD_ORIGIN).setCellRenderer(new OriginCellRenderer());
451 514
        columnModel.getColumn(COLUMN_FIELD_TYPE).setCellEditor(new DataTypeCellEditor());
452 515
        columnModel.getColumn(COLUMN_FIELD_TYPE).setCellRenderer(new DataTypeCellRenderer());
453 516
        
454 517
        columnModel.getColumn(COLUMN_FIELD_EXPORT).setPreferredWidth( new JCheckBox().getPreferredSize().width*2);
455
        columnModel.getColumn(COLUMN_FIELD_TYPE).setPreferredWidth( new JLabel("XXIntegerXX").getPreferredSize().width);
518
        columnModel.getColumn(COLUMN_FIELD_TYPE).setPreferredWidth( new JLabel("XIntegerX").getPreferredSize().width);
456 519
        columnModel.getColumn(COLUMN_FIELD_SIZE).setPreferredWidth( new JLabel("00000").getPreferredSize().width);
520
        columnModel.getColumn(COLUMN_FIELD_ORIGIN).setPreferredWidth( new JLabel("000").getPreferredSize().width);
521
        columnModel.getColumn(COLUMN_FIELD_CALCULATED).setPreferredWidth( new JLabel("000").getPreferredSize().width);
457 522

  
458 523
    }
459 524

  

Also available in: Unified diff