Skip to content

Commit f078712

Browse files
committed
Working on label placemenT
1 parent b91d999 commit f078712

21 files changed

+376
-287
lines changed

server/kite9-server-java/src/main/resources/static/public/behaviours/containers/insert/containers-insert.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ export function initInsertPaletteCallback(command, containment, insertableSelect
5656
// insert it in the correct place in the svg.
5757
const before = getBefore(e, palette.getOpenEvent(), []);
5858
if (before == undefined) {
59-
into.appendChild(clone)
59+
e.appendChild(clone)
6060
} else {
6161
before.parentElement.insertBefore(clone, before);
6262
}

server/kite9-server-java/src/main/resources/static/public/behaviours/labels/label.js renamed to server/kite9-server-java/src/main/resources/static/public/behaviours/labels/add/labels-add.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export function createInsertLabelStep(e, templateUri, command) {
3232
}
3333

3434

35-
export function initLabelContextMenuCallback(command, templateUri, selector, action) {
35+
export function initAddLabelContextMenuCallback(command, templateUri, selector, action) {
3636

3737
if (selector == undefined) {
3838
selector = labelableSelector;
@@ -50,7 +50,7 @@ export function initLabelContextMenuCallback(command, templateUri, selector, act
5050
const selectedElements = hasLastSelected(selector());
5151

5252
if (selectedElements.length > 0) {
53-
contextMenu.addControl(event, "/public/behaviours/labels/label.svg", "Add Label",
53+
contextMenu.addControl(event, "/public/behaviours/labels/add/add.svg", "Add Label",
5454
function(e2, selector) {
5555
contextMenu.destroy();
5656
selectedElements.forEach(e => action(e, templateUri, command));
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
import { getMainSvg } from '/public/bundles/screen.js'
2+
import { hasLastSelected, parseInfo, getContainingDiagram, reverseDirection, createUniqueId } from '/public/bundles/api.js'
3+
4+
5+
export function labelableSelector() {
6+
const labelables = Array.from(getMainSvg().querySelectorAll("[k9-ui~=label].selected"));
7+
return labelables;
8+
}
9+
10+
export function createPlaceLabelStep(e, templateUri, command) {
11+
const info = parseInfo(e);
12+
const end = info.end;
13+
const linkId = info.terminates ? info.terminates : e.getAttribute("id");
14+
const newId = createUniqueId();
15+
16+
command.push({
17+
"type": 'InsertUrl',
18+
"fragmentId": linkId,
19+
"uriStr": templateUri,
20+
"newId" : newId,
21+
});
22+
23+
if (end) {
24+
command.push({
25+
"type": "ReplaceAttr",
26+
"fragmentId": newId,
27+
"name": "end",
28+
"to" : end,
29+
"from" : e.getAttribute("end")
30+
});
31+
}
32+
}
33+
34+
35+
export function initPlaceLabelContextMenuCallback(command, templateUri, selector, action) {
36+
37+
if (selector == undefined) {
38+
selector = labelableSelector;
39+
}
40+
41+
if (action == undefined) {
42+
action = createInsertLabelStep;
43+
}
44+
45+
/**
46+
* Provides a label option for the context menu
47+
*/
48+
return function(event, contextMenu) {
49+
50+
const selectedElements = hasLastSelected(selector());
51+
52+
if (selectedElements.length > 0) {
53+
contextMenu.addControl(event, "/public/behaviours/labels/place/place.svg", "Add Label",
54+
function(e2, selector) {
55+
contextMenu.destroy();
56+
selectedElements.forEach(e => action(e, templateUri, command));
57+
command.perform();
58+
}
59+
)
60+
}
61+
}
62+
}
Loading
Loading
Loading
Lines changed: 4 additions & 0 deletions
Loading
Loading
Loading
Lines changed: 4 additions & 0 deletions
Loading
Lines changed: 4 additions & 0 deletions
Loading

server/kite9-server-java/src/main/resources/static/public/templates/adl/adl-all-components.xsl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242

4343
<xsl:template name="adl-diagram-constants">
4444
<xsl:call-template name="links-diagram-constants" />
45+
<xsl:call-template name="labels-diagram-constants" />
4546
</xsl:template>
4647

4748
<xsl:template name="adl-diagram-palettes">

server/kite9-server-java/src/main/resources/static/public/templates/containers/containers-components.xsl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
<xsl:template match="adl:container">
4646
<xsl:call-template name="formats-container">
4747
<xsl:with-param name="k9-rounding">10pt</xsl:with-param>
48-
<xsl:with-param name="k9-ui">drag delete align connect insert autoconnect layout</xsl:with-param>
48+
<xsl:with-param name="k9-ui">drag delete align connect insert autoconnect layout label</xsl:with-param>
4949
</xsl:call-template>
5050
</xsl:template>
5151

@@ -54,7 +54,7 @@
5454
<xsl:with-param name="k9-rounding">10pt</xsl:with-param>
5555
<xsl:with-param name="k9-texture">none</xsl:with-param>
5656
<xsl:with-param name="k9-highlight">pulse stroke</xsl:with-param>
57-
<xsl:with-param name="k9-ui">drag delete align connect insert autoconnect layout</xsl:with-param>
57+
<xsl:with-param name="k9-ui">drag delete align connect insert autoconnect layout label</xsl:with-param>
5858
</xsl:call-template>
5959
</xsl:template>
6060

server/kite9-server-java/src/main/resources/static/public/templates/formats/formats-container-include.xsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
<xsl:param name="k9-palette">connected</xsl:param>
1919
<xsl:param name="k9-rounding">5pt</xsl:param>
2020
<xsl:param name="k9-texture">background</xsl:param>
21-
<xsl:param name="k9-ui">drag delete align connect insert autoconnect label</xsl:param>
21+
<xsl:param name="k9-ui">drag delete align connect insert autoconnect</xsl:param>
2222

2323
<xsl:param name="shape">
2424
<xsl:apply-templates mode="shape" select=".">

server/kite9-server-java/src/main/resources/static/public/templates/labels/labels-components.xsl

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,13 @@
88
<xsl:template name="labels-basic">
99
<xsl:param name="k9-rounding" >5pt</xsl:param>
1010
<xsl:param name="text"><text><xsl:value-of select="text()" /></text></xsl:param>
11-
<xsl:call-template name="formats-container">
11+
<xsl:call-template name="formats-text-shape-inline">
1212
<xsl:with-param name="k9-texture">none</xsl:with-param>
1313
<xsl:with-param name="k9-highlight"></xsl:with-param>
1414
<xsl:with-param name="k9-elem">label</xsl:with-param>
15-
16-
<xsl:with-param name="id" />
17-
<xsl:with-param name="k9-ui">delete label</xsl:with-param>
18-
19-
<xsl:with-param name="content">
20-
<xsl:call-template name="formats-text-shape-inline">
21-
<xsl:with-param name="k9-elem">label-inner</xsl:with-param>
22-
<xsl:with-param name="k9-rounding" select="$k9-rounding" />
23-
<xsl:with-param name="k9-texture">none</xsl:with-param>
24-
<xsl:with-param name="text" select="$text" />
25-
</xsl:call-template>
26-
</xsl:with-param>
15+
<xsl:with-param name="k9-contains" />
16+
<xsl:with-param name="k9-palette">label</xsl:with-param>
17+
<xsl:with-param name="k9-ui">delete edit xml</xsl:with-param>
2718
</xsl:call-template>
2819

2920
</xsl:template>
@@ -36,8 +27,12 @@
3627
<adl:css>@import url('/public/templates/labels/labels-elements.css');</adl:css>
3728
</xsl:template>
3829

30+
<xsl:template name="labels-diagram-constants">
31+
<adl:constant name="label-template-uri" url="/public/templates/labels/palette.adl#label" />
32+
</xsl:template>
33+
3934
<xsl:template name="labels-diagram-palettes">
40-
<adl:palette contains="connected cell table" url="/public/templates/grid/palette.adl" />
35+
<adl:palette contains="label" url="/public/templates/grid/palette.adl" />
4136
</xsl:template>
4237

4338
</xsl:stylesheet>

server/kite9-server-java/src/main/resources/static/public/templates/labels/labels.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
import { once } from '/public/bundles/ensure.js'
2-
import { initLabelContextMenuCallback } from '/public/behaviours/labels/label.js'
2+
import { initAddLabelContextMenuCallback } from '/public/behaviours/labels/add/labels-add.js'
3+
import { initPlaceLabelContextMenuCallback } from '/public/behaviours/labels/place/labels-place.js'
34
import { command, metadata, contextMenu } from '/public/templates/adl/adl.js'
45

56
function initLabels() {
67

78
if (metadata.isEditor()) {
89

9-
contextMenu.add(initLabelContextMenuCallback(command, document.params['label-template-uri']));
10+
contextMenu.add(initAddLabelContextMenuCallback(command, document.params['label-template-uri']));
1011

1112
}
1213
}

server/kite9-server-java/src/main/resources/static/public/templates/links/links-components.xsl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
</xsl:template>
2222

2323
<xsl:template name="links-diagram-constants">
24-
<adl:constant name="link-template-uri" url="/public/templates/links/common-links.adl#l1" />
25-
<adl:constant name="align-template-uri" url="/public/templates/links/common-links.adl#align" />
24+
<adl:constant name="link-template-uri" url="/public/templates/links/links-palette.adl#l2" />
25+
<adl:constant name="align-template-uri" url="/public/templates/links/links-palette.adl#align" />
2626
</xsl:template>
2727

2828
<xsl:template name="links-diagram-palettes">

0 commit comments

Comments
 (0)