プロジェクト

全般

プロフィール

バグ #2578

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

n-ando約11年前に追加. 約11年前に更新.

ステータス:
終了
優先度:
通常
担当者:
-
対象バージョン:
-
開始日:
2013/02/05
期日:
進捗率:

100%

予定工数:

説明

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

  • Eclipse 3.8.1, win32 (32bit, 64bit)
  • Eclipse 3.8.1, Mac OS X (64bit)
    で再現。他のバージョンは未調査。

Pleiadesがない場合、いずれの場合もConfigurationダイアログは正しく表示される。

config_with_pleiades.jpg (11.3 KB) config_with_pleiades.jpg n-ando, 2013/02/05 09:16
config_with_pleiades2.jpg (17.2 KB) config_with_pleiades2.jpg n-ando, 2013/02/05 09:16
config_without_pleiades.jpg (30.8 KB) config_without_pleiades.jpg n-ando, 2013/02/05 09:16
config_without_pleiades2.jpg (32.9 KB) config_without_pleiades2.jpg n-ando, 2013/02/05 09:16
714
715
716
717

関係しているリビジョン

リビジョン 416 (差分)
n-ando約11年前に追加

Now make_package applies pleiades-config.xml.patch to pleiades. refs #2578

リビジョン 417 (差分)
n-ando約11年前に追加

pleiades-config.xml patch has been added. refs #2578

履歴

#1 n-ando約11年前に更新

原因

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"/>

#2 n-ando約11年前に更新

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

#3 n-ando約11年前に更新

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

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