2014-11-04 85 views
3

我目前正在開發一個Eclipse插件,該插件添加了其自定義啓動配置,該配置鏈接到工作臺中的某些資源。如何從最近啓動下拉菜單中刪除無效的啓動配置

背景:有時,底層的資源會改變,使得啓動配置無效,不應該是可運行

如何編程從近期推出去除啓動配置下拉?

我的意思是這個小向下箭頭:

enter image description here

這將顯示所有最近推出了近期推出的配置。

編輯:我目前正在試圖通過LaunchConfigurationManager訪問歷史記錄,我似乎無法找到一個API可以告訴我在哪裏可以獲取正確的實例,目前一切都爲空。

SECOND EDIT:LaunchConfigurationManager是內部包的一部分,它不應該被使用。

+0

你想完全刪除啓動配置(即刪除它),或只是從發佈歷史中刪除它? – 2014-11-04 12:41:02

+0

只是從發佈歷史中刪除 – 2014-11-04 12:50:35

回答

1

爲了體現它需要與啓動配置被鏈接的Resource的缺失,使用ILaunchConfigurationWorkingCopy.setMappedResources(IResource[])

之後,當您刪除工作區這個資源(無論是否還盤與否)這將隱藏將該資源映射到它的啓動配置。

我的解決方案是包含在用於AbstractLaunchConfigurationTab

鏈接爲ILaunchConfigurationWorkingCopy API,我發現這個

P.S.的performApply()方法的方法調用現在,當一個資源被刪除(但不是在磁盤上,你可以通過一個項目關於普通的Java啓動配置來嘗試這個),然後重新添加,啓動配置備份所有過去的細節

+0

真棒問題和很好的解釋! – 2014-12-22 11:45:36

1

背景:有時,底層的資源會改變,使得啓動配置無效,不應該是可運行

爲什麼你想從歷史中刪除「無效」啓動配置,但離開它否則完好無損?如果無效,請將其全部刪除或修復它。但這只是我的兩分錢,卻不知道應用程序的細節。

如果您願意承擔風險並使用內部API,則您應該能夠通過DebugUIPlugin.getDefault().getLaunchConfigurationManager()lgetLaunchHistory()獲取LaunchHistory

但是,您是否嘗試刪除並重新添加無效的啓動配置,只是將其從歷史記錄中刪除?

ILaunchConfigurationWorkingCopy workingCopy = launchConfig.getWorkingCopy(); 
workingCopy.delete(); 
ILaunchConfigurationType launchType = launchConfig.getType(); 
IContainer container = launchConfig.getFile() == null ? null : launchConfig.getFile().getParent(); 
ILaunchConfigurationWorkingCopy newLaunchConfig = launchType.newInstance(container, workingCopy.getName()); 
// copy all attributes from 'launchConfig' to 'newLaunchConfig' 
newLaunchConfig.doSave(); 
+0

感謝您剛剛刪除啓動配置的建議。我會嘗試刪除解決方案,並讓你知道 – 2014-11-04 14:13:51

+0

我試過這個,似乎沒有工作。儘管我已經使用launchConfig.getType()而不是DebugPlugin.getDefault.getLaunchManager()。getLaunchConfigurationType(...);這實際上是必要的嗎? – 2014-11-04 14:59:06

+0

確實,'launchConfig.getType()'是更好的選擇。但是什麼不起作用? – 2014-11-04 15:30:44