Skip to content
This repository was archived by the owner on May 14, 2025. It is now read-only.

Commit 11b4a42

Browse files
BoykoAlexghillert
authored andcommitted
Move unresolved in ExtraMetadata object from ElementMetadata
1 parent 84143a7 commit 11b4a42

File tree

6 files changed

+31
-26
lines changed

6 files changed

+31
-26
lines changed

ui/src/app/shared/flo/support/utils.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616

1717
import { Flo } from 'spring-flo';
18+
import { dia } from 'jointjs';
1819

1920
/**
2021
* Utilities for Flo based graph editors.
@@ -49,4 +50,8 @@ export class Utils {
4950
&& (propertyLowerCase === 'script' || propertyLowerCase === 'scriptable-transformer.script'));
5051
}
5152

53+
static isUnresolved(element: dia.Cell): boolean {
54+
return element.attr('metadata/metadata/unresolved');
55+
}
56+
5257
}

ui/src/app/streams/components/flo/editor.service.spec.ts

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,14 @@ import { MetamodelService } from './metamodel.service';
44
import { RenderService } from './render.service';
55

66
import { dia } from 'jointjs';
7-
import * as _ from 'lodash';
87
import { Flo, Constants } from 'spring-flo';
9-
import { convertGraphToText } from './graph-to-text';
108
import { Shapes } from 'spring-flo';
11-
import * as _joint from 'jointjs';
12-
const joint: any = _joint;
139

1410
import { EditorService } from './editor.service';
1511
import {MockSharedAppService} from '../../../tests/mocks/shared-app';
1612
import { LoggerService } from '../../../shared/services/logger.service';
1713

18-
describe('editor.service', () => {
14+
describe('Streams Editor Service', () => {
1915
const editorService = new EditorService(null);
2016

2117
let graph: dia.Graph;
@@ -352,12 +348,12 @@ describe('editor.service', () => {
352348
},
353349
properties(): Promise<Map<string, Flo.PropertyMetadata>> {
354350
return Promise.resolve(new Map());
351+
},
352+
metadata: {
353+
unresolved: !group ? true : false
355354
}
356355
};
357356
}
358-
if (!group) {
359-
params.metadata.unresolved = true;
360-
}
361357
const newNode: dia.Element = Shapes.Factory.createNode(params);
362358
graph.addCell(newNode);
363359
return newNode;

ui/src/app/streams/components/flo/editor.service.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import { Flo, Constants } from 'spring-flo';
2121
import { dia, g } from 'jointjs';
2222
import { StreamPropertiesDialogComponent } from './properties/stream-properties-dialog.component';
2323
import { Utils } from './support/utils';
24+
import { Utils as SharedUtils } from '../../../shared/flo/support/utils';
2425
import * as _joint from 'jointjs';
2526
import {StreamGraphPropertiesSource, StreamHead} from './properties/stream-properties-source';
2627
const joint: any = _joint;
@@ -66,7 +67,7 @@ export class EditorService implements Flo.Editor {
6667
createHandle(owner, Constants.REMOVE_HANDLE_TYPE, flo.deleteSelectedNode, pt);
6768

6869
// Properties handle
69-
if (!element.attr('metadata/unresolved')) {
70+
if (!SharedUtils.isUnresolved(element)) {
7071
pt = bbox.origin().offset(-14, bbox.height + 3);
7172
createHandle(owner, Constants.PROPERTIES_HANDLE_TYPE, () => {
7273
const modalRef = this.bsModalService.show(StreamPropertiesDialogComponent);
@@ -574,7 +575,7 @@ export class EditorService implements Flo.Editor {
574575

575576
private validateMetadata(element: dia.Cell, errors: Array<Flo.Marker>) {
576577
// Unresolved elements validation
577-
if (!element.attr('metadata') || element.attr('metadata/unresolved')) {
578+
if (!element.attr('metadata') || SharedUtils.isUnresolved(element)) {
578579
let msg = 'Unknown element \'' + element.attr('metadata/name') + '\'';
579580
if (element.attr('metadata/group')) {
580581
msg += ' from group \'' + element.attr('metadata/group') + '\'.';

ui/src/app/streams/components/flo/text-to-graph.ts

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -356,15 +356,17 @@ class TextToGraphConverter {
356356
if (!groupMetadata) {
357357
// Create fake metadata so some sort of graph can be built
358358
md = {
359-
'group': group,
360-
'name': name,
361-
unresolved: true,
362-
get(property: String): Promise<Flo.PropertyMetadata> {
363-
return Promise.resolve(null);
364-
},
365-
properties(): Promise<Map<string, Flo.PropertyMetadata>> {
366-
return Promise.resolve(new Map());
367-
}
359+
'group': group,
360+
'name': name,
361+
get(property: String): Promise<Flo.PropertyMetadata> {
362+
return Promise.resolve(null);
363+
},
364+
properties(): Promise<Map<string, Flo.PropertyMetadata>> {
365+
return Promise.resolve(new Map());
366+
},
367+
metadata: {
368+
unresolved: true
369+
}
368370
};
369371
} else {
370372
md = group ? this.metamodel.get(group).get(name) : null;

ui/src/app/tasks/components/flo/editor.service.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { dia, g } from 'jointjs';
66
import * as _joint from 'jointjs';
77
import { TaskPropertiesDialogComponent } from './properties/task-properties-dialog-component';
88
import { TaskGraphPropertiesSource } from './properties/task-properties-source';
9+
import { Utils} from '../../../shared/flo/support/utils';
910

1011
const joint: any = _joint;
1112

@@ -25,6 +26,8 @@ export class EditorService implements Flo.Editor {
2526

2627
allowLinkVertexEdit = true;
2728

29+
30+
2831
/**
2932
* Creates cell handles.
3033
*
@@ -49,7 +52,7 @@ export class EditorService implements Flo.Editor {
4952
}
5053

5154
// Properties handle
52-
if (!element.attr('metadata/unresolved') && !element.attr('metadata/metadata/noEditableProps')) {
55+
if (!Utils.isUnresolved(element) && !element.attr('metadata/metadata/noEditableProps')) {
5356
pt = bbox.origin().offset(-14, bbox.height + 3);
5457
createHandle(owner, Constants.PROPERTIES_HANDLE_TYPE, () => {
5558
const modalRef = this.bsModalService.show(TaskPropertiesDialogComponent);
@@ -125,7 +128,7 @@ export class EditorService implements Flo.Editor {
125128
}
126129

127130
private validateConnectedLinks(graph: dia.Graph, element: dia.Element, markers: Array<Flo.Marker>) {
128-
if (element.attr('metadata') && !element.attr('metadata/unresolved')) {
131+
if (element.attr('metadata') && !Utils.isUnresolved(element)) {
129132
const type = element.attr('metadata/name');
130133
const incoming = graph.getConnectedLinks(element, { inbound: true });
131134
const outgoing = graph.getConnectedLinks(element, { outbound: true });
@@ -264,7 +267,7 @@ export class EditorService implements Flo.Editor {
264267

265268
private validateMetadata(element: dia.Cell, errors: Array<Flo.Marker>) {
266269
// Unresolved elements validation
267-
if (!element.attr('metadata') || element.attr('metadata/unresolved')) {
270+
if (!element.attr('metadata') || Utils.isUnresolved(element)) {
268271
let msg = `Unknown element '${element.attr('metadata/name')}'`;
269272
if (element.attr('metadata/group')) {
270273
msg += ` from group '${element.attr('metadata/group')}'.`;

ui/src/app/tasks/components/flo/metamodel.service.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -259,12 +259,10 @@ export class MetamodelService implements Flo.Metamodel {
259259
group = TASK_GROUP_TYPE;
260260
}
261261

262-
let metadata = metamodel.get(group).get(name);
262+
let metadata = metamodel.get(group) ? metamodel.get(group).get(name) : undefined;
263263
if (!metadata) {
264264
// Unknown element
265-
metadata = this.createMetadata(name, group, '', new Map<string, Flo.PropertyMetadata>());
266-
// Mark it "unresolved"
267-
metadata.unresolved = true;
265+
metadata = this.createMetadata(name, group, '', new Map<string, Flo.PropertyMetadata>(), { unresolved: true });
268266
}
269267

270268
const properties = new Map<string, any>();

0 commit comments

Comments
 (0)