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 OnPageOpened() { if (m_DefaultFocus) { if (Visible) { SwSpecificControl.SetSelectionFocus(); } } }
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); } }