Search in sources :

Example 46 with DBNDataSource

use of org.jkiss.dbeaver.model.navigator.DBNDataSource in project dbeaver by dbeaver.

the class SQLEditorHandlerOpenEditor method getDataSourceContainers.

private static List<DBPDataSourceContainer> getDataSourceContainers(ExecutionEvent event) {
    List<DBPDataSourceContainer> containers = new ArrayList<>();
    ISelection selection = HandlerUtil.getCurrentSelection(event);
    if (selection instanceof IStructuredSelection) {
        for (Object obj : ((IStructuredSelection) selection).toArray()) {
            if (obj instanceof DBNLocalFolder) {
                for (DBNDataSource ds : ((DBNLocalFolder) obj).getDataSources()) {
                    containers.add(ds.getDataSourceContainer());
                }
            } else {
                DBSObject selectedObject = DBUtils.getFromObject(obj);
                if (selectedObject != null) {
                    if (selectedObject instanceof DBPDataSourceContainer) {
                        containers.add((DBPDataSourceContainer) selectedObject);
                    } else {
                        containers.add(selectedObject.getDataSource().getContainer());
                    }
                }
            }
        }
    }
    if (containers.isEmpty()) {
        IWorkbenchPart activePart = HandlerUtil.getActivePart(event);
        DBPDataSourceContainer partContainer = getDataSourceContainers(activePart);
        if (partContainer != null) {
            containers.add(partContainer);
        }
    }
    return containers;
}
Also used : DBSObject(org.jkiss.dbeaver.model.struct.DBSObject) DBNLocalFolder(org.jkiss.dbeaver.model.navigator.DBNLocalFolder) DBNDataSource(org.jkiss.dbeaver.model.navigator.DBNDataSource) ArrayList(java.util.ArrayList) ISelection(org.eclipse.jface.viewers.ISelection) DBSObject(org.jkiss.dbeaver.model.struct.DBSObject) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) DBPDataSourceContainer(org.jkiss.dbeaver.model.DBPDataSourceContainer)

Example 47 with DBNDataSource

use of org.jkiss.dbeaver.model.navigator.DBNDataSource in project dbeaver by dbeaver.

the class NNAHDataSourceTunnel method getNodeActionToolTip.

@Override
public String getNodeActionToolTip(INavigatorModelView view, DBNNode node) {
    StringBuilder tip = new StringBuilder("Network handlers enabled:");
    for (DBWHandlerConfiguration handler : ((DBNDataSource) node).getDataSourceContainer().getConnectionConfiguration().getHandlers()) {
        if (handler.isEnabled()) {
            tip.append("\n  -").append(handler.getHandlerDescriptor().getLabel());
            String hostName = handler.getStringProperty(DBWHandlerConfiguration.PROP_HOST);
            if (!CommonUtils.isEmpty(hostName)) {
                tip.append(": ").append(hostName);
            }
        }
    }
    return tip.toString();
}
Also used : DBWHandlerConfiguration(org.jkiss.dbeaver.model.net.DBWHandlerConfiguration) DBNDataSource(org.jkiss.dbeaver.model.navigator.DBNDataSource)

Example 48 with DBNDataSource

use of org.jkiss.dbeaver.model.navigator.DBNDataSource in project dbeaver by dbeaver.

the class DatabaseNavigatorLabelProvider method getToolTipText.

@Override
public String getToolTipText(Object element) {
    if (!DBWorkbench.getPlatform().getPreferenceStore().getBoolean(NavigatorPreferences.NAVIGATOR_SHOW_TOOLTIPS)) {
        return null;
    }
    if (element instanceof DBNDataSource) {
        final DBPDataSourceContainer ds = ((DBNDataSource) element).getDataSourceContainer();
        if (ds != null) {
            StringBuilder info = new StringBuilder();
            info.append("Name: ").append(ds.getName()).append("\n");
            final DBPConnectionConfiguration cfg = ds.getConnectionConfiguration();
            if (!CommonUtils.isEmpty(cfg.getUrl())) {
                info.append("URL: ").append(cfg.getUrl()).append("\n");
            } else if (!CommonUtils.isEmpty(cfg.getDatabaseName())) {
                info.append("Database: ").append(cfg.getDatabaseName()).append("\n");
            }
            if (!CommonUtils.isEmpty(cfg.getUserName())) {
                info.append("User: ").append(cfg.getUserName()).append("\n");
            }
            if (!CommonUtils.isEmpty(ds.getDescription())) {
                info.append("Description: ").append(ds.getDescription()).append("\n");
            }
            /*
                if (cfg.getConnectionType() != null) {
                    info.append("Type: ").append(cfg.getConnectionType().getName()).append("\n");
                }
*/
            if (ds.isConnectionReadOnly()) {
                info.append("Read-only connection\n");
            }
            if (ds.isProvided()) {
                info.append("Provided connection\n");
            }
            return info.toString().trim();
        }
    } else if (element instanceof DBNNode) {
        if (element instanceof DBNResource && !DBWorkbench.getPlatform().getPreferenceStore().getBoolean(NavigatorPreferences.NAVIGATOR_SHOW_CONTENTS_IN_TOOLTIP)) {
            return null;
        }
        final String description = ((DBNNode) element).getNodeDescription();
        if (!CommonUtils.isEmptyTrimmed(description)) {
            return description;
        }
        return ((DBNNode) element).getNodeName();
    }
    return null;
}
Also used : DBNResource(org.jkiss.dbeaver.model.navigator.DBNResource) DBPConnectionConfiguration(org.jkiss.dbeaver.model.connection.DBPConnectionConfiguration) DBNNode(org.jkiss.dbeaver.model.navigator.DBNNode) DBNDataSource(org.jkiss.dbeaver.model.navigator.DBNDataSource) DBPDataSourceContainer(org.jkiss.dbeaver.model.DBPDataSourceContainer)

Example 49 with DBNDataSource

use of org.jkiss.dbeaver.model.navigator.DBNDataSource in project dbeaver by dbeaver.

the class DatabaseNavigatorLabelProvider method getForeground.

@Override
public Color getForeground(Object element) {
    if (element instanceof DBNNode) {
        DBNNode node = (DBNNode) element;
        if (node instanceof DBNDataSource) {
            DBPDataSourceContainer ds = ((DBNDataSource) element).getDataSourceContainer();
            Color bgColor = UIUtils.getConnectionColor(ds.getConnectionConfiguration());
            return bgColor == null ? null : UIUtils.getContrastColor(bgColor);
        }
        if (node.isLocked()) {
            return lockedForeground;
        }
        if (node instanceof DBSWrapper && ((DBSWrapper) node).getObject() != null && !((DBSWrapper) node).getObject().isPersisted()) {
            return transientForeground;
        }
    }
    return null;
}
Also used : DBSWrapper(org.jkiss.dbeaver.model.struct.DBSWrapper) DBNNode(org.jkiss.dbeaver.model.navigator.DBNNode) DBNDataSource(org.jkiss.dbeaver.model.navigator.DBNDataSource) Color(org.eclipse.swt.graphics.Color) DBPDataSourceContainer(org.jkiss.dbeaver.model.DBPDataSourceContainer)

Example 50 with DBNDataSource

use of org.jkiss.dbeaver.model.navigator.DBNDataSource in project dbeaver by dbeaver.

the class TargetPrefPage method setElement.

@Override
public void setElement(IAdaptable element) {
    this.element = element;
    if (this.element == null) {
        return;
    }
    dataSourceContainer = element instanceof DBPDataSourceContainer ? (DBPDataSourceContainer) element : null;
    containerNode = element.getAdapter(DBNDataSource.class);
    if (containerNode == null) {
        final DBPDataSourceContainer dsContainer = element.getAdapter(DBPDataSourceContainer.class);
        if (dsContainer != null) {
            containerNode = (DBNDataSource) DBWorkbench.getPlatform().getNavigatorModel().findNode(dsContainer);
        } else {
            IDatabaseEditorInput dbInput = element.getAdapter(IDatabaseEditorInput.class);
            if (dbInput != null) {
                DBNNode dbNode = dbInput.getNavigatorNode();
                if (dbNode instanceof DBNDataSource) {
                    containerNode = (DBNDataSource) dbNode;
                }
            } else if (element instanceof DBPContextProvider) {
                DBCExecutionContext context = ((DBPContextProvider) element).getExecutionContext();
                if (context != null) {
                    containerNode = (DBNDataSource) DBWorkbench.getPlatform().getNavigatorModel().findNode(context.getDataSource().getContainer());
                }
            } else if (element instanceof DBPDataSourceContainer) {
                containerNode = (DBNDataSource) DBWorkbench.getPlatform().getNavigatorModel().findNode((DBPDataSourceContainer) element);
            }
        }
    }
    if (dataSourceContainer == null && containerNode != null) {
        dataSourceContainer = containerNode.getDataSourceContainer();
    }
}
Also used : IDatabaseEditorInput(org.jkiss.dbeaver.ui.editors.IDatabaseEditorInput) DBCExecutionContext(org.jkiss.dbeaver.model.exec.DBCExecutionContext) DBNNode(org.jkiss.dbeaver.model.navigator.DBNNode) DBPContextProvider(org.jkiss.dbeaver.model.DBPContextProvider) DBNDataSource(org.jkiss.dbeaver.model.navigator.DBNDataSource) DBPDataSourceContainer(org.jkiss.dbeaver.model.DBPDataSourceContainer)

Aggregations

DBNDataSource (org.jkiss.dbeaver.model.navigator.DBNDataSource)59 DBPDataSourceContainer (org.jkiss.dbeaver.model.DBPDataSourceContainer)26 DBNNode (org.jkiss.dbeaver.model.navigator.DBNNode)23 DBNDatabaseNode (org.jkiss.dbeaver.model.navigator.DBNDatabaseNode)17 DBException (org.jkiss.dbeaver.DBException)15 DBSObject (org.jkiss.dbeaver.model.struct.DBSObject)13 DBNResource (org.jkiss.dbeaver.model.navigator.DBNResource)12 DBNProject (org.jkiss.dbeaver.model.navigator.DBNProject)10 ArrayList (java.util.ArrayList)8 ISelection (org.eclipse.jface.viewers.ISelection)8 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)8 DBNLocalFolder (org.jkiss.dbeaver.model.navigator.DBNLocalFolder)8 IFile (org.eclipse.core.resources.IFile)6 IWorkbenchPart (org.eclipse.ui.IWorkbenchPart)6 SQLScriptExecuteSettings (org.jkiss.dbeaver.tools.sql.SQLScriptExecuteSettings)6 GridData (org.eclipse.swt.layout.GridData)5 IResource (org.eclipse.core.resources.IResource)4 CheckboxTreeViewer (org.eclipse.jface.viewers.CheckboxTreeViewer)4 ICheckStateProvider (org.eclipse.jface.viewers.ICheckStateProvider)4 ModifyEvent (org.eclipse.swt.events.ModifyEvent)4