Add AsyncServerTree (#11838)

* wip

* Fixes

* More fixes

* more fixes

* Disable when preview features disabled

* remove unused imports

* Handle promises

* PR feedback

* Single default ServerGroup color value
This commit is contained in:
Charles Gagnon
2020-08-19 14:01:10 -07:00
committed by GitHub
parent d2e4eeac88
commit 3c538d1c2d
37 changed files with 1654 additions and 506 deletions

View File

@@ -18,13 +18,14 @@ import {
} from 'sql/workbench/services/objectExplorer/browser/connectionTreeAction';
import { IObjectExplorerService } from 'sql/workbench/services/objectExplorer/browser/objectExplorerService';
import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
import { ITree } from 'vs/base/parts/tree/browser/tree';
import { ViewPane, IViewPaneOptions } from 'vs/workbench/browser/parts/views/viewPaneContainer';
import { IViewDescriptorService } from 'vs/workbench/common/views';
import { IOpenerService } from 'vs/platform/opener/common/opener';
import { IThemeService } from 'vs/platform/theme/common/themeService';
import { ILogService } from 'vs/platform/log/common/log';
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
import { ITree } from 'vs/base/parts/tree/browser/tree';
import { AsyncServerTree } from 'sql/workbench/services/objectExplorer/browser/asyncServerTree';
export class ConnectionViewletPanel extends ViewPane {
@@ -82,7 +83,7 @@ export class ConnectionViewletPanel extends ViewPane {
this._root = container;
}
get serversTree(): ITree {
get serversTree(): ITree | AsyncServerTree {
return this._serverTreeView.tree;
}

View File

@@ -4,7 +4,8 @@
*--------------------------------------------------------------------------------------------*/
/* --- Registered servers tree viewlet --- */
.server-explorer-viewlet .monaco-tree .monaco-tree-row .content .server-group {
.server-explorer-viewlet .monaco-tree .monaco-tree-row .content .server-group,
.server-explorer-viewlet .monaco-list .monaco-list-row .content .server-group {
cursor: default;
width: 100%;
display: flex;
@@ -15,7 +16,13 @@
.server-explorer-viewlet:lang(zh-Hans) .monaco-tree .monaco-tree-row .server-group,
.server-explorer-viewlet:lang(zh-Hant) .monaco-tree .monaco-tree-row .server-group,
.server-explorer-viewlet:lang(ja) .monaco-tree .monaco-tree-row .server-group,
.server-explorer-viewlet:lang(ko) .monaco-tree .monaco-tree-row .server-group { font-weight: normal; }
.server-explorer-viewlet:lang(ko) .monaco-tree .monaco-tree-row .server-group,
.server-explorer-viewlet:lang(zh-Hans) .monaco-list .monaco-list-row .server-group,
.server-explorer-viewlet:lang(zh-Hant) .monaco-list .monaco-list-row .server-group,
.server-explorer-viewlet:lang(ja) .monaco-list .monaco-list-row .server-group,
.server-explorer-viewlet:lang(ko) .monaco-list .monaco-list-row .server-group {
font-weight: normal;
}
/* High Contrast Theming */
.monaco-workbench.hc-black .server-explorer-viewlet .server-group {
@@ -48,14 +55,19 @@
/* Add space beneath the button */
.new-connection .monaco-text-button {
margin-bottom: 2px;
margin-bottom: 2px;
}
/* display action buttons on hover */
.server-explorer-viewlet .monaco-tree .monaco-tree-row > .content {
.server-explorer-viewlet .monaco-tree .monaco-tree-row > .content,
.server-explorer-viewlet .monaco-list .monaco-list-row {
display: flex;
}
.server-explorer-viewlet .monaco-tl-row {
width: 100%;
}
/* Added to display the tree in connection dialog */
.server-explorer-viewlet {
height: 100%;
@@ -74,7 +86,9 @@ margin-bottom: 2px;
/* OE and connection element group */
.monaco-tree .monaco-tree-rows > .monaco-tree-row > .content > .connection-tile,
.monaco-tree .monaco-tree-rows > .monaco-tree-row > .content > .object-element-group {
.monaco-tree .monaco-tree-rows > .monaco-tree-row > .content > .object-element-group,
.monaco-list .monaco-list-rows > .monaco-list-row .connection-tile,
.monaco-list .monaco-list-rows > .monaco-list-row .object-element-group {
padding-left: 5px;
padding-right: 5px;
padding-top: 3px;
@@ -84,26 +98,33 @@ margin-bottom: 2px;
/* OE and connection label */
.monaco-tree .monaco-tree-rows > .monaco-tree-row > .content > .connection-tile > .label,
.monaco-tree .monaco-tree-rows > .monaco-tree-row > .content > .object-element-group > .label {
.monaco-tree .monaco-tree-rows > .monaco-tree-row > .content > .object-element-group > .label,
.monaco-list .monaco-list-rows > .monaco-list-row .connection-tile > .label,
.monaco-list .monaco-list-rows > .monaco-list-row .object-element-group > .label {
text-overflow: ellipsis;
overflow: hidden;
}
/* OE and connection icon */
.monaco-tree .monaco-tree-rows > .monaco-tree-row > .content > .connection-tile > .icon,
.monaco-tree .monaco-tree-rows > .monaco-tree-row > .content > .object-element-group > .icon {
.monaco-tree .monaco-tree-rows > .monaco-tree-row > .content > .object-element-group > .icon,
.monaco-list .monaco-list-rows > .monaco-list-row .connection-tile > .icon,
.monaco-list .monaco-list-rows > .monaco-list-row .object-element-group > .icon {
float: left;
height: 16px;
width: 16px;
padding-right: 10px;
}
.monaco-tree .monaco-tree-rows > .monaco-tree-row > .content > .connection-tile > .icon.server-page {
.monaco-tree .monaco-tree-rows > .monaco-tree-row > .content > .connection-tile > .icon.server-page,
.monaco-list .monaco-list-rows > .monaco-list-row .connection-tile > .icon.server-page {
background: url('default_server.svg') center center no-repeat;
}
.vs-dark .monaco-tree .monaco-tree-rows > .monaco-tree-row > .content > .connection-tile > .icon.server-page,
.hc-black .monaco-tree .monaco-tree-rows > .monaco-tree-row > .content > .connection-tile > .icon.server-page{
.hc-black .monaco-tree .monaco-tree-rows > .monaco-tree-row > .content > .connection-tile > .icon.server-page,
.vs-dark .monaco-list .monaco-list-rows > .monaco-list-row .connection-tile > .icon.server-page,
.hc-black .monaco-list .monaco-list-rows > .monaco-list-row .connection-tile > .icon.server-page {
background: url('default_server_inverse.svg') center center no-repeat;
}
@@ -118,11 +139,40 @@ margin-bottom: 2px;
left: -35px;
}
.monaco-tree .monaco-tree-rows.show-twisties > .monaco-tree-row.expanded.has-children > .content.server-group:before {
.monaco-list .connection-tile > .icon.server-page::after {
position: absolute;
height: 0.25rem;
width: 0.25rem;
top: 14px;
left: 45px;
border-radius: 100%;
content:"";
font-size: 100%;
line-height: 100%;
color:white;
text-align:center;
vertical-align:middle;
}
/* Connected badge */
.monaco-list .connection-tile > .icon.server-page.connected::after {
border: 0.12rem solid rgba(59, 180, 74, 100%);
background: rgba(59, 180, 74, 100%);
}
/* Disconnected badge */
.monaco-list .connection-tile > .icon.server-page.disconnected::after {
border: 0.12rem solid rgba(208, 46, 0, 100%);
background: rgba(255, 255, 255, 80%);
}
.monaco-tree .monaco-tree-rows.show-twisties > .monaco-tree-row.expanded.has-children > .content.server-group:before,
.monaco-list .monaco-list-rows.show-twisties > .monaco-list-row.expanded.has-children > .content.server-group:before {
background: url('expanded-dark.svg') 50% 50% no-repeat;
}
.monaco-tree .monaco-tree-rows.show-twisties > .monaco-tree-row.has-children > .content.server-group:before {
.monaco-tree .monaco-tree-rows.show-twisties > .monaco-tree-row.has-children > .content.server-group:before,
.monaco-list .monaco-list-rows.show-twisties > .monaco-list-row.has-children > .content.server-group:before {
background: url('collapsed-dark.svg') 50% 50% no-repeat;
}