Committed by
Gerrit Code Review
GUI -- [ONOS-318] - Detail pane moves into space vacated by summary pane; makes …
…room for incoming summary... Change-Id: I1dd9af05bdb18cb8cf2c51b1dca3b2cfd09d9e37
Showing
2 changed files
with
67 additions
and
8 deletions
| ... | @@ -825,6 +825,8 @@ | ... | @@ -825,6 +825,8 @@ |
| 825 | return noPx('height'); | 825 | return noPx('height'); |
| 826 | } | 826 | } |
| 827 | 827 | ||
| 828 | + function noop() {} | ||
| 829 | + | ||
| 828 | fp = { | 830 | fp = { |
| 829 | id: id, | 831 | id: id, |
| 830 | el: el, | 832 | el: el, |
| ... | @@ -833,17 +835,19 @@ | ... | @@ -833,17 +835,19 @@ |
| 833 | return on; | 835 | return on; |
| 834 | }, | 836 | }, |
| 835 | 837 | ||
| 836 | - show: function () { | 838 | + show: function (cb) { |
| 837 | - console.log('show pane: ' + id); | 839 | + var endCb = isF(cb) || noop; |
| 838 | on = true; | 840 | on = true; |
| 839 | el.transition().duration(750) | 841 | el.transition().duration(750) |
| 842 | + .each('end', endCb) | ||
| 840 | .style(cfg.side, pxShow()) | 843 | .style(cfg.side, pxShow()) |
| 841 | .style('opacity', 1); | 844 | .style('opacity', 1); |
| 842 | }, | 845 | }, |
| 843 | - hide: function () { | 846 | + hide: function (cb) { |
| 844 | - console.log('hide pane: ' + id); | 847 | + var endCb = isF(cb) || noop; |
| 845 | on = false; | 848 | on = false; |
| 846 | el.transition().duration(750) | 849 | el.transition().duration(750) |
| 850 | + .each('end', endCb) | ||
| 847 | .style(cfg.side, pxHide()) | 851 | .style(cfg.side, pxHide()) |
| 848 | .style('opacity', 0); | 852 | .style('opacity', 0); |
| 849 | }, | 853 | }, | ... | ... |
| ... | @@ -770,13 +770,13 @@ | ... | @@ -770,13 +770,13 @@ |
| 770 | function showSummary(data) { | 770 | function showSummary(data) { |
| 771 | evTrace(data); | 771 | evTrace(data); |
| 772 | populateSummary(data.payload); | 772 | populateSummary(data.payload); |
| 773 | - summaryPane.show(); | 773 | + showSummaryPane(); |
| 774 | } | 774 | } |
| 775 | 775 | ||
| 776 | function showDetails(data) { | 776 | function showDetails(data) { |
| 777 | evTrace(data); | 777 | evTrace(data); |
| 778 | populateDetails(data.payload); | 778 | populateDetails(data.payload); |
| 779 | - detailPane.show(); | 779 | + showDetailPane(); |
| 780 | } | 780 | } |
| 781 | 781 | ||
| 782 | function showTraffic(data) { | 782 | function showTraffic(data) { |
| ... | @@ -901,9 +901,39 @@ | ... | @@ -901,9 +901,39 @@ |
| 901 | 901 | ||
| 902 | function cancelSummary() { | 902 | function cancelSummary() { |
| 903 | sendMessage('cancelSummary', {}); | 903 | sendMessage('cancelSummary', {}); |
| 904 | - summaryPane.hide(); | 904 | + hideSummaryPane(); |
| 905 | } | 905 | } |
| 906 | 906 | ||
| 907 | + // encapsulate interaction between summary and details panes | ||
| 908 | + function showSummaryPane() { | ||
| 909 | + if (detailPane.isVisible()) { | ||
| 910 | + detailPane.down(summaryPane.show); | ||
| 911 | + } else { | ||
| 912 | + summaryPane.show(); | ||
| 913 | + } | ||
| 914 | + } | ||
| 915 | + | ||
| 916 | + function hideSummaryPane() { | ||
| 917 | + summaryPane.hide(function () { | ||
| 918 | + if (detailPane.isVisible()) { | ||
| 919 | + detailPane.up(); | ||
| 920 | + } | ||
| 921 | + }); | ||
| 922 | + } | ||
| 923 | + | ||
| 924 | + function showDetailPane() { | ||
| 925 | + if (summaryPane.isVisible()) { | ||
| 926 | + detailPane.down(detailPane.show); | ||
| 927 | + } else { | ||
| 928 | + detailPane.up(detailPane.show); | ||
| 929 | + } | ||
| 930 | + } | ||
| 931 | + | ||
| 932 | + function hideDetailPane() { | ||
| 933 | + detailPane.hide(); | ||
| 934 | + } | ||
| 935 | + | ||
| 936 | + | ||
| 907 | // request details for the selected element | 937 | // request details for the selected element |
| 908 | // invoked from selection of a single node. | 938 | // invoked from selection of a single node. |
| 909 | function requestDetails() { | 939 | function requestDetails() { |
| ... | @@ -2191,7 +2221,7 @@ | ... | @@ -2191,7 +2221,7 @@ |
| 2191 | } | 2221 | } |
| 2192 | 2222 | ||
| 2193 | function emptySelect() { | 2223 | function emptySelect() { |
| 2194 | - detailPane.hide(); | 2224 | + hideDetailPane(); |
| 2195 | cancelTraffic(); | 2225 | cancelTraffic(); |
| 2196 | } | 2226 | } |
| 2197 | 2227 | ||
| ... | @@ -2697,6 +2727,30 @@ | ... | @@ -2697,6 +2727,30 @@ |
| 2697 | return 'translate('+((w-bdim)*.4)+','+((h-bdim)*.1)+')'; | 2727 | return 'translate('+((w-bdim)*.4)+','+((h-bdim)*.1)+')'; |
| 2698 | } | 2728 | } |
| 2699 | 2729 | ||
| 2730 | + function isF(f) { return $.isFunction(f) ? f : null; } | ||
| 2731 | + function noop() {} | ||
| 2732 | + | ||
| 2733 | + function augmentDetailPane() { | ||
| 2734 | + var dp = detailPane; | ||
| 2735 | + dp.ypos = { up: 64, down: 320, current: 320}; | ||
| 2736 | + | ||
| 2737 | + dp._move = function (y, cb) { | ||
| 2738 | + var endCb = isF(cb) || noop, | ||
| 2739 | + yp = dp.ypos; | ||
| 2740 | + if (yp.current !== y) { | ||
| 2741 | + yp.current = y; | ||
| 2742 | + dp.el.transition().duration(300) | ||
| 2743 | + .each('end', endCb) | ||
| 2744 | + .style('top', yp.current + 'px'); | ||
| 2745 | + } else { | ||
| 2746 | + endCb(); | ||
| 2747 | + } | ||
| 2748 | + }; | ||
| 2749 | + | ||
| 2750 | + dp.down = function (cb) { dp._move(dp.ypos.down, cb); }; | ||
| 2751 | + dp.up = function (cb) { dp._move(dp.ypos.up, cb); }; | ||
| 2752 | + } | ||
| 2753 | + | ||
| 2700 | // ============================== | 2754 | // ============================== |
| 2701 | // View registration | 2755 | // View registration |
| 2702 | 2756 | ||
| ... | @@ -2710,6 +2764,7 @@ | ... | @@ -2710,6 +2764,7 @@ |
| 2710 | 2764 | ||
| 2711 | summaryPane = onos.ui.addFloatingPanel('topo-summary'); | 2765 | summaryPane = onos.ui.addFloatingPanel('topo-summary'); |
| 2712 | detailPane = onos.ui.addFloatingPanel('topo-detail'); | 2766 | detailPane = onos.ui.addFloatingPanel('topo-detail'); |
| 2767 | + augmentDetailPane(); | ||
| 2713 | oiBox = onos.ui.addFloatingPanel('topo-oibox', 'TL'); | 2768 | oiBox = onos.ui.addFloatingPanel('topo-oibox', 'TL'); |
| 2714 | oiBox.width(20); | 2769 | oiBox.width(20); |
| 2715 | 2770 | ... | ... |
-
Please register or login to post a comment