Example usage for org.springframework.ide.eclipse.core.java JdtUtils getReturnTypeString

List of usage examples for org.springframework.ide.eclipse.core.java JdtUtils getReturnTypeString

Introduction

In this page you can find the example usage for org.springframework.ide.eclipse.core.java JdtUtils getReturnTypeString.

Prototype

public static String getReturnTypeString(IMethod method, boolean classTypesOnly) 

Source Link

Usage

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;
}