4 qx
.Class
.define("org.argeo.slc.web.TestList",
6 extend
: qx
.ui
.container
.Composite
,
7 implement
: [org
.argeo
.ria
.components
.IView
],
9 construct : function(){
10 this.base(arguments
, new qx
.ui
.layout
.VBox());
11 var model
= new qx
.ui
.table
.model
.Simple();
12 model
.setColumns(["Test Case", "Date"]);
13 this.table
= new qx
.ui
.table
.Table(model
, {
14 tableColumnModel: function(obj
){
15 return new qx
.ui
.table
.columnmodel
.Resize(obj
)
30 init
: 'My Collection',
36 label
: "Load Collection",
37 icon
: "resource/slc/view-refresh.png",
38 shortcut
: "Control+l",
42 callback : function(e
){
49 icon
: "resource/slc/document-open.png",
50 shortcut
: "Control+o",
54 callback : function(e
){
55 var viewsManager
= org
.argeo
.ria
.components
.ViewsManager
.getInstance();
56 var classObj
= org
.argeo
.slc
.web
.Applet
;
57 var iView
= viewsManager
.initIViewClass(classObj
, "applet");
58 var xmlNodes
= viewsManager
.getViewPaneSelection("list").getNodes();
59 iView
.load(xmlNodes
[0]);
61 selectionChange : function(viewId
, xmlNodes
){
62 if(viewId
!= "list") return;
63 this.setEnabled(false);
64 if(xmlNodes
== null || !xmlNodes
.length
) return;
65 var applet
= org
.argeo
.ria
.util
.Element
.selectSingleNode(xmlNodes
[0],'report[@type="applet"]');
66 if(applet
!= null && qx
.dom
.Node
.getText(applet
) != ""){
67 this.setEnabled(true);
73 label
: "Download as...",
74 icon
: "resource/slc/go-down.png",
79 callback : function(e
){ },
82 submenuCallback : function(commandId
){
83 var viewsManager
= org
.argeo
.ria
.components
.ViewsManager
.getInstance();
84 var xmlNodes
= viewsManager
.getViewPaneSelection("list").getNodes();
86 var uuid
= qx
.xml
.Element
.getSingleNodeText(xmlNodes
[0], 'param[@name="uuid"]');
88 xsl
: "resultView.xslt",
89 xml
: "resultViewXml.xslt",
90 xls
: "resultView.xls",
91 pdf
: "resultView.pdf"
93 var url
= "../"+urls
[commandId
]+"?uuid="+uuid
;
94 if(commandId
== "xls" || commandId
== "pdf"){
95 document
.location
.href
= url
;
97 var win
= window
.open(url
);
100 selectionChange : function(viewId
, xmlNodes
){
101 if(viewId
!="list")return;
103 this.setEnabled(false);
104 if(xmlNodes
== null) return;
106 var reports
= qx
.xml
.Element
.selectNodes(xmlNodes
[0],'report[@type="download"]');
107 if(reports
== null || !reports
.length
)return;
109 for(var i
=0; i
<reports
.length
;i
++){
110 var report
= reports
[i
];
111 var commandId
= qx
.dom
.Node
.getText(org
.argeo
.ria
.util
.Element
.selectSingleNode(report
, "@commandid"));
113 "label":qx
.dom
.Node
.getText(report
),
114 "icon":"resource/slc/mime-"+commandId
+".png",
115 "commandId":commandId
118 this.setMenu(submenus
);
119 this.setEnabled(true);
124 icon
: "resource/slc/edit-delete.png",
125 shortcut
: "Control+d",
129 callback : function(e
){
130 // Call service to delete
132 selectionChange : function(viewId
, xmlNodes
){
133 if(viewId
!= "list") return;
134 this.setEnabled(false);
135 if(xmlNodes
== null || !xmlNodes
.length
) return;
136 this.setEnabled(true);
140 "copytocollection" : {
141 label
: "Copy to...",
142 icon
: "resource/slc/edit-copy.png",
143 shortcut
: "Control+c",
147 callback : function(e
){
148 // Call service to copy
152 // Call at command creation
153 org
.argeo
.ria
.remote
.RequestManager
.getInstance().addListener("reload", function(event
){
154 if(event
.getDataType() != "collection") return;
155 this.setEnabled(false);
157 var collectionList
= event
.getContent();
158 if(!collectionList
) return;
160 for(var key
in collectionList
){
162 "label":collectionList
[key
],
167 this.setMenu(submenus
);
168 var viewSelection
= org
.argeo
.ria
.components
.ViewsManager
.getInstance().getViewPaneSelection("list");
169 if(viewSelection
.getCount()) this.setEnabled(true);
172 selectionChange : function(viewId
, xmlNodes
){
173 if(viewId
!= "list") return;
174 this.setEnabled(false);
175 if(xmlNodes
== null || !xmlNodes
.length
) return;
176 this.setEnabled(true);
185 init : function(viewPane
){
186 this.setView(viewPane
);
188 load : function(data
){
190 statusBarVisible
: false,
191 showCellFocusIndicator
:false,
192 columnVisibilityButtonVisible
:false,
193 contextMenu
: org
.argeo
.ria
.event
.CommandsManager
.getInstance().createMenuFromIds(["opentest", "deletetest", "copytocollection"]),
194 decorator
: new qx
.ui
.decoration
.Background("#fff")
196 var viewPane
= this.getView();
197 this.table
.addListener("dblclick", function(e
){
198 org
.argeo
.ria
.event
.CommandsManager
.getInstance().executeCommand("opentest");
200 var columnModel
= this.table
.getTableColumnModel();
201 columnModel
.getBehavior().setWidth(0, "60%");
202 columnModel
.setDataCellRenderer(0, new org
.argeo
.slc
.web
.XmlRenderer());
203 columnModel
.setDataCellRenderer(1, new org
.argeo
.slc
.web
.XmlRenderer());
205 this.table
.getSelectionManager().getSelectionModel().addListener("changeSelection", function(e
){
206 var viewSelection
= viewPane
.getViewSelection();
207 viewSelection
.clear();
208 var selectionModel
= this.table
.getSelectionManager().getSelectionModel();
209 if(!selectionModel
.getSelectedCount()){
212 var ranges
= this.table
.getSelectionManager().getSelectionModel().getSelectedRanges();
213 var xmlNode
= this.table
.getTableModel().getRowData(ranges
[0].minIndex
);
214 viewSelection
.addNode(xmlNode
);
215 viewPane
.setViewSelection(viewSelection
);
218 var select
= new qx
.ui
.form
.SelectBox();
219 this.getView().addHeaderComponent(select
);
220 this.getView().setViewTitle("");
221 this.add(this.table
, {flex
:1});
223 select
.addListener("changeValue", function(dataEvent
){
224 this.debug(dataEvent
.getData());
225 this.setCollectionId(dataEvent
.getData());
229 org
.argeo
.ria
.remote
.RequestManager
.getInstance().addListener("reload", function(event
){
230 if(event
.getDataType()!="collection") return;
231 var collectionList
= event
.getContent();
233 for(key
in collectionList
){
234 var item
= new qx
.ui
.form
.ListItem(collectionList
[key
], null, key
);
236 if(key
== this.getCollectionId()){
237 select
.setSelected(item
);
244 loadCollections : function(){
245 this.setCollectionList({"Charles":"Collection 'Charles'","My Collection":"Collection 'My Collection'"});
246 org
.argeo
.ria
.remote
.RequestManager
.getInstance().fireReloadEvent("collection", this.getCollectionList());
249 loadList : function(){
250 var url
= "/org.argeo.slc.webapp/resultList.ui";
251 var model
= this.table
.getTableModel();
252 model
.removeRows(0, model
.getRowCount());
253 var serviceManager
= org
.argeo
.ria
.remote
.RequestManager
.getInstance();
254 var commandManager
= org
.argeo
.ria
.event
.CommandsManager
.getInstance();
255 var request
= serviceManager
.getRequest(
260 [commandManager
.getCommandById("loadtestlist"), this.getView()]
262 request
.setParameter("collectionId", this.getCollectionId());
263 request
.addListener("completed", function(response
){
264 xml
= response
.getContent();
265 qx
.log
.Logger
.info("Successfully loaded XML");
266 //var resManager = org.argeo.ria.event.ResourcesManager.getInstance().fireReloadEvent("test_cases", xml);
267 var nodes
= qx
.xml
.Element
.selectNodes(xml
, "//data");
268 for(var i
=0; i
<nodes
.length
;i
++){
269 var rowData
= nodes
[i
];
270 model
.addRows([rowData
]);
276 addScroll : function(){