Commit 87658ba04e2d7efbe249d612ac4f205e976168bf
1 parent
b74e48d4
Exists in
master
and in
111 other branches
TT Navigation in plot interactive mode
Showing
6 changed files
with
258 additions
and
129 deletions
Show diff stats
js/app/controllers/PlotModule.js
@@ -61,7 +61,7 @@ Ext.define('amdaDesktop.PlotModule', { | @@ -61,7 +61,7 @@ Ext.define('amdaDesktop.PlotModule', { | ||
61 | return size; | 61 | return size; |
62 | }, | 62 | }, |
63 | 63 | ||
64 | - updateInteractiveSession : function(session) { | 64 | + updateInteractiveSession : function(session, newplot) { |
65 | var me = this; | 65 | var me = this; |
66 | Ext.each(session.result, function (tabResult, index) { | 66 | Ext.each(session.result, function (tabResult, index) { |
67 | var winResultId = tabResult.id+"-win"; | 67 | var winResultId = tabResult.id+"-win"; |
@@ -72,7 +72,14 @@ Ext.define('amdaDesktop.PlotModule', { | @@ -72,7 +72,14 @@ Ext.define('amdaDesktop.PlotModule', { | ||
72 | folder : session.folder, | 72 | folder : session.folder, |
73 | plotFile : tabResult.plot, | 73 | plotFile : tabResult.plot, |
74 | context : tabResult.context, | 74 | context : tabResult.context, |
75 | - tabId : tabResult.id | 75 | + tabId : tabResult.id, |
76 | + multiplot : tabResult.multiplot, | ||
77 | + superposeMode : tabResult.superposeMode, | ||
78 | + isInterval: tabResult.isInterval, | ||
79 | + ttName : tabResult.ttName, | ||
80 | + ttIndex : tabResult.ttIndex, | ||
81 | + ttNbIntervals : tabResult.ttNbIntervals, | ||
82 | + ttFileIndex : tabResult.ttFileIndex | ||
76 | }; | 83 | }; |
77 | 84 | ||
78 | if (winResult == null) { | 85 | if (winResult == null) { |
@@ -83,7 +90,7 @@ Ext.define('amdaDesktop.PlotModule', { | @@ -83,7 +90,7 @@ Ext.define('amdaDesktop.PlotModule', { | ||
83 | 90 | ||
84 | var win = myDesktopApp.getDesktop().createWindow({ | 91 | var win = myDesktopApp.getDesktop().createWindow({ |
85 | id : tabResult.id+"-win", | 92 | id : tabResult.id+"-win", |
86 | - title : 'Plot '+(index+1), | 93 | + title : 'Plot '+(tabResult.index+1), |
87 | width : size.width, | 94 | width : size.width, |
88 | height: size.height, | 95 | height: size.height, |
89 | layout: 'fit', | 96 | layout: 'fit', |
@@ -106,7 +113,7 @@ Ext.define('amdaDesktop.PlotModule', { | @@ -106,7 +113,7 @@ Ext.define('amdaDesktop.PlotModule', { | ||
106 | else | 113 | else |
107 | { | 114 | { |
108 | //update result | 115 | //update result |
109 | - winResult.getPanelResult().updatePlotImage(plotTabConfig); | 116 | + winResult.getPanelResult().updatePlotImage(plotTabConfig, newplot); |
110 | //update window size | 117 | //update window size |
111 | var size = me.computeResultWindowSize(winResult.getPanelResult()); | 118 | var size = me.computeResultWindowSize(winResult.getPanelResult()); |
112 | winResult.setSize(size.width, size.height); | 119 | winResult.setSize(size.width, size.height); |
js/app/models/ExecutableNode.js
@@ -80,7 +80,7 @@ Ext.define('amdaModel.ExecutableNode', { | @@ -80,7 +80,7 @@ Ext.define('amdaModel.ExecutableNode', { | ||
80 | if (isInteractivePlot) | 80 | if (isInteractivePlot) |
81 | { | 81 | { |
82 | myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.plot.id, true, function (module) { | 82 | myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.plot.id, true, function (module) { |
83 | - module.updateInteractiveSession(res); | 83 | + module.updateInteractiveSession(res, true); |
84 | }); | 84 | }); |
85 | } | 85 | } |
86 | else | 86 | else |
js/app/models/PlotObjects/PlotRequestObject.js
@@ -28,6 +28,7 @@ Ext.define('amdaPlotObj.PlotRequestObject', { | @@ -28,6 +28,7 @@ Ext.define('amdaPlotObj.PlotRequestObject', { | ||
28 | {name: 'file-output', type: 'string'}, | 28 | {name: 'file-output', type: 'string'}, |
29 | {name: 'file-prefix', type: 'string'}, | 29 | {name: 'file-prefix', type: 'string'}, |
30 | {name: 'one-file-per-interval', type: 'boolean'}, | 30 | {name: 'one-file-per-interval', type: 'boolean'}, |
31 | + {name: 'last-plotted-tab', type: 'int', defaultValue: 0}, | ||
31 | {name: 'last-tab-id', type: 'int', defaultValue: 0} | 32 | {name: 'last-tab-id', type: 'int', defaultValue: 0} |
32 | ], | 33 | ], |
33 | 34 | ||
@@ -65,6 +66,7 @@ Ext.define('amdaPlotObj.PlotRequestObject', { | @@ -65,6 +66,7 @@ Ext.define('amdaPlotObj.PlotRequestObject', { | ||
65 | this.set('file-output', amdaPlotObj.PlotObjectConfig.defaultValues.file.output); | 66 | this.set('file-output', amdaPlotObj.PlotObjectConfig.defaultValues.file.output); |
66 | this.set('file-prefix', ''); | 67 | this.set('file-prefix', ''); |
67 | this.set('one-file-per-interval', amdaPlotObj.PlotObjectConfig.defaultValues.file.oneFilePerInterval); | 68 | this.set('one-file-per-interval', amdaPlotObj.PlotObjectConfig.defaultValues.file.oneFilePerInterval); |
69 | + this.set('last-plotted-tab', 0); | ||
68 | this.set('name', ''); | 70 | this.set('name', ''); |
69 | }, | 71 | }, |
70 | 72 | ||
@@ -118,6 +120,7 @@ Ext.define('amdaPlotObj.PlotRequestObject', { | @@ -118,6 +120,7 @@ Ext.define('amdaPlotObj.PlotRequestObject', { | ||
118 | requestValues['file-output'] = this.get('file-output'); | 120 | requestValues['file-output'] = this.get('file-output'); |
119 | requestValues['file-prefix'] = this.get('file-prefix'); | 121 | requestValues['file-prefix'] = this.get('file-prefix'); |
120 | requestValues['one-file-per-interval'] = this.get('one-file-per-interval'); | 122 | requestValues['one-file-per-interval'] = this.get('one-file-per-interval'); |
123 | + requestValues['last-plotted-tab'] = this.get('last-plotted-tab'); | ||
121 | requestValues['name'] = this.get('name'); | 124 | requestValues['name'] = this.get('name'); |
122 | 125 | ||
123 | requestValues['timesrc'] = this.get('timesrc'); | 126 | requestValues['timesrc'] = this.get('timesrc'); |
js/app/views/PlotComponents/PlotTabPanel.js
@@ -109,6 +109,13 @@ Ext.define('amdaPlotComp.PlotTabPanel', { | @@ -109,6 +109,13 @@ Ext.define('amdaPlotComp.PlotTabPanel', { | ||
109 | return plotTab.child().treePlot; | 109 | return plotTab.child().treePlot; |
110 | }, | 110 | }, |
111 | 111 | ||
112 | + getSelectedTabId: function() | ||
113 | + { | ||
114 | + if (this.getActiveTab()) | ||
115 | + return this.getActiveTab().child().tabId; | ||
116 | + return 0; | ||
117 | + }, | ||
118 | + | ||
112 | init : function(config) { | 119 | init : function(config) { |
113 | var me = this; | 120 | var me = this; |
114 | 121 |
js/app/views/PlotTabResultUI.js
@@ -26,6 +26,10 @@ Ext.define('amdaUI.PlotTabResultUI', { | @@ -26,6 +26,10 @@ Ext.define('amdaUI.PlotTabResultUI', { | ||
26 | panelImage : null, | 26 | panelImage : null, |
27 | crtContext : null, | 27 | crtContext : null, |
28 | tabId : '', | 28 | tabId : '', |
29 | + multiPlotCheck : null, | ||
30 | + navToolBar : null, | ||
31 | + isTTNavBar : false, | ||
32 | + crtTTFileIndex : 0, | ||
29 | 33 | ||
30 | constructor: function(config) { | 34 | constructor: function(config) { |
31 | this.addEvents({'pagesize':true}); | 35 | this.addEvents({'pagesize':true}); |
@@ -266,7 +270,7 @@ Ext.define('amdaUI.PlotTabResultUI', { | @@ -266,7 +270,7 @@ Ext.define('amdaUI.PlotTabResultUI', { | ||
266 | if (!me.crtContext) | 270 | if (!me.crtContext) |
267 | return; | 271 | return; |
268 | 272 | ||
269 | - me.contextualMenu.removeAll(); | 273 | + me.contextualMenu.removeAll(true); |
270 | 274 | ||
271 | var sourceXPos = me.toPixelOnSourceImage(imageX); | 275 | var sourceXPos = me.toPixelOnSourceImage(imageX); |
272 | var sourceYPos = me.toPixelOnSourceImage(imageY); | 276 | var sourceYPos = me.toPixelOnSourceImage(imageY); |
@@ -298,9 +302,21 @@ Ext.define('amdaUI.PlotTabResultUI', { | @@ -298,9 +302,21 @@ Ext.define('amdaUI.PlotTabResultUI', { | ||
298 | return this.panelImage; | 302 | return this.panelImage; |
299 | }, | 303 | }, |
300 | 304 | ||
301 | - updatePlotImage: function(configResult) { | 305 | + updatePlotImage: function(configResult, newPlot) { |
302 | this.crtContext = configResult.context; | 306 | this.crtContext = configResult.context; |
303 | 307 | ||
308 | + this.crtTTFileIndex = configResult.ttFileIndex; | ||
309 | + | ||
310 | + if (this.isTTNavBar != (!configResult.isInterval)) | ||
311 | + { | ||
312 | + //Update navigation bar | ||
313 | + this.updateNavToolBar(!configResult.isInterval); | ||
314 | + } | ||
315 | + | ||
316 | + this.updateTimeTableInfo(); | ||
317 | + | ||
318 | + this.multiPlotCheck.setValue(configResult.multiplot); | ||
319 | + | ||
304 | this.panelImage.setSrc(this.getImageUrl(configResult.folder, configResult.plotFile)); | 320 | this.panelImage.setSrc(this.getImageUrl(configResult.folder, configResult.plotFile)); |
305 | 321 | ||
306 | var size = this.getImageSize(); | 322 | var size = this.getImageSize(); |
@@ -309,6 +325,24 @@ Ext.define('amdaUI.PlotTabResultUI', { | @@ -309,6 +325,24 @@ Ext.define('amdaUI.PlotTabResultUI', { | ||
309 | this.panelImage.refreshMe(); | 325 | this.panelImage.refreshMe(); |
310 | }, | 326 | }, |
311 | 327 | ||
328 | + updateTimeTableInfo: function() | ||
329 | + { | ||
330 | + if (!this.navToolBar) | ||
331 | + return; | ||
332 | + | ||
333 | + var ttNameField = this.navToolBar.items.get('tt-table-'+this.tabId); | ||
334 | + if (ttNameField) | ||
335 | + ttNameField.setValue(this.crtContext.page.ttName); | ||
336 | + | ||
337 | + var ttNumberField = this.navToolBar.items.get('tt-number-'+this.tabId); | ||
338 | + if (ttNumberField) | ||
339 | + ttNumberField.setValue(this.crtContext.page.ttIndex + 1); | ||
340 | + | ||
341 | + var ttTotalField = this.navToolBar.items.get('tt-total-'+this.tabId); | ||
342 | + if (ttTotalField) | ||
343 | + ttTotalField.setValue(this.crtContext.page.ttNbIntervals); | ||
344 | + }, | ||
345 | + | ||
312 | callInteractivePlot : function(obj) { | 346 | callInteractivePlot : function(obj) { |
313 | loadMask.show(true); | 347 | loadMask.show(true); |
314 | AmdaAction.interactivePlot(obj, function (result, e) { | 348 | AmdaAction.interactivePlot(obj, function (result, e) { |
@@ -321,7 +355,7 @@ Ext.define('amdaUI.PlotTabResultUI', { | @@ -321,7 +355,7 @@ Ext.define('amdaUI.PlotTabResultUI', { | ||
321 | if (result.success) | 355 | if (result.success) |
322 | { | 356 | { |
323 | myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.plot.id, true, function (module) { | 357 | myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.plot.id, true, function (module) { |
324 | - module.updateInteractiveSession(result); | 358 | + module.updateInteractiveSession(result, false); |
325 | }); | 359 | }); |
326 | } | 360 | } |
327 | else | 361 | else |
@@ -338,129 +372,202 @@ Ext.define('amdaUI.PlotTabResultUI', { | @@ -338,129 +372,202 @@ Ext.define('amdaUI.PlotTabResultUI', { | ||
338 | },this); | 372 | },this); |
339 | }, | 373 | }, |
340 | 374 | ||
341 | - createToolBar : function(isTimeTable) { | ||
342 | - var interoperItemCfg = { | ||
343 | - text: 'Get HST Data', | ||
344 | - scope: this, | ||
345 | - menu: [ | ||
346 | - { | ||
347 | - text: 'Giant Planet Auroral Emissions', | ||
348 | - scope: this, | ||
349 | - handler: function() | ||
350 | - { | ||
351 | - var me = this; | ||
352 | - myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.astro.id, true, function (module) { | ||
353 | - //module.createWindow(me.object.get('startDate'),me.object.get('stopDate')); | ||
354 | - }); | ||
355 | - } | ||
356 | - } | ||
357 | - ] | ||
358 | - }; | ||
359 | - | ||
360 | - if (isTimeTable) { | ||
361 | - var toolConfig = { | ||
362 | - dock: 'top', | ||
363 | - items: [ | ||
364 | - { | ||
365 | - text: 'Previous', | ||
366 | - scope: this, | ||
367 | - handler: function(){ | ||
368 | - } | ||
369 | - }, | ||
370 | - '-', | ||
371 | - { | ||
372 | - text: 'Next', | ||
373 | - scope: this, | ||
374 | - handler: function(){ | ||
375 | - } | ||
376 | - }, | ||
377 | - '-', | ||
378 | - { | ||
379 | - text: 'Go to Interval #', | ||
380 | - scope: this, | ||
381 | - handler: function(bt){ | ||
382 | - } | ||
383 | - }, | ||
384 | - { | ||
385 | - xtype: 'numberfield', | ||
386 | - hideTrigger: true, | ||
387 | - width: 40, | ||
388 | - minValue: 1 | ||
389 | - }, | ||
390 | - ' ', | ||
391 | - ' ', | ||
392 | - ' ', | ||
393 | - { | ||
394 | - xtype: 'textfield', | ||
395 | - labelAlign: 'right', | ||
396 | - labelWidth: 30, | ||
397 | - fieldLabel: 'Table', | ||
398 | - width: 130, | ||
399 | - disabled : true | ||
400 | - }, | ||
401 | - { | ||
402 | - xtype: 'textfield', | ||
403 | - labelAlign: 'right', | ||
404 | - labelWidth: 30, | ||
405 | - fieldLabel: 'Int #', | ||
406 | - width: 70, | ||
407 | - disabled : true | ||
408 | - }, | ||
409 | - { | ||
410 | - xtype: 'textfield', | ||
411 | - labelAlign: 'right', | ||
412 | - labelWidth: 30, | ||
413 | - fieldLabel: 'Total', | ||
414 | - width: 70, | ||
415 | - disabled : true | ||
416 | - }, | ||
417 | - '->', | ||
418 | - interoperItemCfg | ||
419 | - ] | ||
420 | - }; | 375 | + updateNavToolBar : function(isTimeTable) { |
376 | + if (this.navToolBar) | ||
377 | + this.navToolBar.removeAll(true); | ||
378 | + | ||
379 | + this.multiPlotCheck = Ext.create('Ext.form.field.Checkbox', { | ||
380 | + boxLabel : 'Linked to Multi Plot Mode', | ||
381 | + scope: this, | ||
382 | + handler: function(check, checked) { | ||
383 | + } | ||
384 | + }); | ||
385 | + | ||
386 | + var commonItemsCfg = [ | ||
387 | + { | ||
388 | + xtype: 'tbspacer', | ||
389 | + width: 50 | ||
390 | + }, | ||
391 | + this.multiPlotCheck, | ||
392 | + '->', | ||
393 | + { | ||
394 | + text: 'Get HST Data', | ||
395 | + scope: this, | ||
396 | + menu: [ | ||
397 | + { | ||
398 | + text: 'Giant Planet Auroral Emissions', | ||
399 | + scope: this, | ||
400 | + handler: function() | ||
401 | + { | ||
402 | + var me = this; | ||
403 | + myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.astro.id, true, function (module) { | ||
404 | + var startTime = new Date(me.crtContext.page.startTime*1000); | ||
405 | + startTime = Ext.Date.add(startTime, Ext.Date.MINUTE, startTime.getTimezoneOffset()); | ||
406 | + | ||
407 | + var stopTime = new Date(me.crtContext.page.stopTime*1000); | ||
408 | + stopTime = Ext.Date.add(stopTime, Ext.Date.MINUTE, stopTime.getTimezoneOffset()); | ||
409 | + | ||
410 | + module.createWindow(startTime,stopTime); | ||
411 | + }); | ||
412 | + } | ||
413 | + } | ||
414 | + ] | ||
415 | + } | ||
416 | + ]; | ||
417 | + | ||
418 | + if (isTimeTable) | ||
419 | + { | ||
420 | + var navigationItemsCfg = [ | ||
421 | + { | ||
422 | + text: 'Previous', | ||
423 | + scope: this, | ||
424 | + handler: function(){ | ||
425 | + var ttFileIndex = this.crtTTFileIndex; | ||
426 | + var ttintervalIndex = this.crtContext.page.ttIndex; | ||
427 | + | ||
428 | + if (ttintervalIndex <= 0) | ||
429 | + { | ||
430 | + if (ttFileIndex <= 0) | ||
431 | + { | ||
432 | + myDesktopApp.errorMsg('You are on the first interval of your request'); | ||
433 | + return; | ||
434 | + } | ||
435 | + else | ||
436 | + { | ||
437 | + --ttFileIndex; | ||
438 | + ttintervalIndex = 0; | ||
439 | + } | ||
440 | + } | ||
441 | + else | ||
442 | + --ttintervalIndex; | ||
443 | + this.callInteractivePlot({'action' : 'goto', 'tabId' : this.tabId, 'ttFileIndex' : ttFileIndex, 'intIndex' : ttintervalIndex}); | ||
444 | + } | ||
445 | + }, | ||
446 | + '-', | ||
447 | + { | ||
448 | + text: 'Next', | ||
449 | + scope: this, | ||
450 | + handler: function(){ | ||
451 | + var ttFileIndex = this.crtTTFileIndex; | ||
452 | + var ttintervalIndex = this.crtContext.page.ttIndex; | ||
453 | + | ||
454 | + if (ttintervalIndex >= this.crtContext.page.ttNbIntervals-1) | ||
455 | + { | ||
456 | + ++ttFileIndex; | ||
457 | + ttintervalIndex = 0; | ||
458 | + } | ||
459 | + else | ||
460 | + ++ttintervalIndex; | ||
461 | + this.callInteractivePlot({'action' : 'goto', 'tabId' : this.tabId, 'ttFileIndex' : ttFileIndex, 'intIndex' : ttintervalIndex}); | ||
462 | + } | ||
463 | + }, | ||
464 | + '-', | ||
465 | + { | ||
466 | + text: 'Go to Interval #', | ||
467 | + scope: this, | ||
468 | + handler: function(bt){ | ||
469 | + var ttGotoNumberField = this.navToolBar.items.get('tt-goto-number-'+this.tabId); | ||
470 | + var goToIndex = ttGotoNumberField.getValue() - 1; | ||
471 | + if ((goToIndex < 0) || (goToIndex >= this.crtContext.page.ttNbIntervals)) | ||
472 | + myDesktopApp.errorMsg('This interval number is outside of the current timeTable'); | ||
473 | + else | ||
474 | + this.callInteractivePlot({'action' : 'goto', 'tabId' : this.tabId, 'ttFileIndex' : this.crtTTFileIndex, 'intIndex' : goToIndex}); | ||
475 | + } | ||
476 | + }, | ||
477 | + { | ||
478 | + xtype: 'numberfield', | ||
479 | + id : 'tt-goto-number-'+this.tabId, | ||
480 | + hideTrigger: true, | ||
481 | + width: 40, | ||
482 | + minValue: 1 | ||
483 | + }, | ||
484 | + ' ', | ||
485 | + ' ', | ||
486 | + ' ', | ||
487 | + { | ||
488 | + xtype: 'textfield', | ||
489 | + id: 'tt-table-'+this.tabId, | ||
490 | + labelAlign: 'right', | ||
491 | + labelWidth: 30, | ||
492 | + fieldLabel: 'Table', | ||
493 | + width: 130, | ||
494 | + disabled : true | ||
495 | + }, | ||
496 | + { | ||
497 | + xtype: 'textfield', | ||
498 | + id: 'tt-number-'+this.tabId, | ||
499 | + labelAlign: 'right', | ||
500 | + labelWidth: 30, | ||
501 | + fieldLabel: 'Int #', | ||
502 | + width: 70, | ||
503 | + disabled : true | ||
504 | + }, | ||
505 | + { | ||
506 | + xtype: 'textfield', | ||
507 | + id: 'tt-total-'+this.tabId, | ||
508 | + labelAlign: 'right', | ||
509 | + labelWidth: 30, | ||
510 | + fieldLabel: 'Total', | ||
511 | + width: 70, | ||
512 | + disabled : true | ||
513 | + } | ||
514 | + ]; | ||
515 | + } | ||
516 | + else | ||
517 | + { | ||
518 | + var navigationItemsCfg = [ | ||
519 | + { | ||
520 | + text: 'Backward', | ||
521 | + scope: this, | ||
522 | + handler: function(){ | ||
523 | + this.callInteractivePlot({'action' : 'backward', 'tabId' : this.tabId}); | ||
524 | + } | ||
525 | + }, | ||
526 | + '-', | ||
527 | + { | ||
528 | + text: '1/2 Backward', | ||
529 | + scope: this, | ||
530 | + handler: function(){ | ||
531 | + this.callInteractivePlot({'action' : 'halfbackward', 'tabId' : this.tabId}); | ||
532 | + } | ||
533 | + }, | ||
534 | + '-', | ||
535 | + { | ||
536 | + text: '1/2 Forward', | ||
537 | + scope: this, | ||
538 | + handler: function(){ | ||
539 | + this.callInteractivePlot({'action' : 'halfforward', 'tabId' : this.tabId}); | ||
540 | + } | ||
541 | + }, | ||
542 | + '-', | ||
543 | + { | ||
544 | + text: 'Forward', | ||
545 | + scope: this, | ||
546 | + handler: function(){ | ||
547 | + this.callInteractivePlot({'action' : 'forward', 'tabId' : this.tabId}); | ||
548 | + } | ||
549 | + } | ||
550 | + ]; | ||
421 | } | 551 | } |
422 | - else { | ||
423 | - var toolConfig = { | 552 | + |
553 | + var toolItemsCfg = navigationItemsCfg; | ||
554 | + Ext.each(commonItemsCfg, function(item){ | ||
555 | + toolItemsCfg.push(item); | ||
556 | + }); | ||
557 | + | ||
558 | + if (!this.navToolBar) | ||
559 | + { | ||
560 | + var toolConfig = { | ||
424 | dock: 'top', | 561 | dock: 'top', |
425 | - items: [ { | ||
426 | - text: 'Backward', | ||
427 | - scope: this, | ||
428 | - handler: function(){ | ||
429 | - this.callInteractivePlot({'action' : 'backward', 'tabId' : this.tabId}); | ||
430 | - } | ||
431 | - }, | ||
432 | - '-' , | ||
433 | - { | ||
434 | - text: '1/2 Backward', | ||
435 | - scope: this, | ||
436 | - handler: function(){ | ||
437 | - this.callInteractivePlot({'action' : 'halfbackward', 'tabId' : this.tabId}); | ||
438 | - } | ||
439 | - }, | ||
440 | - '-', | ||
441 | - { | ||
442 | - text: '1/2 Forward', | ||
443 | - scope: this, | ||
444 | - handler: function(){ | ||
445 | - this.callInteractivePlot({'action' : 'halfforward', 'tabId' : this.tabId}); | ||
446 | - } | ||
447 | - }, | ||
448 | - '-', | ||
449 | - { | ||
450 | - text: 'Forward', | ||
451 | - scope: this, | ||
452 | - handler: function(){ | ||
453 | - this.callInteractivePlot({'action' : 'forward', 'tabId' : this.tabId}); | ||
454 | - } | ||
455 | - }, | ||
456 | - '->', | ||
457 | - interoperItemCfg | ||
458 | - ] | 562 | + items: toolItemsCfg |
459 | }; | 563 | }; |
564 | + | ||
565 | + this.navToolBar = Ext.create('Ext.toolbar.Toolbar', toolConfig); | ||
460 | } | 566 | } |
461 | - | ||
462 | - var toolBar = Ext.create('Ext.toolbar.Toolbar', toolConfig); | ||
463 | - return toolBar; | 567 | + else |
568 | + this.navToolBar.add(toolItemsCfg); | ||
569 | + | ||
570 | + this.isTTNavBar = isTimeTable; | ||
464 | }, | 571 | }, |
465 | 572 | ||
466 | init: function(configResult){ | 573 | init: function(configResult){ |
@@ -512,7 +619,11 @@ Ext.define('amdaUI.PlotTabResultUI', { | @@ -512,7 +619,11 @@ Ext.define('amdaUI.PlotTabResultUI', { | ||
512 | items: [] | 619 | items: [] |
513 | }); | 620 | }); |
514 | 621 | ||
515 | - var navToolBar = this.createToolBar(false); | 622 | + this.updateNavToolBar(!configResult.isInterval); |
623 | + | ||
624 | + this.updateTimeTableInfo(); | ||
625 | + | ||
626 | + this.multiPlotCheck.setValue(configResult.multiplot); | ||
516 | 627 | ||
517 | var plotResultTabPanelConfig = { | 628 | var plotResultTabPanelConfig = { |
518 | preventHeader : true, | 629 | preventHeader : true, |
@@ -520,7 +631,7 @@ Ext.define('amdaUI.PlotTabResultUI', { | @@ -520,7 +631,7 @@ Ext.define('amdaUI.PlotTabResultUI', { | ||
520 | items: [ | 631 | items: [ |
521 | this.createPlotImage(configResult.folder, configResult.plotFile) | 632 | this.createPlotImage(configResult.folder, configResult.plotFile) |
522 | ], | 633 | ], |
523 | - dockedItems: [navToolBar, mouseToolbar], | 634 | + dockedItems: [this.navToolBar, mouseToolbar], |
524 | plugins: [ | 635 | plugins: [ |
525 | { | 636 | { |
526 | ptype: 'plotZoomPlugin', | 637 | ptype: 'plotZoomPlugin', |
js/app/views/PlotUI.js
@@ -113,6 +113,7 @@ Ext.define('amdaUI.PlotUI', { | @@ -113,6 +113,7 @@ Ext.define('amdaUI.PlotUI', { | ||
113 | */ | 113 | */ |
114 | doPlot : function(){ | 114 | doPlot : function(){ |
115 | this.updateObject(); | 115 | this.updateObject(); |
116 | + this.object.set('last-plotted-tab', this.plotTabs.getSelectedTabId()); | ||
116 | var plotModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.plot.id); | 117 | var plotModule = myDesktopApp.getLoadedModule(myDesktopApp.dynamicModules.plot.id); |
117 | if (plotModule) | 118 | if (plotModule) |
118 | plotModule.linkedNode.execute(); | 119 | plotModule.linkedNode.execute(); |