use of org.eclipse.jdt.ui.dialogs.ITypeInfoRequestor in project liferay-ide by liferay.
the class ServiceTypeImplBrowseActionHandler method browse.
@Override
public String browse(Presentation context) {
Element element = getModelElement();
Property property = property();
IProject project = element.adapt(IProject.class);
try {
IJavaSearchScope scope = null;
TypeSelectionExtension extension = null;
if ("type".equals(_kind)) {
scope = SearchEngine.createJavaSearchScope(new IJavaProject[] { JavaCore.create(project) });
extension = new TypeSelectionExtension() {
@Override
public ITypeInfoFilterExtension getFilterExtension() {
return new ITypeInfoFilterExtension() {
public boolean select(ITypeInfoRequestor typeInfoRequestor) {
if (typeInfoRequestor.getPackageName().startsWith("com.liferay") && typeInfoRequestor.getTypeName().endsWith("Service")) {
return true;
}
return false;
}
};
}
};
} else if ("impl".equals(_kind)) {
String serviceType = _getServiceType(element);
if (serviceType != null) {
String wrapperType = serviceType + "Wrapper";
scope = SearchEngine.createHierarchyScope(JavaCore.create(project).findType(wrapperType));
} else {
Shell shell = ((SwtPresentation) context).shell();
MessageDialog.openInformation(shell, Msgs.serviceImplBrowse, Msgs.validServiceTypeProperty);
return null;
}
}
Shell shell = ((SwtPresentation) context).shell();
SelectionDialog dlg = JavaUI.createTypeDialog(shell, null, scope, _browseDialogStyle, false, StringPool.DOUBLE_ASTERISK, extension);
String title = property.definition().getLabel(true, CapitalizationType.TITLE_STYLE, false);
dlg.setTitle(Msgs.select + title);
if (dlg.open() == SelectionDialog.OK) {
Object[] results = dlg.getResult();
assert (results != null) && (results.length == 1);
if (results[0] instanceof IType) {
return ((IType) results[0]).getFullyQualifiedName();
}
}
} catch (JavaModelException jme) {
HookUI.logError(jme);
}
return null;
}
Aggregations