public DSOptimizeWindow(Design design, DSOptimizerComponent component) { MyComponent = component; InitializeComponent(); this.StepperTab.Content = new StepperWindow(new StepperVM(design, component)); this.RadicalWindow = new RadicalWindow(new RadicalVM(design, component)); this.RadicalTab.Content = this.RadicalWindow; }
//[STAThread] public override Grasshopper.GUI.Canvas.GH_ObjectResponse RespondToMouseDoubleClick(Grasshopper.GUI.Canvas.GH_Canvas sender, Grasshopper.GUI.GH_CanvasMouseEvent e) { //Prevent opening of multiple windows at once if (!MyComponent.IsWindowOpen && MyComponent.InputsSatisfied) { MyComponent.IsWindowOpen = true; Design design = new Design(MyComponent); Thread viewerThread = new Thread(delegate() { RadicalVM radVM = new RadicalVM(design, this.MyComponent); Window viewer = new RadicalWindow(radVM); viewer.Show(); System.Windows.Threading.Dispatcher.Run(); }); viewerThread.SetApartmentState(ApartmentState.STA); // needs to be STA or throws exception viewerThread.Start(); } return(base.RespondToMouseDoubleClick(sender, e)); }
//OPTIMIZE for Radical (Should be moved to RadicalVM) //Runs the optimizer and stores the objective data public void Optimize(RadicalWindow radicalWindow) { Optimizer opt = new Optimizer(this, radicalWindow); opt.RunOptimization(); }
//CONSTRUCTOR public ConstraintControl(ConstVM const_vm, RadicalWindow window) : base(const_vm) { MyWindow = window; InitializeComponent(); this.MyCheckBox.IsChecked = true; }