use of org.jkiss.dbeaver.model.struct.DBSInstance in project dbeaver by serge-rider.
the class InvalidateJob method invalidateTransaction.
public static void invalidateTransaction(DBRProgressMonitor monitor, DBPDataSource dataSource, DBCExecutionContext executionContext) {
// Invalidate transactions
if (executionContext != null) {
monitor.subTask("Invalidate context [" + executionContext.getDataSource().getContainer().getName() + "/" + executionContext.getContextName() + "] transactions");
invalidateTransaction(monitor, executionContext);
} else {
monitor.subTask("Invalidate datasource [" + dataSource.getContainer().getName() + "] transactions");
for (DBSInstance instance : dataSource.getAvailableInstances()) {
for (DBCExecutionContext context : instance.getAllContexts()) {
invalidateTransaction(monitor, context);
}
}
}
}
use of org.jkiss.dbeaver.model.struct.DBSInstance in project dbeaver by serge-rider.
the class DashboardListViewer method openSeparateContext.
private void openSeparateContext() {
DBPDataSource dataSource = dataSourceContainer.getDataSource();
if (dataSource == null) {
return;
}
new AbstractJob("Open connection for dashboard") {
@Override
protected IStatus run(DBRProgressMonitor monitor) {
DBSInstance instance = DBUtils.getObjectOwnerInstance(dataSource);
if (instance != null) {
try {
isolatedContext = instance.openIsolatedContext(monitor, "Dashboard connection", null);
} catch (DBException e) {
return GeneralUtils.makeExceptionStatus(e);
}
}
return Status.OK_STATUS;
}
}.schedule();
}
use of org.jkiss.dbeaver.model.struct.DBSInstance in project dbeaver by serge-rider.
the class NavigatorHandlerLinkEditor method execute.
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
final IWorkbenchPage activePage = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage();
final IEditorPart activeEditor = HandlerUtil.getActiveEditor(event);
if (activeEditor == null) {
return null;
}
NavigatorViewBase navigatorView = NavigatorUtils.getActiveNavigatorView(event);
if (navigatorView == null) {
return null;
}
if (navigatorView instanceof ProjectExplorerView || (navigatorView instanceof ProjectNavigatorView && activeEditor instanceof ITextEditor)) {
IFile file = EditorUtils.getFileFromInput(activeEditor.getEditorInput());
if (file != null) {
showResourceInNavigator(navigatorView, file);
}
} else if (activeEditor.getEditorInput() instanceof IDatabaseEditorInput) {
IDatabaseEditorInput editorInput = (IDatabaseEditorInput) activeEditor.getEditorInput();
DBNNode dbnNode = editorInput.getNavigatorNode();
if (dbnNode != null) {
navigatorView.showNode(dbnNode);
}
} else if (activeEditor instanceof IDataSourceContainerProvider) {
DBPDataSourceContainer dsContainer = ((IDataSourceContainerProvider) activeEditor).getDataSourceContainer();
@NotNull DBSObject activeObject = null;
if (dsContainer != null) {
if (activeEditor instanceof DBPContextProvider) {
DBCExecutionContext executionContext = ((DBPContextProvider) activeEditor).getExecutionContext();
if (executionContext != null) {
DBCExecutionContextDefaults contextDefaults = executionContext.getContextDefaults();
if (contextDefaults != null) {
activeObject = contextDefaults.getDefaultSchema();
if (activeObject == null) {
activeObject = contextDefaults.getDefaultCatalog();
}
}
}
}
if (activeObject == null) {
DBPDataSource dataSource = dsContainer.getDataSource();
if (dataSource != null) {
activeObject = DBUtils.getDefaultOrActiveObject(dataSource.getDefaultInstance());
} else {
activeObject = dsContainer;
}
}
DBSObject objectToSelect = activeObject;
final NavigatorViewBase view = navigatorView;
UIUtils.runInUI(activePage.getWorkbenchWindow(), monitor -> {
DBSObject showObject = objectToSelect;
if (showObject instanceof DBSInstance && !(showObject instanceof DBPDataSourceContainer)) {
showObject = objectToSelect.getParentObject();
}
if (showObject instanceof DBPDataSource) {
showObject = ((DBPDataSource) showObject).getContainer();
}
DBNDatabaseNode objectNode = view.getModel().getNodeByObject(monitor, showObject, true);
if (objectNode != null) {
view.showNode(objectNode);
}
});
}
}
activePage.activate(navigatorView);
return null;
}
use of org.jkiss.dbeaver.model.struct.DBSInstance in project dbeaver by serge-rider.
the class SQLEditor method initSeparateConnection.
private void initSeparateConnection(@NotNull DBPDataSource dataSource, Runnable onSuccess) {
DBSInstance dsInstance = dataSource.getDefaultInstance();
String[] contextDefaults = isRestoreActiveSchemaFromScript() ? EditorUtils.getInputContextDefaults(dataSource.getContainer(), getEditorInput()) : null;
if (!ArrayUtils.isEmpty(contextDefaults) && contextDefaults[0] != null) {
DBSInstance selectedInstance = DBUtils.findObject(dataSource.getAvailableInstances(), contextDefaults[0]);
if (selectedInstance != null) {
dsInstance = selectedInstance;
}
}
if (dsInstance != null) {
final OpenContextJob job = new OpenContextJob(dsInstance, onSuccess);
job.schedule();
}
}
use of org.jkiss.dbeaver.model.struct.DBSInstance in project dbeaver by dbeaver.
the class NavigatorHandlerLinkEditor method execute.
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
final IWorkbenchPage activePage = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage();
final IEditorPart activeEditor = HandlerUtil.getActiveEditor(event);
if (activeEditor == null) {
return null;
}
NavigatorViewBase navigatorView = NavigatorUtils.getActiveNavigatorView(event);
if (navigatorView == null) {
return null;
}
if (navigatorView instanceof ProjectExplorerView || (navigatorView instanceof ProjectNavigatorView && activeEditor instanceof ITextEditor)) {
IFile file = EditorUtils.getFileFromInput(activeEditor.getEditorInput());
if (file != null) {
showResourceInNavigator(navigatorView, file);
}
} else if (activeEditor.getEditorInput() instanceof IDatabaseEditorInput) {
IDatabaseEditorInput editorInput = (IDatabaseEditorInput) activeEditor.getEditorInput();
DBNNode dbnNode = editorInput.getNavigatorNode();
if (dbnNode != null) {
navigatorView.showNode(dbnNode);
}
} else if (activeEditor instanceof IDataSourceContainerProvider) {
DBPDataSourceContainer dsContainer = ((IDataSourceContainerProvider) activeEditor).getDataSourceContainer();
@NotNull DBSObject activeObject = null;
if (dsContainer != null) {
if (activeEditor instanceof DBPContextProvider) {
DBCExecutionContext executionContext = ((DBPContextProvider) activeEditor).getExecutionContext();
if (executionContext != null) {
DBCExecutionContextDefaults contextDefaults = executionContext.getContextDefaults();
if (contextDefaults != null) {
activeObject = contextDefaults.getDefaultSchema();
if (activeObject == null) {
activeObject = contextDefaults.getDefaultCatalog();
}
}
}
}
if (activeObject == null) {
DBPDataSource dataSource = dsContainer.getDataSource();
if (dataSource != null) {
activeObject = DBUtils.getDefaultOrActiveObject(dataSource.getDefaultInstance());
} else {
activeObject = dsContainer;
}
}
DBSObject objectToSelect = activeObject;
final NavigatorViewBase view = navigatorView;
UIUtils.runInUI(activePage.getWorkbenchWindow(), monitor -> {
DBSObject showObject = objectToSelect;
if (showObject instanceof DBSInstance && !(showObject instanceof DBPDataSourceContainer)) {
showObject = objectToSelect.getParentObject();
}
if (showObject instanceof DBPDataSource) {
showObject = ((DBPDataSource) showObject).getContainer();
}
DBNDatabaseNode objectNode = view.getModel().getNodeByObject(monitor, showObject, true);
if (objectNode != null) {
view.showNode(objectNode);
}
});
}
}
activePage.activate(navigatorView);
return null;
}
Aggregations