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;
}
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;
}
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;
}
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);
}
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;
}
Aggregations