private void ListBoxOnKeyDown(object sender, KeyEventArgs keyEventArgs) { if (((ListBox)sender).SelectedItems.Count > 0 && keyEventArgs.Key == Key.Delete) { var selectedItem = ((ListBox)sender).SelectedItems[0]; var node = ((ConstraintInfo)((ListBox)sender).SelectedItems[0]).ConstraintNode.Node; var document = NodeBuilderUtils.FindSketchNode(node).Root.Get <DocumentContextInterpreter>().Document; NodeBuilderUtils.DeleteConstraintNode(document, node); UpdateFieldValue(); keyEventArgs.Handled = true; } }
private void ConstraintApplied(object sender, RoutedEventArgs e) { var button = (CheckBox)sender; var descriptor = (ConstraintDependencyDescription)button.DataContext; var isChecked = button.IsChecked ?? false; _document.Transact(); var functionName = descriptor.FunctionName; if (isChecked) { var firstPointIndex = NodeUtils.GetFirstPointIndex(_nodeList[0]); _constraintDocumentHelper.SetMousePosition(firstPointIndex); var res = _constraintDocumentHelper.ApplyConstraint(_nodeList, functionName); if (res.Node == null) { _constraintDocumentHelper.Remove(_nodeList, functionName); MessageBox.Show("Could not apply constraint!"); } else { foreach (var node in _nodeList) { NodeBuilderUtils.AdddHintsForNode(_document, node, res.Node); } } } else { var appliedConstraints = _constraintDocumentHelper.CheckAppliedConstraints(_nodeList); foreach (var constraint in appliedConstraints) { NodeBuilderUtils.DeleteConstraintNode(_document, constraint); } } _stepsToUndo++; _document.Commit("Applied/Removed constraint: " + descriptor.Descriptor); EnableUndo = true; SceneChanged(); }
private void RemoveSelectedShapes(IEnumerable <Node> toDelete) { Document.Transact(); foreach (var deletedItem in toDelete) { if (NodeUtils.NodeIsConstraint(deletedItem.Index, Document)) { NodeBuilderUtils.DeleteConstraintNode(Document, deletedItem); } else { RemoveFromDocument(deletedItem); } } Document.OptimizeData(); NodeUtils.RebuildAllSketchFaces(Document); Document.Commit("Delete object"); Inputs[InputNames.SelectionContainerPipe].Send(NotificationNames.Cleanup); UpdateView(); RebuildTreeView(); BackToNeutralModifier(); }