From f81770610f0653aebf06da99f4b55b8e6b2bc665 Mon Sep 17 00:00:00 2001 From: Carl Thronson Date: Fri, 2 Jan 2015 16:28:58 -0800 Subject: [PATCH] enhance the js script meta data support Signed-off-by: Carl Thronson --- .../ui/script/JSCompletionProcessor.java | 30 +++++++++++-------- .../internal/ui/script/JSSyntaxContext.java | 5 ++++ .../internal/ui/script/JavaClassJSObject.java | 29 ++++++++++-------- 3 files changed, 39 insertions(+), 25 deletions(-) diff --git a/UI/org.eclipse.birt.report.designer.ui/src/org/eclipse/birt/report/designer/internal/ui/script/JSCompletionProcessor.java b/UI/org.eclipse.birt.report.designer.ui/src/org/eclipse/birt/report/designer/internal/ui/script/JSCompletionProcessor.java index 3afd36310c0..30b39b42ba9 100644 --- a/UI/org.eclipse.birt.report.designer.ui/src/org/eclipse/birt/report/designer/internal/ui/script/JSCompletionProcessor.java +++ b/UI/org.eclipse.birt.report.designer.ui/src/org/eclipse/birt/report/designer/internal/ui/script/JSCompletionProcessor.java @@ -136,8 +136,7 @@ public ICompletionProposal[] computeCompletionProposals( protected JSExpression createJSExpression( ) { - return new JSExpression( context, - currentExpressionStr ); + return new JSExpression( context, currentExpressionStr ); } /** @@ -241,14 +240,14 @@ protected CompletionProposal[] getCompletionProposals( null, metas[i].getName( ), null, - null ) ); + metas[i].getDescription( ) ) ); } } return proposals.toArray( new CompletionProposal[proposals.size( )] ); } - protected CompletionProposal[] getCompletionProposals( JSObjectMetaData meta, - int offset ) + protected CompletionProposal[] getCompletionProposals( + JSObjectMetaData meta, int offset ) { List proposals = new ArrayList( ); int wordLength = currentWord == null ? 0 : currentWord.length( ); @@ -270,7 +269,7 @@ protected CompletionProposal[] getCompletionProposals( JSObjectMetaData meta, getMemberImage( members[i].getVisibility( ) ), members[i].getDisplayText( ), null, - null ) ); + members[i].getDescription( ) ) ); } } } @@ -298,7 +297,7 @@ protected CompletionProposal[] getCompletionProposals( JSObjectMetaData meta, getMethodImage( methods[i].getVisibility( ) ), methods[i].getDisplayText( ), null, - null ) ); + methods[i].getDescription( ) ) ); } } } @@ -344,8 +343,8 @@ protected Image getMethodImage( int visibility ) /* * (non-Javadoc) * - * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#computeContextInformation(org.eclipse.jface.text.ITextViewer, - * int) + * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor# + * computeContextInformation(org.eclipse.jface.text.ITextViewer, int) */ public IContextInformation[] computeContextInformation( ITextViewer viewer, int offset ) @@ -356,7 +355,8 @@ public IContextInformation[] computeContextInformation( ITextViewer viewer, /* * (non-Javadoc) * - * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#getCompletionProposalAutoActivationCharacters() + * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor# + * getCompletionProposalAutoActivationCharacters() */ public char[] getCompletionProposalAutoActivationCharacters( ) { @@ -368,7 +368,8 @@ public char[] getCompletionProposalAutoActivationCharacters( ) /* * (non-Javadoc) * - * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#getContextInformationAutoActivationCharacters() + * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor# + * getContextInformationAutoActivationCharacters() */ public char[] getContextInformationAutoActivationCharacters( ) { @@ -378,7 +379,9 @@ public char[] getContextInformationAutoActivationCharacters( ) /* * (non-Javadoc) * - * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#getErrorMessage() + * @see + * org.eclipse.jface.text.contentassist.IContentAssistProcessor#getErrorMessage + * () */ public String getErrorMessage( ) { @@ -388,7 +391,8 @@ public String getErrorMessage( ) /* * (non-Javadoc) * - * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#getContextInformationValidator() + * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor# + * getContextInformationValidator() */ public IContextInformationValidator getContextInformationValidator( ) { diff --git a/UI/org.eclipse.birt.report.designer.ui/src/org/eclipse/birt/report/designer/internal/ui/script/JSSyntaxContext.java b/UI/org.eclipse.birt.report.designer.ui/src/org/eclipse/birt/report/designer/internal/ui/script/JSSyntaxContext.java index 6b1f44046e9..f40ec9c36cd 100644 --- a/UI/org.eclipse.birt.report.designer.ui/src/org/eclipse/birt/report/designer/internal/ui/script/JSSyntaxContext.java +++ b/UI/org.eclipse.birt.report.designer.ui/src/org/eclipse/birt/report/designer/internal/ui/script/JSSyntaxContext.java @@ -146,6 +146,11 @@ public void setVariable( String name, IClassInfo classInfo ) else objectMetaMap.put( name, new ExtensionClassJSObject( classInfo ) ); } + + public void setVariable( String name, JSObjectMetaData meta ) + { + objectMetaMap.put( name, meta ); + } public void removeVariable( String name ) { diff --git a/UI/org.eclipse.birt.report.designer.ui/src/org/eclipse/birt/report/designer/internal/ui/script/JavaClassJSObject.java b/UI/org.eclipse.birt.report.designer.ui/src/org/eclipse/birt/report/designer/internal/ui/script/JavaClassJSObject.java index 09814ec187e..1d27e93ff11 100644 --- a/UI/org.eclipse.birt.report.designer.ui/src/org/eclipse/birt/report/designer/internal/ui/script/JavaClassJSObject.java +++ b/UI/org.eclipse.birt.report.designer.ui/src/org/eclipse/birt/report/designer/internal/ui/script/JavaClassJSObject.java @@ -23,7 +23,7 @@ * implementation should better done by Engine because Engine knows what the * properties and methods can be used in javascript better. */ -class JavaClassJSObject implements JSObjectMetaData +public class JavaClassJSObject implements JSObjectMetaData { private Class clazz; @@ -58,6 +58,11 @@ public JSMethod[] getMethods( ) return jsMehods.toArray( new JSMethod[jsMehods.size( )] ); } + protected JavaClassMethod createJavaClassMethod( Method mtd ) + { + return new JavaClassMethod( mtd ); + } + private List getMethods( Method[] methods ) { List jsMehods = new ArrayList( ); @@ -80,7 +85,7 @@ private List getMethods( Method[] methods ) getMethodList.add( methods[i].getName( ).substring( 3 ) ); continue; } - jsMehods.add( new JavaClassMethod( methods[i] ) ); + jsMehods.add( createJavaClassMethod( methods[i] ) ); } for ( int i = 0; i < methods.length; i++ ) @@ -92,7 +97,7 @@ private List getMethods( Method[] methods ) if ( !getMethodList.contains( methods[i].getName( ) .substring( 3 ) ) ) { - jsMehods.add( new JavaClassMethod( methods[i] ) ); + jsMehods.add( createJavaClassMethod( methods[i] ) ); } continue; } @@ -104,7 +109,7 @@ private List getMethods( Method[] methods ) if ( !setMethodList.contains( methods[i].getName( ) .substring( 3 ) ) ) { - jsMehods.add( new JavaClassMethod( methods[i] ) ); + jsMehods.add( createJavaClassMethod( methods[i] ) ); } continue; } @@ -173,7 +178,7 @@ private List getFields( Class clazz ) return jsFields; } - private String getFieldName( String methodName ) + private static String getFieldName( String methodName ) { if ( methodName.length( ) == 3 ) { @@ -205,7 +210,7 @@ public int getVisibility( ) /** * JavaClassMethod */ - private class JavaClassMethod implements JSMethod, Comparable + public static class JavaClassMethod implements JSMethod, Comparable { private Method method; @@ -236,8 +241,8 @@ public JSObjectMetaData getReturn( ) public JSObjectMetaData[] getArguments( ) { - //TODO impl real argument info, currently simply use argument type - + // TODO impl real argument info, currently simply use argument type + Class[] types = method.getParameterTypes( ); if ( types.length > 0 ) @@ -333,7 +338,7 @@ public int compareTo( Object obj ) /** * JavaClassField */ - private class JavaClassField implements JSField, Comparable + public static class JavaClassField implements JSField, Comparable { private String name; @@ -490,7 +495,7 @@ public int compareTo( Object obj ) } - private String getSimpleName( Class clazz ) + private static String getSimpleName( Class clazz ) { String simpleName = null; if ( clazz.isArray( ) ) @@ -513,7 +518,7 @@ private String getSimpleName( Class clazz ) return simpleName; } - private String getSimpleName( String name ) + private static String getSimpleName( String name ) { return name.substring( name.lastIndexOf( "." ) + 1 ); //$NON-NLS-1$ } @@ -533,7 +538,7 @@ public JSObjectMetaData getComponentType( ) * the specified Class object. * @return the name of the specified Class object. */ - private String getClazzName( Class clazz ) + private static String getClazzName( Class clazz ) { String name;