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."); } }
private void OnRuleSetDeleted(object o, MidiInformation.RuleSetEventArgs rs) { if (this.RuleSetDeleted != null) { this.RuleSetDeleted(this, rs); } if (rs.rs != null && rs.rs.InputLayer != null) { InputLayerManager.getInstance().deregisterInputLayer(rs.rs.InputLayer); rs.rs.Dispose(); } }
private void OnRuleSetAdded(object o, MidiInformation.RuleSetEventArgs rs) { if (rs.rs != null && rs.rs.InputLayer != null) { try { InputLayerManager.getInstance().registerInputLayer(rs.rs.InputLayer); } catch (Exception x) { Debug.WriteLine(x); } if (this.RuleSetAdded != null) { this.RuleSetAdded(this, rs); } } }
public void Cleanup() { if (ExecutorWindowListBox != null) { ExecutorWindowListBox.SelectedIndexChanged -= HandleCurrentExecutorPageChanged; ExecutorWindowListBox.SelectedValueChanged -= HandleCurrentExecutorPageChanged; } /* Einklinken in ExecutorWindow */ MidiPlugin.log.Info("ExecutorWindow hook broken."); try { InputLayerManager.getInstance().deregisterInputListener(this); } catch (Exception) { MidiPlugin.log.Info("ExecutorWindowHelper not registered."); } ExecutorWindowListBox = null; ExecutorWindow = null; }
private void genInputLayer() { this.InputLayer = new MidiInputLayer(InputLayerManager.getInstance().SessionName, this); }