Skip to content

Commit 359a12c

Browse files
authored
Merge branch 'master' into is309/webserver-uses-apihub
2 parents 6b35214 + ff41cf4 commit 359a12c

File tree

11 files changed

+58
-57
lines changed

11 files changed

+58
-57
lines changed

services/web/client/source/class/qxapp/component/widget/NodeExposed.js

+10-2
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,19 @@ qx.Class.define("qxapp.component.widget.NodeExposed", {
2525
});
2626

2727
let atom = new qx.ui.basic.Atom().set({
28-
label: nodeModel.getLabel() + "'s outputs",
29-
center : true,
28+
rich: true,
29+
center: true,
3030
draggable: true,
3131
droppable: true
3232
});
33+
atom.getChildControl("label").set({
34+
textAlign: "center"
35+
});
36+
nodeModel.bind("label", atom, "label", {
37+
converter: function(data) {
38+
return data + "'s<br>outputs";
39+
}
40+
});
3341

3442
this._add(atom, {
3543
flex: 1

services/web/client/source/class/qxapp/component/widget/NodeInput.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ qx.Class.define("qxapp.component.widget.NodeInput", {
1515
extend: qx.ui.core.Widget,
1616

1717
construct: function(nodeModel) {
18+
this.setNodeModel(nodeModel);
19+
1820
this.base();
1921

2022
let nodeInputLayout = new qx.ui.layout.VBox(10);
@@ -25,11 +27,11 @@ qx.Class.define("qxapp.component.widget.NodeInput", {
2527
});
2628

2729
let atom = new qx.ui.basic.Atom().set({
28-
label: nodeModel.getLabel(),
2930
center: true,
3031
draggable: true,
3132
droppable: true
3233
});
34+
nodeModel.bind("label", atom, "label");
3335
const title16Font = qx.bom.Font.fromConfig(qxapp.theme.Font.fonts["title-16"]);
3436
atom.getChildControl("label").set({
3537
font: title16Font
@@ -38,8 +40,6 @@ qx.Class.define("qxapp.component.widget.NodeInput", {
3840
this._add(atom, {
3941
flex: 1
4042
});
41-
42-
this.setNodeModel(nodeModel);
4343
},
4444

4545
properties: {

services/web/client/source/class/qxapp/component/widget/NodePorts.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,12 @@ qx.Class.define("qxapp.component.widget.NodePorts", {
2626
});
2727

2828
const title16Font = qx.bom.Font.fromConfig(qxapp.theme.Font.fonts["title-16"]);
29-
let label = new qx.ui.basic.Label(nodeModel.getLabel()).set({
29+
let label = new qx.ui.basic.Label().set({
3030
font: title16Font,
3131
alignX: "center",
3232
alignY: "middle"
3333
});
34+
nodeModel.bind("label", label, "value");
3435
this._add(label);
3536

3637
this.setIsInputModel(isInputModel);

services/web/client/source/class/qxapp/component/widget/TreeTool.js

+6-5
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,11 @@ qx.Class.define("qxapp.component.widget.TreeTool", {
3131

3232
let treeItemRenamer = new qxapp.component.widget.TreeItemRenamer(selectedItem);
3333
treeItemRenamer.addListener("LabelChanged", e => {
34-
let data = e.getData();
35-
data["nodeId"] = selectedItem.getNodeId();
36-
this.fireDataEvent("NodeLabelChanged", data);
34+
const data = e.getData();
35+
const newLabel = data.newLabel;
36+
const nodeId = selectedItem.getNodeId();
37+
let nodeModel = this.getWorkbenchModel().getNodeModel(nodeId);
38+
nodeModel.setLabel(newLabel);
3739
}, this);
3840
const bounds = this.getLayoutParent().getBounds();
3941
treeItemRenamer.moveTo(bounds.left+100, bounds.top+150);
@@ -43,8 +45,7 @@ qx.Class.define("qxapp.component.widget.TreeTool", {
4345
},
4446

4547
events: {
46-
"NodeDoubleClicked": "qx.event.type.Data",
47-
"NodeLabelChanged": "qx.event.type.Data"
48+
"NodeDoubleClicked": "qx.event.type.Data"
4849
},
4950

5051
properties: {

services/web/client/source/class/qxapp/component/workbench/NodeBase.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -96,13 +96,13 @@ qx.Class.define("qxapp.component.workbench.NodeBase", {
9696

9797
populateNodeLayout: function() {
9898
const nodeModel = this.getNodeModel();
99-
const metaData = nodeModel.getMetaData();
100-
this.setCaption(nodeModel.getLabel());
99+
nodeModel.bind("label", this, "caption");
101100
if (nodeModel.isContainer()) {
102101
this.setIcon("@FontAwesome5Solid/folder-open/14");
103102
}
104103
this.__inputPort = {};
105104
this.__outputPort = {};
105+
const metaData = nodeModel.getMetaData();
106106
if (metaData) {
107107
this.__createUIPorts(true, metaData.inputs);
108108
this.__createUIPorts(false, metaData.outputs);

services/web/client/source/class/qxapp/data/model/NodeModel.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ qx.Class.define("qxapp.data.model.NodeModel", {
7474

7575
label: {
7676
check: "String",
77-
nullable: true
77+
nullable: true,
78+
event: "changeLabel"
7879
},
7980

8081
propsWidget: {

services/web/client/source/class/qxapp/data/model/ProjectModel.js

+1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ qx.Class.define("qxapp.data.model.ProjectModel", {
3636
check: "String",
3737
nullable: false,
3838
init: "New Project",
39+
event: "changeName",
3940
apply : "__applyName"
4041
},
4142

services/web/client/source/class/qxapp/data/model/WorkbenchModel.js

+6-22
Original file line numberDiff line numberDiff line change
@@ -52,38 +52,22 @@ qx.Class.define("qxapp.data.model.WorkbenchModel", {
5252
return nodes;
5353
},
5454

55-
getPath: function(nodeId) {
56-
let pathWithIds = this.getPathWithId(nodeId);
57-
let nodePath = [];
58-
for (let i=0; i<pathWithIds.length; i++) {
59-
nodePath.push(Object.values(pathWithIds[i])[0]);
60-
}
61-
return nodePath;
62-
},
63-
64-
getPathWithId: function(nodeId) {
65-
let rootObj = {};
66-
rootObj["root"] = this.getProjectName();
55+
getPathIds: function(nodeId) {
6756
if (nodeId === "root" || nodeId === undefined) {
68-
return [rootObj];
57+
return ["root"];
6958
}
70-
71-
const nodeModel = this.getNodeModel(nodeId);
7259
let nodePath = [];
73-
let obj = {};
74-
obj[nodeId] = nodeModel.getLabel();
75-
nodePath.unshift(obj);
60+
nodePath.unshift(nodeId);
61+
const nodeModel = this.getNodeModel(nodeId);
7662
let parentNodeId = nodeModel.getParentNodeId();
7763
while (parentNodeId) {
7864
const checkThisNode = this.getNodeModel(parentNodeId);
7965
if (checkThisNode) {
80-
let thisObj = {};
81-
thisObj[parentNodeId] = checkThisNode.getLabel();
82-
nodePath.unshift(thisObj);
66+
nodePath.unshift(parentNodeId);
8367
parentNodeId = checkThisNode.getParentNodeId();
8468
}
8569
}
86-
nodePath.unshift(rootObj);
70+
nodePath.unshift("root");
8771
return nodePath;
8872
},
8973

services/web/client/source/class/qxapp/desktop/LayoutManager.js

+2-3
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,8 @@ qx.Class.define("qxapp.desktop.LayoutManager", {
4545
this.__prjEditor = new qxapp.desktop.PrjEditor(projectModel);
4646
this.__prjStack.add(this.__prjEditor);
4747
this.__prjStack.setSelection([this.__prjEditor]);
48-
this.__navBar.setMainViewCaption([{
49-
"root": projectModel.getName()
50-
}]);
48+
this.__navBar.setProjectModel(projectModel);
49+
this.__navBar.setMainViewCaption(projectModel.getWorkbenchModel().getPathIds("root"));
5150

5251
this.__prjEditor.addListener("ChangeMainViewCaption", function(ev) {
5352
const elements = ev.getData();

services/web/client/source/class/qxapp/desktop/NavigationBar.js

+21-7
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,13 @@ qx.Class.define("qxapp.desktop.NavigationBar", {
8989
"DashboardPressed": "qx.event.type.Event"
9090
},
9191

92+
properties: {
93+
projectModel: {
94+
check: "qxapp.data.model.ProjectModel",
95+
nullable: true
96+
}
97+
},
98+
9299
members: {
93100
__mainViewCaptionLayout: null,
94101

@@ -110,21 +117,28 @@ qx.Class.define("qxapp.desktop.NavigationBar", {
110117
this.__mainViewCaptionLayout.add(mainViewCaption);
111118
},
112119

113-
__showMainViewCaptionAsButtons: function(newLabels) {
120+
__showMainViewCaptionAsButtons: function(nodeIds) {
114121
const navBarLabelFont = qx.bom.Font.fromConfig(qxapp.theme.Font.fonts["nav-bar-label"]);
115-
for (let i=0; i<newLabels.length; i++) {
116-
const newLabel = newLabels[i];
117-
const label = Object.values(newLabel)[0];
118-
const nodeId = Object.keys(newLabel)[0];
119-
let btn = new qx.ui.form.Button(label).set({
122+
for (let i=0; i<nodeIds.length; i++) {
123+
let btn = new qx.ui.form.Button().set({
120124
maxHeight: NAVIGATION_BUTTON_HEIGHT
121125
});
126+
const nodeId = nodeIds[i];
127+
if (nodeId === "root") {
128+
this.getProjectModel().bind("name", btn, "label");
129+
} else {
130+
const nodeModel = this.getProjectModel().getWorkbenchModel()
131+
.getNodeModel(nodeId);
132+
if (nodeModel) {
133+
nodeModel.bind("label", btn, "label");
134+
}
135+
}
122136
btn.addListener("execute", function() {
123137
this.fireDataEvent("NodeDoubleClicked", nodeId);
124138
}, this);
125139
this.__mainViewCaptionLayout.add(btn);
126140

127-
if (i<newLabels.length-1) {
141+
if (i<nodeIds.length-1) {
128142
let mainViewCaption = this.__mainViewCaption = new qx.ui.basic.Label(">").set({
129143
font: navBarLabelFont
130144
});

services/web/client/source/class/qxapp/desktop/PrjEditor.js

+3-11
Original file line numberDiff line numberDiff line change
@@ -115,15 +115,6 @@ qx.Class.define("qxapp.desktop.PrjEditor", {
115115
this.nodeSelected(nodeId);
116116
}, this);
117117
});
118-
119-
this.__treeView.addListener("NodeLabelChanged", function(e) {
120-
const data = e.getData();
121-
const nodeId = data.nodeId;
122-
const newLabel = data.newLabel;
123-
124-
let nodeModel = this.getProjectModel().getWorkbenchModel().getNodeModel(nodeId);
125-
nodeModel.setLabel(newLabel);
126-
}, this);
127118
},
128119

129120
nodeSelected: function(nodeId) {
@@ -199,8 +190,9 @@ qx.Class.define("qxapp.desktop.PrjEditor", {
199190
}
200191

201192
this.__mainPanel.setMainView(widget);
202-
let nodePath = this.getProjectModel().getWorkbenchModel().getPathWithId(nodeId);
203-
this.fireDataEvent("ChangeMainViewCaption", nodePath);
193+
194+
let nodesPath = this.getProjectModel().getWorkbenchModel().getPathIds(nodeId);
195+
this.fireDataEvent("ChangeMainViewCaption", nodesPath);
204196
},
205197

206198
showInExtraView: function(widget) {

0 commit comments

Comments
 (0)