Merge branch '90-api-enhancements' of https://github.com/mathuo/dockview into 79-new-documentation-website

This commit is contained in:
mathuo 2022-05-01 21:17:40 +01:00
commit ee3a1b4d4e
No known key found for this signature in database
GPG Key ID: C6EEDEFD6CA07281
5 changed files with 32 additions and 28 deletions

View File

@ -1,4 +1,5 @@
import {
DockviewDropEvent,
IDockviewComponent,
SerializedDockview,
} from '../dockview/dockviewComponent';
@ -71,6 +72,10 @@ export class SplitviewApi implements CommonApi<SerializedSplitview> {
return this.component.orientation;
}
get panels(): ISplitviewPanel[] {
return this.component.panels;
}
get onDidLayoutFromJSON(): Event<void> {
return this.component.onDidLayoutFromJSON;
}
@ -101,10 +106,6 @@ export class SplitviewApi implements CommonApi<SerializedSplitview> {
this.component.setVisible(panel, isVisible);
}
getPanels(): ISplitviewPanel[] {
return this.component.panels;
}
focus(): void {
this.component.focus();
}
@ -159,6 +160,10 @@ export class PaneviewApi implements CommonApi<SerializedPaneview> {
return this.component.width;
}
get panels(): IPaneviewPanel[] {
return this.component.panels;
}
get onDidLayoutChange(): Event<void> {
return this.component.onDidLayoutChange;
}
@ -192,8 +197,8 @@ export class PaneviewApi implements CommonApi<SerializedPaneview> {
constructor(private readonly component: IPaneviewComponent) {}
getPanels(): IPaneviewPanel[] {
return this.component.getPanels();
addPanel(options: AddPaneviewComponentOptions): IPaneviewPanel {
return this.component.addPanel(options);
}
removePanel(panel: IPaneviewPanel): void {
@ -216,10 +221,6 @@ export class PaneviewApi implements CommonApi<SerializedPaneview> {
this.component.layout(width, height);
}
addPanel(options: AddPaneviewComponentOptions): IPaneviewPanel {
return this.component.addPanel(options);
}
resizeToFit(): void {
this.component.resizeToFit();
}
@ -409,6 +410,10 @@ export class DockviewApi implements CommonApi<SerializedDockview> {
return this.component.onDidLayoutChange;
}
get onDidDrop(): Event<DockviewDropEvent> {
return this.component.onDidDrop;
}
get panels(): IGroupPanel[] {
return this.component.panels;
}

View File

@ -17,7 +17,7 @@ export interface SuppressClosableEvent {
* because it belongs to a groupview
*/
export interface DockviewPanelApi
extends Omit<GridviewPanelApi, 'setVisible' | 'visible'> {
extends Omit<GridviewPanelApi, 'setVisible' | 'isVisible'> {
readonly group: GroupviewPanel | undefined;
readonly isGroupActive: boolean;
readonly title: string;

View File

@ -115,10 +115,10 @@ export abstract class DraggablePaneviewPanel extends PaneviewPanel {
return;
}
const allPanels = containerApi.getPanels();
const allPanels = containerApi.panels;
const fromIndex = allPanels.indexOf(existingPanel);
let toIndex = containerApi.getPanels().indexOf(this);
let toIndex = containerApi.panels.indexOf(this);
if (
event.position === Position.Left ||

View File

@ -98,6 +98,7 @@ export interface IPaneviewComponent extends IDisposable {
readonly height: number;
readonly minimumSize: number;
readonly maximumSize: number;
readonly panels: IPaneviewPanel[];
readonly onDidAddView: Event<PaneviewPanel>;
readonly onDidRemoveView: Event<PaneviewPanel>;
readonly onDidDrop: Event<PaneviewDropEvent2>;
@ -109,7 +110,6 @@ export interface IPaneviewComponent extends IDisposable {
fromJSON(serializedPaneview: SerializedPaneview): void;
resizeToFit(): void;
focus(): void;
getPanels(): IPaneviewPanel[];
removePanel(panel: IPaneviewPanel): void;
getPanel(id: string): IPaneviewPanel | undefined;
movePanel(from: number, to: number): void;
@ -139,6 +139,10 @@ export class PaneviewComponent
private readonly _onDidRemoveView = new Emitter<PaneviewPanel>();
readonly onDidRemoveView = this._onDidRemoveView.event;
get panels(): PaneviewPanel[] {
return this.paneview.getPanes();
}
set paneview(value: Paneview) {
this._paneview = value;
@ -288,12 +292,8 @@ export class PaneviewComponent
return view;
}
getPanels(): PaneviewPanel[] {
return this.paneview.getPanes();
}
removePanel(panel: PaneviewPanel) {
const views = this.getPanels();
const views = this.panels;
const index = views.findIndex((_) => _ === panel);
this.paneview.removePane(index);
@ -305,7 +305,7 @@ export class PaneviewComponent
}
getPanel(id: string): PaneviewPanel | undefined {
return this.getPanels().find((view) => view.id === id);
return this.panels.find((view) => view.id === id);
}
layout(width: number, height: number): void {

View File

@ -73,7 +73,6 @@ export interface ISplitviewComponent extends IDisposable {
getPanel(id: string): ISplitviewPanel | undefined;
setActive(view: ISplitviewPanel, skipFocus?: boolean): void;
removePanel(panel: ISplitviewPanel, sizing?: Sizing): void;
setVisible(panel: ISplitviewPanel, visible: boolean): void;
movePanel(from: number, to: number): void;
}
@ -103,14 +102,14 @@ export class SplitviewComponent
private readonly _onDidLayoutChange = new Emitter<void>();
readonly onDidLayoutChange: Event<void> = this._onDidLayoutChange.event;
get options(): SplitviewComponentOptions {
return this._options;
}
get panels(): SplitviewPanel[] {
return this.splitview.getViews();
}
get options() {
return this._options;
}
get length(): number {
return this._panels.size;
}
@ -208,7 +207,7 @@ export class SplitviewComponent
this.splitview.moveView(from, to);
}
setVisible(panel: SplitviewPanel, visible: boolean): void {
setVisible(panel: SplitviewPanel, visible: boolean) {
const index = this.panels.indexOf(panel);
this.splitview.setViewVisible(index, visible);
}
@ -230,7 +229,7 @@ export class SplitviewComponent
}
}
removePanel(panel: SplitviewPanel, sizing?: Sizing): void {
removePanel(panel: SplitviewPanel, sizing?: Sizing) {
const disposable = this._panels.get(panel.id);
if (!disposable) {
@ -425,7 +424,7 @@ export class SplitviewComponent
this._onDidLayoutfromJSON.fire();
}
dispose(): void {
dispose() {
for (const [_, value] of this._panels.entries()) {
value.disposable.dispose();
value.value.dispose();