Statistics
| Revision:

svn-gvsig-desktop / branches / v2_0_0_prep / extensions / extDalTransformJoin / src / org / gvsig / app / join / RemoveTableUnion.java @ 38564

History | View | Annotate | Download (3.47 KB)

1
package org.gvsig.app.join;
2

    
3
import org.gvsig.andami.IconThemeHelper;
4
import org.gvsig.andami.PluginServices;
5
import org.gvsig.andami.plugins.Extension;
6
import org.gvsig.andami.ui.mdiManager.IWindow;
7
import org.gvsig.app.join.dal.feature.JoinTransform;
8
import org.gvsig.app.project.documents.table.TableDocument;
9
import org.gvsig.app.project.documents.table.gui.FeatureTableDocumentPanel;
10
import org.gvsig.fmap.dal.feature.FeatureStore;
11
import org.gvsig.fmap.dal.feature.FeatureStoreTransform;
12
import org.gvsig.fmap.dal.feature.FeatureStoreTransforms;
13

    
14

    
15
/**
16
 * @author Fernando Gonz?lez Cort?s
17
 */
18
public class RemoveTableUnion extends Extension{
19

    
20
        /**
21
         * @see org.gvsig.andami.plugins.IExtension#initialize()
22
         */
23
        public void initialize() {
24
                IconThemeHelper.registerIcon("action", "table-remove-join", this);
25
        }
26

    
27
        /**
28
         * @see org.gvsig.andami.plugins.IExtension#execute(java.lang.String)
29
         */
30
        public void execute(String actionCommand) {
31
                if( "table-remove-join".equalsIgnoreCase(actionCommand)) {
32
                        FeatureTableDocumentPanel t = (FeatureTableDocumentPanel) PluginServices.getMDIManager().getActiveWindow();
33
                        TableDocument pt = t.getModel();
34
                        FeatureStore fs = pt.getStore();
35
                        this.removeJoinTransfor(fs);
36
        
37
                        //                TODO
38
                        //                if (fs instanceof JoinFeatureStore) {
39
                        //                        DataManager dm = DALLocator.getDataManager();
40
                        //                        DataStoreParameters originalParams = ((JoinFeatureStoreParameters) fs
41
                        //                                        .getParameters()).getStorePrimary();
42
                        //                        FeatureStore original = null;
43
                        //                        try {
44
                        //                                original = (FeatureStore) dm.createStore(originalParams);
45
                        //                        } catch (InitializeException e) {
46
                        //                                NotificationManager.addError(e.getMessage(), e);
47
                        //                                return;
48
                        //                        }
49
                        //
50
                        //                        pt.setStore(original);
51
                        //                        try {
52
                        //                                fs.dispose();
53
                        //                        } catch (CloseException e) {
54
                        //                                NotificationManager.addError(e);
55
                        //                        }
56
                        //                        t.setModel(pt);
57
                        //
58
                        //                }
59
        
60
                        //                t.clearSelectedFields();
61
                        t.getModel().setModified(true);
62
                }
63
        }
64

    
65
        public void removeJoinTransfor(FeatureStore store) {
66
                FeatureStoreTransforms transforms = store.getTransforms();
67
                int size = transforms.size();
68
                if (size < 1) {
69
                        return;
70
                }
71
                FeatureStoreTransform join = transforms.getTransform(size - 1);
72
                if (join instanceof JoinTransform) {
73
                        transforms.remove(join);
74
                } else {
75
                        return;
76
                }
77

    
78

    
79

    
80
        }
81

    
82
        public boolean hasJoinTransform(FeatureStore store) {
83

    
84
                FeatureStoreTransforms transforms = store.getTransforms();
85
                int size = transforms.size();
86
                if (size < 1) {
87
                        return false;
88
                }
89
                return (transforms.getTransform(size - 1) instanceof JoinTransform);
90

    
91
        }
92

    
93
        /**
94
         * @see org.gvsig.andami.plugins.IExtension#isEnabled()
95
         */
96
        public boolean isEnabled() {
97
                IWindow v = PluginServices.getMDIManager().getActiveWindow();
98

    
99
                if (v == null) {
100
                        return false;
101
                }
102

    
103
                if (v.getClass() == FeatureTableDocumentPanel.class) {
104
                        FeatureTableDocumentPanel t = (FeatureTableDocumentPanel) v;
105
                        // FIXME !!!! Asi se hacia antes
106
                        //                        if (t.getModel().getOriginal() != null){
107
                        //                                return true;
108
                        //                        }
109

    
110
                        TableDocument pt = t.getModel();
111
                        FeatureStore fs = pt.getStore();
112

    
113
                        return this.hasJoinTransform(fs);
114
//                        TODO
115
//                        if (fs instanceof JoinFeatureStore) {
116
//                                return true;
117
//                        }
118

    
119
                }
120
                return false;
121
        }
122

    
123
        /**
124
         * @see org.gvsig.andami.plugins.IExtension#isVisible()
125
         */
126
        public boolean isVisible() {
127
                IWindow v = PluginServices.getMDIManager().getActiveWindow();
128

    
129
                if (v == null) {
130
                        return false;
131
                }
132

    
133
                if (v instanceof FeatureTableDocumentPanel) {
134
                        return true;
135
                } else {
136
                        return false;
137
                }
138

    
139
        }
140

    
141
}