Revision 47037
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