コード例 #1
0
        private MenuItemDef CreatePasteModelObjectsAction(Dataweb.NShape.Advanced.IReadOnlyCollection <IModelObject> modelObjects)
        {
            bool   isFeasible = (copyPasteBuffer.Count > 0 && modelObjects.Count <= 1);
            string description;

            if (isFeasible)
            {
                description = string.Format("Paste {0} model object{1}.", copyPasteBuffer.Count,
                                            (copyPasteBuffer.Count > 1) ? "s" : string.Empty);
            }
            else
            {
                description = "No model objects copied.";
            }

            IModelObject parent = null;

            foreach (IModelObject mo in modelObjects)
            {
                parent = mo;
                break;
            }
            return(new DelegateMenuItemDef("Paste", Properties.Resources.PasteBtn, "PasteModelObjectsAction",
                                           description, false, isFeasible, Permission.None,
                                           (a, p) => Paste(parent)));
        }
コード例 #2
0
        private MenuItemDef CreateDeleteModelObjectsAction(Dataweb.NShape.Advanced.IReadOnlyCollection <IModelObject> modelObjects)
        {
            string description;
            bool   isFeasible;

            if (modelObjects != null && modelObjects.Count > 0)
            {
                isFeasible  = true;
                description = string.Format("Delete {0} model object{1}.", modelObjects.Count,
                                            (modelObjects.Count > 0) ? "s" : string.Empty);
                foreach (IModelObject modelObject in modelObjects)
                {
                    foreach (IModelObject mo in Project.Repository.GetModelObjects(modelObject))
                    {
                        if (mo.ShapeCount > 0)
                        {
                            isFeasible  = false;
                            description = "One or more child model objects are attached to shapes.";
                        }
                    }
                }
            }
            else
            {
                isFeasible  = false;
                description = "No model objects selected";
            }

            return(new DelegateMenuItemDef("Delete", Properties.Resources.DeleteBtn, "DeleteModelObjectsAction",
                                           description, false, isFeasible, Permission.None,
                                           (a, p) => DeleteModelObjects(modelObjects)));
        }
コード例 #3
0
        /// <summary>
        /// Returns a collection of <see cref="T:Dataweb.NShape.Advanced.MenuItemDef" /> for constructing context menus etc.
        /// </summary>
        public IEnumerable <MenuItemDef> GetMenuItemDefs(Diagram diagram, Dataweb.NShape.Advanced.IReadOnlyCollection <Layer> selectedLayers)
        {
            if (diagram == null)
            {
                throw new ArgumentNullException("diagram");
            }
            if (selectedLayers == null)
            {
                throw new ArgumentNullException("selectedLayers");
            }
            bool   isFeasible;
            string description;

            isFeasible  = diagram.Layers.Count < Enum.GetValues(typeof(LayerIds)).Length;
            description = isFeasible ? "Add a new layer to the diagram" : "Maximum number of layers reached";
            yield return(new DelegateMenuItemDef("Add Layer",
                                                 Properties.Resources.NewLayer, description, isFeasible, Permission.Data,
                                                 diagram != null ? diagram.SecurityDomainName : 'A',
                                                 (a, p) => AddLayer(diagram)));

            isFeasible  = selectedLayers.Count > 0;
            description = isFeasible ? string.Format("Delete {0} Layers", selectedLayers.Count) : "No layers selected";
            yield return(new DelegateMenuItemDef(string.Format("Delete Layer{0}", selectedLayers.Count > 1 ? "s" : string.Empty),
                                                 Properties.Resources.DeleteBtn, description, isFeasible, Permission.Data,
                                                 diagram != null ? diagram.SecurityDomainName : 'A',
                                                 (a, p) => this.RemoveLayers(diagram, selectedLayers)));
        }
コード例 #4
0
        private MenuItemDef CreateFindShapesAction(Dataweb.NShape.Advanced.IReadOnlyCollection <IModelObject> modelObjects)
        {
            bool   isFeasible  = (diagramSetController != null);
            string description = "Find and select all assigned shapes.";

            return(new DelegateMenuItemDef("Find assigned shapes", Properties.Resources.FindShapes, "FindShapesAction",
                                           description, false, isFeasible, Permission.None,
                                           (a, p) => FindShapes(modelObjects)));
        }
コード例 #5
0
        private MenuItemDef CreateCopyModelObjectsAction(Dataweb.NShape.Advanced.IReadOnlyCollection <IModelObject> modelObjects)
        {
            bool   isFeasible = (modelObjects != null && modelObjects.Count > 0);
            string description;

            if (isFeasible)
            {
                description = string.Format("Copy {0} model object{1}.", modelObjects.Count,
                                            (modelObjects.Count > 1) ? "s" : string.Empty);
            }
            else
            {
                description = "No model objects selected";
            }
            return(new DelegateMenuItemDef("Copy", Properties.Resources.CopyBtn, "CopyModelObjectsAction",
                                           description, false, isFeasible, Permission.None,
                                           (a, p) => Copy(modelObjects)));
        }
コード例 #6
0
        /// <summary>
        /// Returns a collection of <see cref="T:Dataweb.NShape.Advanced.MenuItemDef" /> for constructing context menus etc.
        /// </summary>
        public IEnumerable <MenuItemDef> GetMenuItemDefs(Dataweb.NShape.Advanced.IReadOnlyCollection <IModelObject> modelObjects)
        {
            if (modelObjects == null)
            {
                throw new ArgumentNullException("modelObjects");
            }

            // New...
            // Rename
            yield return(CreateDeleteModelObjectsAction(modelObjects));

            yield return(new SeparatorMenuItemDef());

            yield return(CreateCopyModelObjectsAction(modelObjects));

            // Cut
            yield return(CreatePasteModelObjectsAction(modelObjects));

            yield return(new SeparatorMenuItemDef());

            // Find model object...
            yield return(CreateFindShapesAction(modelObjects));
        }