Revision 46301
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/TableManager.java | ||
---|---|---|
55 | 55 |
import org.gvsig.fmap.dal.DALLocator; |
56 | 56 |
import org.gvsig.fmap.dal.DataManager; |
57 | 57 |
import org.gvsig.fmap.dal.DataStoreParameters; |
58 |
import org.gvsig.fmap.dal.exception.InitializeException; |
|
59 |
import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException; |
|
60 |
import org.gvsig.fmap.dal.exception.ValidateDataParametersException; |
|
58 | 61 |
import org.gvsig.fmap.dal.feature.FeatureQuery; |
59 | 62 |
import org.gvsig.fmap.dal.feature.FeatureQueryOrder; |
60 | 63 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
... | ... | |
73 | 76 |
import org.gvsig.tools.util.Invocable; |
74 | 77 |
import org.gvsig.tools.util.MappedIterator; |
75 | 78 |
import org.gvsig.tools.util.UnmodifiableBasicSet; |
79 |
import org.slf4j.LoggerFactory; |
|
76 | 80 |
|
77 | 81 |
/** |
78 | 82 |
* Factory of Table. |
... | ... | |
83 | 87 |
@SuppressWarnings("UseSpecificCatch") |
84 | 88 |
public class TableManager extends AbstractDocumentManager { |
85 | 89 |
|
90 |
final static private org.slf4j.Logger LOGGER = LoggerFactory.getLogger(TableDocument.class); |
|
91 |
|
|
86 | 92 |
private static class TableDocumentStoresRepository extends AbstractStoresRepository { |
87 | 93 |
|
88 | 94 |
public TableDocumentStoresRepository(String name, String label) { |
... | ... | |
158 | 164 |
return ((TableDocument)t).getFeatureStore().getParameters(); |
159 | 165 |
}); |
160 | 166 |
} |
161 |
|
|
162 |
|
|
167 |
|
|
168 |
@Override |
|
169 |
public void add(String name, DataStoreParameters parameters) { |
|
170 |
Project project = ProjectManager.getInstance().getCurrentProject(); |
|
171 |
TableDocument doc = (TableDocument) ProjectManager.getInstance().createDocument(TYPENAME); |
|
172 |
doc.setName(name); |
|
173 |
//FIXME: |
|
174 |
DataManager dataManager = DALLocator.getDataManager(); |
|
175 |
FeatureStore store; |
|
176 |
try { |
|
177 |
store = (FeatureStore) dataManager.openStore( |
|
178 |
parameters.getProviderName(), |
|
179 |
parameters |
|
180 |
); |
|
181 |
doc.setStore(store); |
|
182 |
project.addDocument(doc); |
|
183 |
} catch (InitializeException | ProviderNotRegisteredException | ValidateDataParametersException ex) { |
|
184 |
LOGGER.warn("Can't add table to project", ex); |
|
185 |
} |
|
186 |
|
|
187 |
} |
|
188 |
|
|
189 |
@Override |
|
190 |
public void add(String name, FeatureStore store) { |
|
191 |
Project project = ProjectManager.getInstance().getCurrentProject(); |
|
192 |
TableDocument doc = (TableDocument) ProjectManager.getInstance().createDocument(TYPENAME); |
|
193 |
doc.setName(name); |
|
194 |
doc.setStore(store); |
|
195 |
project.addDocument(doc); |
|
196 |
} |
|
163 | 197 |
} |
164 | 198 |
|
165 | 199 |
public static final String PERSISTENCE_TABLE_DOCUMENT_DEFINITION_NAME = |
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/documents/gui/projectpanel/ProjectDocumentsPanelPage.java | ||
---|---|---|
1 | 1 |
package org.gvsig.app.project.documents.gui.projectpanel; |
2 | 2 |
|
3 | 3 |
import java.awt.BorderLayout; |
4 |
import java.awt.Component; |
|
4 | 5 |
import org.gvsig.app.project.documents.gui.*; |
5 | 6 |
import java.awt.Dimension; |
6 | 7 |
import java.awt.FlowLayout; |
... | ... | |
18 | 19 |
import java.util.Iterator; |
19 | 20 |
import java.util.List; |
20 | 21 |
import javax.swing.ButtonGroup; |
22 |
import javax.swing.DefaultListCellRenderer; |
|
21 | 23 |
import javax.swing.JComponent; |
22 | 24 |
import javax.swing.JLabel; |
23 | 25 |
import javax.swing.JList; |
... | ... | |
30 | 32 |
import javax.swing.event.ListSelectionEvent; |
31 | 33 |
import javax.swing.event.ListSelectionListener; |
32 | 34 |
import org.apache.commons.lang3.StringUtils; |
35 |
import org.gvsig.andami.IconThemeHelper; |
|
33 | 36 |
import org.gvsig.andami.PluginServices; |
34 | 37 |
import org.gvsig.andami.ui.mdiManager.IWindow; |
35 | 38 |
import org.gvsig.andami.ui.mdiManager.MDIManager; |
... | ... | |
170 | 173 |
} |
171 | 174 |
} |
172 | 175 |
}); |
176 |
|
|
177 |
this.lstDocuments.setCellRenderer(new DefaultListCellRenderer(){ |
|
178 |
@Override |
|
179 |
public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) { |
|
180 |
JLabel c = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); |
|
181 |
c.setIcon(null); |
|
182 |
if(value instanceof Document){ |
|
183 |
Document doc = (Document) value; |
|
184 |
if(((Document) value).isTemporary()){ |
|
185 |
c.setIcon(IconThemeHelper.getImageIcon("temporary-table-icon")); |
|
186 |
} |
|
187 |
} |
|
188 |
return c; |
|
189 |
} |
|
190 |
}); |
|
173 | 191 |
this.translate(); |
174 | 192 |
} |
175 | 193 |
|
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/extension/ProjectExtension.java | ||
---|---|---|
156 | 156 |
this); |
157 | 157 |
|
158 | 158 |
IconThemeHelper.registerIcon("project", "project-icon", this); |
159 |
IconThemeHelper.registerIcon("project", "temporary-table-icon", this); |
|
159 | 160 |
} |
160 | 161 |
|
161 | 162 |
/** |
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/resources-plugin/i18n/text.properties | ||
---|---|---|
1608 | 1608 |
_Active_all_layers_of_group=Activar todas las capas del grupo |
1609 | 1609 |
_Inactive_all_layers_of_group=Desactivar todas las capas del grupo |
1610 | 1610 |
_Set_all_layers_of_group_to=Cambiar todas las capas del grupo a |
1611 |
_Copy_primary_key_values_XQuestionX=\u00bf Copiar los valores de la clave primaria ? |
|
1611 |
_Copy_primary_key_values_XQuestionX=\u00bf Copiar los valores de la clave primaria ? |
|
1612 |
_Add_table_to_project=A\u00f1adir tabla al proyecto |
|
1613 |
_Other_parameters=Otros par\u00e1metros |
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/resources-plugin/i18n/text_en.properties | ||
---|---|---|
1524 | 1524 |
_Active_all_layers_of_group=Active all layers of group |
1525 | 1525 |
_Inactive_all_layers_of_group=Inactive all layers of group |
1526 | 1526 |
_Set_all_layers_of_group_to=Set all layers of group to |
1527 |
_Copy_primary_key_values_XQuestionX=Copy primary key values? |
|
1527 |
_Copy_primary_key_values_XQuestionX=Copy primary key values? |
|
1528 |
_Add_table_to_project=Add table to project |
|
1529 |
_Other_parameters=Other parameters |
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/DefaultFeatureStore.java | ||
---|---|---|
3745 | 3745 |
} |
3746 | 3746 |
} |
3747 | 3747 |
|
3748 |
private Boolean temporary = null; |
|
3749 |
|
|
3748 | 3750 |
@Override |
3749 | 3751 |
public boolean isTemporary() { |
3752 |
if(temporary != null) { |
|
3753 |
return this.temporary; |
|
3754 |
} |
|
3750 | 3755 |
if (this.provider == null) { |
3751 | 3756 |
return true; |
3752 | 3757 |
} |
3753 | 3758 |
return this.provider.isTemporary(); |
3754 | 3759 |
} |
3760 |
|
|
3761 |
@Override |
|
3762 |
public void setTemporary(Boolean temporary){ |
|
3763 |
this.temporary = temporary; |
|
3764 |
} |
|
3755 | 3765 |
|
3756 | 3766 |
public FeatureType getOriginalFeatureType(FeatureType featureType) { |
3757 | 3767 |
// FIXME this don't work for Store.fType.size() > 1 |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchPostProcess/distinctOn/DistinctOn.java | ||
---|---|---|
15 | 15 |
import org.gvsig.fmap.dal.DALLocator; |
16 | 16 |
import org.gvsig.fmap.dal.DataManager; |
17 | 17 |
import org.gvsig.fmap.dal.DataStoreParameters; |
18 |
import org.gvsig.fmap.dal.StoresRepository; |
|
18 | 19 |
import org.gvsig.fmap.dal.exception.DataException; |
19 | 20 |
import org.gvsig.fmap.dal.exception.ValidateDataParametersException; |
20 | 21 |
import org.gvsig.fmap.dal.feature.EditableFeature; |
... | ... | |
219 | 220 |
} |
220 | 221 |
|
221 | 222 |
storeResults.finishEditing(); |
222 |
// storeUValues.finishEditing(); |
|
223 |
storeResults.setTemporary(true); |
|
224 |
Boolean addTableToProject = (Boolean) parameters.getDynValue("addTableToProject"); |
|
225 |
if(addTableToProject){ |
|
226 |
StoresRepository repository = dataManager.getStoresRepository().getSubrepository("PROJECT_TABLES"); |
|
227 |
repository.add(this.getName(), storeResults); |
|
228 |
} |
|
229 |
SearchPostProcessResult searchPostProcessResult = new DefaultSearchPostProcessResult(storeResults, null); |
|
230 |
status.setTitle(i18n.getTranslation("_Post_process_ended")); |
|
231 |
status.message(""); |
|
232 |
return searchPostProcessResult; |
|
223 | 233 |
|
224 |
SearchPostProcessResult searchPostProcessResult = new DefaultSearchPostProcessResult(storeResults, null); |
|
225 |
status.setTitle(i18n.getTranslation("_Post_process_ended")); |
|
226 |
status.message(""); |
|
227 |
return searchPostProcessResult; |
|
228 |
|
|
229 | 234 |
} catch (DataException | ValidateDataParametersException ex) { |
230 | 235 |
LOGGER.warn("Can't execute distinct on search post process.", ex); |
231 | 236 |
} finally { |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchPostProcess/distinctOn/DistinctOnFactory.java | ||
---|---|---|
9 | 9 |
import java.util.List; |
10 | 10 |
import java.util.UUID; |
11 | 11 |
import org.apache.commons.lang3.StringUtils; |
12 |
import org.gvsig.expressionevaluator.ExpressionBuilder; |
|
13 |
import org.gvsig.expressionevaluator.ExpressionUtils; |
|
14 | 12 |
import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor; |
15 |
import org.gvsig.fmap.dal.feature.Feature; |
|
16 | 13 |
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor; |
17 | 14 |
import org.gvsig.fmap.dal.feature.FeatureExtraColumns; |
18 | 15 |
import org.gvsig.fmap.dal.feature.FeatureQuery; |
... | ... | |
30 | 27 |
import org.gvsig.tools.ToolsLocator; |
31 | 28 |
import org.gvsig.tools.dataTypes.DataType; |
32 | 29 |
import org.gvsig.tools.dynform.spi.DynFormSPIManager; |
33 |
import org.gvsig.tools.dynobject.DynClass; |
|
34 | 30 |
import org.gvsig.tools.dynobject.DynClass_v2; |
35 | 31 |
import org.gvsig.tools.dynobject.DynField_v2; |
36 | 32 |
import org.gvsig.tools.dynobject.DynObject; |
... | ... | |
87 | 83 |
FeatureType ft = input.getDefaultFeatureTypeQuietly(); |
88 | 84 |
List<DynObjectValueItem> attrs = getAtributeNames(input); |
89 | 85 |
if (query.getExtraColumn().size()>0) { |
90 |
// if (searchParams.getResultColumnNames().size()>0) { |
|
91 |
//// DynObjectValueItem[] attrs = new DynObjectValueItem[size]; |
|
92 |
//// List<DynObjectValueItem> attrs = new ArrayList<DynObjectValueItem>(); |
|
93 | 86 |
FeatureExtraColumns extraColumns = query.getExtraColumn(); |
94 |
// int newSize = attrs.length+query.getExtraColumn().size(); |
|
95 |
// DynObjectValueItem[] newAttrs = new DynObjectValueItem[newSize]; |
|
96 |
// int j = 0; |
|
97 |
// for (int i = 0; i < attrs.length; i++) { |
|
98 |
// newAttrs[i]=attrs[i]; |
|
99 |
// } |
|
100 | 87 |
|
101 | 88 |
for (int i = 0; i < extraColumns.size(); i++) { |
102 | 89 |
EditableFeatureAttributeDescriptor attr = extraColumns.get(i); |
... | ... | |
106 | 93 |
} |
107 | 94 |
} |
108 | 95 |
|
109 |
// for ( EditableFeatureAttributeDescriptor attr : query.getExtraColumn()) { |
|
110 |
// if (query.getExtraColumn().get(attrName) != null) { |
|
111 |
// DynObjectValueItem attr = new DynObjectValueItem(query.getExtraColumn().get(attrName), query.getExtraColumn().get(attrName).toJson().getString(label)); |
|
112 |
// try{ |
|
113 |
// attrs.add(attr); |
|
114 |
// }catch (Exception ex) { |
|
115 |
// LOGGER.warn("Can't add "+ attr.toString(), ex); |
|
116 |
// } |
|
117 |
// } |
|
118 |
// } |
|
119 |
|
|
120 | 96 |
dynField.setAvailableValues(attrs.toArray(new DynObjectValueItem[attrs.size()])); |
121 | 97 |
for (int i = 0; i < attrs.size(); i++) { |
122 | 98 |
fillParameters( (String) attrs.get(i).getValue(), operation, dynClass, dynField, searchParams, i, ft, extraColumns); |
123 | 99 |
|
124 | 100 |
} |
125 |
// for (String attrName : query.getAttributeNames()) { |
|
126 |
// if (ft.get(attrName) != null) { |
|
127 |
// FeatureAttributeDescriptor attr = (FeatureAttributeDescriptor) ft.get(attrName); |
|
128 |
// fillParameters(attr, firstOperation, dynClass, dynField); |
|
129 |
// } else if (query.getExtraColumn().get(attrName) != null) { |
|
130 |
// FeatureAttributeDescriptor attr = query.getExtraColumn().get(attrName); |
|
131 |
// fillParameters(attr, firstOperation, dynClass, dynField); |
|
132 |
// } |
|
133 |
// } |
|
134 |
|
|
135 | 101 |
} else { |
136 | 102 |
dynField.setAvailableValues(attrs); |
137 | 103 |
for (int i = 0; i < attrs.size(); i++) { |
138 |
// } |
|
139 |
// for (FeatureAttributeDescriptor attr : input.getDefaultFeatureTypeQuietly()) { |
|
140 | 104 |
fillParameters( (String) attrs.get(i).getValue(), operation, dynClass, dynField, searchParams, i, ft, null); |
141 | 105 |
} |
142 | 106 |
} |
107 |
|
|
108 |
DynField_v2 addTableToProjectDynField = (DynField_v2) dynClass.addDynFieldBoolean("addTableToProject"); |
|
109 |
addTableToProjectDynField.setDefaultFieldValue(false); |
|
110 |
addTableToProjectDynField.setLabel(i18n.getTranslation("_Add_table_to_project")); |
|
111 |
addTableToProjectDynField.setDescription(""); |
|
112 |
addTableToProjectDynField.setGroup(i18n.getTranslation("_Other_parameters")); |
|
113 |
addTableToProjectDynField.setOrder(4000); |
|
114 |
|
|
143 | 115 |
|
144 | 116 |
dynClass.getTags().set(DynFormSPIManager.TAG_DYNFORM_HEIGHT, 250); |
145 | 117 |
dynClass.getTags().set(DynFormSPIManager.TAG_DYNFORM_WIDTH, 350); |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/main/java/org/gvsig/fmap/dal/feature/FeatureStore.java | ||
---|---|---|
1352 | 1352 |
*/ |
1353 | 1353 |
public boolean isTemporary(); |
1354 | 1354 |
|
1355 |
public void setTemporary(Boolean temporary); |
|
1356 |
|
|
1355 | 1357 |
/** |
1356 | 1358 |
* @param index |
1357 | 1359 |
* @return |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/main/java/org/gvsig/fmap/dal/StoresRepository.java | ||
---|---|---|
1 | 1 |
package org.gvsig.fmap.dal; |
2 | 2 |
|
3 | 3 |
import java.util.Collection; |
4 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
|
4 | 5 |
import org.gvsig.tools.observer.Observable; |
5 | 6 |
import org.gvsig.tools.util.PropertiesSupport; |
6 | 7 |
import org.gvsig.tools.util.UnmodifiableBasicMap; |
... | ... | |
35 | 36 |
public boolean removeRepository(String name); |
36 | 37 |
|
37 | 38 |
public void add(String name, DataStoreParameters parameters); |
39 |
|
|
40 |
public void add(String name, FeatureStore store); |
|
38 | 41 |
|
39 | 42 |
public boolean contains(DataStoreParameters parameters); |
40 | 43 |
|
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/main/java/org/gvsig/fmap/dal/AbstractStoresRepository.java | ||
---|---|---|
8 | 8 |
import java.util.Map; |
9 | 9 |
import java.util.Objects; |
10 | 10 |
import org.apache.commons.lang3.StringUtils; |
11 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
|
11 | 12 |
import org.gvsig.tools.observer.Notification; |
12 | 13 |
import org.gvsig.tools.observer.ObservableHelper; |
13 | 14 |
import org.gvsig.tools.observer.Observer; |
... | ... | |
82 | 83 |
} |
83 | 84 |
|
84 | 85 |
@Override |
86 |
public void add(String name, FeatureStore store) { |
|
87 |
add(name, store.getParameters()); |
|
88 |
} |
|
89 |
|
|
90 |
@Override |
|
85 | 91 |
public void remove(String name) { |
86 | 92 |
throw new UnsupportedOperationException(); |
87 | 93 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.api/src/test/java/org/gvsig/fmap/dal/feature/DummyFetureStore.java | ||
---|---|---|
967 | 967 |
public boolean isFeatureSelectionAvailable() { |
968 | 968 |
return true; |
969 | 969 |
} |
970 |
|
|
971 |
@Override |
|
972 |
public void setTemporary(Boolean temporary) { |
|
973 |
} |
|
970 | 974 |
|
971 | 975 |
} |
Also available in: Unified diff