Skip to content

Commit

Permalink
update to work with JDL 3
Browse files Browse the repository at this point in the history
  • Loading branch information
deepu105 committed Sep 16, 2018
1 parent d149170 commit 11510d3
Show file tree
Hide file tree
Showing 18 changed files with 1,137 additions and 1,109 deletions.
1 change: 0 additions & 1 deletion README.md
Expand Up @@ -10,7 +10,6 @@ Created by [Deepu KS](https://github.com/deepu105). Heavily inspired and adapted
- [nomnoml](https://github.com/skanaar/nomnoml)
- [dagre](https://github.com/cpettitt/dagre)
- [lodash](http://lodash.com)
- [peg.js](http://pegjs.org/)
- [Jquery](https://jquery.com/)
- [codemirror](https://codemirror.net/)
- [solarized](http://ethanschoonover.com/solarized)
Expand Down
4 changes: 2 additions & 2 deletions bower.json
Expand Up @@ -14,11 +14,11 @@
"jdl-studio"
],
"dependencies": {
"lodash": "3.9.3",
"lodash": "4.17.10",
"jquery": "3.1.0",
"magnific-popup": "1.0.1",
"icon-font.min": "https://cdn.linearicons.com/free/1.0.0/icon-font.min.css",
"pegjs_parser": "https://raw.githubusercontent.com/jhipster/jhipster-core/v2.0.1/lib/dsl/pegjs_parser.js",
"jdl-core": "https://raw.githubusercontent.com/jhipster/jhipster-core/master/dist/jdl-core.min.js",
"angular": "^1.5.8",
"codemirror": "^5.0"
},
Expand Down
4 changes: 2 additions & 2 deletions dist/css/main-a21cc2c07a.css → dist/css/main-7da932d106.css

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions dist/css/main-7da932d106.css.map

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion dist/css/main-a21cc2c07a.css.map

This file was deleted.

26 changes: 26 additions & 0 deletions dist/js/main-62fccb91b3.js

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions dist/js/main-62fccb91b3.js.map

Large diffs are not rendered by default.

22 changes: 0 additions & 22 deletions dist/js/main-beb9620508.js

This file was deleted.

1 change: 0 additions & 1 deletion dist/js/main-beb9620508.js.map

This file was deleted.

15 changes: 11 additions & 4 deletions gulpfile.js
Expand Up @@ -41,7 +41,7 @@ gulp.task('build', ['clean', 'inject'], () => {
//init sourcemaps
.pipe(useref(
{},
lazypipe().pipe(() => gulpIf('bower_components/pegjs_parser/index.js', babelTask())),
lazypipe().pipe(() => gulpIf('bower_components/jdl-core/index.js', babelTask())),
initTask
))
.pipe(gulpIf('*.js', jsTask())).on('error', createErrorHandler('jsTask'))
Expand Down Expand Up @@ -69,12 +69,11 @@ gulp.task('inject', () => {
.pipe(gulp.dest(''));
});

gulp.task('serve', ['inject'], () => {

function serve(path) {
// Serve files from the root of this project
browserSync.init({
server: {
baseDir: "../",
baseDir: path,
index: "index-dev.html"
}
});
Expand All @@ -85,6 +84,14 @@ gulp.task('serve', ['inject'], () => {
gulp.watch("codemirror/*").on("change", reload);
gulp.watch("nomnoml/*").on("change", reload);
gulp.watch("css/*.css").on("change", reload);
}

gulp.task('serve', ['inject'], () => {
serve('./')
});

gulp.task('serveOnline', ['inject'], () => {
serve('../')
});

gulp.task('default', () => {
Expand Down
2 changes: 1 addition & 1 deletion index-dev.html
Expand Up @@ -156,7 +156,7 @@ <h1>Save a new JDL Model</h1>
<script src="bower_components/lodash/lodash.js"></script>
<script src="bower_components/jquery/dist/jquery.js"></script>
<script src="bower_components/magnific-popup/dist/jquery.magnific-popup.js"></script>
<script src="bower_components/pegjs_parser/index.js"></script>
<script src="bower_components/jdl-core/index.js"></script>
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/codemirror/lib/codemirror.js"></script>
<script src="bower_components/codemirror/keymap/sublime.js"></script>
Expand Down
4 changes: 2 additions & 2 deletions index.html
Expand Up @@ -14,7 +14,7 @@
<meta name="apple-mobile-web-app-status-bar-style" content="#282C34">
<title>JDL-Studio</title>

<link rel="stylesheet" href="dist/css/main-a21cc2c07a.css">
<link rel="stylesheet" href="dist/css/main-7da932d106.css">
<link rel="shortcut icon" href="favicon.ico">
</head>
<body ng-app="jdlStudio" ng-controller="workspaceController as app" ng-cloak>
Expand Down Expand Up @@ -139,7 +139,7 @@ <h1>Save a new JDL Model</h1>
// temp hack to use jdl parser from jhipster-core
var module = module || {};
</script>
<script src="dist/js/main-beb9620508.js"></script>
<script src="dist/js/main-62fccb91b3.js"></script>
<script>
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
Expand Down
25 changes: 22 additions & 3 deletions js/codemirror/codemirror.jdl-mode.js
@@ -1,14 +1,27 @@
(function () {

var mainKeywords = ['entity', 'enum', 'relationship', 'paginate', 'dto', 'service', 'skipClient', 'skipServer', 'microservice', 'search', 'angularSuffix', 'filter'],
var mainKeywords = ['application', 'entity', 'enum', 'relationship', 'paginate', 'dto', 'service', 'skipClient', 'skipServer', 'search', 'angularSuffix', 'filter'],
relationshipKws = ['OneToOne', 'OneToMany', 'ManyToOne', 'ManyToMany'],
appInnerKws = ['config', 'entities'],
validationKws = ['required', 'minlength', 'maxlength', 'min', 'max', 'minbytes', 'maxbytes', 'pattern'],
generalKws = ['with', 'all', 'except', 'to'],
paginationKws = ['pagination', 'pager', 'infinite-scroll'],
dtoKws = ['mapstruct'],
serviceKws = ['serviceClass', 'serviceImpl'],
searchKws = ['ElasticSearch'],
apptypeKws = ['microservice', 'gateway', 'monolith', 'uaa', 'reactive', 'reactive-micro'],
typeKws = ['String', 'Integer', 'Long', 'BigDecimal', 'Float', 'Double', 'Boolean', 'LocalDate', 'ZonedDateTime', 'Instant', 'Blob', 'AnyBlob', 'ImageBlob'];
appKeysKws = [
'baseName', 'applicationType', 'authenticationType', 'buildTool', 'cacheProvider', 'clientFramework', 'clientPackageManager',
'databaseType', 'devDatabaseType', 'enableHibernateCache', 'enableSwaggerCodegen', 'enableTranslation', 'jhiPrefix',
'languages', 'messageBroker', 'nativeLanguage', 'packageName', 'prodDatabaseType', 'searchEngine', 'serviceDiscoveryType',
'skipClient', 'skipServer', 'serverPort', 'skipUserManagement', 'testFrameworks', 'uaaBaseName', 'useSass', 'websocket'
];
specialValueKws = [
'en', 'no', 'true', 'sql', 'mongodb', 'couchbase', 'cassandra', 'h2Disk', 'h2Memory', 'mysql', 'mariadb', 'postgresql', 'oracle', 'mssql',
'gatling', 'cucumber', 'protractor', 'angularX', 'react', 'eureka', 'consul', 'jwt', 'oauth2', 'session',
'ehcache', 'hazelcast', 'infinispan', 'memcached', 'maven', 'gradle'
];

CodeMirror.defineMode('jdl', function() {
var words = {};
Expand All @@ -20,18 +33,24 @@

// relationships
define('relationship', relationshipKws);
// App inner keywords
define('relationship', appInnerKws);

// Keywords
define('keyword', mainKeywords);

// types
define('attribute', appKeysKws);
define('attribute', typeKws);

// types
define('qualifier', validationKws);

// app types
define('keyword', apptypeKws);

// types
define('special', generalKws.concat(paginationKws, serviceKws, dtoKws, searchKws));
define('special', generalKws.concat(paginationKws, serviceKws, dtoKws, searchKws, specialValueKws));

function tokenBase(stream, state) {
/*if (!stream.sol() && stream.match(/(\s*)([A-Z])/g)){
Expand Down Expand Up @@ -112,7 +131,7 @@
};

});
var keywords = mainKeywords.concat(typeKws, relationshipKws, validationKws, generalKws, paginationKws, dtoKws, serviceKws);
var keywords = mainKeywords.concat(typeKws, relationshipKws, validationKws, generalKws, paginationKws, dtoKws, serviceKws, apptypeKws, appKeysKws, specialValueKws);
CodeMirror.commands.autocomplete = function(cm) {
cm.showHint({hint: CodeMirror.hint.anyword, list: keywords});
}
Expand Down
6 changes: 3 additions & 3 deletions js/nomnoml/nomnoml.layouter.custom.js
Expand Up @@ -58,8 +58,8 @@ nomnoml.layout = function (measurer, config, ast){
})
var dLayout = runDagre(g)

var rels = _.indexBy(c.relations, 'id')
var nodes = _.indexBy(c.nodes, 'name')
var rels = _.keyBy(c.relations, 'id')
var nodes = _.keyBy(c.nodes, 'name')
function toPoint(o){ return {x:o.x, y:o.y} }
dLayout.eachNode(function(u, value) {
nodes[u].x = value.x
Expand All @@ -78,7 +78,7 @@ nomnoml.layout = function (measurer, config, ast){
}
function layoutClassifier(clas){
_.each(clas.compartments, layoutCompartment)
clas.width = _.max(_.pluck(clas.compartments, 'width'))
clas.width = _.max(_.map(clas.compartments, 'width'))
clas.height = skanaar.sum(clas.compartments, 'height')
if (clas.type === 'HIDDEN'){
clas.width = 0
Expand Down
6 changes: 3 additions & 3 deletions js/nomnoml/nomnoml.parser.custom.js
Expand Up @@ -11,7 +11,7 @@ nomnoml.parse = function (source){
return {text: s.trim(), index: i }
})
var pureDirectives = _.filter(lines, isDirective)
var directives = _.object(pureDirectives.map(function (line){
var directives = _.zipObject(pureDirectives.map(function (line){
try {
var tokens = line.text.substring(1).split(':')
return [tokens[0].trim(), tokens[1].trim()]
Expand All @@ -20,14 +20,14 @@ nomnoml.parse = function (source){
throw new Error('line ' + (line.index + 1))
}
}))
var pureDiagramCode = _.map(_.pluck(lines, 'text'), onlyCompilables).join('\n').trim()
var pureDiagramCode = _.map(_.map(lines, 'text'), onlyCompilables).join('\n').trim()
var ast = nomnoml.transformParseIntoSyntaxTree(nomnoml.intermediateParse(pureDiagramCode))
ast.directives = directives
return ast
}

nomnoml.intermediateParse = function (source){
return nomnoml.convertToNomnoml(JDLParser.parse(source));
return nomnoml.convertToNomnoml(jdlCore.parse(source));
}

nomnoml.convertToNomnoml = function(JDLObj){
Expand Down
4 changes: 2 additions & 2 deletions js/nomnoml/nomnoml.renderer.custom.js
Expand Up @@ -201,8 +201,8 @@ nomnoml.render = function (graphics, config, compartment, setFont){
var empty = false, filled = true, diamond = true

function renderRelation(r, compartment){
var startNode = _.findWhere(compartment.nodes, {name:r.start})
var endNode = _.findWhere(compartment.nodes, {name:r.end})
var startNode = _.find(compartment.nodes, {name:r.start})
var endNode = _.find(compartment.nodes, {name:r.end})

var start = rectIntersection(r.path[1], _.first(r.path), startNode)
var end = rectIntersection(r.path[r.path.length-2], _.last(r.path), endNode)
Expand Down

0 comments on commit 11510d3

Please sign in to comment.