protected AlgorithmController(string Name) { this.Name = Name; InputEditors = new BindingList <InputEditor <TIn> >(); AlgorithmFactories = new BindingList <INameableFactory <Algorithm <TIn, TOut> > >(); RunExplorerFactories = new BindingList <INameableFactory <RunExplorer <TIn, TOut> > >(); AddRunExplorer(() => new SimpleRunExplorer <TIn, TOut>(new StatOverview <TIn, TOut>())); AddRunExplorer(() => new LogExplorer <TIn, TOut>()); Runs = new NamingList <AlgorithmRun <TIn, TOut> >(); Algorithms = new NamingList <Algorithm <TIn, TOut> >(); Inputs = new NamingList <TIn>(); CanImport = false; }
public AlgorithmForm(IList <Func <AlgorithmControllerBase> > controllers) { InitializeComponent(); OpenTK.Toolkit.Init(); var factories = new NamingList <NameableFactory <AlgorithmControllerBase> >(); var defaultControllers = new List <AlgorithmControllerBase>(); foreach (var func in controllers) { var factory = new NameableFactory <AlgorithmControllerBase>(func, func().Name); factories.Add(factory); defaultControllers.Add(factory.Create()); } controllerFactoryComboBox.DataSource = factories; controllerFactoryComboBox.Format += (s, ev) => { ev.Value = ((INameable)ev.Value).Name; }; SetControllers(defaultControllers); }
private void SetControllers(IList <AlgorithmControllerBase> controllers) { algoControllers = new NamingList <AlgorithmControllerBase>(); algoControllers.ListChanged += (o, e) => { if (e.ListChangedType == ListChangedType.ItemAdded) { var controller = algoControllers[e.NewIndex]; controller.NameChanged += (ob, ev) => RedrawProblemComboBox(); } removeControllerButton.Enabled = algoControllers.Count > 0; }; foreach (var controller in controllers) { algoControllers.Add(controller); } controllerComboBox.DataSource = algoControllers; controllerComboBox.Format += (s, ev) => { ev.Value = ((INameable)ev.Value).Name; }; removeControllerButton.Enabled = algoControllers.Count > 0; }