@@ -92,9 +92,6 @@ qx.Class.define("qxapp.desktop.ServiceBrowser", {
9292 const servicesList = this . __createServicesList ( ) ;
9393 servicesLayout . add ( servicesList ) ;
9494
95- const versionsList = this . __createVersionsList ( ) ;
96- servicesLayout . add ( versionsList ) ;
97-
9895 const serviceDescription = this . __createServiceDescription ( ) ;
9996 servicesLayout . add ( serviceDescription , {
10097 flex : 1
@@ -106,34 +103,11 @@ qx.Class.define("qxapp.desktop.ServiceBrowser", {
106103 __createServicesList : function ( ) {
107104 const servicesLayout = this . __createVBoxWLabel ( this . tr ( "Services" ) ) ;
108105
109- const filterStrLayout = this . __createFilterStringLayout ( ) ;
110- servicesLayout . add ( filterStrLayout ) ;
111-
112- const typeBtns = [
113- "Computational" ,
114- "Dynamic"
115- ] ;
116- const typeResp = this . __createFilterByLayout ( this . tr ( "Type" ) , typeBtns ) ;
117- const filterTypeLayout = typeResp [ "layout" ] ;
118- this . __filterByType = typeResp [ "radioGroup" ] ;
119- servicesLayout . add ( filterTypeLayout ) ;
120-
121- const catBtns = [
122- "Data" ,
123- "Modeling" ,
124- "Simulator" ,
125- "Solver" ,
126- "PostPro" ,
127- "Notebook"
128- ] ;
129- const catResp = this . __createFilterByLayout ( this . tr ( "Category" ) , catBtns ) ;
130- const filterCatLayout = catResp [ "layout" ] ;
131- this . __filterByCategory = catResp [ "radioGroup" ] ;
132- servicesLayout . add ( filterCatLayout ) ;
106+ const serviceFilters = new qxapp . desktop . ServiceFilters ( "serviceBrowser" ) ;
107+ servicesLayout . add ( serviceFilters ) ;
133108
134109 const servicesList = this . __servicesList = new qx . ui . form . List ( ) . set ( {
135110 orientation : "vertical" ,
136- spacing : 10 ,
137111 minWidth : 500 ,
138112 height : 600 ,
139113 appearance : "pb-list"
@@ -157,25 +131,23 @@ qx.Class.define("qxapp.desktop.ServiceBrowser", {
157131 servCtrl . setDelegate ( {
158132 createItem : ( ) => {
159133 const item = new qxapp . desktop . ServiceBrowserListItem ( ) ;
134+ item . subscribeToFilterGroup ( "serviceBrowser" ) ;
160135 item . addListener ( "tap" , e => {
161- // const serviceKey = item.getModel();
162- // this.__serviceSelected(serviceKey);
163136 servicesList . setSelection ( [ item ] ) ;
164137 } ) ;
165138 return item ;
166139 } ,
167140 bindItem : ( ctrl , item , id ) => {
168141 ctrl . bindProperty ( "key" , "model" , null , item , id ) ;
169- ctrl . bindProperty ( "key " , "title" , null , item , id ) ;
170- ctrl . bindProperty ( "name " , "name " , null , item , id ) ;
142+ ctrl . bindProperty ( "name " , "title" , null , item , id ) ;
143+ ctrl . bindProperty ( "description " , "description " , null , item , id ) ;
171144 ctrl . bindProperty ( "type" , "type" , null , item , id ) ;
172145 ctrl . bindProperty ( "category" , "category" , null , item , id ) ;
173146 ctrl . bindProperty ( "contact" , "contact" , null , item , id ) ;
174147 }
175148 } ) ;
176149 servicesLayout . add ( servicesList ) ;
177150
178-
179151 // Workaround to the list.changeSelection
180152 servCtrl . addListener ( "changeValue" , e => {
181153 if ( e . getData ( ) && e . getData ( ) . length > 0 ) {
@@ -186,113 +158,35 @@ qx.Class.define("qxapp.desktop.ServiceBrowser", {
186158 }
187159 } , this ) ;
188160
189- // create the filter
190- const searchIn = [
191- "key" ,
192- "name" ,
193- "type" ,
194- "contact" ,
195- "category"
196- ] ;
197- let filterObj = new qxapp . component . workbench . servicesCatalogue . SearchTypeFilter ( servCtrl , searchIn ) ;
198- let dlgt = servCtrl . getDelegate ( ) ;
199- dlgt [ "filter" ] = filterObj [ "filter" ] ;
200- // set the filter
201- servCtrl . setDelegate ( dlgt ) ;
202-
203- // make every input in the textfield update the controller
204- this . __searchTextfield . bind ( "changeValue" , filterObj , "searchString" ) ;
205-
206- this . __filterByType . addListener ( "changeValue" , e => {
207- const sel = e . getData ( ) ;
208- filterObj . removeFilter ( "type" ) ;
209- if ( sel ) {
210- filterObj . addFilter ( "type" , sel . getLabel ( ) ) ;
211- }
212- servCtrl . update ( ) ;
213- } , this ) ;
214-
215- this . __filterByCategory . addListener ( "changeValue" , e => {
216- const sel = e . getData ( ) ;
217- filterObj . removeFilter ( "category" ) ;
218- if ( sel ) {
219- filterObj . addFilter ( "category" , sel . getLabel ( ) ) ;
220- }
221- servCtrl . update ( ) ;
222- } , this ) ;
223-
224161 return servicesLayout ;
225162 } ,
226163
227- __createFilterStringLayout : function ( ) {
228- let filterLayout = new qx . ui . container . Composite ( new qx . ui . layout . HBox ( 5 ) ) ;
229- let searchLabel = new qx . ui . basic . Label ( this . tr ( "Search" ) ) ;
230- filterLayout . add ( searchLabel ) ;
231-
232- let textfield = this . __searchTextfield = new qx . ui . form . TextField ( ) ;
233- textfield . setLiveUpdate ( true ) ;
234- filterLayout . add ( textfield , {
235- flex : 1
236- } ) ;
237- return filterLayout ;
238- } ,
239-
240- __createFilterByLayout : function ( label , btns ) {
241- let filterTypeLayout = new qx . ui . container . Composite ( new qx . ui . layout . HBox ( 5 ) ) ;
242- let typeLabel = new qx . ui . basic . Label ( label ) ;
243- filterTypeLayout . add ( typeLabel ) ;
164+ __createServiceDescription : function ( ) {
165+ const descriptionView = new qx . ui . container . Composite ( new qx . ui . layout . VBox ( 10 ) ) ;
166+ const titleContainer = new qx . ui . container . Composite ( new qx . ui . layout . HBox ( 10 ) ) ;
167+ const descriptionContainer = this . __serviceDescription = new qx . ui . container . Scroll ( ) ;
244168
245- let group = new qx . ui . form . RadioGroup ( ) . set ( {
246- allowEmptySelection : true
169+ const label = new qx . ui . basic . Label ( this . tr ( "Description" ) ) . set ( {
170+ font : qx . bom . Font . fromConfig ( qxapp . theme . Font . fonts [ "nav-bar-label" ] ) ,
171+ minWidth : 150
247172 } ) ;
248- btns . forEach ( cat => {
249- let button = new qx . ui . form . ToggleButton ( cat ) . set ( {
250- maxWidth : 150
251- } ) ;
252- group . add ( button ) ;
253- filterTypeLayout . add ( button , {
254- flex : 1
255- } ) ;
256- } , this ) ;
257-
258- return {
259- layout : filterTypeLayout ,
260- radioGroup : group
261- } ;
262- } ,
173+ titleContainer . add ( label ) ;
263174
264- __createVersionsList : function ( ) {
265- let versionsLayout = this . __createVBoxWLabel ( this . tr ( "Versions" ) ) ;
175+ titleContainer . add ( new qx . ui . basic . Atom ( this . tr ( "Version" ) ) ) ;
176+ const versions = this . __versionsList = new qx . ui . form . SelectBox ( ) ;
177+ titleContainer . add ( versions ) ;
266178
267- let versionsList = this . __versionsList = new qx . ui . form . List ( ) . set ( {
268- orientation : "vertical" ,
269- spacing : 10 ,
270- minWidth : 100 ,
271- height : 600 ,
272- appearance : "pb-list"
273- } ) ;
274- versionsList . addListener ( "changeSelection" , e => {
275- if ( e . getData ( ) && e . getData ( ) . length > 0 ) {
276- const selectedVersion = e . getData ( ) [ 0 ] . getLabel ( ) ;
277- this . __versionSelected ( selectedVersion , true ) ;
179+ versions . addListener ( "changeSelection" , e => {
180+ if ( e . getData ( ) && e . getData ( ) . length ) {
181+ this . __versionSelected ( e . getData ( ) [ 0 ] . getLabel ( ) ) ;
278182 }
279183 } , this ) ;
280- versionsLayout . add ( versionsList ) ;
281-
282- return versionsLayout ;
283- } ,
284184
285- __createServiceDescription : function ( ) {
286- let descriptionLayout = this . __createVBoxWLabel ( this . tr ( "Description" ) ) ;
287-
288- let serviceDescription = this . __serviceDescription = new qx . ui . container . Composite ( new qx . ui . layout . Canvas ( ) ) ;
289- let scroller = new qx . ui . container . Scroll ( ) ;
290- scroller . add ( serviceDescription ) ;
291- descriptionLayout . add ( scroller , {
185+ descriptionView . add ( titleContainer ) ;
186+ descriptionView . add ( descriptionContainer , {
292187 flex : 1
293188 } ) ;
294-
295- return descriptionLayout ;
189+ return descriptionView ;
296190 } ,
297191
298192 __createVBoxWLabel : function ( text ) {
@@ -309,15 +203,19 @@ qx.Class.define("qxapp.desktop.ServiceBrowser", {
309203
310204 __serviceSelected : function ( serviceKey ) {
311205 if ( this . __versionsList ) {
312- let versionsList = this . __versionsList ;
206+ const versionsList = this . __versionsList ;
313207 versionsList . removeAll ( ) ;
314208 if ( serviceKey in this . __allServices ) {
315- let versions = qxapp . utils . Services . getVersions ( this . __allServices , serviceKey ) ;
316- for ( let i = versions . length ; i -- ; ) {
317- let listItem = new qx . ui . form . ListItem ( versions [ i ] ) ;
318- versionsList . add ( listItem ) ;
319- if ( i === versions . length - 1 ) {
320- versionsList . setSelection ( [ listItem ] ) ;
209+ const versions = qxapp . utils . Services . getVersions ( this . __allServices , serviceKey ) ;
210+ if ( versions ) {
211+ let lastItem = null ;
212+ versions . forEach ( version => {
213+ lastItem = new qx . ui . form . ListItem ( version ) ;
214+ versionsList . add ( lastItem ) ;
215+ } ) ;
216+ if ( lastItem ) {
217+ versionsList . setSelection ( [ lastItem ] ) ;
218+ this . __versionSelected ( lastItem . getLabel ( ) ) ;
321219 }
322220 }
323221 }
@@ -329,21 +227,15 @@ qx.Class.define("qxapp.desktop.ServiceBrowser", {
329227 if ( serviceSelection . length > 0 ) {
330228 const serviceKey = serviceSelection [ 0 ] . getModel ( ) ;
331229 const selectedService = qxapp . utils . Services . getFromObject ( this . __allServices , serviceKey , versionKey ) ;
332- this . __updateServciceDescription ( selectedService ) ;
230+ this . __updateServiceDescription ( selectedService ) ;
333231 }
334232 } ,
335233
336- __updateServciceDescription : function ( selectedService ) {
337- let serviceDescription = this . __serviceDescription ;
338- serviceDescription . removeAll ( ) ;
234+ __updateServiceDescription : function ( selectedService ) {
235+ const serviceDescription = this . __serviceDescription ;
339236 if ( selectedService && serviceDescription ) {
340237 let jsonTreeWidget = new qxapp . component . widget . JsonTreeWidget ( selectedService , "serviceDescription" ) ;
341- serviceDescription . add ( jsonTreeWidget , {
342- top : - 30 ,
343- right : 0 ,
344- bottom : 0 ,
345- left : - 60
346- } ) ;
238+ serviceDescription . add ( jsonTreeWidget ) ;
347239 }
348240 } ,
349241
0 commit comments