Math2mat

/home/ythoma/docs/math2mat/svn/wp1/framework/m2mGUI/src/m2m/frontend/actions/RunAll.java

Go to the documentation of this file.
00001 
00021 package m2m.frontend.actions;
00022 
00023 import java.lang.reflect.InvocationTargetException;
00024 
00025 import org.eclipse.core.runtime.IProgressMonitor;
00026 import org.eclipse.jface.dialogs.MessageDialog;
00027 import org.eclipse.jface.dialogs.ProgressMonitorDialog;
00028 import org.eclipse.jface.operation.IRunnableWithProgress;
00029 import org.eclipse.swt.widgets.Shell;
00030 import org.eclipse.ui.IWorkbench;
00031 import org.eclipse.ui.IWorkbenchWindow;
00032 import org.eclipse.ui.PlatformUI;
00033 
00034 import m2m.backend.processing.Errors;
00035 import m2m.backend.processing.ExternalRuns;
00036 import m2m.backend.processing.ProgressMonitoring;
00037 import m2m.frontend.GraphicalProgressMonitoring;
00038 import m2m.frontend.ErrorProcessing;
00039 
00040 public class RunAll extends M2MAction 
00041 {
00046         public RunAll(IWorkbenchWindow window, String label) {
00047                 super(window,label);
00048                 setImageDescriptor(m2m.frontend.Activator.getImageDescriptor("/icons/icon_play.png"));
00049                 
00050         // The id is used to refer to the action in a menu or toolbar
00051                 setId(ICommandIds.CMD_RUNALL);
00052                 
00053         // Associate the action with a pre-defined command, to allow key bindings.
00054                 setActionDefinitionId(ICommandIds.CMD_RUNALL);
00055         }
00056         
00057         
00058         public void execute(IProgressMonitor monitor)
00059         {
00060                 Errors.clearError();
00061                 monitor.beginTask("Running all",100+editor.getM2MProject().getSimulationProperties().getNumberOfSamples());
00062                 GraphicalProgressMonitoring mon=new GraphicalProgressMonitoring();
00063                 mon.setIProgressMonitor(monitor);
00064                 editor.getM2MProject().monitoring=mon;
00065                 ExternalRuns.runAll(editor.getM2MProject());
00066                 ErrorProcessing.processLastError(editor.getShell().getDisplay());
00067                 
00068                 editor.getM2MProject().monitoring=new ProgressMonitoring();
00069                                 
00070         }
00074         public void run() 
00075         {       
00076 
00077                 if (!getEditor("Error","Select the tab with the m2m code"))
00078                         return;
00079                 
00080                 if (editor.getParseDone())
00081                 {
00082                         activateConsole();
00083 
00084 
00085                         IRunnableWithProgress op = new IRunnableWithProgress() {
00086                                 public void run(IProgressMonitor monitor) {
00087                                         execute(monitor);
00088                                 }
00089                         };
00090                         IWorkbench wb = PlatformUI.getWorkbench();
00091                         IWorkbenchWindow win = wb.getActiveWorkbenchWindow();
00092                         Shell shell = win != null ? win.getShell() : null;
00093                         try {
00094                                 new ProgressMonitorDialog(shell).run(true, false, op);
00095                         } catch (InvocationTargetException e) {
00096                                 // TODO Auto-generated catch block
00097                                 e.printStackTrace();
00098                         } catch (InterruptedException e) {
00099                                 // TODO Auto-generated catch block
00100                                 e.printStackTrace();
00101                         }
00102 
00103 
00104                         /*
00105                         Shell shell=new Shell();
00106 
00107 
00108                     // Create a smooth progress bar
00109                     ProgressBar pb1 = new ProgressBar(shell, SWT.HORIZONTAL | SWT.SMOOTH);
00110                     pb1.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
00111                     pb1.setMinimum(0);
00112                     pb1.setMaximum(30);
00113                     pb1.setSelection(10);
00114                     shell.open();
00115                          */
00116 
00117                         /* Launch the octaveThread */
00118                         //              RunAllThread runAllThread = new RunAllThread(editor,editor.getM2MProject());
00119                         //              runAllThread.start();   
00120                 } 
00121                 else
00122                         MessageDialog.openError(window.getShell(), "Parsing error", "Parse the file to get inputs and outputs before trying to launch Octave");
00123         }
00124 }
 All Classes Namespaces Files Functions Variables Enumerations