/********************************************************************************
* Copyright (C) 2018 Red Hat, Inc. and others.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the Eclipse
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
* with the GNU Classpath Exception which is available at
* https://www.gnu.org/software/classpath/license.html.
*
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
********************************************************************************/
///
import { Message } from '@phosphor/messaging';
import { PreferencesMenuFactory } from './preferences-menu-factory';
import { PreferencesDecorator } from './preferences-decorator';
import { DockPanel, SplitPanel, Widget } from '@phosphor/widgets';
import { ApplicationShell, ContextMenuRenderer, PreferenceSchemaProvider, PreferenceScope, PreferenceService, Saveable, TreeModel, TreeNode, TreeProps, TreeWidget, WidgetManager } from '@devpodio/core/lib/browser';
import { UserPreferenceProvider } from './user-preference-provider';
import { WorkspacePreferenceProvider } from './workspace-preference-provider';
import { PreferencesEditorWidget } from './preference-editor-widget';
import { EditorManager } from '@devpodio/editor/lib/browser';
import { DisposableCollection, Emitter, Event, MessageService } from '@devpodio/core';
import { FileSystem } from '@devpodio/filesystem/lib/common';
import { WorkspaceService } from '@devpodio/workspace/lib/browser/workspace-service';
export declare class PreferencesContainer extends SplitPanel implements ApplicationShell.TrackableWidgetProvider, Saveable {
static ID: string;
protected treeWidget: PreferencesTreeWidget | undefined;
protected editorsContainer: PreferencesEditorsContainer;
private currentEditor;
private readonly editors;
private deferredEditors;
protected readonly onDirtyChangedEmitter: Emitter;
readonly onDirtyChanged: Event;
protected readonly onDidChangeTrackableWidgetsEmitter: Emitter;
readonly onDidChangeTrackableWidgets: Event;
protected readonly toDispose: DisposableCollection;
protected readonly widgetManager: WidgetManager;
protected readonly shell: ApplicationShell;
protected readonly messageService: MessageService;
protected readonly preferenceService: PreferenceService;
protected readonly workspaceService: WorkspaceService;
protected _preferenceScope: PreferenceScope;
protected init(): void;
dispose(): void;
readonly autoSave: 'on' | 'off';
readonly dirty: boolean;
save(): void;
getTrackableWidgets(): Promise;
preferenceScope: PreferenceScope;
protected onAfterAttach(msg: Message): Promise;
protected onActivateRequest(msg: Message): void;
protected onCloseRequest(msg: Message): void;
activatePreferenceEditor(preferenceScope: PreferenceScope): Promise;
private doActivatePreferenceEditor;
protected handleEditorsChanged(): void;
private refreshFoldersPreferencesEditor;
}
export declare class PreferencesEditorsContainer extends DockPanel {
protected readonly workspaceService: WorkspaceService;
protected readonly fileSystem: FileSystem;
static ID: string;
protected readonly editorManager: EditorManager;
protected readonly userPreferenceProvider: UserPreferenceProvider;
protected readonly workspacePreferenceProvider: WorkspacePreferenceProvider;
private userPreferenceEditorWidget;
private workspacePreferenceEditorWidget;
private foldersPreferenceEditorWidget;
private readonly onInitEmitter;
readonly onInit: Event;
private readonly onEditorChangedEmitter;
readonly onEditorChanged: Event;
private readonly onFolderPreferenceEditorUriChangedEmitter;
readonly onFolderPreferenceEditorUriChanged: Event;
protected readonly toDispose: DisposableCollection;
constructor(workspaceService: WorkspaceService, fileSystem: FileSystem);
dispose(): void;
onCloseRequest(msg: Message): void;
onUpdateRequest(msg: Message): void;
protected onAfterAttach(msg: Message): Promise;
protected getUserPreferenceEditorWidget(): Promise;
refreshWorkspacePreferenceEditor(): Promise;
protected getWorkspacePreferenceEditorWidget(): Promise;
readonly activeFolder: string | undefined;
refreshFoldersPreferencesEditorWidget(currentFolder: string | undefined): Promise;
closeFoldersPreferenceEditorWidget(): void;
protected getFoldersPreferencesEditor(folder: string | undefined): Promise;
private getFolderSettingsUri;
activatePreferenceEditor(preferenceScope: PreferenceScope): void;
private getPreferenceEditorCaption;
}
export declare class PreferencesTreeWidget extends TreeWidget {
readonly model: TreeModel;
protected readonly treeProps: TreeProps;
protected readonly contextMenuRenderer: ContextMenuRenderer;
protected readonly preferenceSchemaProvider: PreferenceSchemaProvider;
static ID: string;
private activeFolderUri;
private preferencesGroupNames;
private readonly properties;
private readonly onPreferenceSelectedEmitter;
readonly onPreferenceSelected: Event<{
[key: string]: string;
}>;
protected readonly toDispose: DisposableCollection;
protected readonly preferencesMenuFactory: PreferencesMenuFactory;
protected readonly preferenceService: PreferenceService;
protected readonly decorator: PreferencesDecorator;
protected constructor(model: TreeModel, treeProps: TreeProps, contextMenuRenderer: ContextMenuRenderer, preferenceSchemaProvider: PreferenceSchemaProvider);
dispose(): void;
protected onAfterAttach(msg: Message): void;
protected handleContextMenuEvent(node: TreeNode | undefined, event: React.MouseEvent): void;
protected handleClickEvent(node: TreeNode | undefined, event: React.MouseEvent): void;
protected handleEnter(event: KeyboardEvent): void;
private openContextMenu;
protected initializeModel(): void;
setActiveFolder(folder: string): void;
}
//# sourceMappingURL=preferences-tree-widget.d.ts.map