最終更新: 2014-05-24 14:16 作成時刻: 2014-05-18 12:48 RSS
ペイン個別の背景設定を可能にする

ステータス
優先度
マイルストーン

ペイン個別の背景設定を可能にする

2014-05-24
14:17 yu-tang によるコメント

回避策が見つかったため、個別ペインの背景設定機能を復活させます。

エラーの回避策:

    • UI をセットする前にハイライターを退避しておき、セット後に復元する。

以下は、ペイン単位の背景設定の仕様制限とします。

仕様制限:

    • ペインをスクロールすると、背景もスクロールします(そういうもの)。
    • 残像対策/不正描画対策として、不透明度は 1.0f(完全不透過)固定とします。
14:16 マイルストーンを version 0.3 に 変更しました (yu-tang)
14:11 ステータスを 未処理 に 変更しました (yu-tang)
2014-05-23
10:27 yu-tang によるコメント

さらに追記。

致命的な問題として、次のようなエラーで OmegaT プロジェクトを閉じられなくなる(ように見える)ケースがある。

12872: 情報: イベント:プロジェクトの変更 - CLOSE (LOG_INFO_EVENT_PROJECT_CHANGE) 12872: エラー: Uncatched exception in thread AWT-EventQueue-0 12872: エラー: java.lang.NullPointerException 12872: エラー: at javax.swing.text.DefaultHighlighter.removeAllHighlights(Unknown Source) 12872: エラー: at org.omegat.gui.editor.MarkerController.removeAll(MarkerController.java:128) 12872: エラー: at org.omegat.gui.editor.EditorController$1.onProjectChanged(EditorController.java:203)

おそらく、エディターに新しい UI をインストールする時にその前に設定されたマーカーが破棄されて、閉じるときにエラーが発生しているんじゃないかという感じ。

SetUI による画像の設定は、個別のペインについてはしない方が無難。

03:19 ステータスを 処理済 に 変更しました (yu-tang)
03:19 yu-tang によるコメント

技術的な問題があるため、チケットをキャンセルします。

ペイン個別に背景を設定すること自体は可能なのですが、具体的に以下のような問題が発生します。

  • ペインをスクロールすると、背景もスクロールしてしまう(なるほど、そうなるのか…)
  • クリックした場所にキャレットの残像が残ることがある
  • 背景に不透明度を設定していた場合、選択範囲内だけ完全に不透明の状態で描画される

これらの問題を回避する一案としては、対象ペインの背景を透明化した上で、RootPane の方に背景画像を部分適用しておく方法を挙げられます。

ただしペインのサイズ変更や最小化/復元などに描画を追随させねばならず、実装が複雑になりすぎるきらいがあります。

かと言って今のところ他の案も浮かばないため、チケットの重要度とコストを天秤にかけた結果、キャンセルとします。

何か妙案が出たら、復活させる可能性はあります。

2014-05-18
12:48 チケット(#50238) ペイン個別の背景設定を可能にする を作成しました (yu-tang)