Skip to content

Commit 5599d1b

Browse files
committed
#171 MoiveClipの変換処理の準備
1 parent aa4325f commit 5599d1b

5 files changed

Lines changed: 88 additions & 11 deletions

src/js/config/ConvertMovieClipConfig.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,12 @@ export const $CONVERT_CANCEL_BUTTON_ID: string = "convert-cancel-button";
1515
* @constant
1616
*/
1717
export const $CONVERT_MOVIE_CLIP_INPUT_ID: string = "convert-movie-clip-input";
18+
19+
/**
20+
* @description MovieClip変換ボタンのID
21+
* The ID of the MovieClip conversion button
22+
*
23+
* @type {string}
24+
* @constant
25+
*/
26+
export const $CONVERT_MOVIE_CLIP_BUTTON_ID: string = "convert-movie-clip-button";
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import { $CONVERT_MOVIE_CLIP_BUTTON_ID } from "@/config/ConvertMovieClipConfig";
2+
import { $getCurrentWorkSpace } from "@/core/application/CoreUtil";
3+
import { execute as convertMovieClipModalHideUseCase } from "./ConvertMovieClipModalHideUseCase";
4+
5+
/**
6+
* @description 指定の名前のMovieClipを作成して、選択中のDisplayObjectを配置
7+
* Create a MovieClip with the specified name and place the selected DisplayObject
8+
*
9+
* @return {Promise<void>}
10+
* @method
11+
* @public
12+
*/
13+
export const execute = async (event: PointerEvent): Promise<void> =>
14+
{
15+
const workspace = $getCurrentWorkSpace();
16+
const movieClip = workspace.scene;
17+
18+
// 選択中のDisplayObjectがない場合は処理を終了する
19+
if (!movieClip.selectedDepths.size) {
20+
return;
21+
}
22+
23+
const inputElement = document
24+
.getElementById($CONVERT_MOVIE_CLIP_BUTTON_ID) as HTMLInputElement;
25+
if (!inputElement || !inputElement.value) {
26+
return;
27+
}
28+
29+
// イベントの伝播を停止する
30+
event.stopPropagation();
31+
32+
// 指定の名前でMovieClipを作成
33+
const name = inputElement.value;
34+
35+
// todo
36+
37+
// モーダルを非表示にする
38+
convertMovieClipModalHideUseCase();
39+
40+
// inputを初期化
41+
inputElement.value = "";
42+
};
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import { execute as convertMovieClipModalHideUseCase } from "./ConvertMovieClipModalHideUseCase";
2+
3+
/**
4+
* @description ConvertMovieClipModalのキャンセルボタンのPointerDownイベント
5+
* PointerDown event for the cancel button of ConvertMovieClipModal
6+
*
7+
* @param {PointerEvent} event
8+
* @return {void}
9+
* @method
10+
* @public
11+
*/
12+
export const execute = (event: PointerEvent): void =>
13+
{
14+
// イベントの伝播を停止する
15+
event.stopPropagation();
16+
17+
// モーダルを非表示にする
18+
convertMovieClipModalHideUseCase();
19+
};

src/js/menu/application/ConvertMovieClipModal/usecase/ConvertMovieClipModalHideUseCase.ts

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,19 @@ import { execute as convertMovieClipModalChildInactiveService } from "../service
66
* @description MovieClipの変換エリアを非表示にする
77
* Hide the MovieClip's conversion area
88
*
9-
* @param {PointerEvent} event
109
* @return {void}
1110
* @method
1211
* @public
1312
*/
14-
export const execute = (event: PointerEvent): void =>
13+
export const execute = (): void =>
1514
{
16-
// 親のイベントを抑制する
17-
event.stopPropagation();
18-
19-
// 全ての子要素のactiveクラスを削除する
20-
convertMovieClipModalChildInactiveService();
21-
2215
const menu = $getMenu($CONVERT_MOVIE_CLIP_MODAL_NAME);
2316
if (!menu) {
2417
return;
2518
}
2619

20+
// 全ての子要素のactiveクラスを削除する
21+
convertMovieClipModalChildInactiveService();
22+
2723
menu.hide();
2824
};

src/js/menu/application/ConvertMovieClipModal/usecase/ConvertMovieClipModalInitializeRegisterEventUseCase.ts

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
import { EventType } from "@/tool/domain/event/EventType";
22
import { $CONVERT_MOVIE_CLIP_MODAL_NAME } from "@/config/MenuConfig";
3-
import { execute as convertMovieClipModalHideUseCase } from "./ConvertMovieClipModalHideUseCase";
3+
import { execute as convertMovieClipModalCancelPointerDownEventUseCase } from "./ConvertMovieClipModalCancelPointerDownEventUseCase";
44
import { execute as convertMovieClipModalChildPointerDownEventUseCase } from "./ConvertMovieClipModalChildPointerDownEventUseCase";
55
import { execute as convertMovieClipModalInputFocusInEventService } from "../service/ConvertMovieClipModalInputFocusInEventService";
66
import { execute as convertMovieClipModalInputFocusOutEventUseCase } from "../service/ConvertMovieClipModalInputFocusOutEventUseCase";
77
import { execute as convertMovieClipModalInputKeyPressEventService } from "../service/ConvertMovieClipModalInputKeyPressEventService";
8+
import { execute as convertMovieClipModalButtonPointerDownEventUseCase } from "./ConvertMovieClipModalButtonPointerDownEventUseCase";
89
import {
910
$CONVERT_CANCEL_BUTTON_ID,
10-
$CONVERT_MOVIE_CLIP_INPUT_ID
11+
$CONVERT_MOVIE_CLIP_INPUT_ID,
12+
$CONVERT_MOVIE_CLIP_BUTTON_ID
1113
} from "@/config/ConvertMovieClipConfig";
1214

1315
/**
@@ -42,7 +44,7 @@ export const execute = (): void =>
4244
.getElementById($CONVERT_CANCEL_BUTTON_ID);
4345
if (cancelButton) {
4446
cancelButton.addEventListener(EventType.POINTER_DOWN,
45-
convertMovieClipModalHideUseCase
47+
convertMovieClipModalCancelPointerDownEventUseCase
4648
);
4749
}
4850

@@ -60,4 +62,13 @@ export const execute = (): void =>
6062
convertMovieClipModalInputKeyPressEventService
6163
);
6264
}
65+
66+
// 変換ボタンのイベントを登録する
67+
const convertButton: HTMLElement | null = document
68+
.getElementById($CONVERT_MOVIE_CLIP_BUTTON_ID);
69+
if (convertButton) {
70+
convertButton.addEventListener(EventType.POINTER_DOWN,
71+
convertMovieClipModalButtonPointerDownEventUseCase
72+
);
73+
}
6374
};

0 commit comments

Comments
 (0)