private void MouseLeftButtonDownHandler(object sender, MouseButtonEventArgs e) { if (ActiveModel != null) { PluginChangedEventArgs args = new PluginChangedEventArgs(ActiveModel.Plugin, ActiveModel.GetName(), DisplayPluginMode.Normal); MyEditor.onSelectedPluginChanged(args); e.Handled = true; } return; }
/// <summary> /// Selected Plugin changed by View /// </summary> /// <param name="args"></param> public void onSelectedPluginChanged(PluginChangedEventArgs args) { if (OnSelectedPluginChanged != null) { try { OnSelectedPluginChanged(this, args); } catch { //wtf ? } } }
private static void OnSelectedTypeChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { Slot slot = (Slot)d; SlaveType type; PluginChangedEventArgs args; ConnectorModel model = slot.element.ConnectorModel; if (slot.loading) { return; } if ((e.OldValue != null || e.NewValue == null) && slot.ActiveModel != null) { model.WorkspaceModel.ModifyModel(new DeletePluginModelOperation(slot.ActiveModel)); model.WorkspaceModel.ModifyModel(new DeleteConnectionModelOperation(slot.activeConnectionModel)); args = new PluginChangedEventArgs(slot.ActiveModel.Plugin, slot.ActiveModel.GetName(), DisplayPluginMode.Normal); slot.MyEditor.onSelectedPluginChanged(args); slot.ActiveModel = null; } if (e.OldValue != null && e.NewValue != null) { if (((SlaveType)e.OldValue).Type.IsAssignableFrom(((SlaveType)e.NewValue).Type)) { return; } } if (e.NewValue == null) { return; } type = e.NewValue as SlaveType; var v = (PluginModel)model.WorkspaceModel.ModifyModel(new NewPluginModelOperation(new Point(0, 0), (double)0, (double)0, type.Type)); slot.ActiveModel = v; var f = v.GetInputConnectors().Single(a => a.ConnectorType.IsAssignableFrom(slot.element.ConnectorModel.ConnectorType)); slot.activeConnectionModel = (ConnectionModel)model.WorkspaceModel.ModifyModel(new NewConnectionModelOperation(model, f, f.ConnectorType)); args = new PluginChangedEventArgs(slot.ActiveModel.Plugin, slot.ActiveModel.GetName(), DisplayPluginMode.Normal); slot.MyEditor.onSelectedPluginChanged(args); }