]>
git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc.webapp/src/main/webapp/argeo-ria-lib/slc/class/org/argeo/slc/ria/LauncherApplet.js
2 * A simple Hello World applet for documentation purpose.
3 * The only associated command is the "Close" command.
5 qx
.Class
.define("org.argeo.slc.ria.LauncherApplet",
7 extend
: qx
.ui
.container
.Composite
,
8 implement
: [org
.argeo
.ria
.components
.IView
],
10 construct : function(){
12 this.setLayout(new qx
.ui
.layout
.Dock());
18 * The viewPane inside which this applet is added.
24 * Commands definition, see {@link org.argeo.ria.event.CommandsManager#definitions}
30 icon
: "resource/slc/media-playback-start.png",
31 shortcut
: "Control+e",
35 callback : function(e
){
36 this.getView().getContent().submitForm();
41 label
: "Reload Agents",
42 icon
: "resource/slc/view-refresh.png",
43 shortcut
: "Control+r",
47 callback : function(e
){
48 var req
= org
.argeo
.slc
.ria
.SlcApi
.getListAgentsService("agents");
55 icon
: "resource/slc/window-close.png",
56 shortcut
: "Control+w",
60 callback : function(e
){
61 // Call service to delete
62 this.getView().empty();
73 * Called at applet creation. Just registers viewPane.
74 * @param viewPane {org.argeo.ria.components.ViewPane} The viewPane.
76 init : function(viewPane
){
77 this.setView(viewPane
);
83 * Load a given row : the data passed must be a simple data array.
84 * @param data {Element} The text xml description.
87 this.getView().setViewTitle("Slc Execution Launcher");
88 org
.argeo
.ria
.event
.CommandsManager
.getInstance().getCommandById("reloadagents").execute();
91 addScroll : function(){
95 _createLayout : function(){
96 this.formPane
= new qx
.ui
.container
.Composite(new qx
.ui
.layout
.VBox(5));
97 this.scroll
= new qx
.ui
.container
.Scroll(this.formPane
);
98 this.scroll
.setWidth(290);
99 this.formPane
.setPadding(10);
100 this.add(this.scroll
, {edge
:'west'});
102 this.logModel
= new qx
.ui
.table
.model
.Simple();
103 this.logModel
.setColumns(["Date", "Agent Uuid", "Status", "Type"]);
104 this.logPane
= new qx
.ui
.table
.Table(this.logModel
, {
105 tableColumnModel: function(obj
){
106 return new qx
.ui
.table
.columnmodel
.Resize(obj
)
110 this.add(this.logPane
, {edge
:'center'});
113 _initLogger : function(){
115 statusBarVisible
: false,
116 showCellFocusIndicator
:false
118 var columnModel
= this.logPane
.getTableColumnModel();
119 columnModel
.getBehavior().setWidth(2, "12%");
120 columnModel
.getBehavior().setWidth(3, "12%");
123 _createForm : function(){
125 this.freeFields
= [];
127 var execButtonPane
= new qx
.ui
.container
.Composite(new qx
.ui
.layout
.Dock());
128 var execButton
= new qx
.ui
.form
.Button(
130 "resource/slc/media-playback-start-32.png"
132 execButton
.addListener("click", function(){
135 execButtonPane
.setPadding(10, 80);
136 execButtonPane
.add(execButton
, {edge
:"center"});
137 this.formPane
.add(execButtonPane
);
139 this.agentSelector
= new qx
.ui
.form
.SelectBox();
140 var serviceManager
= org
.argeo
.ria
.remote
.RequestManager
.getInstance();
141 serviceManager
.addListener("reload", function(reloadEvent
){
142 if(reloadEvent
.getDataType()!= "agents") return ;
143 this._xmlListToSelector(reloadEvent
.getContent(), this.agentSelector
);
146 this._addFormHeader("Choose Agent Uuid");
147 this._addFormEntry(new qx
.ui
.basic
.Label("Agent Uuid"), this.agentSelector
);
148 this._addFormHeader("Set SlcExecution Parameters");
149 this._addFormInputText("status", "Status", "STARTED");
150 this._addFormInputText("type", "Type", "slcAnt");
151 this._addFormInputText("host", "Host", "localhost");
152 this._addFormInputText("user", "User", "user");
154 var moreButton
= new qx
.ui
.basic
.Image("resource/slc/list-add.png");
155 moreButton
.setToolTip(new qx
.ui
.tooltip
.ToolTip("Add a parameter"));
156 moreButton
.setCursor("pointer");
157 moreButton
.addListener("click", function(){
158 this._addFormInputText();
160 this._addFormHeader("Add optionnal parameters", moreButton
);
161 this._addFormInputText();
162 this._addFormInputText();
165 _addFormInputText : function(fieldName
, fieldLabel
, defaultValue
){
167 var fieldElement
= new qx
.ui
.form
.TextField();
169 fieldElement
.setValue(defaultValue
);
171 if(fieldName
&& fieldLabel
){
172 labelElement
= new qx
.ui
.basic
.Label(fieldLabel
);
173 this.fields
[fieldName
] = fieldElement
;
175 labelElement
= new qx
.ui
.form
.TextField();
176 this.freeFields
.push({
177 labelEl
:labelElement
,
181 this._addFormEntry(labelElement
, fieldElement
);
184 _addFormHeader : function(content
, additionnalButton
){
185 var header
= new qx
.ui
.basic
.Label('<b>'+content
+'</b>');
186 header
.setRich(true);
187 if(!additionnalButton
){
188 header
.setPaddingTop(10);
189 this.formPane
.add(header
);
191 var pane
= new qx
.ui
.container
.Composite(new qx
.ui
.layout
.Dock());
192 pane
.setPaddingTop(10);
193 pane
.setPaddingRight(10);
194 pane
.add(header
, {edge
:'center'});
195 pane
.add(additionnalButton
, {edge
:'east'});
196 this.formPane
.add(pane
);
200 _addFormEntry : function(labelElement
, fieldElement
){
201 var entryPane
= new qx
.ui
.container
.Composite(new qx
.ui
.layout
.HBox(5));
202 labelElement
.setWidth(100);
203 labelElement
.setTextAlign("right");
204 entryPane
.add(labelElement
);
205 entryPane
.add(new qx
.ui
.basic
.Label(':'));
206 fieldElement
.setWidth(150);
207 entryPane
.add(fieldElement
);
208 this.formPane
.add(entryPane
);
211 _xmlListToSelector : function(xmlDoc
, selector
){
212 selector
.removeAll();
213 var NSMap
= {slc
:"http://argeo.org/projects/slc/schemas"};
214 var nodes
= org
.argeo
.ria
.util
.Element
.selectNodes(xmlDoc
, "//slc:slc-agent-descriptor", NSMap
);
215 for(var i
=0;i
<nodes
.length
;i
++){
216 var uuid
= org
.argeo
.ria
.util
.Element
.getSingleNodeText(nodes
[i
], "@uuid", NSMap
);
217 var host
= org
.argeo
.ria
.util
.Element
.getSingleNodeText(nodes
[i
], "slc:host", NSMap
);
218 var listItem
= new qx
.ui
.form
.ListItem(uuid
+' ('+host
+')', null, uuid
);
219 selector
.add(listItem
);
223 submitForm : function(){
224 var currentUuid
= this.agentSelector
.getValue();
225 if(!currentUuid
) return;
226 var slcExec
= new org
.argeo
.slc
.ria
.SlcExecutionMessage(currentUuid
);
227 slcExec
.setStatus(this.fields
.status
.getValue());
228 slcExec
.setType(this.fields
.type
.getValue());
229 slcExec
.setHost(this.fields
.host
.getValue());
230 slcExec
.setUser(this.fields
.user
.getValue());
231 for(var i
=0;i
<this.freeFields
.length
;i
++){
232 var fF
= this.freeFields
[i
];
233 if(fF
.labelEl
.getValue() != "" && fF
.valueEl
.getValue() != ""){
234 slcExec
.addAttribute(fF
.labelEl
.getValue(), fF
.valueEl
.getValue());
237 var destination
= "topic://agent."+currentUuid
+".newExecution";
238 var req
= org
.argeo
.slc
.ria
.SlcApi
.getSendAmqMessageRequest(destination
, slcExec
);
239 req
.addListener("completed", function(e
){
240 this.logModel
.addRows([
241 [new Date().toString(), slcExec
.getUuid(), slcExec
.getStatus(), slcExec
.getType()]