Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
 private void OnPageClosed(swPropertyManagerPageCloseReasons_e reason)
 {
     m_IsPageOpened = false;
     SwSpecificControl.Clear();
     SwSpecificControl.CurrentSelection = -1;
     m_CurrentValueCached = GetDefaultItemValue();
     m_DynamicItems       = null;
 }
Exemplo n.º 4
0
        protected override void LoadItemsIntoControl(ItemsControlItem[] newItems)
        {
            SwSpecificControl.Clear();

            if (newItems?.Any() == true)
            {
                SwSpecificControl.AddItems(newItems.Select(i => i.DisplayName).ToArray());
            }
        }
Exemplo n.º 5
0
        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;
        }
Exemplo n.º 8
0
        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;
        }
Exemplo n.º 9
0
 private void SetHandle()
 {
     if (ui != null)
     {
         if (host == null)
         {
             host = new ElementHost()
             {
                 Child = ui
             };
         }
         SwSpecificControl.SetWindowHandlex64(host.Handle.ToInt64());
     }
 }
Exemplo n.º 10
0
        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;
        }
Exemplo n.º 12
0
        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);
            }
        }
Exemplo n.º 13
0
        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);
            }
        }
Exemplo n.º 15
0
 protected override void SetSpecificValue(string value)
 {
     SwSpecificControl.Caption = value;
     SwSpecificControl.SetLabelOptions(m_FontStyle, m_Font, m_TextColor);
 }