List of usage examples for org.springframework.ide.eclipse.core.java JdtUtils getReturnTypeString
public static String getReturnTypeString(IMethod method, boolean classTypesOnly)
From source file:org.dozer.eclipse.plugin.editorpage.utils.DozerUiUtils.java
public static AbstractListViewer createLabelMethodCombobox(Composite client, String messagePrefix) { createLabel(client, messagePrefix);//from w w w . ja v a2 s . c om final CCombo combo = new CCombo(client, SWT.FLAT | SWT.BORDER); TableWrapData td = new TableWrapData(); td.grabHorizontal = true; //td.maxWidth = 400; combo.setLayoutData(td); toolkit.adapt(combo); toolkit.paintBordersFor(combo); combo.setToolTipText(Messages.getString(messagePrefix + "_hint")); //$NON-NLS-1$ final ComboViewer comboViewer = new ComboViewer(combo); //Add Focus-Lost Listener so that the entered text gets converted to a IMethod and gets selected. //This way the databinding works combo.addFocusListener(new FocusListener() { private StringToMethodConverter converter = new StringToMethodConverter(null, comboViewer); public void focusGained(FocusEvent e) { } public void focusLost(FocusEvent e) { //already selected (due to combobox select) if (!comboViewer.getSelection().isEmpty()) return; converter.setExistingMethods((List<IMethod>) comboViewer.getInput()); Object convertedText = converter.convert(combo.getText()); comboViewer.setSelection(new StructuredSelection(convertedText)); } }); comboViewer.setContentProvider(new ObservableListContentProvider()); comboViewer.setLabelProvider(new LabelProvider() { @Override public Image getImage(Object element) { //FIXME never gets invoced, as a CCombo only shows text IMethod method = (IMethod) element; Image image = null; try { image = Activator.getDefault().getJavaElementLabelProvider().getImageLabel(method, method.getFlags() | JavaElementImageProvider.SMALL_ICONS); } catch (Exception e) { Logger.logException(e); } return image; } @Override public String getText(Object element) { IMethod method = (IMethod) element; StringBuilder buf = new StringBuilder(); //Copied from org.springframework.ide.eclipse.beans.ui.editor.contentassist.MethodContentAssistCalculator String methodName = method.getElementName(); // add method name String replaceText = methodName; buf.append(replaceText); String[] parameterNames = new String[] { "?" }; String[] parameterTypes = new String[] { "?" }; String className = "?"; String returnType = "?"; try { parameterNames = method.getParameterNames(); parameterTypes = JdtUtils.getParameterTypesString(method); returnType = JdtUtils.getReturnTypeString(method, true); className = method.getParent().getElementName(); } catch (JavaModelException e) { //do nothing } // add method parameters if (parameterTypes.length > 0 && parameterNames.length > 0) { buf.append(" ("); for (int i = 0; i < parameterTypes.length; i++) { buf.append(parameterTypes[i]); buf.append(' '); buf.append(parameterNames[i]); if (i < (parameterTypes.length - 1)) { buf.append(", "); } } buf.append(") "); } else { buf.append("() "); } // add return type if (returnType != null) { buf.append(Signature.getSimpleName(returnType)); buf.append(" - "); } else { buf.append(" void - "); } // add class name buf.append(className); String displayText = buf.toString(); return displayText; } }); return comboViewer; }