/* (non-Javadoc) * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) */ public boolean select(Viewer viewer, Object parent, Object element) { // always let through types, we only care about configs if (element instanceof ILaunchConfigurationType) { return true; } if (element instanceof ILaunchConfiguration) { try { ILaunchConfiguration config = (ILaunchConfiguration) element; IResource[] resources = config.getMappedResources(); // if it has no mapping, it might not have migration delegate, so let it pass if (resources == null) { return true; } for (int i = 0; i < resources.length; i++) { IProject project = resources[i].getProject(); // we don't want overlap with the deleted projects filter, so we need to allow projects // that don't exist through if (project != null && (project.isOpen() || !project.exists())) { return true; } } } catch (CoreException e) { } } return false; }
protected IQtBuildConfiguration getQtBuildConfiguration( ILaunchConfiguration configuration, String mode, ILaunchTarget target, IProgressMonitor monitor) throws CoreException { // Find the Qt build config ICBuildConfigurationManager configManager = Activator.getService(ICBuildConfigurationManager.class); QtBuildConfigurationProvider provider = (QtBuildConfigurationProvider) configManager.getProvider(QtBuildConfigurationProvider.ID); IProject project = configuration.getMappedResources()[0].getProject(); // Find the toolchains that support this target Map<String, String> properties = new HashMap<>(); populateToolChainProperties(target, properties); IToolChainManager toolChainManager = Activator.getService(IToolChainManager.class); for (IToolChain toolChain : toolChainManager.getToolChainsMatching(properties)) { IQtBuildConfiguration qtConfig = provider.getConfiguration(project, toolChain, mode, monitor); if (qtConfig == null) { qtConfig = provider.createConfiguration(project, toolChain, mode, monitor); } if (qtConfig != null) { return qtConfig; } } // Couldn't find any throw new CoreException( new Status( IStatus.ERROR, Activator.ID, String.format("No suitable SDK found for target %s.", target.getId()))); }
@Override protected IProject[] getBuildOrder(ILaunchConfiguration configuration, String mode) throws CoreException { // 1. Extract project from configuration // TODO dependencies too. IProject project = configuration.getMappedResources()[0].getProject(); return new IProject[] {project}; }
/** * Returns the default encoding for the specified config * * @param config the configuration to get the encoding for * @return the default encoding * @since 3.4 */ private String getDefaultEncoding(ILaunchConfiguration config) { try { IResource[] resources = config.getMappedResources(); if (resources != null && resources.length > 0) { IResource res = resources[0]; if (res instanceof IFile) { return ((IFile) res).getCharset(); } else if (res instanceof IContainer) { return ((IContainer) res).getDefaultCharset(); } } } catch (CoreException ce) { LaunchPlugin.log(ce); } return ResourcesPlugin.getEncoding(); }
private String getDefaultSharedConfigLocation(ILaunchConfiguration config) { String path = IInternalDebugCoreConstants.EMPTY_STRING; try { IResource[] res = config.getMappedResources(); if (res != null) { IProject proj; for (int i = 0; i < res.length; i++) { proj = res[i].getProject(); if (proj != null && proj.isAccessible()) { return proj.getFullPath().toOSString(); } } } } catch (CoreException e) { LaunchPlugin.log(e); } return path; }
/* (non-Javadoc) * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) */ @Override public boolean select(Viewer viewer, Object parentElement, Object element) { if (element instanceof ILaunchConfigurationType) { return true; } if (element instanceof ILaunchConfiguration) { ILaunchConfiguration config = (ILaunchConfiguration) element; try { IResource[] resources = config.getMappedResources(); if (resources == null) { return true; } IWorkbenchWindow window = DebugUIPlugin.getActiveWorkbenchWindow(); if (window == null) { return true; } IWorkbenchPage page = window.getActivePage(); if (page == null) { return true; } IWorkingSet[] wsets = page.getWorkingSets(); if (wsets.length < 1) { return true; } // remove breakpoint working sets ArrayList<IWorkingSet> ws = new ArrayList<IWorkingSet>(); for (int i = 0; i < wsets.length; i++) { if (!IDebugUIConstants.BREAKPOINT_WORKINGSET_ID.equals(wsets[i].getId())) { ws.add(wsets[i]); } } if (ws.isEmpty()) { return true; } for (int i = 0; i < resources.length; i++) { if (workingSetContains(ws.toArray(new IWorkingSet[ws.size()]), resources[i])) { return true; } } } catch (CoreException e) { } } return false; }