操作
バグ #2578
完了Pleiadesが有効な場合にConfigruationダイアログの表示が崩れる
ステータス:
終了
優先度:
通常
担当者:
-
対象バージョン:
-
開始日:
2013/02/05
期日:
進捗率:
100%
予定工数:
説明
Pleiadesが有効な場合にConfigruationダイアログの表示が崩れる現象がある。
- Eclipse 3.8.1, win32 (32bit, 64bit)
- Eclipse 3.8.1, Mac OS X (64bit)
で再現。他のバージョンは未調査。
Pleiadesがない場合、いずれの場合もConfigurationダイアログは正しく表示される。
ファイル
n-ando さんが12年以上前に更新
原因¶
ConfigurationDialog.java において、ConfigurationSetから TabItem でタブを作成しているが、
- ConfigurationDialog::createTabFolder では、TabFolderとTabItemのみを生成
- TabItem.setText("default") でPleiadesによる翻訳が行われる
- このときTabItem.getText() では "デフォルト" という文字列が返ってくる
- ConfigurationDialog::selectConfigSet で選択されたタブのラベル文字列(翻訳済)をキーにConfigurationSetListの中からConfigurationSet
を探す - 見つかったものに対してcreateConfigSetCompositeでコントロールを生成するが、「見つからない」ので何も生成されない
- 空っぽのタブができる
方法1: translation-exclude-package.properties の変更¶
- eclipse/plugins/jp.sourceforge.mergedoc.pleiades/conf/translation-exclude-package.properties
に次の一行を加えるdefault=jp.go.aist.rtm.systemeditor
ただし、これは単純に "default" という文字列の翻訳を抑制するだけで、ConfigurationSet名にたとえば "file" というものがある場合、"ファイル" に翻訳されてしまう。
方法2: pleiades-config.xmlの変更¶
PleiadesのAOP設定ファイルを修正することで、得意のクラスの呼び出しに関連付けられた翻訳処理を抑制させることができる。
以下のパッチをpleiades-config.xmlに当てることで、Configurationダイアログに関する不具合は修正できた。
-- pleiades-config.xml.org 2013-02-06 17:48:38.444142000 +0900
+++ pleiades-config.xml 2013-02-06 22:56:00.168388045 +0900
@@ -346,7 +346,23 @@
<!-- 呼び出し元による除外 DBViewer 2009.01.08 -->
<excludeWhere
className="zigen.plugin"/>
+
+ <excludeWhere
+ className="jp.go.aist.rtm."/>
+
+ </jointPoint>
+ <!-- SWT TabItem for RTSystemEditor/RTCBuilder. moved from execution/before -->
+ <jointPoint className="org.eclipse.swt.widgets.TabItem" methodName="setText">
+ <excludeWhere className="jp.go.aist.rtm."/>
+ </jointPoint>
+ <!-- SWT Group for RTSystemEditor/RTCBuilder. moved from execution/before -->
+ <jointPoint className="org.eclipse.swt.widgets.Group" methodName="setText">
+ <excludeWhere className="jp.go.aist.rtm."/>
+ </jointPoint>
+ <!-- SWT Group for RTSystemEditor/RTCBuilder. moved from execution/before -->
+ <jointPoint className="org.eclipse.swt.widgets.Button" methodName="setText">
+ <excludeWhere className="jp.go.aist.rtm."/>
</jointPoint>
<!-- ハイパーリンク (Mylyn 初期値設定ウィザード) 2009.04.22 -->
@@ -680,6 +696,9 @@
<!-- 呼び出し元による除外(EMecha の新規作成ウィザード) 2009.01.03 -->
<excludeWhere
className="org.seasar.dbflute.emecha"/>
+
+ <excludeWhere
+ className="jp.go.aist.rtm."/>
</jointPoint>
@@ -832,11 +851,11 @@
OS によりシグネチャが異なる複数のメソッドがある場合があることに注意。例えば
Linux GTK では ToolItem#setToolTipText に引数が 1 つのものと 2 つのものが存在する。
-->
- <jointPoint className="org.eclipse.swt.widgets.Group" methodName="setText"/>
+ <!--jointPoint className="org.eclipse.swt.widgets.Group" methodName="setText"/-->
<jointPoint className="org.eclipse.swt.widgets.Decorations" methodName="setText"/>
<jointPoint className="org.eclipse.swt.widgets.ToolItem" methodName="setText"/>
<jointPoint className="org.eclipse.swt.widgets.ToolItem" methodName="setToolTipText" descriptor="(Ljava/lang/String;)V"/>
- <jointPoint className="org.eclipse.swt.widgets.TabItem" methodName="setText"/>
+ <!--jointPoint className="org.eclipse.swt.widgets.TabItem" methodName="setText"/-->
<jointPoint className="org.eclipse.swt.widgets.TabItem" methodName="setToolTipText"/>
<jointPoint className="org.eclipse.swt.widgets.Control" methodName="setToolTipText" descriptor="(Ljava/lang/String;)V"/>
<jointPoint className="org.eclipse.swt.widgets.DirectoryDialog" methodName="setMessage"/>
操作