Statistics
| Revision:

root / trunk / extensions / extCAD / src / com / iver / cit / gvsig / ExpresionFieldExtension.java @ 10286

History | View | Annotate | Download (9.14 KB)

1
package com.iver.cit.gvsig;
2

    
3
import java.util.BitSet;
4

    
5
import org.apache.bsf.BSFManager;
6

    
7
import com.iver.andami.PluginServices;
8
import com.iver.andami.plugins.Extension;
9
import com.iver.cit.gvsig.gui.preferences.FieldExpresionPage;
10
import com.iver.cit.gvsig.project.documents.table.gui.EvalExpresionDialog;
11
import com.iver.cit.gvsig.project.documents.table.gui.Table;
12
import com.iver.cit.gvsig.project.documents.table.operators.Abs;
13
import com.iver.cit.gvsig.project.documents.table.operators.Acos;
14
import com.iver.cit.gvsig.project.documents.table.operators.Area;
15
import com.iver.cit.gvsig.project.documents.table.operators.Asin;
16
import com.iver.cit.gvsig.project.documents.table.operators.Atan;
17
import com.iver.cit.gvsig.project.documents.table.operators.Ceil;
18
import com.iver.cit.gvsig.project.documents.table.operators.Cos;
19
import com.iver.cit.gvsig.project.documents.table.operators.Distinct;
20
import com.iver.cit.gvsig.project.documents.table.operators.Division;
21
import com.iver.cit.gvsig.project.documents.table.operators.E;
22
import com.iver.cit.gvsig.project.documents.table.operators.EndsWith;
23
import com.iver.cit.gvsig.project.documents.table.operators.Equal;
24
import com.iver.cit.gvsig.project.documents.table.operators.Equals;
25
import com.iver.cit.gvsig.project.documents.table.operators.Exp;
26
import com.iver.cit.gvsig.project.documents.table.operators.Geometry;
27
import com.iver.cit.gvsig.project.documents.table.operators.IndexOf;
28
import com.iver.cit.gvsig.project.documents.table.operators.IsNumber;
29
import com.iver.cit.gvsig.project.documents.table.operators.LastIndexOf;
30
import com.iver.cit.gvsig.project.documents.table.operators.Length;
31
import com.iver.cit.gvsig.project.documents.table.operators.LessEquals;
32
import com.iver.cit.gvsig.project.documents.table.operators.LessThan;
33
import com.iver.cit.gvsig.project.documents.table.operators.Log;
34
import com.iver.cit.gvsig.project.documents.table.operators.Minus;
35
import com.iver.cit.gvsig.project.documents.table.operators.MoreEquals;
36
import com.iver.cit.gvsig.project.documents.table.operators.MoreThan;
37
import com.iver.cit.gvsig.project.documents.table.operators.Perimeter;
38
import com.iver.cit.gvsig.project.documents.table.operators.Pi;
39
import com.iver.cit.gvsig.project.documents.table.operators.Plus;
40
import com.iver.cit.gvsig.project.documents.table.operators.PointX;
41
import com.iver.cit.gvsig.project.documents.table.operators.PointY;
42
import com.iver.cit.gvsig.project.documents.table.operators.Pow;
43
import com.iver.cit.gvsig.project.documents.table.operators.Random;
44
import com.iver.cit.gvsig.project.documents.table.operators.Replace;
45
import com.iver.cit.gvsig.project.documents.table.operators.Round;
46
import com.iver.cit.gvsig.project.documents.table.operators.Sin;
47
import com.iver.cit.gvsig.project.documents.table.operators.Sqrt;
48
import com.iver.cit.gvsig.project.documents.table.operators.StartsWith;
49
import com.iver.cit.gvsig.project.documents.table.operators.SubString;
50
import com.iver.cit.gvsig.project.documents.table.operators.Tan;
51
import com.iver.cit.gvsig.project.documents.table.operators.Times;
52
import com.iver.cit.gvsig.project.documents.table.operators.ToDate;
53
import com.iver.cit.gvsig.project.documents.table.operators.ToDegrees;
54
import com.iver.cit.gvsig.project.documents.table.operators.ToLowerCase;
55
import com.iver.cit.gvsig.project.documents.table.operators.ToNumber;
56
import com.iver.cit.gvsig.project.documents.table.operators.ToRadians;
57
import com.iver.cit.gvsig.project.documents.table.operators.ToString;
58
import com.iver.cit.gvsig.project.documents.table.operators.ToUpperCase;
59
import com.iver.cit.gvsig.project.documents.table.operators.Trim;
60
import com.iver.utiles.extensionPoints.ExtensionPoints;
61
import com.iver.utiles.extensionPoints.ExtensionPointsSingleton;
62
/**
63
 * @author Vicente Caballero Navarro
64
 */
65
public class ExpresionFieldExtension extends Extension{
66
        //private static Interpreter interpreter=new Interpreter();
67
        public static final String BEANSHELL="beanshell";
68
        private static BSFManager interpreter=new BSFManager();
69
        private Table table=null;
70
        public void initialize() {
71
                ExtensionPoints extensionPoints = ExtensionPointsSingleton.getInstance();
72
            extensionPoints.add("cad_editing_properties_pages","fieldExpresion",FieldExpresionPage.class);
73
            registerOperations();
74
        }
75

    
76
        public void execute(String actionCommand) {
77
                com.iver.andami.ui.mdiManager.IWindow window = PluginServices.getMDIManager().getActiveWindow();
78
                table=(Table)window;
79
                EvalExpresionDialog eed=new EvalExpresionDialog(table,interpreter);
80
                PluginServices.getMDIManager().addWindow(eed);
81
        }
82
        public void postInitialize() {
83
        }
84

    
85
        public boolean isEnabled() {
86
                com.iver.andami.ui.mdiManager.IWindow window = PluginServices.getMDIManager().getActiveWindow();
87
                if (window instanceof Table) {
88
                        Table table=(Table)window;
89
                        BitSet columnSelected = table.getSelectedFieldIndices();
90
                    if (!columnSelected.isEmpty() && table.isEditing()) {
91
                            return true;
92
                    }
93
                }
94
                return false;
95
        }
96

    
97
        public boolean isVisible() {
98
                com.iver.andami.ui.mdiManager.IWindow window = PluginServices.getMDIManager().getActiveWindow();
99
                if (window instanceof Table) {
100
                        return true;
101
                }
102
                return false;
103
        }
104
         private void registerOperations() {
105
                    ExtensionPoints extensionPoints = ExtensionPointsSingleton.getInstance();
106
                    extensionPoints.add("ColumnOperators",Abs.class.toString(),Abs.class);
107
                extensionPoints.add("ColumnOperators",Acos.class.toString(),Acos.class);
108
                extensionPoints.add("ColumnOperators",Area.class.toString(),Area.class);
109
                extensionPoints.add("ColumnOperators",Asin.class.toString(),Asin.class);
110
                extensionPoints.add("ColumnOperators",Atan.class.toString(),Atan.class);
111
                extensionPoints.add("ColumnOperators",Ceil.class.toString(),Ceil.class);
112
                extensionPoints.add("ColumnOperators",Cos.class.toString(),Cos.class);
113
                    extensionPoints.add("ColumnOperators",Distinct.class.toString(),Distinct.class);
114
                     extensionPoints.add("ColumnOperators",Division.class.toString(),Division.class);
115
                     extensionPoints.add("ColumnOperators",E.class.toString(),E.class);
116
                     extensionPoints.add("ColumnOperators",EndsWith.class.toString(),EndsWith.class);
117
                     extensionPoints.add("ColumnOperators",Equal.class.toString(),Equal.class);
118
                     extensionPoints.add("ColumnOperators",Equals.class.toString(),Equals.class);
119
                     extensionPoints.add("ColumnOperators",Exp.class.toString(),Exp.class);
120
                     extensionPoints.add("ColumnOperators",Geometry.class.toString(),Geometry.class);
121
                     extensionPoints.add("ColumnOperators",IndexOf.class.toString(),IndexOf.class);
122
                     extensionPoints.add("ColumnOperators",IsNumber.class.toString(),IsNumber.class);
123
                     extensionPoints.add("ColumnOperators",LastIndexOf.class.toString(),LastIndexOf.class);
124
                     extensionPoints.add("ColumnOperators",Length.class.toString(),Length.class);
125
                     extensionPoints.add("ColumnOperators",LessEquals.class.toString(),LessEquals.class);
126
                     extensionPoints.add("ColumnOperators",LessThan.class.toString(),LessThan.class);
127
                     extensionPoints.add("ColumnOperators",Log.class.toString(),Log.class);
128
                     extensionPoints.add("ColumnOperators",Minus.class.toString(),Minus.class);
129
                     extensionPoints.add("ColumnOperators",MoreEquals.class.toString(),MoreEquals.class);
130
                     extensionPoints.add("ColumnOperators",MoreThan.class.toString(),MoreThan.class);
131
                     extensionPoints.add("ColumnOperators",Perimeter.class.toString(),Perimeter.class);
132
                     extensionPoints.add("ColumnOperators",Pi.class.toString(),Pi.class);
133
                    extensionPoints.add("ColumnOperators",Plus.class.toString(),Plus.class);
134
                     extensionPoints.add("ColumnOperators",PointX.class.toString(),PointX.class);
135
                     extensionPoints.add("ColumnOperators",PointY.class.toString(),PointY.class);
136
                     extensionPoints.add("ColumnOperators",Pow.class.toString(),Pow.class);
137
                     extensionPoints.add("ColumnOperators",Random.class.toString(),Random.class);
138
                     extensionPoints.add("ColumnOperators",Replace.class.toString(),Replace.class);
139
                     extensionPoints.add("ColumnOperators",Round.class.toString(),Round.class);
140
                     extensionPoints.add("ColumnOperators",Sin.class.toString(),Sin.class);
141
                     extensionPoints.add("ColumnOperators",Sqrt.class.toString(),Sqrt.class);
142
                     extensionPoints.add("ColumnOperators",StartsWith.class.toString(),StartsWith.class);
143
                     extensionPoints.add("ColumnOperators",SubString.class.toString(),SubString.class);
144
                     extensionPoints.add("ColumnOperators",Tan.class.toString(),Tan.class);
145
                    extensionPoints.add("ColumnOperators",Times.class.toString(),Times.class);
146
                    extensionPoints.add("ColumnOperators",ToDate.class.toString(),ToDate.class);
147
                    extensionPoints.add("ColumnOperators",ToDegrees.class.toString(),ToDegrees.class);
148
                    extensionPoints.add("ColumnOperators",ToLowerCase.class.toString(),ToLowerCase.class);
149
                    extensionPoints.add("ColumnOperators",ToNumber.class.toString(),ToNumber.class);
150
                    extensionPoints.add("ColumnOperators",ToRadians.class.toString(),ToRadians.class);
151
                    extensionPoints.add("ColumnOperators",ToString.class.toString(),ToString.class);
152
                    extensionPoints.add("ColumnOperators",ToUpperCase.class.toString(),ToUpperCase.class);
153
                    extensionPoints.add("ColumnOperators",Trim.class.toString(),Trim.class);
154
         }
155

    
156
}