📄 midletsearchscope.java
字号:
/**
* Copyright (c) 2003-2005 Craig Setera
* All Rights Reserved.
* Licensed under the Eclipse Public License - v 1.0
* For more information see http://www.eclipse.org/legal/epl-v10.html
*/
package eclipseme.core.internal.utils;
import java.util.HashSet;
import java.util.Set;
import org.eclipse.core.runtime.IPath;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.core.search.IJavaSearchScope;
import org.eclipse.jdt.core.search.SearchEngine;
import eclipseme.core.IEclipseMECoreConstants;
/**
* A midlet search scope built from a set of other search scopes.
* <p />
* Copyright (c) 2003-2005 Craig Setera<br>
* All Rights Reserved.<br>
* Licensed under the Eclipse Public License - v 1.0<p/>
* <br>
* $Revision: 1.2 $
* <br>
* $Date: 2005/07/07 02:37:16 $
* <br>
* @author Craig Setera
*/
public class MidletSearchScope extends AbstractSearchScope {
private class MidletSuperclassExclusionScope extends AbstractSearchScope {
/**
* @see org.eclipse.jdt.core.search.IJavaSearchScope#encloses(java.lang.String)
*/
public boolean encloses(String resourcePath) {
boolean excluded =
resourcePath.endsWith("java/lang/Object.class") ||
resourcePath.endsWith("javax/microedition/midlet/MIDlet.class");
return !excluded;
}
/**
* @see org.eclipse.jdt.core.search.IJavaSearchScope#encloses(org.eclipse.jdt.core.IJavaElement)
*/
public boolean encloses(IJavaElement element) {
return true;
}
/**
* @see org.eclipse.jdt.core.search.IJavaSearchScope#enclosingProjectsAndJars()
*/
public IPath[] enclosingProjectsAndJars() {
return new IPath[0];
}
}
private IJavaSearchScope[] scopes;
public MidletSearchScope(IJavaProject javaProject)
throws JavaModelException
{
super();
this.scopes = createSearchScopes(javaProject);
}
/**
* @see org.eclipse.jdt.core.search.IJavaSearchScope#encloses(java.lang.String)
*/
public boolean encloses(String resourcePath) {
boolean encloses = true;
for (int i = 0; encloses && i < scopes.length; i++) {
encloses = scopes[i].encloses(resourcePath);
}
return encloses;
}
/**
* @see org.eclipse.jdt.core.search.IJavaSearchScope#encloses(org.eclipse.jdt.core.IJavaElement)
*/
public boolean encloses(IJavaElement element) {
boolean encloses = true;
for (int i = 0; encloses && i < scopes.length; i++) {
encloses = scopes[i].encloses(element);
}
return encloses;
}
/**
* @see org.eclipse.jdt.core.search.IJavaSearchScope#enclosingProjectsAndJars()
*/
public IPath[] enclosingProjectsAndJars() {
Set set = new HashSet();
for (int i = 0; i < scopes.length; i++) {
IJavaSearchScope scope = scopes[i];
IPath[] scopePaths = scope.enclosingProjectsAndJars();
for (int j = 0; j < scopePaths.length; j++) {
set.add(scopePaths[j]);
}
}
return (IPath[]) set.toArray(new IPath[set.size()]);
}
/**
* Create the search scopes to be used by the midlet search scope.
*
* @param javaProject
* @return
* @throws JavaModelException
*/
private IJavaSearchScope[] createSearchScopes(IJavaProject javaProject)
throws JavaModelException
{
IJavaSearchScope[] scopes = null;
if ((javaProject == null) || (!javaProject.exists())) {
IJavaSearchScope searchScope = SearchEngine.createWorkspaceScope();
scopes = new IJavaSearchScope[] { searchScope };
} else {
IType type = javaProject.findType(IEclipseMECoreConstants.MIDLET_SUPERCLASS);
IJavaElement[] elements = new IJavaElement[] { javaProject };
scopes = new IJavaSearchScope[] {
SearchEngine.createHierarchyScope(type),
SearchEngine.createJavaSearchScope(elements),
new MidletSuperclassExclusionScope(),
};
}
return scopes;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -