やりたいことメモ

またまたやりたいことを殴り書き。

検索フォーム

前のやりたいこと殴り書きでも触れたけど、条件式指定可能な検索機能を実装したい。
検索式は「単なる文字列」or「S式」。
単なる文字列の場合は該当する単語をレコードに含んでいるもののみを抽出するインクリメンタルサーチ
S式が入力された場合はエンターキー押下で検索開始。
Ctrl+Fで検索式入力のテキストボックス(常に表示状態)にフォーカス移動。
確かjavascriptでもキーバインドフックできたはず。
別フォームを表示するのはいやだ。絶対使いにくいから。
あ、でもS式生成の為の入力支援フォームとかならいいかな。
ちなみに多分この件は一番後回しにされると思うw

ビュー機能

表示列、ソート順、フィルタ等をカスタマイズしたい。
gridパネルを使ってるので機能的には可能だと思う。

同じgridパネルで、グループ化が可能か?
  1. グループ化したい場合、別のgridパネルを生成する必要があるのか、
  2. それとも、インスタンスとしてのgridパネルは同一のものを使用し、表示列定義やソート、フィルタ設定だけ変更すれば表現が切り替わるのか。

これはgridパネルの機能について調査が必要。
それによって、ビューの実装の仕方が変わる。

コンセプトの確定。

どこまでユーザにカスタマイズを許すか、という観点で思想を統一する必要があるかも。
ビューをカスタマイズする機能を、decshee標準の機能として位置づける?
要検討。

カスタムコレクション作成機能

てゆーか、ビューだけじゃなくてマスタテーブル的なモノをGUIから生成する機能が欲しい。
どうせガンガンそういうの作らなきゃならなくなるんだから。
その機能にビューのカスタマイズ機能も持たせた方が自然だ。
機能名称は仮。(今のところ、アプリケーションサーバーはNextJSを使う予定なので、対象となるデータストレージがMongoDBになるだろうから「カスタムコレクション作成アドイン」て記載したけど、GUIも合わせて自動的に作るのが目的だからちょっと違う気がする。なので「仮」。)

構造は?

ベースとなるアドインの機能(一覧画面、レコード閲覧・編集画面、新規作成、保存、削除等の基本的な機能を持つ)をcommonに実装しておいて、カスタムコレクション作成アドインは「設定情報」に相当するソースコードを該当するaddinsフォルダに生成しておく。
カスタマイズで作られたのかどうかの判断はどうする?AddInController.jsに判定させりゃいいのかな。

気をつけること。

標準のレイアウトに似ても似つかないレベルで画面をカスタマイズしなければいけない案件が発生した際に、カスタマイズ性がスケールアウトしやすい設計になっていなければならない。(でないと地雷プラットフォームと化すぞ。)
まぁでも最悪のケースになったとしても今のMVC Application Architectureに従って実装すればいいのか。

アドインとして実装する?

その方が、decsheeのプラットフォームとしての独立性が保たれる気がする。
初期のEcpliseがJavaの開発環境として統合されていたのに、その後「コアとなるプラットフォーム」+「Java開発プラグイン」になったみたいな感じ。

まとめ

順序としては、

  1. gridパネルの調査
  2. その結果を受けてビュー機能を実装
  3. アプリケーションサーバーNextJSを導入
  4. ビュー機能を入れ込んだ状態で、カスタムコレクション作成機能をアドインとして実装

こんな感じかな。
大分ロードマップが見えてきたぞ。