private List <PresetVoiLut> GetApplicablePresets() { List <PresetVoiLut> presets = new List <PresetVoiLut>(); if (this.SelectedPresentationImage is IImageSopProvider) { //Only temporary until we enable the full functionality in the presets. PresetVoiLut autoPreset = new PresetVoiLut(new AutoPresetVoiLutOperationComponent()); autoPreset.KeyStroke = XKeys.F2; presets.Add(autoPreset); ImageSop sop = ((IImageSopProvider)this.SelectedPresentationImage).ImageSop; PresetVoiLutGroupCollection groups = PresetVoiLutSettings.DefaultInstance.GetPresetGroups(); PresetVoiLutGroup group = CollectionUtils.SelectFirst(groups, delegate(PresetVoiLutGroup testGroup) { return(testGroup.AppliesTo(sop)); }); if (group != null) { foreach (PresetVoiLut preset in group.Clone().Presets) { if (preset.Operation.AppliesTo(this.SelectedPresentationImage)) { presets.Add(preset); } } } presets.Sort(new PresetVoiLutComparer()); } return(presets); }
public PresetVoiLutGroupCollection GetPresetGroups() { if (_presetGroups != null) return _presetGroups; _presetGroups = new PresetVoiLutGroupCollection(); XmlDocument document = new XmlDocument(); document.LoadXml(this.SettingsXml); XmlNodeList groupNodes = document.SelectNodes("//group"); foreach (XmlElement groupNode in groupNodes) { PresetVoiLutGroup group = DeserializeGroup(groupNode); if (group != null && !_presetGroups.Contains(group)) _presetGroups.Add(group); } return _presetGroups; }
public void SetPresetGroups(PresetVoiLutGroupCollection groups) { try { XmlDocument document = new XmlDocument(); XmlElement rootElement = document.CreateElement("preset-voi-luts"); document.AppendChild(rootElement); foreach (PresetVoiLutGroup group in groups) { if (group.Presets.Count == 0) continue; XmlElement groupNode = document.CreateElement("group"); if (!String.IsNullOrEmpty(group.Modality)) groupNode.SetAttribute("modality", group.Modality); rootElement.AppendChild(groupNode); XmlElement presetsElement = document.CreateElement("presets"); groupNode.AppendChild(presetsElement); foreach (PresetVoiLut preset in group.Presets) { XmlElement presetElement = document.CreateElement("preset"); presetsElement.AppendChild(presetElement); if (preset.KeyStroke != XKeys.None) presetElement.SetAttribute("keystroke", preset.KeyStroke.ToString()); PresetVoiLutConfiguration configuration = preset.Operation.GetConfiguration(); presetElement.SetAttribute("factory", configuration.FactoryName); XmlElement configurationElement = document.CreateElement("configuration"); presetElement.AppendChild(configurationElement); foreach (KeyValuePair<string, string> configurationItem in configuration) { if (String.IsNullOrEmpty(configurationItem.Key) || String.IsNullOrEmpty(configurationItem.Value)) continue; XmlElement configurationItemElement = document.CreateElement("item"); configurationItemElement.SetAttribute("key", configurationItem.Key); configurationItemElement.SetAttribute("value", configurationItem.Value); configurationElement.AppendChild(configurationItemElement); } } } _presetGroups = null; string currentSettings = this.SettingsXml; this.SettingsXml = document.OuterXml; this.Save(); } catch (Exception e) { Platform.Log(LogLevel.Error, e); } }