File tree Expand file tree Collapse file tree
extensions/ql-vscode/src/databases Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -124,3 +124,35 @@ const SelectableDbItemKinds = [
124124 DbItemKind . RemoteOwner ,
125125 DbItemKind . RemoteRepo ,
126126] ;
127+
128+ export function getSelectedDbItem ( dbItems : DbItem [ ] ) : DbItem | undefined {
129+ for ( const dbItem of dbItems ) {
130+ if (
131+ dbItem . kind === DbItemKind . RootRemote ||
132+ dbItem . kind === DbItemKind . RootLocal
133+ ) {
134+ for ( const child of dbItem . children ) {
135+ switch ( child . kind ) {
136+ case DbItemKind . LocalList :
137+ for ( const database of child . databases ) {
138+ if ( database . selected ) {
139+ return database ;
140+ }
141+ }
142+ break ;
143+ case DbItemKind . RemoteUserDefinedList :
144+ for ( const repo of child . repos ) {
145+ if ( repo . selected ) {
146+ return repo ;
147+ }
148+ }
149+ break ;
150+ default :
151+ if ( child . selected ) {
152+ return child ;
153+ }
154+ }
155+ }
156+ }
157+ }
158+ }
Original file line number Diff line number Diff line change @@ -2,7 +2,7 @@ import { App } from "../common/app";
22import { AppEvent , AppEventEmitter } from "../common/events" ;
33import { ValueResult } from "../common/value-result" ;
44import { DbConfigStore } from "./config/db-config-store" ;
5- import { DbItem } from "./db-item" ;
5+ import { DbItem , getSelectedDbItem } from "./db-item" ;
66import { createLocalTree , createRemoteTree } from "./db-tree-creator" ;
77
88export class DbManager {
@@ -18,6 +18,16 @@ export class DbManager {
1818 } ) ;
1919 }
2020
21+ public selectedDbItem ( ) : DbItem | undefined {
22+ const dbItems = this . getDbItems ( ) ;
23+
24+ if ( dbItems . isFailure ) {
25+ return undefined ;
26+ }
27+
28+ return getSelectedDbItem ( dbItems . value ) ;
29+ }
30+
2131 public getDbItems ( ) : ValueResult < DbItem [ ] > {
2232 const configResult = this . dbConfigStore . getConfig ( ) ;
2333 if ( configResult . isFailure ) {
You can’t perform that action at this time.
0 commit comments