private void SetPropertyEditors() { PropertyEditors.Clear(); HeliosVisual visual = BindingFocus as HeliosVisual; if (visual != null) { // Setup Layout Panel HeliosPropertyEditor layoutEditor; if (visual is Monitor) { layoutEditor = new MonitorPropertyEditor(); } else { layoutEditor = new LayoutPropertyEditor(); } layoutEditor.Control = visual; PropertyEditors.Add(layoutEditor); foreach (HeliosPropertyEditorDescriptor descriptor in ConfigManager.ModuleManager.GetPropertyEditors(visual.TypeIdentifier)) { HeliosPropertyEditor editor = descriptor.CreateInstance(); editor.Control = visual; PropertyEditors.Add(editor); } } }
private void SetPropertyEditors() { PropertyEditors.Clear(); HeliosVisual visual = BindingFocus as HeliosVisual; if (visual == null) { return; } // Setup Layout Panel HeliosPropertyEditor layoutEditor; if (visual is Monitor) { layoutEditor = new MonitorPropertyEditor(); } else { layoutEditor = new LayoutPropertyEditor(); } layoutEditor.Control = visual; PropertyEditors.Add(layoutEditor); // find editors that explicitly support this exact visual foreach (HeliosPropertyEditorDescriptor descriptor in ConfigManager.ModuleManager.GetPropertyEditors(visual.TypeIdentifier)) { HeliosPropertyEditor editor = descriptor.CreateInstance(); editor.Control = visual; PropertyEditors.Add(editor); } if (!(ConfigManager.ModuleManager is IModuleManager2 capabilities)) { // legacy build does not support this interface return; } // probe for additional editors based on supported interfaces foreach (HeliosCapabilityEditorDescriptor descriptor in capabilities.GetCapabilityEditors(visual)) { HeliosPropertyEditor editor = descriptor.CreateInstance(); editor.Control = visual; PropertyEditors.Add(editor); } }