1

私はEclipseプラグインを開発しています。初めて日食を開くとき、私は見通しを開く必要があります。これを達成する方法はありますか?一部のリスナーが利用可能である必要があると思いますが、トレースできませんでした。

日食開始後に見通しを開くことができますPlatformUI.getWorkbench().showPrespective(<prespective id>)

同様に、日食の開始時に目的の見通しが開かれるように、日食の起動時に見通しを開く方法があります。

4

3 に答える 3

4

org.eclipse.ui.startupプラグインで拡張ポイントを使用できます。プラグインが有効になったら、設定を確認/設定して、パースペクティブを切り替えるかどうかを決定し、それを実行するようにスケジュールしUIJobます。

  1. 拡張ポイントを実装します。プラグインの一部のクラスにはimplements org.eclipse.ui.IStartup. この場合、アクティベーター クラスは問題ありません。特に、earlyStartupメソッドには何も必要ないためです。

  2. メソッドで、start切り替えてスケジュールするかどうかを決定します。

    public void start(BundleContext context) throws Exception {
        super.start(context);
        plugin = this;
    
        final boolean switchPerpective = processPluginUpgrading();
        if (switchPerpective) {
            final IWorkbench workbench = PlatformUI.getWorkbench();
            new UIJob("Switching perspectives"){
                @Override
                public IStatus runInUIThread(IProgressMonitor monitor) {
                    try {
                        workbench.showPerspective(perspectiveId, workbench.getActiveWorkbenchWindow());
                    } catch (WorkbenchException e) {
                        return new Status(IStatus.ERROR,PLUGIN_ID,"Error while switching perspectives", e);
                    }
                    return Status.OK_STATUS;
                }}
            .run(new NullProgressMonitor());
        }
    }
    
  3. プリファレンス ストアを使用して、意思決定ロジックのデータを保持します。この実装では、プラグインがアップグレードされるたびに、パースペクティブがワークスペースごとに 1 回切り替えられます。プリファレンス ストアに記録されたデータにより、将来のバージョンで異なるポリシーを使用できるようになります。getPreferenceStorefromを使用するAbstractUIPluginため、ワークスペースごとにスコープが設定されます。他のスコープを使用する場合は、FAQを参照してください。

    private Boolean processPluginUpgrading() {
        final Version version = getDefault().getBundle().getVersion();
        final IPreferenceStore preferenceStore = getDefault().getPreferenceStore();
        final String preferenceName = "lastVersionActivated";
        final String lastVersionActivated = preferenceStore.getString(preferenceName);
        final boolean upgraded = 
                "".equals(lastVersionActivated)
                || (version.compareTo(new Version(lastVersionActivated)) > 0);
        preferenceStore.setValue(preferenceName, version.toString());
        return upgraded;
    }
    
于 2013-06-02T18:14:13.570 に答える
1

プラグインでカスタム パースペクティブを開くために行っていることの 1 つは、config.ini以下のように eclipe のインストール フォルダーで構成することです。

-perspective <my perspective id>

そしてそれはうまくいっています。この情報は、Lars Vogel のチュートリアルから入手しました。お役に立てれば。

他の方法:

org.eclipse.ui.IPerspectiveRegistry.setDefaultPerspective(id)これにより、デフォルトのパースペクティブが指定された ID に設定されます。 同じための API ドキュメント。

于 2013-06-01T15:13:35.587 に答える
0

に行く

D:\{MyTestSpace}\eclipse\features\myCustom.plugin.feature_3.1.0.201607220552

feature.xmlプラグインタグの下でIDを取得できます。

config.ini以下で見つけることができるこのIDを使用してください

D:\{MyTestSpace}\eclipse\configuration

として

-perspective <myCustum.plugin>
于 2016-07-29T07:26:13.740 に答える