Revision 47037

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/feature/impl/featureset/FeatureProviderComparator.java
23 23
 */
24 24
package org.gvsig.fmap.dal.feature.impl.featureset;
25 25

  
26
import java.util.ArrayList;
26 27
import java.util.Comparator;
27 28
import java.util.Iterator;
29
import java.util.List;
28 30

  
29 31
import org.gvsig.compat.CompatLocator;
30 32
import org.gvsig.fmap.dal.exception.DataEvaluatorRuntimeException;
......
47 49
	private DefaultFeature f1;
48 50
	private DefaultFeature f2;
49 51
	private DefaultFeatureStore store;
50
	private OrderElement[] elements = null;
52
	private List<OrderElement> elements = null;
51 53

  
52 54
	private class OrderElement {
53 55
		FeatureQueryOrderMember order = null;
......
62 64
	}
63 65

  
64 66
	private void initElements(FeatureType type) {
65
		elements = new OrderElement[this.order.size()];
67
		elements = new ArrayList<>();
66 68
		OrderElement cur;
67 69
		Iterator iter = order.iterator();
68
		FeatureQueryOrderMember orderItem;
69
		int i = 0;
70 70
		while (iter.hasNext()) {
71
                    
72
                    FeatureQueryOrderMember orderMember = (FeatureQueryOrderMember) iter.next();
73
                    int index = type.getIndex(orderMember.getAttributeName());
74
                    if(index >= 0) {
71 75
			cur = new OrderElement();
72
			cur.order = (FeatureQueryOrderMember) iter.next();
73
			if (!cur.order.hasEvaluator()) {
74
				cur.fieldIndex = type.getIndex(cur.order.getAttributeName());
75
			}
76
			elements[i] = cur;
77
			i++;
76
			cur.order = orderMember;
77
                        cur.fieldIndex = index;
78
                        elements.add(cur);
79
                    } else if(orderMember.hasEvaluator()){
80
			cur = new OrderElement();
81
			cur.order = orderMember;
82
                        cur.fieldIndex = index;
83
                        elements.add(cur);
84
                    }
78 85
		}
79 86

  
80 87
	}
......
95 102
			initElements(f1.getType());
96 103
		}
97 104

  
98
		OrderElement element;
105
		for (OrderElement element : elements) {
99 106

  
100
		for (int i = 0; i < elements.length; i++) {
101
			element = elements[i];
102

  
103 107
			if (element.order.hasEvaluator()) {
104 108
				Evaluator evaluator = element.order.getEvaluator();
105 109
				try {
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app.document.table.app/org.gvsig.app.document.table.app.mainplugin/src/main/resources-plugin/i18n/text.properties
76 76
_New_table_wizard=Asistente para nueva tabla
77 77
_Add_table=A\u00f1adir tabla.
78 78
_Add_table_to_project=A\u00f1adir tabla al proyecto.
79
_New_table=Nueva tabla
79
_New_table=Nueva tabla
80

  
81
_You_are_trying_to_rename_the_column_XcolumnNameX_that_is_being_sorted_by_Do_you_wish_to_continue=Est\u00e1 usted intentando renombrar la columna ''{0}'' por la que se est\u00e1 ordenando. \u00bfDesea continuar?
82
_Rename_column=Renombrar columna
83
_You_are_trying_to_remove_the_column_XcolumnNameX_that_is_being_sorted_by_Do_you_wish_to_continue=Est\u00e1 usted intentando eliminar la columna ''{0}'' por la que se est\u00e1 ordenando. \u00bfDesea continuar?
84
_Delete_column=Eliminar columna
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app.document.table.app/org.gvsig.app.document.table.app.mainplugin/src/main/resources-plugin/i18n/text_en.properties
76 76
_New_table_wizard=New table wizard
77 77
_Add_table=Add table.
78 78
_Add_table_to_project=Add table to project.
79
_New_table=New table
79
_New_table=New table
80

  
81
_You_are_trying_to_rename_the_column_XcolumnNameX_that_is_being_sorted_by_Do_you_wish_to_continue=You are trying to rename the column ''{0}'' that is being sorted by. Do you wish to continue
82
_Rename_column=Rename column
83
_You_are_trying_to_remove_the_column_XcolumnNameX_that_is_being_sorted_by_Do_you_wish_to_continue=You are trying to remove the column ''{0}'' that is being sorted by. Do you wish to continue
84
_Delete_column=Delete column
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app.document.table.app/org.gvsig.app.document.table.app.mainplugin/src/main/java/org/gvsig/app/extension/TableEditAttributes.java
28 28
import java.io.File;
29 29
import java.io.IOException;
30 30
import java.nio.charset.StandardCharsets;
31
import java.util.Iterator;
31 32
import java.util.Objects;
32 33
import javax.swing.AbstractAction;
33 34
import javax.swing.Action;
......
56 57
import org.gvsig.fmap.dal.DataTypes;
57 58
import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor;
58 59
import org.gvsig.fmap.dal.feature.EditableFeatureType;
60
import org.gvsig.fmap.dal.feature.FeatureQuery;
61
import org.gvsig.fmap.dal.feature.FeatureQueryOrder;
59 62
import org.gvsig.fmap.dal.feature.FeatureStore;
60 63
import org.gvsig.fmap.dal.feature.FeatureStoreProviderFactory;
61 64
import org.gvsig.fmap.dal.feature.FeatureType;
......
237 240
                  }
238 241
                  try {
239 242
                    panel.fetch(editableFeatureType);
243
                    
244
                    FeatureQuery query = tablePanel.getTablePanel().getFeatureQuery();
245
                    if (query != null) {
246
                        FeatureQueryOrder order = query.getOrder();
247
                        if (order != null) {
248
                            Iterator<FeatureQueryOrder.FeatureQueryOrderMember> it = order.iterator();
249
                            while (it.hasNext()) {
250
                                FeatureQueryOrder.FeatureQueryOrderMember orderMember = it.next();
251
                                String attrName = orderMember.getAttributeName();
252
                                if(editableFeatureType.getAttributeDescriptor(attrName)==null && !orderMember.hasEvaluator()){
253
//                                    int n = ToolsSwingLocator.getThreadSafeDialogsManager().confirmDialog(
254
//                                            i18n.getTranslation(
255
//                                                    "_You_are_trying_to_remove_the_column_XcolumnNameX_that_is_being_sorted_by_Do_you_wish_to_continue",
256
//                                                    new String[]{attrName}
257
//                                            ),
258
//                                            i18n.getTranslation("_Rename_column"),
259
//                                            JOptionPane.OK_CANCEL_OPTION,
260
//                                            JOptionPane.QUESTION_MESSAGE,
261
//                                            "_You_are_trying_to_remove_the_column_XcolumnNameX_that_is_being_sorted_by_Do_you_wish_to_continue"
262
//                                    );
263
//                                    if (n != JOptionPane.OK_OPTION) {
264
//                                        return;
265
//                                    }
266
                                    it.remove();
267
                                }
268
                            }
269
                        }
270
                    }
271

  
240 272
                    featureStore.update(editableFeatureType);
241 273
                    dataMamager.clearAvailableValuesCache();
242 274
                  } catch (Exception ex) {
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app.document.table.app/org.gvsig.app.document.table.app.mainplugin/src/main/java/org/gvsig/app/project/documents/table/TableOperations.java
56 56
import org.gvsig.fmap.dal.feature.EditableFeatureType;
57 57
import org.gvsig.fmap.dal.feature.Feature;
58 58
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
59
import org.gvsig.fmap.dal.feature.FeatureQuery;
60
import org.gvsig.fmap.dal.feature.FeatureQueryOrder;
59 61
import org.gvsig.fmap.dal.feature.FeatureSelection;
60 62
import org.gvsig.fmap.dal.feature.FeatureSet;
61 63
import org.gvsig.fmap.dal.feature.FeatureStore;
......
275 277
    }
276 278

  
277 279
    public void deleteAttributes(FeatureTable table) throws DataException {
278
        EditableFeatureType eft
279
                = featureStore.getDefaultFeatureType().getEditable();
280
        FeatureAttributeDescriptor[] selecteds
281
                = table.getSelectedColumnsAttributeDescriptor();
280
        FeatureAttributeDescriptor[] selecteds = table.getSelectedColumnsAttributeDescriptor();
281
        FeatureQuery query = this.tablePanel.getTablePanel().getFeatureQuery();
282
        if(query != null){
283
            FeatureQueryOrder order = query.getOrder();
284
            if(order != null) {
285
                I18nManager i18n = ToolsLocator.getI18nManager();
286
                for (FeatureAttributeDescriptor selected : selecteds) {
287
                    if(order.contains(selected.getName())){
288
                        int n = ToolsSwingLocator.getThreadSafeDialogsManager().confirmDialog(
289
                                i18n.getTranslation(
290
                                        "_You_are_trying_to_remove_the_column_XcolumnNameX_that_is_being_sorted_by_Do_you_wish_to_continue",
291
                                        new String[]{selected.getName()}
292
                                ),
293
                                i18n.getTranslation("_Delete_column"),
294
                                JOptionPane.OK_CANCEL_OPTION,
295
                                JOptionPane.QUESTION_MESSAGE, 
296
                                "_You_are_trying_to_remove_the_column_XcolumnNameX_that_is_being_sorted_by_Do_you_wish_to_continue"
297
                        );
298
                        if (n != JOptionPane.OK_OPTION){
299
                            return;
300
                        }
301
                        try {
302
                            order.remove(order.getIndex(selected.getName()));
303
                        } catch (Throwable t) {
304
                            logger.warn("Can't remove order", t);
305
                        }
306
                    }
307
                }
308
            }
309
        }
310
        EditableFeatureType eft = featureStore.getDefaultFeatureType().getEditable();
282 311
        for (FeatureAttributeDescriptor selected : selecteds) {
283 312
            eft.remove(selected.getName());
284 313
        }
......
310 339

  
311 340
    public void renameAttributes(FeatureTable table) throws DataException {
312 341

  
342
        FeatureAttributeDescriptor[] selecteds = table.getSelectedColumnsAttributeDescriptor();
313 343
        I18nManager i18n = ToolsLocator.getI18nManager();
344
        FeatureQuery query = this.tablePanel.getTablePanel().getFeatureQuery();
345
        if(query != null){
346
            FeatureQueryOrder order = query.getOrder();
347
            if(order != null) {
348
                for (FeatureAttributeDescriptor selected : selecteds) {
349
                    if(order.contains(selected.getName())){
350
                        int n = ToolsSwingLocator.getThreadSafeDialogsManager().confirmDialog(
351
                                i18n.getTranslation(
352
                                        "_You_are_trying_to_rename_the_column_XcolumnNameX_that_is_being_sorted_by_Do_you_wish_to_continue",
353
                                        new String[]{selected.getName()}
354
                                ),
355
                                i18n.getTranslation("_Rename_column"),
356
                                JOptionPane.OK_CANCEL_OPTION,
357
                                JOptionPane.QUESTION_MESSAGE, 
358
                                "_You_are_trying_to_rename_the_column_XcolumnNameX_that_is_being_sorted_by_Do_you_wish_to_continue"
359
                        );
360
                        if (n != JOptionPane.OK_OPTION){
361
                            return;
362
                        }
363
                        try {
364
                            order.remove(order.getIndex(selected.getName()));
365
                        } catch (Throwable t) {
366
                            logger.warn("Can't remove order", t);
367
                        }
368
                    }
369
                }
370
            }
371
        }
372
        
314 373
        FeatureType _ft = featureStore.getDefaultFeatureType();
315 374

  
316
        FeatureAttributeDescriptor[] selecteds
317
                = table.getSelectedColumnsAttributeDescriptor();
318 375

  
319 376
        int maxAttributeNameSize = getMaxAttributeSize();
320 377
        for (int i = selecteds.length - 1; i >= 0; i--) {

Also available in: Unified diff