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; } } }
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."); } }