mirror of
https://github.com/mathuo/dockview
synced 2025-02-21 23:55:44 +00:00
refactor: renaming
This commit is contained in:
parent
f26a1cd404
commit
b883e2fd31
@ -1,8 +1,8 @@
|
||||
import { DefaultGroupPanelView } from '../../dockview/defaultGroupPanelView';
|
||||
import { DockviewGroupPanel } from '../../dockview/dockviewGroupPanel';
|
||||
import { GroupPanel } from '../../groupview/groupviewPanel';
|
||||
import { IContentRenderer, ITabRenderer } from '../../groupview/types';
|
||||
|
||||
describe('defaultGroupPanelView', () => {
|
||||
describe('dockviewGroupPanel', () => {
|
||||
test('that dispose is called on content and tab renderers when present', () => {
|
||||
const contentMock = jest.fn<IContentRenderer, []>(() => {
|
||||
const partial: Partial<IContentRenderer> = {
|
||||
@ -23,7 +23,7 @@ describe('defaultGroupPanelView', () => {
|
||||
const content = new contentMock();
|
||||
const tab = new tabMock();
|
||||
|
||||
const cut = new DefaultGroupPanelView({
|
||||
const cut = new DockviewGroupPanel({
|
||||
content,
|
||||
tab,
|
||||
contentComponent: 'contentComponent',
|
||||
@ -55,7 +55,7 @@ describe('defaultGroupPanelView', () => {
|
||||
const content = new contentMock();
|
||||
const tab = new tabMock();
|
||||
|
||||
const cut = new DefaultGroupPanelView({
|
||||
const cut = new DockviewGroupPanel({
|
||||
content,
|
||||
tab,
|
||||
contentComponent: 'contentComponent',
|
||||
@ -91,7 +91,7 @@ describe('defaultGroupPanelView', () => {
|
||||
const content = new contentMock();
|
||||
const tab = new tabMock();
|
||||
|
||||
let cut = new DefaultGroupPanelView({
|
||||
let cut = new DockviewGroupPanel({
|
||||
content,
|
||||
tab,
|
||||
contentComponent: 'contentComponent',
|
@ -18,8 +18,8 @@ export class Watermark
|
||||
private group: GroupPanel | undefined;
|
||||
private params: GroupPanelPartInitParameters | undefined;
|
||||
|
||||
get id() {
|
||||
return 'watermark';
|
||||
get element() {
|
||||
return this._element;
|
||||
}
|
||||
|
||||
constructor() {
|
||||
@ -67,10 +67,6 @@ export class Watermark
|
||||
// noop
|
||||
}
|
||||
|
||||
toJSON() {
|
||||
return {};
|
||||
}
|
||||
|
||||
layout(_width: number, _height: number) {
|
||||
// noop
|
||||
}
|
||||
@ -92,8 +88,8 @@ export class Watermark
|
||||
this.render();
|
||||
}
|
||||
|
||||
get element() {
|
||||
return this._element;
|
||||
dispose() {
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
private render() {
|
||||
@ -102,8 +98,4 @@ export class Watermark
|
||||
);
|
||||
toggleClass(this.element, 'has-actions', isOneGroup);
|
||||
}
|
||||
|
||||
dispose() {
|
||||
super.dispose();
|
||||
}
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ import { DockviewPanel, IDockviewPanel } from './dockviewPanel';
|
||||
import { IDockviewComponent } from './dockviewComponent';
|
||||
import { createComponent } from '../panel/componentFactory';
|
||||
import { DefaultTab } from './components/tab/defaultTab';
|
||||
import { DefaultGroupPanelView } from './defaultGroupPanelView';
|
||||
import { DockviewPanelModel } from './dockviewPanelModel';
|
||||
import { DockviewApi } from '../api/component.api';
|
||||
|
||||
export interface IPanelDeserializer {
|
||||
@ -54,7 +54,7 @@ export class DefaultDockviewDeserialzier implements IPanelDeserializer {
|
||||
tab = new DefaultTab();
|
||||
}
|
||||
|
||||
const view = new DefaultGroupPanelView(
|
||||
const view = new DockviewPanelModel(
|
||||
this.layout,
|
||||
panelId,
|
||||
contentComponent,
|
||||
@ -65,11 +65,11 @@ export class DefaultDockviewDeserialzier implements IPanelDeserializer {
|
||||
panelId,
|
||||
this.layout,
|
||||
new DockviewApi(this.layout),
|
||||
group
|
||||
group,
|
||||
view
|
||||
);
|
||||
|
||||
panel.init({
|
||||
view,
|
||||
title: title || panelId,
|
||||
params: params || {},
|
||||
});
|
||||
|
@ -44,7 +44,7 @@ import {
|
||||
GroupviewDropEvent,
|
||||
} from '../groupview/groupview';
|
||||
import { GroupPanel, IGroupviewPanel } from '../groupview/groupviewPanel';
|
||||
import { DefaultGroupPanelView } from './defaultGroupPanelView';
|
||||
import { DockviewPanelModel } from './dockviewPanelModel';
|
||||
import { getPanelData } from '../dnd/dataTransfer';
|
||||
import { DockviewDropTargets } from '../groupview/dnd';
|
||||
|
||||
@ -660,7 +660,7 @@ export class DockviewComponent
|
||||
}
|
||||
} else if (this.watermark) {
|
||||
this.watermark.element.parentElement!.remove();
|
||||
this.watermark.dispose();
|
||||
this.watermark.dispose?.();
|
||||
this.watermark = null;
|
||||
}
|
||||
}
|
||||
@ -954,16 +954,21 @@ export class DockviewComponent
|
||||
const tabComponent =
|
||||
options.tabComponent || this.options.defaultTabComponent;
|
||||
|
||||
const view = new DefaultGroupPanelView(
|
||||
const view = new DockviewPanelModel(
|
||||
this,
|
||||
options.id,
|
||||
contentComponent,
|
||||
tabComponent
|
||||
);
|
||||
|
||||
const panel = new DockviewPanel(options.id, this, this._api, group);
|
||||
const panel = new DockviewPanel(
|
||||
options.id,
|
||||
this,
|
||||
this._api,
|
||||
group,
|
||||
view
|
||||
);
|
||||
panel.init({
|
||||
view,
|
||||
title: options.title || options.id,
|
||||
params: options?.params || {},
|
||||
});
|
||||
|
@ -11,11 +11,11 @@ import {
|
||||
import { GroupPanel } from '../groupview/groupviewPanel';
|
||||
import { CompositeDisposable, IDisposable } from '../lifecycle';
|
||||
import { IPanel, Parameters } from '../panel/types';
|
||||
import { IGroupPanelView } from './defaultGroupPanelView';
|
||||
import { IDockviewPanelModel } from './dockviewPanelModel';
|
||||
import { IDockviewComponent } from './dockviewComponent';
|
||||
|
||||
export interface IDockviewPanel extends IDisposable, IPanel {
|
||||
readonly view?: IGroupPanelView;
|
||||
readonly view: IDockviewPanelModel;
|
||||
readonly group: GroupPanel;
|
||||
readonly api: DockviewPanelApi;
|
||||
readonly title: string;
|
||||
@ -34,8 +34,6 @@ export class DockviewPanel
|
||||
private _group: GroupPanel;
|
||||
private _params?: Parameters;
|
||||
|
||||
private _view?: IGroupPanelView;
|
||||
|
||||
private _title: string;
|
||||
|
||||
get params(): Parameters | undefined {
|
||||
@ -50,15 +48,12 @@ export class DockviewPanel
|
||||
return this._group;
|
||||
}
|
||||
|
||||
get view(): IGroupPanelView | undefined {
|
||||
return this._view;
|
||||
}
|
||||
|
||||
constructor(
|
||||
public readonly id: string,
|
||||
accessor: IDockviewComponent,
|
||||
private readonly containerApi: DockviewApi,
|
||||
group: GroupPanel
|
||||
group: GroupPanel,
|
||||
readonly view: IDockviewPanelModel
|
||||
) {
|
||||
super();
|
||||
this._title = '';
|
||||
@ -80,7 +75,6 @@ export class DockviewPanel
|
||||
|
||||
public init(params: IGroupPanelInitParameters): void {
|
||||
this._params = params.params;
|
||||
this._view = params.view;
|
||||
|
||||
this.setTitle(params.title);
|
||||
|
||||
@ -98,8 +92,8 @@ export class DockviewPanel
|
||||
public toJSON(): GroupviewPanelState {
|
||||
return <GroupviewPanelState>{
|
||||
id: this.id,
|
||||
contentComponent: this.view?.contentComponent,
|
||||
tabComponent: this.view?.tabComponent,
|
||||
contentComponent: this.view.contentComponent,
|
||||
tabComponent: this.view.tabComponent,
|
||||
params:
|
||||
Object.keys(this._params || {}).length > 0
|
||||
? this._params
|
||||
|
@ -15,7 +15,7 @@ export interface SerializedGroupPanelView {
|
||||
content: { id: string };
|
||||
}
|
||||
|
||||
export interface IGroupPanelView extends IDisposable {
|
||||
export interface IDockviewPanelModel extends IDisposable {
|
||||
readonly contentComponent: string;
|
||||
readonly tabComponent?: string;
|
||||
readonly content: IContentRenderer;
|
||||
@ -26,7 +26,7 @@ export interface IGroupPanelView extends IDisposable {
|
||||
updateParentGroup(group: GroupPanel, isPanelVisible: boolean): void;
|
||||
}
|
||||
|
||||
export class DefaultGroupPanelView implements IGroupPanelView {
|
||||
export class DockviewPanelModel implements IDockviewPanelModel {
|
||||
private readonly _content: IContentRenderer;
|
||||
private readonly _tab: ITabRenderer;
|
||||
|
@ -681,7 +681,7 @@ export class Groupview extends CompositeDisposable implements IGroupview {
|
||||
}
|
||||
if (!this.isEmpty && this.watermark) {
|
||||
this.watermark.element.remove();
|
||||
this.watermark.dispose();
|
||||
this.watermark.dispose?.();
|
||||
this.watermark = undefined;
|
||||
this.tabsContainer.show();
|
||||
}
|
||||
@ -760,7 +760,7 @@ export class Groupview extends CompositeDisposable implements IGroupview {
|
||||
public dispose(): void {
|
||||
super.dispose();
|
||||
|
||||
this.watermark?.dispose();
|
||||
this.watermark?.dispose?.();
|
||||
|
||||
for (const panel of this.panels) {
|
||||
panel.dispose();
|
||||
|
@ -1,9 +1,6 @@
|
||||
import { IFrameworkPart } from '../panel/types';
|
||||
import { DockviewComponent } from '../dockview/dockviewComponent';
|
||||
import {
|
||||
GridviewPanelApi,
|
||||
GridviewPanelApiImpl,
|
||||
} from '../api/gridviewPanelApi';
|
||||
import { GridviewPanelApi } from '../api/gridviewPanelApi';
|
||||
import { Groupview, GroupOptions, IHeader } from './groupview';
|
||||
import { GridviewPanel, IGridviewPanel } from '../gridview/gridviewPanel';
|
||||
import { IDockviewPanel } from '../dockview/dockviewPanel';
|
||||
@ -20,8 +17,6 @@ export type IGroupviewPanelPublic = IGroupviewPanel;
|
||||
|
||||
export type GroupviewPanelApi = GridviewPanelApi;
|
||||
|
||||
class GroupviewApi extends GridviewPanelApiImpl implements GroupviewPanelApi {}
|
||||
|
||||
export class GroupPanel extends GridviewPanel implements IGroupviewPanel {
|
||||
private readonly _model: Groupview;
|
||||
|
||||
|
@ -10,18 +10,11 @@ import { DockviewApi } from '../api/component.api';
|
||||
import { GroupPanel } from './groupviewPanel';
|
||||
import { Event } from '../events';
|
||||
import {
|
||||
IGroupPanelView,
|
||||
IDockviewPanelModel,
|
||||
SerializedGroupPanelView,
|
||||
} from '../dockview/defaultGroupPanelView';
|
||||
} from '../dockview/dockviewPanelModel';
|
||||
import { Optional } from '../types';
|
||||
|
||||
export interface IRenderable {
|
||||
id: string;
|
||||
element: HTMLElement;
|
||||
onDidFocus?: Event<void>;
|
||||
onDidBlur?: Event<void>;
|
||||
}
|
||||
|
||||
export interface HeaderPartInitParameters {
|
||||
title: string;
|
||||
}
|
||||
@ -38,7 +31,11 @@ export interface GroupPanelContentPartInitParameters
|
||||
tab: ITabRenderer;
|
||||
}
|
||||
|
||||
export interface IWatermarkRenderer extends IPanel {
|
||||
export interface IWatermarkRenderer
|
||||
extends Optional<
|
||||
Omit<IPanel, 'id'>,
|
||||
'dispose' | 'update' | 'layout' | 'toJSON'
|
||||
> {
|
||||
readonly element: HTMLElement;
|
||||
init: (params: GroupPanelPartInitParameters) => void;
|
||||
updateParentGroup(group: GroupPanel, visible: boolean): void;
|
||||
@ -76,13 +73,6 @@ export interface WatermarkPartInitParameters {
|
||||
|
||||
// constructors
|
||||
|
||||
export interface PanelHeaderPartConstructor {
|
||||
new (): ITabRenderer;
|
||||
}
|
||||
export interface PanelContentPartConstructor {
|
||||
new (): IContentRenderer;
|
||||
}
|
||||
|
||||
export interface WatermarkConstructor {
|
||||
new (): IWatermarkRenderer;
|
||||
}
|
||||
@ -90,7 +80,7 @@ export interface WatermarkConstructor {
|
||||
export interface IGroupPanelInitParameters
|
||||
extends PanelInitParameters,
|
||||
HeaderPartInitParameters {
|
||||
view: IGroupPanelView;
|
||||
//
|
||||
}
|
||||
|
||||
export type GroupPanelUpdateEvent = PanelUpdateEvent<{
|
||||
@ -104,5 +94,5 @@ export interface GroupviewPanelState {
|
||||
tabComponent?: string;
|
||||
title?: string;
|
||||
params?: { [key: string]: any };
|
||||
view?: SerializedGroupPanelView; // depreciated
|
||||
view: SerializedGroupPanelView; // depreciated
|
||||
}
|
||||
|
@ -50,7 +50,6 @@ export * from './splitview/splitviewPanel';
|
||||
export * from './paneview/paneviewPanel';
|
||||
export * from './groupview/types';
|
||||
|
||||
export { Event } from './events';
|
||||
export {
|
||||
Position,
|
||||
positionToDirection,
|
||||
|
Loading…
Reference in New Issue
Block a user