提交 d893f09b 编写于 作者: J jurgen

Use plugin services to split ui and runtime

Former-commit-id: d34bf42f
上级 1d2a597f
......@@ -2475,6 +2475,7 @@
<extension point="org.jkiss.dbeaver.pluginService">
<service class="org.jkiss.dbeaver.ui.actions.GlobalPropertyTester$ResourceListener"/>
<service class="org.jkiss.dbeaver.ui.actions.DataSourcePropertyTester$QMService"/>
</extension>
</plugin>
......@@ -278,10 +278,6 @@ public class DBeaverUI implements DBUICallback {
getInstance().trayItem.notify(message, status);
}
public void addDisposeListener(IDisposable disposable) {
globalDisposables.add(disposable);
}
@Override
public void showError(@NotNull String title, @Nullable String message, @NotNull IStatus status) {
UIUtils.showErrorDialog(null, title, message, status);
......
......@@ -21,20 +21,19 @@ import org.eclipse.core.expressions.PropertyTester;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.commands.ICommandService;
import org.eclipse.ui.services.IDisposable;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.core.DBeaverUI;
import org.jkiss.dbeaver.core.Log;
import org.jkiss.dbeaver.model.DBPContextProvider;
import org.jkiss.dbeaver.model.DBUtils;
import org.jkiss.dbeaver.model.exec.*;
import org.jkiss.dbeaver.model.qm.QMUtils;
import org.jkiss.dbeaver.runtime.qm.DefaultExecutionHandler;
import org.jkiss.dbeaver.model.qm.meta.QMMSessionInfo;
import org.jkiss.dbeaver.model.qm.meta.QMMStatementExecuteInfo;
import org.jkiss.dbeaver.model.qm.meta.QMMTransactionInfo;
import org.jkiss.dbeaver.model.qm.meta.QMMTransactionSavepointInfo;
import org.jkiss.dbeaver.runtime.IPluginService;
import org.jkiss.dbeaver.runtime.qm.DefaultExecutionHandler;
import org.jkiss.dbeaver.ui.ActionUtils;
import org.jkiss.dbeaver.ui.ICommandIds;
......@@ -50,18 +49,6 @@ public class DataSourcePropertyTester extends PropertyTester
public static final String PROP_TRANSACTIONAL = "transactional";
public static final String PROP_TRANSACTION_ACTIVE = "transactionActive";
public DataSourcePropertyTester() {
super();
final QMEventsHandler qmHandler = new QMEventsHandler();
QMUtils.registerHandler(qmHandler);
DBeaverUI.getInstance().addDisposeListener(new IDisposable() {
@Override
public void dispose() {
QMUtils.unregisterHandler(qmHandler);
}
});
}
@Override
public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
if (!(receiver instanceof DBPContextProvider)) {
......@@ -126,6 +113,22 @@ public class DataSourcePropertyTester extends PropertyTester
}
}
public static class QMService implements IPluginService {
private QMEventsHandler qmHandler;
@Override
public void activateService() {
qmHandler = new QMEventsHandler();
QMUtils.registerHandler(qmHandler);
}
@Override
public void deactivateService() {
QMUtils.unregisterHandler(qmHandler);
}
}
// QM events handler
private static class QMEventsHandler extends DefaultExecutionHandler {
@Override
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册