Statistics
| Revision:

root / trunk / libraries / libExpressions / src / main / java / org / gvsig / expresions / EvalOperatorsTask.java @ 23299

History | View | Annotate | Download (2.91 KB)

1
package org.gvsig.expresions;
2

    
3
import java.util.ArrayList;
4
import java.util.Iterator;
5

    
6
import org.apache.bsf.BSFManager;
7
import org.gvsig.baseclasses.IOperator;
8
import org.gvsig.gui.EvalExpressionDialog;
9

    
10
import com.iver.andami.PluginServices;
11
import com.iver.andami.messages.NotificationManager;
12
import com.iver.cit.gvsig.fmap.layers.FLyrVect;
13
import com.iver.cit.gvsig.project.documents.table.gui.Table;
14
import com.iver.utiles.extensionPoints.ExtensionPoint;
15
import com.iver.utiles.extensionPoints.ExtensionPoints;
16
import com.iver.utiles.extensionPoints.ExtensionPointsSingleton;
17
import com.iver.utiles.swing.threads.AbstractMonitorableTask;
18

    
19
public class EvalOperatorsTask extends AbstractMonitorableTask{
20
        private ExtensionPoint extensionPoint;
21
        private Table table=null;
22
        private FLyrVect lyr;
23
        public static final String JYTHON="jython";
24
        public static BSFManager interpreter=new BSFManager();
25
        private static ArrayList<IOperator> operators=new ArrayList<IOperator>();
26
        public EvalOperatorsTask(FLyrVect lyr){
27
                this.lyr = lyr;
28
                setInitialStep(0);
29
                setDeterminatedProcess(true);
30
                setStatusMessage(PluginServices.getText(this, "charging_operators")+"...");
31
                ExtensionPoints extensionPoints = ExtensionPointsSingleton.getInstance();
32
                extensionPoint =(ExtensionPoint)extensionPoints.get("ColumnOperatorsExtension");
33
                setFinalStep(extensionPoint.size()+1);
34
        }
35
        public void run() throws Exception {
36
                NotificationManager.addInfo(PluginServices.getText(this,"charging_operators"));
37
                long t1=System.currentTimeMillis();
38
                Iterator iterator = extensionPoint.keySet().iterator();
39
                while (iterator.hasNext()) {
40
                    try {
41
                            if (isCanceled())
42
                                                return;
43
                        IOperator operator = (IOperator)extensionPoint.create((String)iterator.next());
44

    
45
                        operator.eval(interpreter);
46
                        operators.add(operator);
47
                        reportStep();
48
                        setNote(operator.getClass().getName());
49
                    } catch (InstantiationException e) {
50
                        e.printStackTrace();
51
                    } catch (IllegalAccessException e) {
52
                        e.printStackTrace();
53
                    } catch (ClassCastException e) {
54
                        e.printStackTrace();
55
                    }
56
                }
57
                long t2=System.currentTimeMillis();
58
                System.out.println("Tiempo en evaluar y crear del extension point = "+(t2-t1) );
59
                long t3=System.currentTimeMillis();
60
                System.out.println("Tiempo en a?adir los operadores correctos = "+(t3-t2) );
61
                reportStep();
62
        }
63
        public void finished() {
64
                if (isCanceled())
65
                        return;
66
                NotificationManager.addInfo(PluginServices.getText(this,"charged_operators"));
67
                EvalExpressionDialog eed=new EvalExpressionDialog(lyr,interpreter,operators);
68
//                EvalExpressionDialog eed=new EvalExpressionDialog(table,interpreter,operators);
69
        PluginServices.getMDIManager().addWindow(eed);
70
        }
71

    
72
}