Revision 46301

View differences:

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