Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/sessions/contrib/files/browser/filesView.ts
13401 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import './media/filesView.css';
7
import * as dom from '../../../../base/browser/dom.js';
8
import { IContextMenuService } from '../../../../platform/contextview/browser/contextView.js';
9
import { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';
10
import { IViewPaneLocationColors, IViewPaneOptions, ViewPane } from '../../../../workbench/browser/parts/views/viewPane.js';
11
import { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';
12
import { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';
13
import { IViewDescriptorService } from '../../../../workbench/common/views.js';
14
import { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';
15
import { IOpenerService } from '../../../../platform/opener/common/opener.js';
16
import { IThemeService } from '../../../../platform/theme/common/themeService.js';
17
import { IHoverService } from '../../../../platform/hover/browser/hover.js';
18
import { agentsPanelBackground } from '../../../common/theme.js';
19
import { ExplorerView } from '../../../../workbench/contrib/files/browser/views/explorerView.js';
20
import { Codicon } from '../../../../base/common/codicons.js';
21
import { ThemeIcon } from '../../../../base/common/themables.js';
22
import { localize } from '../../../../nls.js';
23
24
const $ = dom.$;
25
26
export const SESSIONS_FILES_VIEW_ID = 'sessions.files.explorer';
27
export const SESSIONS_FILES_EMPTY_VIEW_ID = 'sessions.files.explorer.empty';
28
29
export class SessionsExplorerView extends ExplorerView {
30
protected override getLocationBasedColors(): IViewPaneLocationColors {
31
const colors = super.getLocationBasedColors();
32
return {
33
...colors,
34
background: agentsPanelBackground,
35
listOverrideStyles: {
36
...colors.listOverrideStyles,
37
listBackground: agentsPanelBackground,
38
}
39
};
40
}
41
}
42
43
export class SessionsExplorerEmptyView extends ViewPane {
44
constructor(
45
options: IViewPaneOptions,
46
@IKeybindingService keybindingService: IKeybindingService,
47
@IContextMenuService contextMenuService: IContextMenuService,
48
@IConfigurationService configurationService: IConfigurationService,
49
@IContextKeyService contextKeyService: IContextKeyService,
50
@IViewDescriptorService viewDescriptorService: IViewDescriptorService,
51
@IInstantiationService instantiationService: IInstantiationService,
52
@IOpenerService openerService: IOpenerService,
53
@IThemeService themeService: IThemeService,
54
@IHoverService hoverService: IHoverService
55
) {
56
super(options, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, hoverService);
57
}
58
59
protected override renderBody(container: HTMLElement): void {
60
super.renderBody(container);
61
62
const bodyContainer = dom.append(container, $('.files-empty-view-body'));
63
const welcomeContainer = dom.append(bodyContainer, $('.files-empty-welcome'));
64
65
const welcomeIcon = dom.append(welcomeContainer, $('.files-empty-welcome-icon'));
66
welcomeIcon.classList.add(...ThemeIcon.asClassNameArray(Codicon.files));
67
68
const welcomeMessage = dom.append(welcomeContainer, $('.files-empty-welcome-message'));
69
welcomeMessage.textContent = localize('filesView.noFiles', "Folders and files will appear here.");
70
}
71
}
72
73