RCP アプリケーションのメニューバーに突然「実行」と「検索」が表示されます。とにかくそれらを削除する方法はありますか?
2 に答える
まず、このスレッド(およびこのスレッドで使用されている記事「EclipseWorkbenchへのアクションの貢献」)を確認してください。
秘訣は「
check the launcher config
」でした。Eclipse3.1.1を完全に新しくインストールした後でも、WSには自分のプラグイン以外は何もありませんでしたが、迷惑な追加メニューと「最後の位置を編集」という迷惑なエラーがまだ存在していました。それから私はあなたが提案したようにランチャー設定に行きました、それはたくさんの雑然としたものを持っていました(Eclipseによって自動的に作成されました)-それで私はすべてを選択解除し、プラグインを選択し、そして"
Add Required
" ;をクリックしました それでWSから実行します-素晴らしいです!
バグ115998も参照してください
「プラットフォーム」機能を削除すると、すべてが修正されます。非常に簡単な修正で、見つけるのは非常に困難でした。
とは言うものの、一般的に、このスレッドのように、いくつかのアクションの貢献を隠すために試すことができます:
1 / ActionSetExtensionPointで定義されたメニュー/クールバーを非表示にします。
IWorkbenchPage.hideActionSet(actionSetId)
IWorkbenchPage.hideActionSet("org.eclipse.search.menu");
2 /メニューを非表示にします:
MenuManager mbManager = ((ApplicationWindow)page.getWorkbenchWindow()).getMenuBarManager();
for (int i=0; i<mbManager.getItems().length; i++){
IContributionItem item=mbManager.getItems()[i];
if (item.getId().equals("org.eclipse.search.menu")){
item.setVisible(false);
}
}
または、このスレッドPerspectiveListener
を試して、 :を介して任意の視点で非表示にすることができます。
依存するEclipseプラグインを参照して取得したアクションID..検索
ActionSets
package ch.post.pf.gui.prototyp.sesam.pstonline;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IPerspectiveDescriptor;
import org.eclipse.ui.IPerspectiveListener;
import org.eclipse.ui.IStartup;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
public class ActionWiper implements IStartup, IPerspectiveListener {
private static final String[] ACTIONS_2_WIPE = new String[] {
"org.eclipse.search.searchActionSet",
"org.eclipse.ui.edit.text.actionSet.presentation",
"org.eclipse.ui.edit.text.actionSet.openExternalFile",
"org.eclipse.ui.edit.text.actionSet.annotationNavigation",
"org.eclipse.ui.edit.text.actionSet.navigation",
"org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo",
"org.eclipse.update.ui.softwareUpdates" };
public void earlyStartup() {
IWorkbenchWindow[] windows = PlatformUI.getWorkbench()
.getWorkbenchWindows();
for (int i = 0; i < windows.length; i++) {
IWorkbenchPage page = windows[i].getActivePage();
if (page != null) {
wipeActions(page);
}
windows[i].addPerspectiveListener(this);
}
}
private void wipeActions(IWorkbenchPage page) {
for (int i = 0; i < ACTIONS_2_WIPE.length; i++) {
wipeAction(page, ACTIONS_2_WIPE[i]);
}
}
private void wipeAction(final IWorkbenchPage page, final String actionsetId) {
Display.getDefault().syncExec(new Runnable() {
public void run() {
page.hideActionSet(actionsetId);
}
});
}
public void perspectiveActivated(IWorkbenchPage page,
IPerspectiveDescriptor perspective) {
wipeActions(page);
}
public void perspectiveChanged(IWorkbenchPage page,
IPerspectiveDescriptor perspective, String changeId) {
}
}
そして、設定を削除します。
私は
PreferenceManager
不要な設定を削除しまし
た..:)PREFERENCES_2_WIPE
文字列は削除したいメインカテゴリのIDでなければなりません。「org.eclipse.ui.preferencePages.Workbench」のように->Generalとして表示されます
PreferenceManager pm = PlatformUI.getWorkbench().getPreferenceManager();
for (int i = 0; i < PREFERENCES_2_WIPE.length; i++) {
pm.remove(PREFERENCES_2_WIPE[i]);
}
For me this worked (hope it helps you):
<extension
point="org.eclipse.ui.activities">
<activity
id="someid.remove"
name="RemoveSearchMenu">
<enabledWhen>
<with
variable="activePartId">
<equals
value="someidr.RemoveSearchMenu1">
</equals>
</with></enabledWhen>
</activity>
<activityPatternBinding
activityId="someid.remove"
pattern="org.eclipse.search.*">
</activityPatternBinding>