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

View differences:

TableEditAttributes.java
25 25

  
26 26
import java.awt.event.ActionEvent;
27 27
import java.awt.event.ActionListener;
28
import org.apache.commons.lang3.StringUtils;
28 29
import org.gvsig.andami.IconThemeHelper;
29 30
import org.gvsig.andami.plugins.Extension;
30 31
import org.gvsig.app.ApplicationLocator;
31 32
import org.gvsig.app.ApplicationManager;
33
import org.gvsig.app.project.Project;
34
import org.gvsig.app.project.ProjectManager;
35
import org.gvsig.app.project.documents.Document;
32 36
import org.gvsig.app.project.documents.table.TableDocument;
33 37
import org.gvsig.app.project.documents.table.TableManager;
34 38
import org.gvsig.app.project.documents.table.gui.FeatureTableDocumentPanel;
39
import org.gvsig.fmap.dal.DALLocator;
40
import org.gvsig.fmap.dal.DataManager;
41
import org.gvsig.fmap.dal.DataStore;
35 42
import org.gvsig.fmap.dal.DataTypes;
43
import org.gvsig.fmap.dal.StoresRepository;
36 44
import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor;
37 45
import org.gvsig.fmap.dal.feature.EditableFeatureType;
38 46
import org.gvsig.fmap.dal.feature.FeatureStore;
......
67 75
    }
68 76

  
69 77
    public void execute(String s) {
70
        I18nManager i18n = ToolsLocator.getI18nManager();
71
        WindowManager_v2 winManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
72
        DataSwingManager dataSwingManager = DALSwingLocator.getSwingManager();
73
        ApplicationManager application = ApplicationLocator.getManager();
78
        final I18nManager i18n = ToolsLocator.getI18nManager();
79
        final WindowManager_v2 winManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
80
        final DataSwingManager dataSwingManager = DALSwingLocator.getSwingManager();
81
        final ApplicationManager application = ApplicationLocator.getManager();
74 82

  
75 83
        TableDocument tabledoc = (TableDocument) application.getActiveDocument(TableManager.TYPENAME);
76 84
        if( tabledoc == null ) {
......
91 99
                        panel.asJComponent(),
92 100
                        i18n.getTranslation("_Column_manager") + " - " + tabledoc.getName(),
93 101
                        null,
94
                        featureStore.isEditing()? WindowManager_v2.BUTTONS_OK_CANCEL:WindowManager_v2.BUTTONS_OK
102
                        featureStore.isEditing()? 
103
                                WindowManager_v2.BUTTONS_APPLY_OK_CANCEL:
104
                                WindowManager_v2.BUTTONS_OK_CANCEL
95 105
                );
106
                if( featureStore.isEditing() ) {
107
                    dialog.setButtonLabel(
108
                            WindowManager_v2.BUTTON_APPLY, 
109
                            i18n.getTranslation("_Show_as_table")
110
                    );
111
                } else {
112
                    dialog.setButtonLabel(
113
                            WindowManager_v2.BUTTON_CANCEL, 
114
                            i18n.getTranslation("_Show_as_table")
115
                    );
116
                }
96 117
                dialog.addActionListener(new ActionListener() {
97 118
                    @Override
98 119
                    public void actionPerformed(ActionEvent e) {
99
                        if( dialog.getAction()!=WindowManager_v2.BUTTONS_OK ) {
100
                            return;
120
                        if( featureStore.isEditing() ) {
121
                            switch(dialog.getAction()) {
122
                                case WindowManager_v2.BUTTON_OK:
123
                                    break;
124
                                case WindowManager_v2.BUTTON_APPLY:
125
                                    showAsTable(featureType);
126
                                    return;
127
                                case WindowManager_v2.BUTTON_CANCEL:
128
                                    return;
129
                            }
130
                        } else {
131
                            switch(dialog.getAction()) {
132
                                case WindowManager_v2.BUTTON_OK:
133
                                    return;
134
                                case WindowManager_v2.BUTTON_APPLY:
135
                                case WindowManager_v2.BUTTON_CANCEL:
136
                                    showAsTable(featureType);
137
                                    return;
138
                            }
101 139
                        }
102
                        if( !featureStore.isEditing() ) {
103
                            return;
104
                        }
105 140
                        try {
106 141
                            panel.fetch(editableFeatureType);
107 142
                            featureStore.update(editableFeatureType);
......
157 192
    	}
158 193
    }
159 194

  
195
    private void showAsTable(FeatureType featureType) {
196
        FeatureStore store = featureType.getAsFeatureStore();
197

  
198
        ProjectManager projectManager = ApplicationLocator.getManager().getProjectManager();
199
        Project project = projectManager.getCurrentProject();
200
        TableDocument tableDoc = (TableDocument) project.getDocument(store.getName(),TableManager.TYPENAME);
201
        if( tableDoc == null ) {
202
            tableDoc = (TableDocument) projectManager.createDocument(TableManager.TYPENAME);
203
            tableDoc.setStore(store);
204
            tableDoc.setName(store.getName());
205
            project.addDocument(tableDoc);
206
        }
207
        ApplicationLocator.getManager().getUIManager().addWindow(tableDoc.getMainWindow());
208
    }
209
    
210

  
160 211
    public boolean isEnabled() {
161 212
        ApplicationManager application = ApplicationLocator.getManager();
162 213

  

Also available in: Unified diff