Ticket #18610

軸のスケールを対数表示にした後でリニアに戻すと、折れ線の一部がマウスでクリックしても反応しなくなる

Open Date: 2009-09-09 11:25 Last Update: 2010-11-24 10:17

Reporter:
Owner:
Type:
Status:
Closed
Component:
(None)
MileStone:
(None)
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
Fixed
File:
None

Details

軸のスケールを対数に設定した後で再びリニアに戻すと、折れ線の一部をマウスでクリックしても、折れ線データ全体を選択できなくなる。

以下に再現方法を示す。

1.下記のデータを読み込ませて、スカラー型XYの折れ線グラフを表示する。

0.0 1.0
1.0 0.75
2.0 0.50
3.0 0.25
4.0 -1.0
5.0 0.25
6.0 0.50
7.0 0.75
8.0 1.0

  折れ線上の任意の線分をマウスでクリックすると、折れ線全体が選択されて、折れ線上にアンカーが表示されることを確認する。

2.Y軸のプロパティダイアログを表示して、Y軸のスケールを対数に変更する。

  この操作により、上記データのX値の範囲 [3.0, 5.0] の間に存在する2本の線分は、その一部のY座標が負となるため、

  画面上には表示されなくなる。

  尚、このときも、画面上に表示されている線分をマウスでクリックすることで、折れ線全体が選択されてアンカーが

  表示されることを確認する。

3.再びY軸のプロパティダイアログを表示して、Y軸のスケールをリニアに変更する。

  この操作により、過程1の状態と同じように、折れ線の全ての線分が表示されることになる。

4.画面上に表示されている線分のうち、X値の範囲 [3.0, 5.0] の間に存在する2本の線分のいずれかをマウスでクリック

  すると、画面上には線分が表示されているにも関わらず、折れ線全体が選択されない。

Ticket History (3/3 Histories)

2009-09-09 11:25 Updated by: kuromaru
  • New Ticket "軸のスケールを対数表示にした後でリニアに戻すと、折れ線の一部がマウスでクリックしても反応しなくなる" created
2009-09-09 11:40 Updated by: kuromaru
  • Resolution Update from None to Fixed
Comment

折れ線のクラス SGElementGroupLine におけるバグでした。

折れ線を構成する各線分には、それが有効であるか無効であるかのフラグを持たせています。上記のクラスでは、折れ線の一部を構成する線分をマウスでクリックしたときに、その線分が有効であれば、折れ線全体を選択状態に設定するという処理を行っています。

軸を対数スケールにした場合、例示したデータのように一部が欠けることがあり、そのような場合には該当する線分を非表示にするとともに、フラグを無効に設定しています。しかし、軸をリニアに設定したときに、全ての線分を有効に設定するという処理を忘れていたため、対数スケールで一度は無効に設定した線分を再び画面上に再表示したとき、その線分をマウスでクリックした場合でも無効と判定され、結果的に折れ線の選択処理が行われていませんでした。

尚、クリックに反応しないということは、左シングルクリックによる選択のみならず、ダブルクリックによるプロパティダイアログの表示や、右クリックによるポップアップメニューの表示も出来ないということです。

対策として、軸をリニアに設定したときには、全ての線分を有効にするという処理を付け加えました。これにより、軸のスケールに関わらず、画面上に表示されている全ての線分に対して、マウスクリックが有効となります。

修正したソースコードはCVSにコミット済みです。

2010-11-24 10:17 Updated by: kuromaru
  • Status Update from Open to Closed
  • Ticket Close date is changed to 2010-11-24 10:17
Comment

バージョン 2.0.0 のリリースに伴い close します。

Attachment File List

No attachments

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login