STVI:「sted formatのための 構造化支援ツール」 説明書
第1版 1999.12.31
第2版 2000.01.06
第3版 2000.01.08
第4版 2000.01.09
第5版 2000.01.10
第6版 2000.01.14
第7版 2000.01.29
第8版 2000.02.02
1.特徴
本ツールは、"sted format"のファイルを扱います。
"sted format"は、行末や空白行にある半角のタブとスペース文字を
利用してテキストファイルを構造化するファイルフォーマットです。
"sted format"を最初に考案した松崎 暁氏が、このフォーマットを
扱うエディタとして「構造化エディタ」を開示されています。
"sted format"を扱うツールの外見や機能はいわゆるアウトライン
プロセッサです。けれども、"sted format"においてマークアップに
使用している行末や空白行にある半角のタブとスペース文字は、
視覚的に無意味でかつ編集可能なので、"sted format"のファイルは
通常のテキストエディタで表示、編集が可能です。
本ツールは、以下の問題解決のための機能を提供しています。
(1)テキストファイルの構造化支援
・一般のテキストファイルを"sted format"に加工する際に、
「セクション分割」「セクションの階層スライド」等の機能が
利用できます。
(2)セクションレベルでの編集
・ドラッグ&ドロップによるセクション移動が可能です。
・空のセクションを追加でき、空のセクションに限り
タイトルの編集が可能です。
(3)複数ブックマーク対応
・複数行にブックマークを設定できます。
・順次移動、一覧からの選択による移動が可能です。
(4)ツリー開閉状態の保存
・セクションツリーの開閉状態を保存・再現できます。
・フォーカスセクションもサポートしています。
(5)タイトル行、ブックマーク行の強調表示機能
・タイトル行、ブックマーク行のフォントを個別に指定できます。
・テキストの背景の色指定が可能です。
本ツールには、セクション内のテキストを編集する機能がありません。
テキスト編集には、『構造化エディタ』をご使用下さい。
2.インストールとアンインストール
特にインストール作業は必要ありません。アンインストールの時は、解凍
したファイル全てと Windows ディレクトリの stvi.ini ファイルを削除して
ください。
3.使用方法
本ツールを使用する上で、わかりにくいと予想される点を中心に
使用方法の説明を行ないます。
目次
セクション構造の編集
セクションの分割
セクションの階層のスライド
セクションの移動
セクションの削除/復活
新規セクションの追加
セクション情報一覧
保存オプション
終了時オプション
改ページコード
ブックマーク
ツリーのオープン/クローズ
ツールバー
(1)メイン バー
(2)ブックマークバー
(3)ページフィードバー
(4)移動モードバー
(5)検索 バー
(6)セクション編集 バー
ステータスバー
フォント
背景色
タブ
ウインドウの分割方向
ショートカットキー
セクション構造の編集
本ツールでは、セクション構造を編集するためのさまざまな機能を
提供しています。
セクションの分割
キャレットのある行より前と、それ以降とにセクションを分割できます。
分割後のセクション構成は次の2つのどちらかを選択できます。
(1)後半の部分を前半のセクションと同レベルの次のセクションとして
分割をおこなう。
メニュー:[セクション][次のセクションへ切り出す]
ショートカットキー:[Shift]+[F10],テンキーの[/]
(2)後半の部分を前半のセクションの最初の子セクションとして
分割をおこなう。
メニュー:[セクション][子のセクションへ切り出す]
ショートカットキー:[Shift]+[F9],テンキーの[+]
セクション編集バーにも、同じ機能を有するボタンが付いています。
既存の"sted format"のファイルでは、あまり使い道がないと思いますが、
通常のテキストファイルを"sted format"に変換するのに便利な機能です。
分割後のセクションサイズは、「セクション一覧」ダイアログで確認すること
ができます。
セクションの階層のスライド
指定したセクションのレベルをスライドすることが可能です。
但し、自分の兄弟セクションと親セクションとの関係が壊れるような
スライドはできません。
この機能は、既存のテキストファイルを先頭から順に "sted format"のに
セクションに分割していく際に、分割後の後半のセクションのレベルを上
げるために必要と考え、実装しました。
たとえば、
1. ああああ
1−1 いいいい
2. うううう
という章構成の文章を順に分割していく際に、
「1.ああああ」と「1−1 いいいい」の間は親子分割でいいのですが、
「1−1 いいいい」と「2. うううう」の間は、分割後に
「2. うううう」のセクションレベルを上げる必要があります。
この操作が簡単に行なえます。
セクションの移動
ツリービュー上の、ドラッグ&ドロップ操作で、セクションの移動ができます。
ドラッグ先のセクションに対して、ドラッグされたセクションがどこに
挿入されるかは、「移動モード」で予め指定しておきます。
移動モードには、次の4つがあります。
・セクションの前に挿入
・セクションの次に挿入
・最初の子セクションとして挿入
・最後の子セクションとして挿入
移動モードは、[セクション][移動モード]メニューで選択します。
移動モードは[移動モード]ツールバーでも指定できます。
但し、子を持たない空セクション(emptyと表示された白いアイコンのノード)へ
Drag&Dropした場合には、Drag元のルートセクションが、Drop先のemptyセクション
の位置に置換され移動します。たとえば、(1)のセクションを(2)へDrag&Drop
すると次のようになります。
Drag&Drop前
始めに
第1章
第1節 ・・・(1)Drag元
§1.1.1
第2節
§1.2.1
第2章
empty ・・・(2)Drop先
Drag&Drop後
始めに
第1章
第2節
§1.2.1
第2章
第1節
§1.1.1
セクションの削除/復活
指定したセクションを削除したり、削除したセクションを元の
文章に組込んだりすることができます。
セクションの削除は、ツリービューにフォーカスがある場合には、
[セクション][セクション削除]メニュー、もしくは[DEL]キーで
実行できます。
また、フォーカスがテキストビューにある場合でも、
[ctrl]+[R]キーでセクションを削除できます。
[編集][削除セクション一覧]で削除セクション一覧ダイアログを
起動することにより削除したセクションを一覧表示できます。
このダイアログでセクションを指定し、[復活]ボタンを押すことで
指定されたセクションがもとの文章に組込まれます。
組込まれる場所は、現在表示中のセクションに対して
移動モードで指定された位置になります。
タイトル編集した空のセクションを削除した場合、
タイトル編集の操作は無効となり編集結果は失われます。
新規セクションの追加
本ツールでは新規セクションの追加が可能です。
「構造化エディタ」に実装されている
・子セクションを作成
・次にセクションを追加
・セクションを挿入
に加えて、
・自分とその弟セクションに対する親セクションを挿入
を実装しました。
新規セクションは、テキストが空のセクションなのでツリービューにおいて、
タイトルの編集が可能です。
セクション情報一覧
[セクション][セクション情報一覧]メニューの選択により
各セクションのタイトル、サイズ等の一覧を見ることができます。
列タイトルの[size]をクリックすると、サイズの大きいセクション順に
ソートされます。64k以上の大きさのセクションを分割して、
構造化エディタで扱えるようにしたい場合など便利です。
保存オプション
[編集][オプション]メニューでオプション・ダイアログが開きます。
このダイアログでファイルに保存する際に、次の情報をファイルに
含めるかどうかを指定できます。
(1)現在のツリーの開閉状態。
(2)フォーカスセクション
『構造化エディタ』と同様なファイル形式を得るには、
ツリー状態に関し、
・すべてクローズ状態で保存
を選択し、
フォーカスセクションに関し、
・指定しない
を選択して下さい。
終了時オプション
[編集][オプション]メニューでオプション・ダイアログが開きます。
このダイアログで現在表示中のドキュメントを、プログラム終了時に
どのように扱うかに関して、次の中から選択することが
できます。
・保存動作は、行なわない。
・保存を行なう。
・保存するか問い合わせる。
文書に変更があった場合のみ、保存動作は実行されます。
保存オプションの設定により、「文書が変更されたかの判断」は、
異なります。
改ページコード
本ツールには、各セクションの先頭に改ページコードを挿入する機能がありま
す。
[ctrl]+[L]を改ページコードとして認識する印刷ツール、テキストエディタ
等で印刷を行なうと、セクションの先頭で改ページを行なうことができます。
[セクション][改ページコード]メニューで、改ページコードの挿入/削除が可
能です。但し、先頭セクションに関しては、保存時に改ページコードは、挿入
していません。また、タイトル定義を行なわなかった空セクションに関しても
改ページコードは挿入しません。
すべてのセクションに改ページコードを挿入/削除したり、
あるツリーレベルのセクションにだけ改ページコードを付ける
といった処理が可能です。
ページフィード バーでも、同様な処理が可能です。
ブックマーク
本ツールでは、複数のブックマークを設定/保存することができます。
次のブックマークや前のブックマークに簡単に移動することができます。
また、最初または最後のブックマークにジャンプすることも可能です。
[ブックマーク][ブックマーク一覧]メニューを選択することで
ブックマーク一覧ダイアログを表示できます。ダイアログの一覧の中から
選択したブックマークへジャンプすることもできます。
ツリーのオープン/クローズ
ツリーのオープン/クローズを行なうためのメニューおよび
ショートカットキーを用意しています。
ツリーのオープンは
[表示][ツリー全開]メニューもしくは、
ショートカットキー[Shift]+[ESC]で実行されます。
ツリーのクローズは
[表示][ツリーをたたむ]メニューもしくは、
ショートカットキー[ESC]で実行されます。
ただし、ツリーのクローズ処理では現在表示中のセクションを表示するのに
必要なノードはクローズしません。
ツールバー
ツールバーには、以下のものがあります。
(1)メイン バー
(2)ブックマークバー
(3)ページフィードバー
(4)移動モードバー
(5)検索 バー
(6)セクション編集 バー
ツールバーは、マウスでドラッグ可能です。
ツールバーはウインドウの上下どちらかにドッキングさせることが
できます。また、フローティング状態で使用することも可能です。
[表示]メニューで、個々のツールバーの表示/非表示状態を
切替えることができます。
また、[表示][全ツールバー]メニューで、すべてのツールバーの
表示/非表示状態を切替えることができます。
(1)メイン バー
ボタン操作により以下の作業が可能です。
・既存のファイルを開く
・作業中のファイルを保存
・選択範囲をコピーしてクリップボードに保存
・右端で折り返す
・プログラムのバージョン、情報そして著作権を表示
(2)ブックマークバー
ボタン操作により以下の作業が可能です。
・最初のブックマークへ移動する
・前のブックマークへ移動する
・次のブックマークへ移動する
・最後のブックマークへ移動する
(3)ページフィードバー
ボタン操作により以下の作業が可能です。
・改ページコードを現在表示中のセクションの先頭に挿入/削除
・改ページコードをすべてのセクションの先頭に挿入
・改ページコードをすべてのセクションの先頭から削除
・改ページコードを現在表示中のセクションと
同一レベルのセクションすべての先頭に挿入
(4)移動モードバー
ボタン操作により移動の際のモードの指定が可能です。
・ドラッグ元のセクションをドラッグ先のセクションの
子セクションとするか、同一レベルのセクションとするかの
指定をします。
・兄セクションもしくは長子セクションとして移動する
モードを指定します。
・弟セクションもしくは末子セクションとして移動する
モードを指定します。
(5)検索 バー
ボタン操作により以下の作業が可能です。
・指定した文字列を検索します
・上方向に検索します
・下方向に検索します
・先頭セクションに移動します
・可視の最終セクションに移動します
・フォーカスセクションに移動します
(6)セクション編集 バー
ボタン操作により以下の作業が可能です。
・現在キャレットのある行をタイトル行に変更します。
・キャレット行以降を次のセクションに切り出す。
・キャレット行以降を子セクションとして切り出す。
・セクションレベルをスライドアップする
・セクションレベルをスライドダウンする
・子セクションレベルをスライドアップする
・子セクションを作成します
・次にセクションを追加します
・セクションを挿入します
・自分とその弟セクションに対する親セクションを挿入します。
ステータスバー
[表示][ステータスバー]メニューで、ステータスバーの
表示/非表示状態を切替えることができます。
ステータスバーの右には、セクション内でのキャレット位置が
表示されます。この場合の行数は表示上の行数です。
セクション内のキャレット位置は、行列ともに0からはじまります。
また、テキスト全体の行数および現在の行番号が表示されます。
この場合の行数は改行コードの数にのみ依存します。表示上の行数とは
必ずしも一致しません。
ファイル全体の中での行番号は1から始まります。
フォント
本ツールでは、ツリービュー、テキストビューにそれぞれ
別のフォントを指定することができます。
また、テキストビューの中で、タイトルおよびブックマーク行に
独自のフォントを指定できます。
ただし、タイトル行がブックマーク行に指定されている場合には、
その行はタイトル行のフォントで表示されます。
フォントの指定は、[表示][フォント]メニューで、
フォント選択ダイアログを開き、そこで行ないます。
背景色
[表示][背景色]メニューで、テキストビューの背景色を
指定するための「色の設定」ダイアログが開きます。
ここで背景色の指定ができます。
タブ
[表示][タブ]メニューで、「タブ文字のサイズを設定」ダイアログを
開き、タブ位置を、ポイント単位で指定することができます。
ちなみに [1 インチ] = [72 ポイント] です。
[n]ポイントの固定ピッチフォントを指定している場合、
8×[n]の値を設定すると「メモ帳」等のタブ位置と
ほぼ等しくなります。
ウインドウの分割方向
通常は、ツリービューの右にテキストビューが配置されていますが、
本ツールでは、ツリービューの下にテキストビューを配置することが
できます。
この切替えの指定は、[表示][分割方向]で「メインウインドウの分割方向」
ダイアログを開き、そこで行います。
ただし、この設定はすぐには反映されず本プログラムの次回の起動から
有効となります。
ショートカットキー
[ヘルプ][ショートカットキー]メニューで、
使用可能なショートカットキーの一覧を見ることができます。
選択可能なメニュー項目は、動作しますが、
これは、ショートカットキーのクイックリファレンスを
意識して用意したものです。
そのため、たとえば、ツリービューにフォーカスがあっても、
テキストビューのコピーメニューが有効でかつ実行すると、
ツリービューのコピー処理が行なわれるといった不具合もあり
ます。
将来的には、廃止される可能性があります。
4.構造化エディタとの互換性
本ツールは、作者が『構造化エディタ』で、もの足りなさを
感じた部分を(作者の能力の範囲内で)実装したものです。
また、プログラミング作業を楽しむことを主たる目的とした
部分もあるので、かなりばかげた機能も実装されています。
本ツールと構造化エディタの決定的違いは、本ツールには
テキスト編集機能がないということです。理由としては、
(1)テキスト編集機能に関して、『構造化エディタ』で満足していた。
(2)テキスト編集機能は、メモリ管理が大変そうだという先入観があった。
このため、似たようなものを作るメリットを見出せなかったからです。
以下、『構造化エディタ』Version 1.32との比較を列挙します。
目次
4−1 独自の機能
4−2 機能の相違
4−3 未実装機能
4−4 注意
4−1 独自の機能
(1)ひとつのセクションの大きさが64k以上の文書を扱うことができます。
(2)複数のブックマークが指定可能です。
(3)ツリービューの開閉状態を保存/再現できます。
(4)保存内容、終了時動作の選択ができます。
(5)セクションの先頭に改行記号を挿入することが可能です。
(6)現在、表示中のセクションの印刷が可能です。
(7)ツリービュー上のドロップ&ドラッグでセクション構成を編集できます。
(8)各セクションのタイトル、サイズの一覧を見ることができます。
(9)セクションの階層をスライドできます。
(10)表示テキストのない空セクションはツリービューでタイトル行の
編集ができます。空セクションかどうかは、アイコンで判断できます。
(11)親セクションの追加が可能です。
(12)サブセクションのソートが可能です。
(13)ウインドウを上下に分割して表示することができます。
(14)タイトル行、ブックマーク行に別のフォントを割り当てることができま
す。また、テキストビューの背景色の指定もできます。
(15)機能とショートカットキーの関係は、すべてメニューで確認できます。
4−2 機能の相違
(1)『構造化エディタ』では、構造化テキストでないファイルは全体を
一つのセクションとして読み込みます。
本ツールでは、構造化テキストでないファイルでも、空白とTAB文字だけ
からなる行があれば、そこで必ずセクション分割を行ないます。
(2)本ツールではタイトル行の変更にダイアログボックスは使用しません。
折り返しが有効/無効に関係なく[ctrl]+[K]で、キャレットのある行を
タイトル行に指定できます。
(3)ファイル全体の中でのカーソル位置をダイアログで表示する機能は
ありませんが、行番号は常にステータスバーに表示します。
(4)キャレットのある行から後を子セクションまたは弟セクションとして
セクション分割することが可能です。分割は行単位で行ないます。
テンキーの[/][+]で分割可能です。
『構造化エディタ』のように、キャレット位置から分割される訳では
ありません。また、選択部分をセクションとして切り出す機能は、
サポートしていません。
(5)[単語を選択]機能の動作が『構造化エディタ』と異なります。
本ツールではリッチエディットコントロール組み込みの機能をそのまま
使用しています。
(6)ツリービューの表示で『構造化エディタ』でUNTITLEDとツリービューに
表示されているセクションについて、本ツールでは下記のように
それぞれ区別して表示しています。
untitled:タイトル行の指定が無く、1行目が空行のセクション
branch:表示テキストがなく、子セクションを持つセクション
empty:表示テキストがなく、子セクションを持たないセクション
4−3 未実装機能
(1)本ツールは既存文書のセクションレベルでの編集作業に主眼を
おいているので、[新規作成]メニューは付けていません。
(2)[HTMLで保存]機能は未実装です。
(3)本ツールにはセクション内容の編集機能はありません。
唯一の例外は、セクション内容が空のセクションのタイトルを
ツリービューにおいて編集できることです。
(4)[元に戻す]、[ひとつ前に戻る]機能は未実装です。
(5)[仕上げ]機能は未実装です。
(6)「保存して実行」機能は未実装です。
(7)検索処理を行なうためには必ず、検索ダイアログを開く必要が
あります。『構造化エディタ』のような選択文字列を検索する
機能はありません。
(8)シフトキーを押しながら、ツリービューのセクションを
マウスでクリックしても、テキストビューにフォーカスは
移動しません。
(9)ツリービューには、タイトル行の内容をそのまま表示します。
先頭の空白やTABを省略することはしていません。
4−4 注意
(1)本ツールで、複数ブックマークを設定したファイルを
構造化エディタで保存し直すと、最初のブックマーク情報のみが
保存され他のブックマーク情報は記録されません。
(2)構造化エディタではツリーの開閉情報は保存・再現されません。
構造化エディタでは全て閉じた形で保存されます。
(3)改ページコードは、構造化エディタでは表示上は半角スペースの
ように見えます。
5.著作権
このプログラムはフリーウェアです。このソフトの著作権は作者である
津田 進にあります。このプログラムの使用に起因するいかなる事態も
責任を負いかねます。
内容の改変が無い限り、転載流通に関して制限はありません。
6.連絡先
作者へのバグ報告などの連絡先
stsuda@ss.iij4u.or.jp
本ソフトはフリーウエアですので、支払い義務は一切ありません。
使って頂けましたらそれだけで、うれしいです。
使用時の感想など、メールで送って頂けたらとてもうれしいです。
そして、カンパが頂けたら、それはそれはうれしいです。
作者へのカンパの振り込み先
郵便口座 … 記号 19050
番号 24021321
津田 進
銀行口座 … 富士銀行 札幌支店
普通預金
店番 813
口座番号 2367871
津田 進
・カンパは全額津田個人が今後の活動のために使用させて頂きます。
7.動作確認環境
動作確認は、次の環境で行ないました。
Microsoft Windows 95
4.00.950 B
IE 5 5.00.2314.1003
NEC
PC-9800
Pentium(r)
95.0MBのRAM
(VALUE STAR PC-9821 V166)
8.履歴
目次
2000/01/06 Version 1.0
2000/01/08 Version 1.10
2000/01/09 Version 1.11
2000/01/10 Version 1.12
2000/01/10 Version 1.13
2000/01/14 Version 1.14
2000/01/29 Version 1.15
2000/02/02 Version 1.16
2000/01/06 Version 1.0
・課題山積みのまま、とりあえず、完成。
2000/01/08 Version 1.10
・連続してファイルを読み込むと落ちるバグを修正
・空行でも選択状態にするとブックマークが設定できるバグの修正
・内部構造の大幅な変更
・[ファイル]メニューの「最新のファイル」を読み込んだ時、
そのディレクトリにチェンジするようにした。
2000/01/09 Version 1.11
・前回の内部構造の大幅な変更に伴い、改ページコードを全セクションに
・挿入/削除処理でエンバグしていた部分を修正
・[ファイル]メニューの「最新のファイル」を10個に増やす。
2000/01/10 Version 1.12
・セクションレベルのスライドアップ/ダウンでフォーカスが
行方不明になるバグの修正
・改ページコードの挿入でツリービューのアイコンを変更
・emptyセクションへのDrag&Dropを置換移動に仕様変更
・本ドキュメントの「セクションの移動」「改ページコード」の
・内容の追加修正。
・子セクションの格上げ(弟レベルにスライドアップ)機能追加
2000/01/10 Version 1.13
・ツリービューのアイコン表示に関してエンバグしていた部分の修正
2000/01/14 Version 1.14
・実行中のキャレット位置の保存処理の追加
・ウインドウへのファイルのDrag&Dropによるファイルオープン機能追加
・現在行取得処理の高速化
・起動時に「最新のファイル」ディレクトリにチェンジするようにした。
・「ツリーをたたむ」処理の開閉状態検出処理の修正
・Drag&Dropによるセクション移動で、自動的にスクロールする機能、
自動的にノードを開く機能をサポート
・Drag&Dropモードを[ESC]およびマウス右ボタンクリックでキャンセル
できるようにした。
・テキストビューのショートカットキー[Alt]+[→]/[←]による右/左
スクロールのサポート
・子セクションを連続作成した際に、ツリービューを右スクロールする
ようにした。
・ツリービューの選択状態のアイテムが、テキストビューにフォーカスの
ある時もハイライト表示のままだったバグを修正
・ファイル保存時にファイル名をステータスバーに表示するようにした。
・2パススキャンで構造解析を行なっているが、2スキャン目に、
読み込んだセクション数とそのセクションのタイトルを表示するようにした。
・上書き保存時に、マシン内のメモリの整理を行なうようにした。
・テキスト先頭の改ページ記号を保存するオプションを加えた。
・改ページコード設定/解除のボタンデザインを変更した。
・テキストビューで上下矢印を押し続けると、前後のセクションに
移動するようにした。
2000/01/29 Version 1.15
・検索 バーにボタンを追加。先頭、フォーカス、可視最終セクションへの
移動処理を追加
・内部的なオブジェクト整理
2000/02/02 Version 1.16
・検索 バーのボタン順序を変更。
・フォーカスセクションへの移動処理にショートカットキーを
割り当てた(Ctrl+テンキーの'-'VK_SUBTRACT)。
・先頭、フォーカス、可視最終セクションへの移動処理を
テキストビューにフォーカスのある時も可能にした。
・[セクション]メニューへの項目の追加
・ツールバー表示のエンバグ部分の修正
・ウインドウへのファイルのDrag&Dropのエンバグ部分の修正
9.関連ホームページ
津田 進:「構造化エディタに関する2,3のこと」
http://www.geocities.co.jp/SiliconValley/7963/
ここから本ツールの最新版がダウンロードできます。
松崎 暁氏:松崎 暁 HP
http://club.pep.ne.jp/~momotan
「構造化エディタ」の最新版がアップロードされる松崎 暁氏のホームページ
岡本 将吾氏:「構造化エディタ」を応援するページ
http://members.dencity.com/ShogoOkamoto/sted/index.html
構造化エディタメーリングリスト
http://members.dencity.com/ShogoOkamoto/sted/ml.html
10.バグリスト
(1)本ツールでは、改行コードは、MS-DOS形式("\r\n")のものだけ
扱っています。それ以外の改行コード(たとえば、単独の"\n")は
改行コードとして扱っていないので、表示上は改行している筈なのに
動作がおかしいといったことが起きる場合があります。
(2)ヘルプファイルは付いていません。
(3)タイトル行の先頭に[TAB]があるとツリービュー上で[・]が表示される。
(4)セクション削除の処理を行なった際に、2度ほど「不正な処理」で
強制終了しました。再現性が無いため、まだ、FIXできていません。
付録
目次
付録1 終了時保存動作
(1)ファイル読み込み時
(2)テキスト操作中
(3)編集終了時
判定手順
付録1 終了時保存動作
[編集][オプション]メニューでオプション・ダイアログを開き
ドキュメントの編集終了時に行なう処理を次の中から選択する
ことができます。
・保存動作は、行なわない。
・保存を行なう。
・保存するか問い合わせる。
ここでは、終了時の保存処理がどのような条件で行なわれるかに
ついて、説明します。
(1)ファイル読み込み時
ファイルを読み込んだ後で、次の状態を調べフラグを立てます。
[セクションが全て閉じているか]:(yes/no)
[フォーカスセクションが設定されているか]:(yes/no)
また、
[初期フォーカスセクション]
を保存します。
次のフラグの初期化を行ないます。
[セクション構造変更]:no
[マークアップ変更]:no
[ツリー開閉状態変更]:no
[テキスト変更]:no
(2)テキスト操作中
操作に応じてフラグを設定します。
[セクション構造変更]:yes
セクションの分割
セクションの階層のスライド
Drag&Dropによるセクションの移動
セクションの削除/復活
新規セクションの追加
子セクションのソート
[マークアップ変更]:yes
タイトル行の変更
ブックマークの設定/解除
改ページコードの挿入/削除
[ツリー開閉状態変更]:yes
ツリーの開閉操作
(マウス、キーボード、メニュー)
[テキスト変更]:yes
ツリービューでの空セクションのタイトル編集
(3)編集終了時
・保存動作は、行なわない。
この時は、何もせずに終了します。
・保存を行なう。
・保存するか問い合わせる。
この時は、保存の必要があるか無いか判定します。
保存の必要がある場合、それぞれの動作を行ないます。
保存の必要が無い場合、何もせずに終了します。
判定手順
●次のフラグのどれかがyesの場合、保存処理必要
[セクション構造変更]
[マークアップ変更]
[テキスト変更]
●「ツリー状態:現在の状態を保存」で
[ツリー開閉状態変更]:yesの時、保存処理必要
●「ツリー状態:すべてクローズ状態で保存」で
[セクションが全て閉じているか]:noの時、保存処理必要
●「フォーカスセクション:指定しない」で
[フォーカスセクションが設定されているか]:yesの時、
保存処理必要
●「フォーカスセクション:表示中のセクションを表示する」で
[初期フォーカスセクション]と
現在表示中のセクションが異なる場合、保存処理必要
※これ以外の場合は、保存処理は必要ではない。