Exemple #1
0
 void BringToView(ModelItem modelItem)
 {
     if (modelItem != null)
     {
         modelItem.Focus();
     }
 }
Exemple #2
0
        public ModelItem addActivity(Activity a)
        {
            ModelItem    newItem      = null;
            ModelService modelService = wfDesigner.Context.Services.GetService <ModelService>();

            using (ModelEditingScope editingScope = modelService.Root.BeginEdit("Implementation"))
            {
                var lastSequence = GetSequence(selectedActivity);
                if (lastSequence == null && selectedActivity != null)
                {
                    lastSequence = GetActivitiesScope(selectedActivity.Parent);
                }
                if (lastSequence != null)
                {
                    ModelItemCollection Activities = null;
                    if (lastSequence.Properties["Activities"] != null)
                    {
                        Activities = lastSequence.Properties["Activities"].Collection;
                    }
                    else
                    {
                        Activities = lastSequence.Properties["Nodes"].Collection;
                    }

                    var insertAt = Activities.Count;
                    for (var i = 0; i < Activities.Count; i++)
                    {
                        if (Activities[i].Equals(selectedActivity))
                        {
                            insertAt = (i + 1);
                        }
                    }
                    if (lastSequence.Properties["Activities"] != null)
                    {
                        newItem = Activities.Insert(insertAt, a);
                    }
                    else
                    {
                        FlowStep step = new FlowStep();
                        step.Action = a;
                        newItem     = Activities.Insert(insertAt, step);
                    }
                    //Selection.Select(wfDesigner.Context, selectedActivity);
                    //ModelItemExtensions.Focus(selectedActivity);
                }
                editingScope.Complete();
                //WorkflowInspectionServices.CacheMetadata(a);
            }
            if (newItem != null)
            {
                selectedActivity = newItem;
                newItem.Focus(20);
                Selection.SelectOnly(wfDesigner.Context, newItem);
            }
            return(newItem);
        }
        void NavigateToError(object sourceDetail)
        {
            Fx.Assert(this.modelTreeManager != null, "ModelTreeManager is null.");
            ModelItem modelItem = this.modelTreeManager.GetModelItem(sourceDetail) ?? FindModelItem(this.modelTreeManager, sourceDetail);

            if (modelItem != null)
            {
                if (this.modelSearchService != null)
                {
                    this.modelSearchService.NavigateTo(modelItem);
                }
                else
                {
                    // For any Expression, need to focus to its parent instead.
                    Activity activity = modelItem.GetCurrentValue() as Activity;
                    if (activity != null && (activity.IsExpression()))
                    {
                        ModelItem parent = modelItem.Parent;
                        while (parent != null)
                        {
                            bool hasDesignerAttribute = this.ViewService.GetDesignerType(parent.ItemType) != null;

                            // ModelItemKeyValuePair type also has DesignerAttribute.
                            // Since we do not want to put a focus on that type, special-casing it here.
                            bool isModelItemKeyValuePair = parent.ItemType.IsGenericType &&
                                                           parent.ItemType.GetGenericTypeDefinition() == typeof(ModelItemKeyValuePair <,>);

                            if (hasDesignerAttribute && !isModelItemKeyValuePair)
                            {
                                break;
                            }

                            parent = parent.Parent;
                        }

                        if (parent != null)
                        {
                            modelItem = parent;
                        }
                    }
                    modelItem.Focus();
                }
            }
        }