プロジェクト

全般

プロフィール

バグ #2578

完了

Pleiadesが有効な場合にConfigruationダイアログの表示が崩れる

n-ando さんがほぼ12年前に追加. ほぼ12年前に更新.

ステータス:
終了
優先度:
通常
担当者:
-
対象バージョン:
-
開始日:
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"/>

n-ando さんがほぼ12年前に更新

  • ステータス新規 から 解決 に変更
  • 進捗率0 から 100 に変更

n-ando さんがほぼ12年前に更新

  • ステータス解決 から 終了 に変更

他の形式にエクスポート: Atom PDF