Exemplo n.º 1
0
        public EditInterface getEditInterface()
        {
            if (editInterface == null)
            {
                editInterface = new EditInterface(name);
                editInterface.addCommand(new EditInterfaceCommand("Create Group", createGroupCallback));
                editInterface.addCommand(new EditInterfaceCommand("Create Sim Object", createSimObjectCallback));
                editInterface.addCommand(new EditInterfaceCommand("Show All", showAllCallback));
                editInterface.addCommand(new EditInterfaceCommand("Hide All", hideAllCallback));
                editInterface.addCommand(new EditInterfaceCommand("Import Positions", importPositionsCallback));
                editInterface.IconReferenceTag = AnomalyIcons.Folder;
                GenericClipboardEntry clipboardEntry = new GenericClipboardEntry(typeof(InstanceGroup));
                clipboardEntry.PasteFunction = pasteCallback;
                clipboardEntry.SupportsPastingTypeFunction = supportsPasteType;
                editInterface.ClipboardEntry = clipboardEntry;

                var groupManager = editInterface.createEditInterfaceManager <InstanceGroup>();
                groupManager.addCommand(new EditInterfaceCommand("Remove", destroyGroupCallback));
                var instanceFileManager = editInterface.createEditInterfaceManager <InstanceFileInterface>();
                instanceFileManager.addCommand(new EditInterfaceCommand("Remove", destroySimObjectCallback));
                instanceFileManager.addCommand(new EditInterfaceCommand("Rename", renameSimObjectCallback));
                foreach (InstanceGroup group in groups.Values)
                {
                    addGroupSubInterface(group);
                }
                foreach (InstanceFileInterface file in instanceFiles.Values)
                {
                    onInstanceFileAdded(file);
                }
            }
            return(editInterface);
        }
Exemplo n.º 2
0
        public InstanceFileInterface(String name, Object iconReferenceTag, String filename, InstanceGroup parentGroup)
            : base(name, iconReferenceTag)
        {
            this.parentGroup = parentGroup;
            GenericClipboardEntry clipboardEntry = new GenericClipboardEntry(typeof(SimObjectDefinition));

            clipboardEntry.CopyFunction  = copy;
            clipboardEntry.PasteFunction = paste;
            clipboardEntry.CutFunction   = cut;
            clipboardEntry.SupportsPastingTypeFunction = supportsPastingType;
            editInterface.ClipboardEntry = clipboardEntry;
            editInterface.addCommand(new EditInterfaceCommand("Toggle Display", toggleHidden));
            Deleted       = false;
            this.filename = filename;
            if (File.Exists(filename))
            {
                try
                {
                    using (var stream = File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.Read))
                    {
                        instance = saver.restoreObject <Instance>(stream);
                    }
                }
                catch (Exception ex)
                {
                    Log.Error("Could not load Instance {0} because {1}", filename, ex.Message);
                    instance = new Instance(name, new GenericSimObjectDefinition(name));
                }
            }
        }
Exemplo n.º 3
0
        public SimSceneFileInterface(String name, Object iconReferenceTag, String filename)
            : base(name, iconReferenceTag, filename)
        {
            GenericClipboardEntry clipboardInterface = new GenericClipboardEntry(typeof(SimSceneDefinition));

            clipboardInterface.CopyFunction  = copy;
            clipboardInterface.PasteFunction = paste;
            editInterface.ClipboardEntry     = clipboardInterface;
        }
        /// <summary>
        /// Get an EditInterface for the SimElementDefinition so it can be
        /// modified.
        /// </summary>
        /// <returns>The EditInterface for this SimElementDefinition.</returns>
        public EditInterface getEditInterface()
        {
            EditInterface editInterface = createEditInterface();

            GenericClipboardEntry clipboardEntry = new GenericClipboardEntry(typeof(SimElementDefinition));

            clipboardEntry.CopyFunction  = copy;
            clipboardEntry.PasteFunction = paste;
            editInterface.ClipboardEntry = clipboardEntry;

            return(editInterface);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Get the EditInterface.
        /// </summary>
        /// <returns>The EditInterface.</returns>
        public EditInterface getEditInterface()
        {
            if (editInterface == null)
            {
                editInterface = ReflectedEditInterface.createEditInterface(this, genericSimObjectScanner, name, null);
                editInterface.IconReferenceTag = EngineIcons.SimObject;
                var elementEditInterfaces = editInterface.createEditInterfaceManager <SimElementDefinition>();
                elementEditInterfaces.addCommand(new EditInterfaceCommand("Remove", removeSimElementDefinition));
                foreach (SimElementDefinition definition in definitions)
                {
                    createElementInterface(definition);
                }
                foreach (AddSimElementCommand command in PluginManager.Instance.getCreateSimElementCommands())
                {
                    editInterface.addCommand(new EditInterfaceCommand(command.Name, callback =>
                    {
                        callback.getInputString("Enter a name.", delegate(String result, ref String errorPrompt)
                        {
                            if (result == null || result == "")
                            {
                                errorPrompt = "Please enter a non empty name.";
                                return(false);
                            }
                            foreach (SimElementDefinition definition in definitions)
                            {
                                if (definition.Name == result)
                                {
                                    errorPrompt = "That name is already in use. Please provide another.";
                                    return(false);
                                }
                            }

                            command.execute(result, callback, this);

                            return(true);
                        });
                    }));
                }

                GenericClipboardEntry clipboardEntry = new GenericClipboardEntry(typeof(SimElementDefinition));
                clipboardEntry.PasteFunction = pasteObject;
                editInterface.ClipboardEntry = clipboardEntry;
            }
            return(editInterface);
        }