]>
git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc.webapp/src/main/webapp/source/class/org/argeo/slc/web/Applet.js
8d1e794367ca5494abef4587a3d27ef46f3647dc
4 qx
.Class
.define("org.argeo.slc.web.Applet",
6 extend
: qx
.ui
.container
.Composite
,
7 implement
: [org
.argeo
.ria
.components
.IView
],
9 construct : function(){
11 this.setLayout(new qx
.ui
.layout
.VBox());
12 this.passedStatus
= "<div align=\"center\"><img src=\"resource/slc/dialog-ok.png\" height=\"16\" width=\"16\"></div>";
13 this.failedStatus
= "<div align=\"center\"><img src=\"resource/slc/flag.png\" height=\"16\" width=\"16\"></div>";
24 label
: "Close Result",
25 icon
: "resource/slc/window-close.png",
26 shortcut
: "Control+w",
30 callback : function(e
){
31 // Call service to delete
32 //org.argeo.slc.web.components.ViewsManager.getInstance().getViewPaneById("applet").empty();
33 this.getView().empty();
35 selectionChange : function(viewId
, xmlNode
){
36 if(viewId
!= "applet") return;
39 this.setEnabled(true);
41 this.setEnabled(false);
52 *****************************************************************************
54 *****************************************************************************
59 init : function(viewPane
){
60 this.setView(viewPane
);
63 load : function(xmlNode
){
66 // Load XML or Whatever
67 //var testType = qx.dom.Node.getText(qx.xml.Element.selectSingleNode(this.data, "param[@name='testType']"));
69 var testId
= qx
.dom
.Node
.getText(org
.argeo
.ria
.util
.Element
.selectSingleNode(this.data
, "param[@name='uuid']"));
70 this.info("Opening test "+testId
);
71 this.getView().setViewTitle("Test "+testId
);
72 service
= "../resultViewXml.xslt?uuid="+testId
;
73 var serviceManager
= org
.argeo
.ria
.remote
.RequestManager
.getInstance();
74 var request
= serviceManager
.getRequest(service
, "GET", "application/xml");
75 request
.addListener("completed", function(response
){
76 this.createXmlGui(response
.getContent());
77 this.getView().setOnLoad(false);
79 this.getView().setOnLoad(true);
84 addScroll : function(){
88 createXmlGui : function(responseXml
){
90 "slc" : "http://argeo.org/projects/slc/schemas"
92 if(!qx
.Class
.hasMixin(qx
.ui
.treevirtual
.TreeVirtual
, qx
.ui
.treevirtual
.MNode
)){
93 qx
.Class
.include(qx
.ui
.treevirtual
.TreeVirtual
,qx
.ui
.treevirtual
.MNode
);
95 this.tree
= new qx
.ui
.treevirtual
.TreeVirtual(["Test", "State", "Message", "Id"]);
96 this.tree
.getTableColumnModel().setDataCellRenderer(0, new org
.argeo
.ria
.util
.TreeDataCellRenderer());
97 this.tree
.setRowHeight(18);
98 this.tree
.setStatusBarVisible(false);
99 this.tree
.setDecorator(new qx
.ui
.decoration
.Background("#fff"));
100 var model
= this.tree
.getDataModel();
101 var resNodes
= org
.argeo
.ria
.util
.Element
.selectNodes(responseXml
, "//slc:result-part", NSMap
);
102 window
.result
= responseXml
;
103 var resultParts
= {};
105 for(var i
=0;i
<resNodes
.length
;i
++){
106 var currentParentId
= null;
107 var node
= resNodes
[i
];
108 var pathAttr
= qx
.xml
.Element
.getSingleNodeText(node
, "@path");
109 var pathParts
= pathAttr
.split("/");
110 if(pathParts
[0] == ""){
114 for(var j
=0;j
<pathParts
.length
;j
++){
115 //if(pathParts[j] == "") continue;
116 crtPath
= crtPath
.concat("/", pathParts
[j
]);
117 if(addedPaths
[crtPath
]) {
118 currentParentId
= addedPaths
[crtPath
];
119 continue; // Node already exists, set as parent and go to next!
121 var element
= org
.argeo
.ria
.util
.Element
.selectSingleNode(responseXml
, '//slc:element[@path="'+crtPath
+'"]', NSMap
);
124 label
= org
.argeo
.ria
.util
.Element
.getSingleNodeText(element
, "*/slc:label", NSMap
);
129 newId
= model
.addBranch(currentParentId
, label
, false);
132 var simpleResults
= org
.argeo
.ria
.util
.Element
.selectNodes(node
, "slc:part-sub-list/slc:parts/slc:simple-result-part", NSMap
);
133 if(!simpleResults
|| !simpleResults
.length
){
134 addedPaths
[crtPath
] = newId
;
135 currentParentId
= newId
;
138 for(var k
=0;k
<simpleResults
.length
;k
++){
139 var sResNode
= simpleResults
[k
];
140 resId
= model
.addLeaf(currentParentId
, label
);
141 model
.setColumnData(resId
, 3, org
.argeo
.ria
.util
.Element
.getSingleNodeText(sResNode
, "slc:test-run-uuid", NSMap
));
142 model
.setColumnData(resId
, 2, org
.argeo
.ria
.util
.Element
.getSingleNodeText(sResNode
, "slc:message", NSMap
));
143 var status
= org
.argeo
.ria
.util
.Element
.getSingleNodeText(sResNode
, "slc:status", NSMap
);
144 if(status
!= "PASSED"){
145 status
= this.failedStatus
;
146 this._setParentBranchAsFailed(resId
);
148 status
= this.passedStatus
;
150 model
.setColumnData(resId
, 1, status
);
153 addedPaths
[crtPath
] = newId
;
154 currentParentId
= newId
;
157 this.add(this.tree
, {flex
:1});
159 var columnModel
= this.tree
.getTableColumnModel();
160 var resize
= columnModel
.getBehavior();
161 resize
.set(0, {width
:250, minWidth
:250});
162 resize
.set(1, {width
:40});
163 resize
.set(2, {width
:"1*"});
164 resize
.set(3, {width
:100});
165 columnModel
.setDataCellRenderer(1, new qx
.ui
.table
.cellrenderer
.Html());
167 this.tree
.getSelectionManager().getSelectionModel().addListener("changeSelection", function(e
){
168 var viewSelection
= this.getView().getViewSelection();
169 viewSelection
.clear();
170 var nodes
= this.tree
.getDataModel().getSelectedNodes();
172 viewSelection
.addNode(nodes
[0]);
173 this.getView().setViewSelection(viewSelection
);
177 var contextMenu
= org
.argeo
.ria
.event
.CommandsManager
.getInstance().createMenuFromIds(["close"]);
178 this.tree
.setContextMenu(contextMenu
);
182 _setParentBranchAsFailed : function(id
){
183 var model
= this.tree
.getDataModel();
184 while(id
!= null && id
!=0){
185 var node
= this.tree
.nodeGet(id
);
186 id
= node
.parentNodeId
;
187 if(id
!= null && id
!=0){
188 model
.setColumnData(id
, 1, this.failedStatus
);
189 this.tree
.nodeSetOpened(id
, true);
194 createHtmlGui : function(responseText
){
195 var htmlElement
= new qx
.ui
.embed
.Html(responseText
);
196 htmlElement
.setOverflowX("auto");
197 htmlElement
.setOverflowY("auto");
198 this.add(htmlElement
, {flex
:1});