annotate app/relation-type.ts @ 39:7578b21cdf2e

make relation types configurable. relations can have custom labels for incoming or outgoing direction.
author casties
date Sun, 14 Feb 2016 19:40:07 +0100
parents
children 896ae7eefb33
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
39
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
1
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
2 export var invLabelPrefix = '<- ';
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
3 export var invNamePrefix = '-';
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
4 export var rawLabelPrefix = '(';
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
5 export var rawLabelPostfix = ')';
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
6
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
7 export class RelationType {
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
8 public name: string;
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
9 public label: string;
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
10 public outgoing: boolean;
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
11
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
12 constructor (name: string, isOutgoing: boolean, label?:string) {
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
13 this.name = name;
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
14 this.outgoing = isOutgoing;
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
15 if (label != null) {
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
16 this.label = label;
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
17 } else {
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
18 // create label using name
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
19 if (isOutgoing) {
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
20 this.label = rawLabelPrefix + name + rawLabelPostfix;
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
21 } else {
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
22 this.label = rawLabelPrefix + invLabelPrefix + name + rawLabelPostfix;
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
23 }
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
24 }
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
25 }
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
26
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
27 getLabel() {
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
28 return this.label;
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
29 }
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
30
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
31 getName() {
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
32 return this.name;
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
33 }
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
34
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
35 isOutgoing() {
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
36 return this.outgoing;
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
37 }
7578b21cdf2e make relation types configurable.
casties
parents:
diff changeset
38 }