0
我想在Eclipse中構建一個彈出菜單。其實這個插件有一個彈出的動作,當你右鍵點擊一個文件時會顯示一個新的選項。我需要知道文件名和右鍵單擊的項目名稱。有誰知道該怎麼做?如何在Eclipse中獲取文件名
謝謝。
我想在Eclipse中構建一個彈出菜單。其實這個插件有一個彈出的動作,當你右鍵點擊一個文件時會顯示一個新的選項。我需要知道文件名和右鍵單擊的項目名稱。有誰知道該怎麼做?如何在Eclipse中獲取文件名
謝謝。
IStructuredSelection currentSelection = (IStructuredSelection)getContext().getSelection();
if(!currentSelection.isEmpty() && ResourceSelectionUtil.allResourcesAreOfType(currentSelection, IResource.PROJECT | IResource.FOLDER | IResource.FILE)){
IResource resource = (IResource)currentSelection.getFirstElement();
}
首先,我們爲PackageExplorer View創建一個彈出式菜單。
<plugin>
<extension
point="org.eclipse.ui.commands">
<command
categoryId="TestPopupMenu.commands.category"
id="TestPopupMenu.commands.sampleCommand"
name="Sample Command">
</command>
</extension>
<extension
point="org.eclipse.ui.handlers">
<handler
class="testpopupmenu.handlers.SampleHandler"
commandId="TestPopupMenu.commands.sampleCommand">
</handler>
</extension>
<extension
point="org.eclipse.ui.menus">
<menuContribution
locationURI="popup:org.eclipse.jdt.ui.PackageExplorer">
<command
commandId="TestPopupMenu.commands.sampleCommand"
id="TestPopupMenu.menus.sampleCommand"
mnemonic="S">
<visibleWhen>
<with variable="activeMenuSelection">
<iterate
ifEmpty="false">
<adapt type="org.eclipse.core.resources.IResource">
<test property="org.eclipse.core.resources.name" value="*.*" />
</adapt>
</iterate>
</with>
</visibleWhen>
</command>
</menuContribution>
</extension>
</plugin>
然後,將下面的代碼添加到您的處理程序方法,它將打印出赦免路徑控制檯:
IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
//get selection service
ISelectionService service = window.getSelectionService();
//get selection
IStructuredSelection structured = (IStructuredSelection) service
.getSelection();
//get selected file
IFile file = (IFile) structured.getFirstElement();
//get the path
IPath path = file.getLocation();
System.out.println(path.toPortableString());
return null;
我已經試過了代碼,但Eclipse的不承認「getContext()」行爲。我是否需要在Juno的經典版本4.2中安裝新軟件包。 – user1679709
我認爲經典版本的Juno擁有RCP所需的所有插件。我相信它取決於你調用getContext()方法的地方。當我擴展Eclipse的Action Provider時,遇到了這個問題。你可以參考NewActionProvider.java的fillContextMenu() –
如果你可以把你的代碼放在這裏,我可以查看它並幫助你。 –