示例#1
0
 public override void Execute()
 {
     if (this.SceneViewModel.TextSelectionSet.IsActive)
     {
         this.SceneViewModel.TextSelectionSet.TextEditProxy.EditingElement.SelectAll();
     }
     else
     {
         SelectionManagerPerformanceHelper.MeasurePerformanceUntilPipelinePostSceneUpdate(this.SceneViewModel.DesignerContext.SelectionManager, PerformanceEvent.SelectElement);
         ISceneElementCollection elementCollection = (ISceneElementCollection) new SceneElementCollection();
         SceneElement            selectionRoot     = SelectAllCommand.GetSelectionRoot(this.SceneViewModel);
         if (selectionRoot != null)
         {
             foreach (SceneElement element in SceneElementHelper.GetElementTree(selectionRoot))
             {
                 if (this.IsSelectable(element, selectionRoot))
                 {
                     elementCollection.Add(element);
                 }
             }
         }
         this.SceneViewModel.ElementSelectionSet.SetSelection((ICollection <SceneElement>)elementCollection, (SceneElement)null);
         this.SceneViewModel.PathPartSelectionSet.Clear();
     }
 }
示例#2
0
        private void ApplyRelativeTransform_Execute()
        {
            if (!(this.ComponentType != (Type)null) || !this.IsRelativeTransform || this.ObjectSet.RepresentativeSceneNode == null)
            {
                return;
            }
            SelectionManagerPerformanceHelper.MeasurePerformanceUntilPipelinePostSceneUpdate(this.designerContext.SelectionManager, PerformanceEvent.EditSingleTransformProperty);
            using (SceneEditTransaction editTransaction = this.ObjectSet.ViewModel.CreateEditTransaction(StringTable.UndoUnitTransformPaneRelativeTransform))
            {
                LocalValueObjectSet localValueObjectSet = (LocalValueObjectSet)this.PropertyLookup.ActiveObjectSet;
                foreach (SceneNode sceneNode in this.ObjectSet.Objects)
                {
                    object currentTransform;
                    if (this.PropertyLookup.TransformType == TransformType.Transform2D)
                    {
                        if (this.PropertyLookup.IsCompositeSupported)
                        {
                            currentTransform = sceneNode.GetComputedValue(this.TransformProperty.Reference);
                            if (currentTransform != null && !PlatformTypes.CompositeTransform.IsAssignableFrom((ITypeId)this.ObjectSet.ProjectContext.GetType(currentTransform.GetType())))
                            {
                                currentTransform = (object)null;
                            }
                        }
                        else
                        {
                            currentTransform = sceneNode.GetComputedValueAsWpf(this.TransformProperty.Reference);
                        }
                    }
                    else
                    {
                        currentTransform = sceneNode.GetComputedValue(this.TransformProperty.Reference);
                    }
                    object valueToSet = this.ApplyRelativeTransform(localValueObjectSet.LocalValue, currentTransform);
                    if (sceneNode is Base2DElement && this.TransformProperty.Reference.LastStep.Equals((object)Base2DElement.RenderTransformProperty) && sceneNode.IsSet(Base2DElement.RenderTransformOriginProperty).Equals((object)PropertyState.Unset))
                    {
                        sceneNode.SetValueAsWpf(Base2DElement.RenderTransformOriginProperty, (object)new Point(0.5, 0.5));
                    }
                    switch (this.PropertyLookup.TransformType)
                    {
                    case TransformType.Transform2D:
                        if (this.PropertyLookup.IsCompositeSupported)
                        {
                            sceneNode.SetValue(this.TransformProperty.Reference, valueToSet);
                            break;
                        }
                        sceneNode.SetValueAsWpf(this.TransformProperty.Reference, (object)((ICanonicalTransform)valueToSet).TransformGroup);
                        break;

                    case TransformType.Transform3D:
                        sceneNode.SetValue(this.TransformProperty.Reference, (object)((CanonicalTransform3D)valueToSet).ToTransform());
                        break;

                    case TransformType.PlaneProjection:
                        sceneNode.SetValue(this.TransformProperty.Reference, valueToSet);
                        break;
                    }
                }
                editTransaction.Commit();
            }
        }
示例#3
0
        public override void Select()
        {
            SelectionManagerPerformanceHelper.MeasurePerformanceUntilPipelinePostSceneUpdate(this.TimelineItemManager.ViewModel.DesignerContext.SelectionManager, PerformanceEvent.SelectElement);
            SceneElementSelectionSet elementSelectionSet = this.TimelineItemManager.ViewModel.ElementSelectionSet;

            if (!this.IsSelectable)
            {
                elementSelectionSet.Clear();
            }
            else
            {
                elementSelectionSet.SetSelection(this.Element);
            }
        }