]>
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
572544b508c8060fdd3fad629e19b2b58da63270
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");
60 * Called at applet creation. Just registers viewPane.
61 * @param viewPane {org.argeo.ria.components.ViewPane} The viewPane.
63 init : function(viewPane
){
64 this.setView(viewPane
);
70 * Load a given row : the data passed must be a simple data array.
71 * @param data {Element} The text xml description.
74 this.getView().setViewTitle("Slc Execution Launcher");
75 org
.argeo
.ria
.event
.CommandsManager
.getInstance().getCommandById("reloadagents").execute();
78 addScroll : function(){
82 _createLayout : function(){
83 this.formPane
= new qx
.ui
.container
.Composite(new qx
.ui
.layout
.VBox(5));
84 this.scroll
= new qx
.ui
.container
.Scroll(this.formPane
);
85 this.scroll
.setWidth(290);
86 this.formPane
.setPadding(10);
87 this.add(this.scroll
, {edge
:'west'});
89 this.logModel
= new qx
.ui
.table
.model
.Simple();
90 this.logModel
.setColumns(["Date", "Agent Uuid", "Status", "Type"]);
91 this.logPane
= new qx
.ui
.table
.Table(this.logModel
, {
92 tableColumnModel: function(obj
){
93 return new qx
.ui
.table
.columnmodel
.Resize(obj
)
97 this.add(this.logPane
, {edge
:'center'});
100 _initLogger : function(){
102 statusBarVisible
: false,
103 showCellFocusIndicator
:false
105 var columnModel
= this.logPane
.getTableColumnModel();
106 columnModel
.getBehavior().setWidth(2, "12%");
107 columnModel
.getBehavior().setWidth(3, "12%");
110 _createForm : function(){
112 this.freeFields
= [];
114 var execButtonPane
= new qx
.ui
.container
.Composite(new qx
.ui
.layout
.Dock());
115 var execButton
= new qx
.ui
.form
.Button(
117 "resource/slc/media-playback-start-32.png"
119 execButton
.addListener("click", function(){
122 execButtonPane
.setPadding(10, 80);
123 execButtonPane
.add(execButton
, {edge
:"center"});
124 this.formPane
.add(execButtonPane
);
126 this.agentSelector
= new qx
.ui
.form
.SelectBox();
127 var serviceManager
= org
.argeo
.ria
.remote
.RequestManager
.getInstance();
128 serviceManager
.addListener("reload", function(reloadEvent
){
129 if(reloadEvent
.getDataType()!= "agents") return ;
130 this._xmlListToSelector(reloadEvent
.getContent(), this.agentSelector
);
133 this._addFormHeader("Choose Agent Uuid");
134 this._addFormEntry(new qx
.ui
.basic
.Label("Agent Uuid"), this.agentSelector
);
135 this._addFormHeader("Set SlcExecution Parameters");
136 this._addFormInputText("status", "Status", "STARTED");
137 this._addFormInputText("type", "Type", "slcAnt");
138 this._addFormInputText("host", "Host", "localhost");
139 this._addFormInputText("user", "User", "user");
141 var moreButton
= new qx
.ui
.basic
.Image("resource/slc/list-add.png");
142 moreButton
.setToolTip(new qx
.ui
.tooltip
.ToolTip("Add a parameter"));
143 moreButton
.setCursor("pointer");
144 moreButton
.addListener("click", function(){
145 this._addFormInputText();
147 this._addFormHeader("Add optionnal parameters", moreButton
);
148 this._addFormInputText();
149 this._addFormInputText();
152 _addFormInputText : function(fieldName
, fieldLabel
, defaultValue
){
154 var fieldElement
= new qx
.ui
.form
.TextField();
156 fieldElement
.setValue(defaultValue
);
158 if(fieldName
&& fieldLabel
){
159 labelElement
= new qx
.ui
.basic
.Label(fieldLabel
);
160 this.fields
[fieldName
] = fieldElement
;
162 labelElement
= new qx
.ui
.form
.TextField();
163 this.freeFields
.push({
164 labelEl
:labelElement
,
168 this._addFormEntry(labelElement
, fieldElement
);
171 _addFormHeader : function(content
, additionnalButton
){
172 var header
= new qx
.ui
.basic
.Label('<b>'+content
+'</b>');
173 header
.setRich(true);
174 if(!additionnalButton
){
175 header
.setPaddingTop(10);
176 this.formPane
.add(header
);
178 var pane
= new qx
.ui
.container
.Composite(new qx
.ui
.layout
.Dock());
179 pane
.setPaddingTop(10);
180 pane
.setPaddingRight(10);
181 pane
.add(header
, {edge
:'center'});
182 pane
.add(additionnalButton
, {edge
:'east'});
183 this.formPane
.add(pane
);
187 _addFormEntry : function(labelElement
, fieldElement
){
188 var entryPane
= new qx
.ui
.container
.Composite(new qx
.ui
.layout
.HBox(5));
189 labelElement
.setWidth(100);
190 labelElement
.setTextAlign("right");
191 entryPane
.add(labelElement
);
192 entryPane
.add(new qx
.ui
.basic
.Label(':'));
193 fieldElement
.setWidth(150);
194 entryPane
.add(fieldElement
);
195 this.formPane
.add(entryPane
);
198 _xmlListToSelector : function(xmlDoc
, selector
){
199 selector
.removeAll();
200 var NSMap
= {slc
:"http://argeo.org/projects/slc/schemas"};
201 var nodes
= org
.argeo
.ria
.util
.Element
.selectNodes(xmlDoc
, "//slc:slc-agent-descriptor", NSMap
);
202 for(var i
=0;i
<nodes
.length
;i
++){
203 var uuid
= org
.argeo
.ria
.util
.Element
.getSingleNodeText(nodes
[i
], "@uuid", NSMap
);
204 var host
= org
.argeo
.ria
.util
.Element
.getSingleNodeText(nodes
[i
], "slc:host", NSMap
);
205 var listItem
= new qx
.ui
.form
.ListItem(uuid
+' ('+host
+')', null, uuid
);
206 selector
.add(listItem
);
210 submitForm : function(){
211 var currentUuid
= this.agentSelector
.getValue();
212 if(!currentUuid
) return;
213 var slcExec
= new org
.argeo
.slc
.ria
.SlcExecutionMessage(currentUuid
);
214 slcExec
.setStatus(this.fields
.status
.getValue());
215 slcExec
.setType(this.fields
.type
.getValue());
216 slcExec
.setHost(this.fields
.host
.getValue());
217 slcExec
.setUser(this.fields
.user
.getValue());
218 for(var i
=0;i
<this.freeFields
.length
;i
++){
219 var fF
= this.freeFields
[i
];
220 if(fF
.labelEl
.getValue() != "" && fF
.valueEl
.getValue() != ""){
221 slcExec
.addAttribute(fF
.labelEl
.getValue(), fF
.valueEl
.getValue());
224 var destination
= "topic://agent."+currentUuid
+".newExecution";
225 var req
= org
.argeo
.slc
.ria
.SlcApi
.getSendAmqMessageRequest(destination
, slcExec
);
226 req
.addListener("completed", function(e
){
227 this.logModel
.addRows([
228 [new Date().toString(), slcExec
.getUuid(), slcExec
.getStatus(), slcExec
.getType()]