private void UpdateSelection(Point startPoint, Point endPoint) { Rect rubberBand = new Rect(startPoint, endPoint); foreach (ISelectable item in ItemsSource) { DependencyObject container = ItemContainerGenerator.ContainerFromItem(item); Rect itemRect = VisualTreeHelper.GetDescendantBounds((Visual)container); Rect itemBounds = ((Visual)container).TransformToAncestor(_drawingCanvas).TransformBounds(itemRect); if (rubberBand.Contains(itemBounds)) { if (!item.IsSelected) { item.IsSelected = true; SelectedModels.Add(item); } } else { if (!(Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl))) { SelectedModels.Remove(item); item.IsSelected = false; } } } }
private void _drawingCanvas_MouseLeftMouseDown(object sender, MouseButtonEventArgs e) { OnMouseLeftButtonDown(e); Keyboard.Focus(_drawingCanvas); _originMouseStartPoint = _previousPosition = e.GetPosition(_drawingCanvas); //if we are source of event, we are rubberband selecting if (e.Source == _drawingCanvas) { if (!IsDrawing && !(Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl))) { ClearSelections(); } if (_propEditorViewModel.DrawingPanelViewModel.IsDrawing) { AddLightCommand.Execute(_originMouseStartPoint); //ClearSelections(); } _isSelecting = false; e.Handled = true; } else if (!IsDrawing && e.Source is Path) { var p = e.Source as Path; var l = p.DataContext as ISelectable; if (l != null) { _isSelecting = true; if (!(Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl))) { if (!l.IsSelected) { ClearSelections(); SelectedModels.Add(l); l.IsSelected = true; } } else { if (l.IsSelected) { l.IsSelected = false; SelectedModels.Remove(l); } else { SelectedModels.Add(l); l.IsSelected = true; } } } e.Handled = true; } }
private void BtnAdd_Click(object sender, EventArgs e) { foreach (var item in lstApiServices.CheckedItems) { SelectedApiServices.Add(item as Utilities.ClassModel); } foreach (var item in lstServices.CheckedItems) { SelectedServices.Add(item as Utilities.ClassModel); } foreach (var item in lstModels.CheckedItems) { SelectedModels.Add(item as Utilities.ClassModel); } foreach (var item in lstDialogs.CheckedItems) { SelectedDialogs.Add(item as Utilities.ClassModel); } }
public CodeModel SelectModels(CodeModelArgs args) { string GetCodeSp = "pk_atm_sp_code"; try{ SelectedModels = Ctx.Query <dynamic>(GetCodeSp, new { P_GROUP_ID = args.Gropu_Id, P_WHERE = args.Where == "" ? null : args.Where }, commandType: CommandType.StoredProcedure) .Select(r => new CodeModel { CODE = r.CODE == null ? r.코드 : r.CODE, NAME = r.NAME == null ? r.이름 : r.NAME } ).ToList <CodeModel>(); } catch (Exception ex) { SelectedModels.Add(new CodeModel { Err = ex.Message }); } return(SelectModel); }
/// <summary> /// OnElementMouseDown: Click Event for each geometric element /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <param name="watch3DNode"></param> private void OnElementMouseDown(object sender, MouseButtonEventArgs e, Watch3DNode watch3DNode) { // 1-CLick event if (e.LeftButton != MouseButtonState.Pressed) { return; } // Get sender var element = sender as ModelUIElement3D; var geometryModel3D = element?.Model as GeometryModel3D; if (geometryModel3D == null) { return; } // Check Type // If it is already selected ... Deselect if (SelectedModels.Contains(geometryModel3D)) { // var geo = geometryModel3D.Clone(); // geo.Material = geometryModel3D.BackMaterial; geometryModel3D.Material = geometryModel3D.BackMaterial; SelectedModels.Remove(geometryModel3D); } // If not ... Select! else { SelectedModels.Add(geometryModel3D); // var geo = geometryModel3D.Clone(); // geo.Material = _selectionMaterial; geometryModel3D.Material = _selectionMaterial; } // Get the id of the selected model var reslist = new List <Guid>(); if (SelectedModels != null && SelectedModels.Count > 0) { foreach (var item in _fallBackGeometry) { foreach (var item_2 in SelectedModels) { if (Equals(item_2.Geometry, item.Model3D.Geometry)) { reslist.Add(item.Id); } } } } string modelId = null; string projectId = null; if (InputPorts[0].Data.GetType() == typeof(ModelInfo)) { var input = InputPorts[0].Data as ModelInfo; if (input != null) { modelId = input.ModelId; projectId = input.ProjectId; } } else if (InputPorts[0].Data.GetType() == typeof(BaseRelation)) { var input = InputPorts[0].Data as BaseRelation; if (input != null) { modelId = input.ModelId.ToString(); projectId = input.ProjectId.ToString(); } } else { return; } var res = new ModelInfo(projectId, modelId, reslist, ModelType.BimPlusModel); OutputPorts[0].Data = res; // Set selected models to Output ... e.Handled = true; }