From 2ec912c262b51fe9523ebf74d5062d0b9bbdab71 Mon Sep 17 00:00:00 2001 From: Shin'ya Ueoka Date: Tue, 14 May 2019 20:28:22 +0900 Subject: Mark keys as a clean archtecture --- src/content/usecases/MarkKeyUseCase.ts | 36 ++++++++++++++++++++++++++++++++++ src/content/usecases/MarkUseCase.ts | 8 ++++++-- 2 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 src/content/usecases/MarkKeyUseCase.ts (limited to 'src/content/usecases') diff --git a/src/content/usecases/MarkKeyUseCase.ts b/src/content/usecases/MarkKeyUseCase.ts new file mode 100644 index 0000000..c0aa655 --- /dev/null +++ b/src/content/usecases/MarkKeyUseCase.ts @@ -0,0 +1,36 @@ +import MarkKeyRepository, { MarkKeyRepositoryImpl } + from '../repositories/MarkKeyRepository'; + +export default class MarkKeyUseCase { + private repository: MarkKeyRepository; + + constructor({ + repository = new MarkKeyRepositoryImpl() + } = {}) { + this.repository = repository; + } + + isSetMode(): boolean { + return this.repository.isSetMode(); + } + + isJumpMode(): boolean { + return this.repository.isJumpMode(); + } + + enableSetMode(): void { + this.repository.enableSetMode(); + } + + disableSetMode(): void { + this.repository.disabeSetMode(); + } + + enableJumpMode(): void { + this.repository.enableJumpMode(); + } + + disableJumpMode(): void { + this.repository.disabeJumpMode(); + } +} diff --git a/src/content/usecases/MarkUseCase.ts b/src/content/usecases/MarkUseCase.ts index ec63f2b..530f141 100644 --- a/src/content/usecases/MarkUseCase.ts +++ b/src/content/usecases/MarkUseCase.ts @@ -51,11 +51,15 @@ export default class MarkUseCase { if (!pos) { throw new Error('Mark is not set'); } - let smooth = this.settingRepository.get().properties.smoothscroll; - this.scrollPresenter.scrollTo(pos.x, pos.y, smooth); + this.scroll(pos.x, pos.y); } } + scroll(x: number, y: number): void { + let smooth = this.settingRepository.get().properties.smoothscroll; + this.scrollPresenter.scrollTo(x, y, smooth); + } + private globalKey(key: string) { return (/^[A-Z0-9]$/).test(key); } -- cgit v1.2.3