Eclipse Rcp在整个应用程序启动并且GUI完全呈现后运行基于E4的代码

时间:2017-10-06 06:21:07

标签: java eclipse eclipse-rcp e4

我有一个带兼容层的E3 / E4混合应用程序。我希望在整个应用程序启动并且GUI完全呈现后运行基于E4的代码。

  • 我尝试使用LifeCycle Manager,但所有注释都是早期的。
  • 我在ApplicationWorkbenchWindowAdvisor中尝试过,但是我无法访问EModelService或MApplication。
  • 作为处理器扩展,我也尝试了它,但对于Application.e4xmi中的Addon来说,这也太早了。

是否可能有一个监听器或类似的东西可以挂钩我的代码?

谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用Application Startup Complete事件。

如果您有生命周期类,只需在类中添加如下方法:

dataGridView1.Rows.Cast<DataGridViewRow>()
    .Where(x => !dataGridView1.SelectedRows.Contains(x) && !x.IsNewRow)
    .ToList().ForEach(x => dataGridView1.Rows.Remove(x));

或者您可以使用事件代理订阅@IBOutlet weak var segmentControl: UISegmentedControl! let recordType = "WebBooks" var web = [CKRecord]() var mobile = [CKRecord]() var windows = [CKRecord]() var databases = [CKRecord]() func fetchBooksFromCloud() { let cloudContainer = CKContainer.default() let publicDatabase = cloudContainer.publicCloudDatabase let predicate = NSPredicate(value: true) let query = CKQuery(recordType: recordType, predicate: predicate) } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { var returnValue = 0 switch segmentControl.selectedSegmentIndex { case 0: returnValue = web.count default: break } return returnValue } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "CategoriesCell", for: indexPath) as! HomeTableViewCell switch segmentControl.selectedSegmentIndex { case 0: let webBooks = web[indexPath.row] cell.bookName.text = web.object(forKey: "name") as? String cell.authorName.text = web.object(forKey: "author") as? String if let image = web.object(forKey: "image") { let imageAsset = image as! CKAsset if let imageData = try? Data.init(contentsOf: imageAsset.fileURL) { cell.bookImageName.image = UIImage(data: imageData) } } default: break } return cell } 事件。

注意:上面的@Optional @Inject public void appStartupComplete(@UIEventTopic(UIEvents.UILifeCycle.APP_STARTUP_COMPLETE) final Event event) { .... } UIEvents.UILifeCycle.APP_STARTUP_COMPLETE - 有几个不同的Event类,因此很容易出错。