blob: 59c3f544dff9be9f4c89b309f3642715b3591dd3 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2015 Christian Pontesegger and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License_Identifier: EPL-2.0
*
* Contributors:
* Christian Pontesegger - initial API and implementation
*******************************************************************************/
package org.eclipse.ease.modules.platform.completion;
import org.eclipse.ease.ICompletionContext;
import org.eclipse.ease.modules.platform.ResourcesModule;
import org.eclipse.ease.modules.platform.ScriptingModule;
import org.eclipse.ease.modules.platform.UIModule;
import org.eclipse.ease.ui.completion.provider.AbstractFileLocationCompletionProvider;
public class ResourcesCompletionProvider extends AbstractFileLocationCompletionProvider {
@Override
public boolean isActive(final ICompletionContext context) {
if (super.isActive(context))
return isMethodFromResources(context) || isMethodFromScripting(context) || isMethodFromUi(context);
return false;
}
private boolean isMethodFromUi(final ICompletionContext context) {
if (context.getLoadedModules().contains(getModuleDefinition(UIModule.MODULE_ID)))
return isMethodParameter(context, "showEditor", 0) || isMethodParameter(context, "openEditor", 0);
return false;
}
private boolean isMethodFromScripting(final ICompletionContext context) {
if (context.getLoadedModules().contains(getModuleDefinition(ScriptingModule.MODULE_ID)))
return isMethodParameter(context, "fork", 0);
return false;
}
private boolean isMethodFromResources(final ICompletionContext context) {
if (context.getLoadedModules().contains(getModuleDefinition(ResourcesModule.MODULE_ID))) {
return isMethodParameter(context, "copyFile", 0) || isMethodParameter(context, "copyFile", 1) || isMethodParameter(context, "createFile", 0)
|| isMethodParameter(context, "createFolder", 0) || isMethodParameter(context, "deleteFile", 0)
|| isMethodParameter(context, "deleteFolder", 0) || isMethodParameter(context, "fileExists", 0)
|| isMethodParameter(context, "findFiles", 1) || isMethodParameter(context, "getFile", 0) || isMethodParameter(context, "openFile", 0)
|| isMethodParameter(context, "readFile", 0) || isMethodParameter(context, "writeFile", 0)
|| isMethodParameter(context, "createProblemMarker", 1);
}
return false;
}
@Override
protected boolean showCandidate(final Object candidate) {
if (isMethodFromUi(getContext()))
return !isFileSystemResource(candidate);
if (isMethodParameter(getContext(), "createFile", 0) || isMethodParameter(getContext(), "createFolder", 0)
|| isMethodParameter(getContext(), "deleteFolder", 0) || isMethodParameter(getContext(), "findFiles", 1))
return !isFile(candidate);
return super.showCandidate(candidate);
}
}