Statistics
| Revision:

svn-gvsig-desktop / trunk / extensions / extCAD / src / com / iver / cit / gvsig / ExpresionFieldExtension.java @ 10254

History | View | Annotate | Download (8.99 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.IndexOf;
27
import com.iver.cit.gvsig.project.documents.table.operators.IsNumber;
28
import com.iver.cit.gvsig.project.documents.table.operators.LastIndexOf;
29
import com.iver.cit.gvsig.project.documents.table.operators.Length;
30
import com.iver.cit.gvsig.project.documents.table.operators.LessEquals;
31
import com.iver.cit.gvsig.project.documents.table.operators.LessThan;
32
import com.iver.cit.gvsig.project.documents.table.operators.Log;
33
import com.iver.cit.gvsig.project.documents.table.operators.Minus;
34
import com.iver.cit.gvsig.project.documents.table.operators.MoreEquals;
35
import com.iver.cit.gvsig.project.documents.table.operators.MoreThan;
36
import com.iver.cit.gvsig.project.documents.table.operators.Perimeter;
37
import com.iver.cit.gvsig.project.documents.table.operators.Pi;
38
import com.iver.cit.gvsig.project.documents.table.operators.Plus;
39
import com.iver.cit.gvsig.project.documents.table.operators.PointX;
40
import com.iver.cit.gvsig.project.documents.table.operators.PointY;
41
import com.iver.cit.gvsig.project.documents.table.operators.Pow;
42
import com.iver.cit.gvsig.project.documents.table.operators.Random;
43
import com.iver.cit.gvsig.project.documents.table.operators.Replace;
44
import com.iver.cit.gvsig.project.documents.table.operators.Round;
45
import com.iver.cit.gvsig.project.documents.table.operators.Sin;
46
import com.iver.cit.gvsig.project.documents.table.operators.Sqrt;
47
import com.iver.cit.gvsig.project.documents.table.operators.StartsWith;
48
import com.iver.cit.gvsig.project.documents.table.operators.SubString;
49
import com.iver.cit.gvsig.project.documents.table.operators.Tan;
50
import com.iver.cit.gvsig.project.documents.table.operators.Times;
51
import com.iver.cit.gvsig.project.documents.table.operators.ToDate;
52
import com.iver.cit.gvsig.project.documents.table.operators.ToDegrees;
53
import com.iver.cit.gvsig.project.documents.table.operators.ToLowerCase;
54
import com.iver.cit.gvsig.project.documents.table.operators.ToNumber;
55
import com.iver.cit.gvsig.project.documents.table.operators.ToRadians;
56
import com.iver.cit.gvsig.project.documents.table.operators.ToString;
57
import com.iver.cit.gvsig.project.documents.table.operators.ToUpperCase;
58
import com.iver.cit.gvsig.project.documents.table.operators.Trim;
59
import com.iver.utiles.extensionPoints.ExtensionPoints;
60
import com.iver.utiles.extensionPoints.ExtensionPointsSingleton;
61
/**
62
 *
63
 * @author Vicente Caballero Navarro
64
 *
65
 */
66
public class ExpresionFieldExtension extends Extension{
67
        //private static Interpreter interpreter=new Interpreter();
68
        public static final String BEANSHELL="beanshell";
69
        private static BSFManager interpreter=new BSFManager();
70
        private Table table=null;
71
        public void initialize() {
72
                ExtensionPoints extensionPoints = ExtensionPointsSingleton.getInstance();
73
            extensionPoints.add("cad_editing_properties_pages","fieldExpresion",FieldExpresionPage.class);
74
                registerOperations();
75
        }
76

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

    
85
        }
86

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

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

    
157
}