refactor: renaming

This commit is contained in:
mathuo 2023-03-01 21:29:40 +08:00
parent f26a1cd404
commit b883e2fd31
No known key found for this signature in database
GPG Key ID: C6EEDEFD6CA07281
10 changed files with 43 additions and 68 deletions

View File

@ -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',

View File

@ -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();
}
}

View File

@ -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 || {},
});

View File

@ -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 || {},
});

View File

@ -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

View File

@ -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;

View File

@ -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();

View File

@ -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;

View File

@ -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
}

View File

@ -50,7 +50,6 @@ export * from './splitview/splitviewPanel';
export * from './paneview/paneviewPanel';
export * from './groupview/types';
export { Event } from './events';
export {
Position,
positionToDirection,