protected override void SetSpecificValue(object value) { var selIndices = new List <int>(); if (m_IsMultiSelect) { if (value is IList) { foreach (var item in (IList)value) { selIndices.Add(GetItemIndex(item)); } } else if (value is Enum) { for (int i = 0; i < Items.Length; i++) { if (((Enum)value).HasFlag((Enum)Items[i].Value)) { selIndices.Add(i); } } } for (int i = 0; i < SwSpecificControl.ItemCount; i++) { SwSpecificControl.SetSelectedItem((short)i, selIndices.Contains(i)); } } else { SwSpecificControl.CurrentSelection = (short)GetItemIndex(value); } }
protected override void SetSpecificValue(object value) { SwSpecificControl.SetSelectionFocus(); if (value != null) { var disps = new List <DispatchWrapper>(); if (SupportsMultiEntities) { foreach (var item in value as IList) { disps.Add(new DispatchWrapper(item)); } } else { disps.Add(new DispatchWrapper(value)); } var selMgr = m_App.IActiveDoc2.ISelectionManager; var selData = selMgr.CreateSelectData(); selData.Mark = SwSpecificControl.Mark; m_App.IActiveDoc2.Extension.MultiSelect2(disps.ToArray(), true, selData); } }
private void OnPageClosed(swPropertyManagerPageCloseReasons_e reason) { m_IsPageOpened = false; SwSpecificControl.Clear(); SwSpecificControl.CurrentSelection = -1; m_CurrentValueCached = GetDefaultItemValue(); m_DynamicItems = null; }
protected override void LoadItemsIntoControl(ItemsControlItem[] newItems) { SwSpecificControl.Clear(); if (newItems?.Any() == true) { SwSpecificControl.AddItems(newItems.Select(i => i.DisplayName).ToArray()); } }
protected override void SetItemsToControl(ItemsControlItem[] items) { SwSpecificControl.Clear(); if (items?.Any() == true) { SwSpecificControl.AddItems(items.Select(i => i.DisplayName).ToArray()); } }
private void OnPageOpened() { if (m_DefaultFocus) { if (Visible) { SwSpecificControl.SetSelectionFocus(); } } }
protected override void SetSpecificValue(Image value) { if (value == null) { value = Resources.DefaultBitmap; } var icons = m_IconsConv.ConvertIcon(new ControlIcon(value, m_Size), true); SwSpecificControl.SetBitmapByName(icons[0], icons[1]); m_Image = value; }
protected override void SetSpecificValue(Image value) { if (value == null) { value = IconsConverter.FromXImage(Defaults.Icon); } var icons = m_IconsConv.ConvertIcon(new ControlIcon(value, m_Size)); SwSpecificControl.SetBitmapByName(icons[0], icons[1]); m_Image = value; }
private void SetHandle() { if (ui != null) { if (host == null) { host = new ElementHost() { Child = ui }; } SwSpecificControl.SetWindowHandlex64(host.Handle.ToInt64()); } }
protected override void SetItemsToControl(ItemsControlItem[] items) { SwSpecificControl.Clear(); if (items?.Any() == true) { SwSpecificControl.AddItems(items.Select(x => x.DisplayName).ToArray()); if (m_SelectDefaultValue) { SwSpecificControl.CurrentSelection = 0; ValueChanged?.Invoke(this, (TVal)items.First().Value); } } }
protected override void SetSpecificValue(Image value) { IXImage img; if (value == null) { img = Defaults.Icon; } else { img = new BaseImage(ImageToByteArray(value)); } var icons = m_IconsConv.ConvertIcon(new ControlIcon(img, m_Size)); SwSpecificControl.SetBitmapByName(icons[0], icons[1]); m_Image = value; }
protected override object GetSpecificValue() { var selIndexes = SwSpecificControl.GetSelectedItems() as short[]; if (selIndexes?.Any() == true) { if (!m_IsMultiSelect) { return(GetItem(selIndexes.First())); } else { var values = selIndexes.Select(i => GetItem(i)).ToArray(); if (m_TargetType.IsEnum) { return(Enum.ToObject(m_TargetType, values.Sum(v => Convert.ToInt32(v)))); } else { var list = Activator.CreateInstance(m_TargetType) as IList; foreach (var val in values) { list.Add(val); } return(list); } } } else { if (m_TargetType.IsValueType) { return(Activator.CreateInstance(m_TargetType)); } return(null); } }
protected override void LoadItemsIntoControl(ItemsControlItem[] newItems) { SwSpecificControl.Clear(); if (newItems?.Any() == true) { SwSpecificControl.AddItems(newItems.Select(x => x.DisplayName).ToArray()); if (!newItems.Any(i => object.Equals(i.Value, m_CurrentValueCached))) { //if items source changed dynamically previously cached value might not fit new source var defVal = GetDefaultItemValue(); if (!object.Equals(m_CurrentValueCached, defVal)) { m_CurrentValueCached = defVal; ValueChanged?.Invoke(this, m_CurrentValueCached); } } SetSpecificValue(m_CurrentValueCached); } }
protected override void SetSpecificValue(object value) { SwSpecificControl.SetSelectionFocus(); var disps = new List <DispatchWrapper>(); if (value != null) { if (SupportsMultiEntities) { foreach (SwSelObject item in value as IList) { disps.Add(new DispatchWrapper(item.Dispatch)); } } else { disps.Add(new DispatchWrapper((value as SwSelObject).Dispatch)); } } var selMgr = m_App.Sw.IActiveDoc2.ISelectionManager; var indicesToDeselect = new List <int>(); for (int i = 0; i < SwSpecificControl.ItemCount; i++) { var selIndex = SwSpecificControl.SelectionIndex[i]; var obj = selMgr.GetSelectedObject6(selIndex, -1); var objIndex = disps.FindIndex(d => d.WrappedObject == obj); if (objIndex == -1) { indicesToDeselect.Add(selIndex); } else { disps.RemoveAt(objIndex); } } if (indicesToDeselect.Any()) { int SUCCESS = 1; m_Handler.SuspendSelectionRaise(Id, true); if (selMgr.DeSelect2(indicesToDeselect.ToArray(), -1) != SUCCESS) { //TODO: add log } m_Handler.SuspendSelectionRaise(Id, false); } if (disps.Any()) { var selData = selMgr.CreateSelectData(); selData.Mark = SwSpecificControl.Mark; m_App.Sw.IActiveDoc2.Extension.MultiSelect2(disps.ToArray(), true, selData); } }
protected override void SetSpecificValue(string value) { SwSpecificControl.Caption = value; SwSpecificControl.SetLabelOptions(m_FontStyle, m_Font, m_TextColor); }