うしブログ

うしブログ

趣味で運営する、GeoGebraの専門ブログ。

(作業メモ)StartPoint要検証(2行の場合;テキスト変更時未定義問題)

アプレットの最終変更日時を監視する

機能

アプレットの最終変更日時を監視して、アプレット下段に表示します。

現在のアプレットが、いつ時点のものかを管理する際に便利だと思われます。

f:id:usiblog:20180821063916g:plain

必要に応じて表示/非表示を切り替えることもできます。

 

導入方法

以下のスクリプトを、アプレットの「プリファレンス」画面中、「スクリプティング」タブの「グローバルJavaスクリプト」にコピペするだけです。

function ggbOnInit() {
  var xml = '<expression label=\"lastModified\" exp=\"&quot;Last Modified on -/-/- at -:-:- &quot;\"/>\n<element type=\"text\" label=\"lastModified\">\n<symbolic val=\"true\" />\n<show object=\"true\" label=\"false\" ev=\"8\"/>\n<objColor r=\"96\" g=\"96\" b=\"96\" alpha=\"0\"/>\n<layer val=\"3\"/>\n<labelMode val=\"0\"/>\n<font serif=\"false\" sizeM=\"0.7\" size=\"-5\" style=\"0\"/>\n<startPoint exp=\"Corner[1]\"/>\n<labelOffset x=\"9\" y=\"-13\"/>\n</element>'
  if(ggbApplet.getXML('lastModified')==""){
    ggbApplet.evalXML(xml);
  }
  ggbApplet.registerStoreUndoListener('updateText');
}

function updateText(){
  var cmdText = 'lastModified = GetTime[\"Last Modified on \\Y/\\m/\\d at \\G:\\i:\\s \\a\"]'
  ggbApplet.evalCommand(cmdText);
}

下図は、コピペし終わった状態の画面です。

f:id:usiblog:20180821061444p:plain

機能が有効になるのは、アプレットを再起動した後です。

再起動後、lastModified テキストオブジェクトが、アプレット左下に作成されます。再起動直後は、下図のように、「-」を用いた表示となります。

f:id:usiblog:20180821063011p:plain

アプレットに変更を加えるたびに、lastModified テキストオブジェクトが、現在時刻に更新されます。

f:id:usiblog:20180821063255g:plain

非表示にしたい場合は、数式ビューから、lastModified テキストオブジェクトを非表示に設定してください。

 

注意点

誤って、lastModified テキストオブジェクトを削除する操作をした場合、オブジェクトのスタイル(フォントサイズ、色、位置)がリセットされます。

スタイルがリセットされた場合は、手動でスタイルを設定してください。初期設定は、以下の通りです。

フォントサイズ:特小

色:5/8グレー

f:id:usiblog:20180821063548p:plain

位置(開始点):Corner[1]

f:id:usiblog:20180821063646p:plain

 

機能の解除方法

「グローバルJavaスクリプト」に記述した上記スクリプトをすべて削除し、下段の「OK」ボタンを押し、lastModified テキストオブジェクトを削除すれば、機能の解除が完了します。

(※「グローバルJavaスクリプト」に記述した上記スクリプトを残したまま、lastModified テキストオブジェクトを削除しようとしても、オブジェクトは消えません。機能を解除するには、必ず、スクリプトも削除してください。)