我正在处理一个应用程序以解析来自目录树的数据,同时在底部工具栏中显示进度监视器。我正在使用java Files.walk()来遍历结构,并尝试使用IEventBroker,向工具栏部分发送消息以增加进度条,但他似乎对我而言效果不佳。有谁知道更好的方法吗?Eclipse - 在工具栏中实现和增加一个swt进度条
这是搜索开始和事件广播的代码。
Path file = Paths.get(directoryPath);
if (!file.toFile().exists())
{
return null;
}
_broker.send(Constants.INITIALISE_PROGRESS_BAR, file.toFile().list().length);
try (final Stream<Path> pathStream = Files.walk(file))
{
pathStream.forEach(path ->
{
_broker.send(Constants.INCREMENT_PROGRESS_BAR, "inc");
........
});
}
在我的工具栏部分,我有以下方法intialise进步的最大尺寸和增加时,他们收到的事件。
@Inject
@Optional
private void initialiseProgressBar(@UIEventTopic(Constants.INITIALISE_PROGRESS_BAR) Integer max)
{
_progressBar.setMinimum(0);
_progressBar.setMaximum(max);
}
@Inject
@Optional
private void incrementProgressBar(@UIEventTopic(Constants.INCREMENT_PROGRESS_BAR) String path)
{
incrementProgressBar();
}
private void incrementProgressBar()
{
_progressBar.setSelection(_progressBar.getSelection() + 1);
}
因为我不知道它可能是最好不要增加,而是文件结构的大小只是有某种continious进展。
所以这是一个“E4” RCP的方式吗?对于e4 IEventBroker应该没问题,但你需要向我们展示一些代码。 –
这是格雷格,我现在会在一秒后发布。 –
那么这到底是什么问题呢? –