UNPKG

jsoneditor4code

Version:

JSON Editor for UML Diagrams developed with Javascript Code Templates based on JSON Editor of Jeremy Dorn

656 lines (652 loc) 31.2 kB
vDataJSON["class_schema"] = { "$schema": "http://json-schema.org/draft-04/schema#", "additionalProperties": true, "options":{ "disable_collapse": false, "disable_properties": true, "disable_edit_json": false }, "title": "Unified Modelling Language - UML", "definitions": { "comment": { "title": "Comment:", "type": "string", "format": "textarea", "default": " " }, "visibility": { "title": "Visibility", "type": "string", "enum": [ "public", "private" ], "default":"public" }, "yesno":{ "default": "yes", "type": "string", "enum": [ "yes", "no" ] }, "selectorclass": { "type": "string", "default": "", "enum":[ "", "Array", "Boolean", "Float", "Function", "Hash", "Integer", "Object", "RegularExp", "String", "App", "AppAbstract", "Document", "LinkParam", "JSONEditor" ] } }, "type": "object", "id": "https://niebert.github.io/json-editor", "defaultProperties": [ "data", "settings" ], "properties": { "data": { "title":"JSON Data", "propertyOrder": 10, "type": "object", "headerTemplate": "Class: {{self.classname}}", "id": "/properties/data", "options": { "collapsed": false, "disable_properties": true }, "defaultProperties": [ "classname", "superclassname", "comment", "reposinfo", "attributes", "methods" ], "properties": { "classname": { "type": "string", "id": "/properties/data/properties/classname", "title": "Class:", "propertyOrder": 10, "default": "NewClass", "format": "text", "description": "Use a classname with uppercase first character e.g. 'Myclass' or 'MyClass' and not 'myclass'." }, "superclassname": { "type": "string", "id": "/properties/data/properties/superclassname", "title": "Super Class", "propertyOrder": 20, "default": "", "$ref": "#/definitions/selectorclass" }, "comment": { "type": "string", "id": "/properties/data/properties/comment", "title": "Description of Class", "propertyOrder": 30, "description": "Describe the main application of this class for the software development. This description will be used to generate a documentation of the UML definition.", "$ref": "#/definitions/comment" }, "reposinfo": { "type": "object", "title": "Repository Info", "propertyOrder": 40, "id": "/properties/data/properties/reposinfo", "options": { "collapsed": true, "disable_properties": true }, "defaultProperties": [ "JSCC_type", "JSCC_version", "repository", "static", "debugheader", "require_classes", "author", "email", "created", "modified", "configcode", "requirelist" ], "properties": { "JSCC_type": { "type": "string", "id": "/properties/data/properties/reposinfo/properties/JSCC_type", "title": "JSCC Type", "options": { "hidden": true }, "propertyOrder": 10, "default": "CLASS", "format": "text", "description": "Hidden JSON attribute to handle with JavascriptClassCreator JSCC as CLASS - allows integration into UML based Software Development Framework" }, "JSCC_version": { "type": "string", "id": "/properties/data/properties/reposinfo/properties/JSCC_type", "title": "JSCC Version", "propertyOrder": 20, "options": { "hidden": true }, "default": "2", "format": "text", "description": "Hidden JSON attribute to handle the version of JSON with JavascriptClassCreator JSCC as CLASS - allows integration into UML based Software Development Framework" }, "repository": { "type": "string", "id": "/properties/data/properties/reposinfo/properties/repository", "title": "URL Repository", "propertyOrder": 30, "default": "https://www.github.com/author/NewClass", "format": "text", "description": "Enter e.g. the Link to your GitHub repository." }, "require_classes": { "type": "string", "id": "/properties/data/properties/reposinfo/properties/require_classes", "$ref": "#/definitions/yesno", "title": "Require Classes NPM:", "propertyOrder": 40, "description": "Set to 'Yes' if you want to insert the require commands for used classes in the generated code and add a 'module.exports' at the end of the generated code" }, "static": { "type": "string", "id": "/properties/data/properties/reposinfo/properties/static", "$ref": "#/definitions/yesno", "title": "Static Class:", "propertyOrder": 50, "default": "no", "description": "If set to 'Yes' the generated class will be an Object (hash) with attributes and assigned functions. You do not need to instantiate a class with new MyClass()" }, "debugheader": { "type": "string", "id": "/properties/data/properties/reposinfo/properties/debugheader", "$ref": "#/definitions/yesno", "title": "Debug Header Methods:", "propertyOrder": 60, "default": "no", "description": "If set to 'Yes' the generated methods of the class will be have a debug header for assigned functions. The debug header will create an commented alert-call and a console.log command with the method name for easier debugging" }, "requirelist": { "title":"Require List", "propertyOrder": 70, "type": "array", "id": "/properties/data/properties/reposinfo/properties/requirelist", "format": "table", "description": "Add required modules for the definition of the class. This creates a require('modulename') in the generated code.", "options": { "collapsed": true }, "items": { "type": "object", "title": "Module", "id": "/properties/requirelist/items", "defaultProperties": [ "module", "variable" ], "properties": { "variable": { "type": "string", "id": "/properties/requirelist/items/properties/variable", "title": "Variable", "default": "Handlebars", "format": "text" }, "module": { "type": "string", "id": "/properties/requirelist/items/properties/module", "title": "Require Module", "default": "handlebars", "format": "text" } } } }, "author": { "type": "string", "id": "/properties/data/properties/reposinfo/properties/author", "title": "Author of Class", "propertyOrder": 80, "default": "My Name", "format": "text" }, "email": { "type": "string", "id": "/properties/data/properties/reposinfo/properties/email", "title": "e-Mail:", "propertyOrder": 90, "default": "name@example.com", "format": "text" }, "created": { "title": "Created:", "propertyOrder": 100, "type": "string", "default": getDate(), "id": "/properties/data/properties/reposinfo/properties/created", "format": "text" }, "modified": { "title": "Modified:", "propertyOrder": 110, "type": "string", "default": getDate(), "id": "/properties/data/properties/reposinfo/properties/modified", "format": "text" }, "configcode": { "type": "string", "id": "/properties/data/properties/reposinfo/properties/configcode", "title": "Configuration Code", "description": "The configuration code will be placed before the constructor of class and could contain e.g. some constants of some functions that are not methods of the class and are accessible in the class only.", "default": "// the configuration code can be used to create some constants or local functions", "propertyOrder": 120, "format": vProgLanguage } } }, "attributes": { "title": "Attribute", "propertyOrder": 50, "type": "array", "format": "table", "uniqueItems": true, "id": "/properties/data/properties/attributes", "options": { "collapsed": false }, "items": { "title": "Attrib", "type": "object", "id": "/properties/data/properties/attributes/items", "headerTemplate": "{{self.name}}", "format": "table", "defaultProperties": [ "visibility", "name", "init", "class", "comment" ], "properties": { "visibility": { "type": "string", "id": "/properties/data/properties/attributes/items/properties/visibility", "$ref": "#/definitions/visibility" }, "name": { "type": "string", "id": "/properties/data/properties/attributes/items/properties/name", "title": "Name", "default": "aMyAttrib", "format": "text" }, "init": { "type": "string", "id": "/properties/data/properties/attributes/items/properties/init", "title": "Init", "default": "", "format": "text" }, "class": { "id": "/properties/data/properties/attributes/items/properties/class", "title": "Class", "$ref": "#/definitions/selectorclass" }, "comment": { "type": "string", "id": "/properties/data/properties/attributes/items/properties/comment", "title": "Comment", "$ref": "#/definitions/comment", "default": "This attribute stores ...", "format": "text", } } } }, "methods": { "type": "array", "title":"Methods", "propertyOrder": 60, "id": "/properties/data/properties/methods", "format": "tabs", "uniqueItems": true, "options": { "collapsed": false }, "items": { "type": "object", "title": "Method", "headerTemplate": "{{self.name}}()", "id": "/properties/data/properties/methods/items", "defaultProperties": [ "visibility", "name", "parameter", "return", "comment", "code" ], "properties": { "visibility": { "type": "string", "id": "/properties/data/properties/methods/items/properties/visibility", "title": "Visibility", "propertyOrder": 10, "$ref": "#/definitions/visibility" }, "name": { "type": "string", "id": "/properties/data/properties/methods/items/properties/name", "title": "Method Name", "default": "myMethod", "propertyOrder": 20, "format": "text" }, "parameter": { "title": "Parameter", "type": "array", "id": "/properties/data/properties/methods/items/properties/parameter", //"format": "tabs", "format": "table", "propertyOrder": 30, "uniqueItems": true, "options": { "collapsed": true }, "items": { "title":"Param", "type": "object", "id": "/properties/data/properties/methods/items/properties/parameter/items", "defaultProperties": [ "name", "class", "comment" ], "properties": { "name": { "type": "string", "id": "/properties/data/properties/methods/items/properties/parameter/items/properties/name", "title": "Parameter", "default": "pVar", "minLength": 1, "propertyOrder": 10, "format": "text" }, "class": { "type": "string", "id": "/properties/data/properties/methods/items/properties/parameter/items/properties/class", "title": "Class", "propertyOrder": 20, "$ref": "#/definitions/selectorclass" }, "comment": { "type": "string", "id": "/properties/data/properties/methods/items/properties/parameter/items/properties/comment", "$ref": "#/definitions/comment", "propertyOrder": 30, "default": "the parameter stores ..." //"format": "text" } } } }, "return": { "type": "string", "id": "/properties/data/properties/methods/items/properties/return", "title": "Return", "propertyOrder": 40, "$ref": "#/definitions/selectorclass" }, "code": { "type": "string", "id": "/properties/data/properties/methods/items/properties/code", "title": "Code - Language: '"+vProgLanguage+"'", "default": "// insert your code here", "propertyOrder": 50, "format": vProgLanguage }, "comment": { "type": "string", "id": "/properties/data/properties/methods/items/properties/comment", "title":"Comment", "format":"textarea", "$ref": "#/definitions/comment", "default": "the method performs ...", "propertyOrder": 60, "description": "Describe the purpose of the method. This description will be used to generate a documentation of the UML definition." } } } } } }, "settings": { "title":"Settings Editor", "propertyOrder": 20, "type": "object", "id": "/properties/settings", "options": { "collapsed": true }, "defaultProperties": [ "extension4code", "extension4json", "classlist", "localclasslist", "remoteclasslist", "baseclasslist", "baseclasses" ], "properties": { "extension4code": { "type": "string", "id": "/properties/settings/properties/extension4code", "title": "Extension for Generated Code:", "default": ".js", "format": "text", "propertyOrder": 10, "size":12, "description": "When ClassEditorUML generates code, it stores a generated file in the programming language '"+vProgLanguage+"' with this file extension" }, "extension4json": { "type": "string", "id": "/properties/settings/properties/extension4json", "title": "Extension for saved JSON:", "default": ".json", "format": "text", "propertyOrder": 12, "size":12, "description": "JSON Editor stores a JSON file with this file extension" }, "classlist": { "type": "array", //"id": "/properties/settings/properties/classlist", "title": "Select List of Classes", "format": "table", "propertyOrder": 20, "options": { "collapsed": true, "hidden": true }, "items": { "type": "string", "id": "/properties/settings/properties/classlist/items", "title": "Class", "default": " ", "format": "text" }, "default": [ " ", "Array", "Boolean", "Document", "Float", "Function", "Hash", "Integer", "Object", "RegularExp", "String" ], }, "localclasslist": { "type": "array", //"id": "/properties/settings/properties/localclasslist", "title": "Local List of Classes", "description":"A local class is a module that is required and implemented on your local filesystem (and NOT installed from a remote repository via NPM). The pathname prefix is defined in 'Repository Info'. The prefix is concatenated for all local modules that are listed in Local Classes.", "format": "table", "propertyOrder": 30, "options": { "collapsed": true }, "items": { "type": "object", "id": "/properties/settings/properties/localclasslist/items", "title": "Local Class", "headerTemplate": "{{self.name}}()", "defaultProperties": [ "name", "initvalue", "repo" ], "properties": { "name": { "type": "string", "id": "/properties/settings/properties/localclasslist/items/properties/name", "title": "Base Class Name", "default": "", "propertyOrder": 10, "format": "text" }, "initvalue": { "type": "string", "id": "/properties/settings/properties/localclasslist/items/properties/initvalue", "title": "Init Value", "default": "", "propertyOrder": 20, "format": "text" }, "repo": { "type": "string", "id": "/properties/settings/properties/baseclasses/items/properties/repo", "title": "Module Name (repo)", "default": "", "propertyOrder": 20, "format": "text" } } } }, "remoteclasslist": { "type": "array", "id": "/properties/settings/properties/remoteclasslist", "title": "Remote List of Classes", "format": "table", "propertyOrder": 40, "options": { "collapsed": true }, "description":"A remote class is a module required from a package manager like NPM.", "items": { "type": "object", "id": "/properties/settings/properties/remoteclasslist/items", "title": "Remote Class", "headerTemplate": "{{self.name}}()", "defaultProperties": [ "name", "initvalue", "repo" ], "properties": { "name": { "type": "string", "id": "/properties/settings/properties/remoteclasslist/items/properties/name", "title": "Base Class Name", "default": "", "propertyOrder": 10, "format": "text" }, "initvalue": { "type": "string", "id": "/properties/settings/properties/remoteclasslist/items/properties/initvalue", "title": "Init Value", "default": "", "propertyOrder": 20, "format": "text" }, "repo": { "type": "string", "id": "/properties/settings/properties/baseclasses/items/properties/repo", "title": "Module Name (repo)", "default": "", "propertyOrder": 20, "format": "text" } } } }, "baseclasslist": { "type": "array", "id": "/properties/settings/properties/baseclasslist", "title": "List of Base Classes", "format": "table", "propertyOrder": 60, "options": { "collapsed": true }, "description":"A base class is provide by the programming language '"+vProgLanguage+"' itself, so using these classes in a module does not imply that the special module must be required locally of from a package manager.", "items": { "type": "object", "id": "/properties/settings/properties/baseclasses/items", "title": "Base Class", "headerTemplate": "{{self.name}}()", "defaultProperties": [ "name", "initvalue" ], "properties": { "name": { "type": "string", "id": "/properties/settings/properties/baseclasses/items/properties/name", "title": "Base Class Name", "default": "", "propertyOrder": 10, "format": "text" }, "initvalue": { "type": "string", "id": "/properties/settings/properties/baseclasses/items/properties/initvalue", "title": "Init Value", "default": "", "propertyOrder": 20, "format": "text" } } } } } } } };