Statistics
| Revision:

root / branches / v2_0_0_prep / extensions / extDalTransformJoin / src / org / gvsig / app / join / RemoveTableUnion.java @ 38564

History | View | Annotate | Download (3.47 KB)

1 28903 jpiera
package org.gvsig.app.join;
2 28897 jpiera
3 38564 jjdelcerro
import org.gvsig.andami.IconThemeHelper;
4 29627 jpiera
import org.gvsig.andami.PluginServices;
5
import org.gvsig.andami.plugins.Extension;
6
import org.gvsig.andami.ui.mdiManager.IWindow;
7 28897 jpiera
import org.gvsig.app.join.dal.feature.JoinTransform;
8 31496 jjdelcerro
import org.gvsig.app.project.documents.table.TableDocument;
9 29627 jpiera
import org.gvsig.app.project.documents.table.gui.FeatureTableDocumentPanel;
10 28897 jpiera
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 29627 jpiera
         * @see org.gvsig.andami.plugins.IExtension#initialize()
22 28897 jpiera
         */
23
        public void initialize() {
24 38564 jjdelcerro
                IconThemeHelper.registerIcon("action", "table-remove-join", this);
25 28897 jpiera
        }
26
27
        /**
28 29627 jpiera
         * @see org.gvsig.andami.plugins.IExtension#execute(java.lang.String)
29 28897 jpiera
         */
30
        public void execute(String actionCommand) {
31 38564 jjdelcerro
                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 28897 jpiera
        }
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 29627 jpiera
         * @see org.gvsig.andami.plugins.IExtension#isEnabled()
95 28897 jpiera
         */
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 31496 jjdelcerro
                        TableDocument pt = t.getModel();
111 28897 jpiera
                        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 29627 jpiera
         * @see org.gvsig.andami.plugins.IExtension#isVisible()
125 28897 jpiera
         */
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
}