Search in sources :

Example 21 with IAdaptable

use of org.eclipse.core.runtime.IAdaptable in project dbeaver by serge-rider.

the class ObjectPropertiesEditor method getAdapter.

@Override
public <T> T getAdapter(Class<T> adapter) {
    Object result = null;
    final Object activeFolder = getActiveFolder();
    if (activeFolder != null) {
        if (activeFolder instanceof IAdaptable) {
            result = ((IAdaptable) activeFolder).getAdapter(adapter);
        } else if (adapter.isAssignableFrom(activeFolder.getClass())) {
            result = activeFolder;
        }
    }
    if (result != null) {
        return adapter.cast(result);
    }
    //super.getAdapter(adapter);
    return null;
}
Also used : IAdaptable(org.eclipse.core.runtime.IAdaptable) DBSObject(org.jkiss.dbeaver.model.struct.DBSObject)

Example 22 with IAdaptable

use of org.eclipse.core.runtime.IAdaptable in project dbeaver by serge-rider.

the class NavigatorAdapterFactory method getAdapter.

@Override
public <T> T getAdapter(Object adaptableObject, Class<T> adapterType) {
    if (adapterType == DBPDataSourceContainer.class) {
        if (adaptableObject instanceof DBNDataSource) {
            return adapterType.cast(((DBNDataSource) adaptableObject).getDataSourceContainer());
        }
        DBSObject object = DBUtils.getFromObject(adaptableObject);
        if (object == null) {
            return null;
        }
        if (object instanceof DBPDataSourceContainer) {
            return adapterType.cast(object);
        }
        DBPDataSource dataSource = object.getDataSource();
        return dataSource == null ? null : adapterType.cast(dataSource.getContainer());
    } else if (DBPObject.class.isAssignableFrom(adapterType)) {
        DBPObject object = null;
        if (adaptableObject instanceof DBSWrapper) {
            object = ((DBSWrapper) adaptableObject).getObject();
        } else if (adaptableObject instanceof DBPObject) {
            object = (DBPObject) adaptableObject;
        }
        if (object != null && adapterType.isAssignableFrom(object.getClass())) {
            return adapterType.cast(object);
        }
    } else if (IResource.class.isAssignableFrom(adapterType)) {
        if (adaptableObject instanceof DBNResource) {
            return ((DBNResource) adaptableObject).getAdapter(adapterType);
        }
    } else if (adapterType == IPropertySource.class) {
        DBPObject dbObject = null;
        if (adaptableObject instanceof DBSWrapper) {
            dbObject = ((DBSWrapper) adaptableObject).getObject();
        } else if (adaptableObject instanceof DBPObject) {
            dbObject = (DBPObject) adaptableObject;
        }
        if (dbObject instanceof IPropertySource) {
            return adapterType.cast(dbObject);
        }
        if (dbObject instanceof DBPPropertySource) {
            return adapterType.cast(new PropertySourceDelegate((DBPPropertySource) dbObject));
        }
        if (dbObject instanceof IAdaptable) {
            Object adapter = ((IAdaptable) dbObject).getAdapter(IPropertySource.class);
            if (adapter != null) {
                return adapterType.cast(adapter);
            }
            adapter = ((IAdaptable) dbObject).getAdapter(DBPPropertySource.class);
            if (adapter != null) {
                return adapterType.cast(new PropertySourceDelegate((DBPPropertySource) adapter));
            }
        }
        if (dbObject != null) {
            PropertyCollector props = new PropertyCollector(adaptableObject, dbObject, true);
            props.collectProperties();
            if (props.isEmpty() && adaptableObject instanceof DBSObject) {
                // Add default properties
                DBSObject meta = (DBSObject) adaptableObject;
                //$NON-NLS-1$
                props.addProperty(null, DBConstants.PROP_ID_NAME, CoreMessages.model_navigator_Name, meta.getName());
                //$NON-NLS-1$
                props.addProperty(null, "desc", CoreMessages.model_navigator_Description, meta.getDescription());
            }
            return adapterType.cast(new PropertySourceDelegate(props));
        }
    } else if (adapterType == IWorkbenchAdapter.class) {
        // Workbench adapter
        if (adaptableObject instanceof DBNNode) {
            final DBNNode node = (DBNNode) adaptableObject;
            WorkbenchAdapter workbenchAdapter = new WorkbenchAdapter() {

                @Override
                public ImageDescriptor getImageDescriptor(Object object) {
                    return DBeaverIcons.getImageDescriptor(node.getNodeIconDefault());
                }

                @Override
                public String getLabel(Object o) {
                    return node.getNodeName();
                }

                @Override
                public Object getParent(Object o) {
                    return node.getParentNode();
                }
            };
            return adapterType.cast(workbenchAdapter);
        } else {
            return null;
        }
    }
    return null;
}
Also used : IAdaptable(org.eclipse.core.runtime.IAdaptable) PropertySourceDelegate(org.jkiss.dbeaver.ui.properties.PropertySourceDelegate) DBSWrapper(org.jkiss.dbeaver.model.struct.DBSWrapper) DBNNode(org.jkiss.dbeaver.model.navigator.DBNNode) DBNDataSource(org.jkiss.dbeaver.model.navigator.DBNDataSource) DBPPropertySource(org.jkiss.dbeaver.model.preferences.DBPPropertySource) PropertyCollector(org.jkiss.dbeaver.runtime.properties.PropertyCollector) IPropertySource(org.eclipse.ui.views.properties.IPropertySource) WorkbenchAdapter(org.eclipse.ui.model.WorkbenchAdapter) IWorkbenchAdapter(org.eclipse.ui.model.IWorkbenchAdapter) DBNResource(org.jkiss.dbeaver.model.navigator.DBNResource) DBSObject(org.jkiss.dbeaver.model.struct.DBSObject) DBSObject(org.jkiss.dbeaver.model.struct.DBSObject)

Example 23 with IAdaptable

use of org.eclipse.core.runtime.IAdaptable in project ow by vtst.

the class LessProjectPropertyPage method getProject.

/**
   * @return  The project resource edited by this page.
   */
protected IProject getProject() {
    IAdaptable element = getElement();
    if (element instanceof IProject)
        return (IProject) element;
    Object resource = element.getAdapter(IResource.class);
    if (resource instanceof IProject)
        return (IProject) resource;
    return null;
}
Also used : IAdaptable(org.eclipse.core.runtime.IAdaptable) IProject(org.eclipse.core.resources.IProject)

Example 24 with IAdaptable

use of org.eclipse.core.runtime.IAdaptable in project ow by vtst.

the class EasyLaunchShortcut method launch.

// **************************************************************************
// Implementation of ILaunchShortcut
/* (non-Javadoc)
   * @see org.eclipse.debug.ui.ILaunchShortcut#launch(org.eclipse.jface.viewers.ISelection, java.lang.String)
   */
@Override
public void launch(ISelection selection, String mode) {
    ArrayList<IResource> resources = new ArrayList<IResource>();
    if (selection instanceof IStructuredSelection) {
        IStructuredSelection ssel = (IStructuredSelection) selection;
        @SuppressWarnings("unchecked") Iterator<Object> iterator = ssel.iterator();
        while (iterator.hasNext()) {
            Object obj = iterator.next();
            IResource resource = (IResource) Platform.getAdapterManager().getAdapter(obj, IResource.class);
            if (resource == null && obj instanceof IAdaptable) {
                resource = (IResource) ((IAdaptable) obj).getAdapter(IResource.class);
            }
            if (resource != null) {
                resources.add(resource);
            }
        }
    }
    launch(resources, mode);
}
Also used : IAdaptable(org.eclipse.core.runtime.IAdaptable) ArrayList(java.util.ArrayList) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) IResource(org.eclipse.core.resources.IResource)

Example 25 with IAdaptable

use of org.eclipse.core.runtime.IAdaptable in project ow by vtst.

the class ValidatorPropertyPage method getResource.

protected IResource getResource() {
    IAdaptable element = getElement();
    if (element instanceof IResource)
        return (IResource) element;
    Object resource = element.getAdapter(IResource.class);
    if (resource instanceof IResource)
        return (IResource) resource;
    return null;
}
Also used : IAdaptable(org.eclipse.core.runtime.IAdaptable) IResource(org.eclipse.core.resources.IResource)

Aggregations

IAdaptable (org.eclipse.core.runtime.IAdaptable)33 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)12 IProject (org.eclipse.core.resources.IProject)11 ArrayList (java.util.ArrayList)9 IResource (org.eclipse.core.resources.IResource)8 IFile (org.eclipse.core.resources.IFile)7 CoreException (org.eclipse.core.runtime.CoreException)5 Iterator (java.util.Iterator)4 List (java.util.List)4 IOException (java.io.IOException)3 IProgressMonitor (org.eclipse.core.runtime.IProgressMonitor)3 StructuredSelection (org.eclipse.jface.viewers.StructuredSelection)3 File (java.io.File)2 LinkedList (java.util.LinkedList)2 ExecutionException (org.eclipse.core.commands.ExecutionException)2 Resource (org.eclipse.emf.ecore.resource.Resource)2 ResourceSet (org.eclipse.emf.ecore.resource.ResourceSet)2 EditPart (org.eclipse.gef.EditPart)2 AbstractTransactionalCommand (org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand)2 Diagram (org.eclipse.gmf.runtime.notation.Diagram)2