Exemplo n.º 1
0
    public Options_Solving_Controller()
    {
        ModuleName = new Label();

        ModuleName.Parent   = this;
        ModuleName.Location = new Point(10, 10);
        ModuleName.AutoSize = true;

        RefreshLabel(RunRegistry.GetController());

        new Note(this, 10, 35, "Edit");

        Edit = new TextBox();

        Edit.Parent   = this;
        Edit.Location = new Point(40, 33);
        Edit.Size     = new Size(240, 20);
        Edit.Text     = RunRegistry.GetController();

        Button Apply = new Button();

        Apply.Parent   = this;
        Apply.Location = new Point(290, 33);
        Apply.Size     = new Size(60, 20);
        Apply.Text     = "Apply";
        Apply.Click   += new EventHandler(OnApply);

        Button Browse = new Button();

        Browse.Parent   = this;
        Browse.Location = new Point(360, 33);
        Browse.Size     = new Size(60, 20);
        Browse.Text     = "Browse";
        Browse.Click   += new EventHandler(OnBrowse);

        Button Reset = new Button();

        Reset.Parent   = this;
        Reset.Location = new Point(430, 33);
        Reset.Size     = new Size(60, 20);
        Reset.Text     = "Reset";
        Reset.Click   += new EventHandler(OnReset);

        Label DefaultName = new Label();

        DefaultName.Parent   = this;
        DefaultName.Location = new Point(10, 60);
        DefaultName.AutoSize = true;
        DefaultName.Text     = "Default Name : " + RunRegistry.GetDefaultController();
    }
Exemplo n.º 2
0
    public static void Run()
    {
        if (Running)
        {
            if (!Task.HasExited)
            {
                AlreadyRunning();
                return;
            }
        }

        String Controller = RunRegistry.GetController();

        if (!System.IO.File.Exists(Controller))
        {
            CantFind("controller", Controller);
            return;
        }

        String Solver = RunRegistry.GetSolver();
        String Model  = RunRegistry.GetModel();

        String Msg = "";

        Msg += "<root> ";
        Msg += "<model> " + Model + " </model>";
        Msg += "<solver> " + Solver + " </solver>";
        Msg += " </root>";

        Task = new Process();

        Task.StartInfo.FileName  = Controller;
        Task.StartInfo.Arguments = AddQuotes(Msg);

        if (GeneralRegistry.GetWaitForExit())
        {
            State.WaitForExit();
        }

        bool OK = Task.Start();

        /* Task.Start() starts the named task, but also associates
         * the task with the process object. You can invoke
         * WaitForExit() only after this association has been made.
         * If invoked to early, an exception is thrown.             */

        if (GeneralRegistry.GetWaitForExit())
        {
            Task.WaitForExit();
            State.HaveExit();
        }

        if (!OK)
        {
            FailedToStart(Controller);
            Running = false;
        }
        else
        {
            Running = true;
        }
    }