Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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;
        }