Esempio n. 1
0
        private void HandleCurrentExecutorPageChanged(object sender, EventArgs e)
        {
            var connMgr = ConnectionManager.getInstance().GuiSession;

            var item = ExecutorWindowListBox.SelectedItem as ListBoxItem;

            if (item != null)
            {
                CurrentExecutorPage = connMgr.GetExecutorPageByID(item.ID);
            }
            else
            {
                CurrentExecutorPage = null;
            }
            if (CurrentExecutorPage == null)
            {
                Clear();
            }
            else
            {
                for (int i = 0; i < ExecutorWindow_MaxExecutors; i++)
                {
                    dynExecutors[i].assignedExecutor = i < CurrentExecutorPage.GUIExecutors.Count ? connMgr.GetExecutorByID(CurrentExecutorPage.GUIExecutors[i].ID) : null;
                }
            }
        }
Esempio n. 2
0
        public void Establish()
        {
            //Cleanup();
            /* Einklinken in ExecutorWindow */
            ExecutorWindow = WindowManager.getInstance().GuiWindows.First(j => j.GetType() == typeof(ExecutorView)) as ExecutorView;
            foreach (var item in dynExecutors)
            {
                item.executorWindow = ExecutorWindow;
            }
            var ewType = typeof(ExecutorView);

            ExecutorWindowListBox = ewType.GetField("lstPages", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(ExecutorWindow) as System.Windows.Forms.ListBox;
            ExecutorWindowListBox.SelectedValueChanged += HandleCurrentExecutorPageChanged;
            ExecutorWindowListBox.SelectedIndexChanged += HandleCurrentExecutorPageChanged;

            MidiPlugin.log.Info("ExecutorWindow hook established.");

            var currentItem = ExecutorWindowListBox.SelectedItem as ListBoxItem; /* Fetch current item */

            if (currentItem != null)
            {
                CurrentExecutorPage = ConnectionManager.getInstance().GuiSession.GetExecutorPageByID(currentItem.ID);
                HandleCurrentExecutorPageChanged(null, null); /* Update this. */
            }
            try
            {
                InputLayerManager.getInstance().registerInputListener(this);
            }
            catch (Exception)
            {
                MidiPlugin.log.Warn("Dynamic Executors already registered.");
            }
        }