This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
We are proposing extension for java/source to allow use of (some) Java features in non-Java (especially JSP) files and in dialogs. A "virtual" Java source code needs to be created for non-Java files (and dialogs), which is then parsed and used by selected features (eg. semantic highlighting, code completion, hyperlinking, mark occurrences). Highlights of the proposed change: -java/source/preprocessorbridge (friend API) has been extended, JSP editor has been added as a friend -new API class ConversionInfo has been created in java/source, to allow translation from document positions into virtual Java source positions, and vice versa. An instance can be get using CompilationInfo.getConversionInfo(). Please note that only clients that wish to work over non-Java files or in dialogs need to use this class. -new method JavaSource.forFileObjectBinding has been added, to allow binding of a JTextComponent (presumably inside a dialog) and a Java source file. Creates a virtual Java Source, which combines the text from the Java source file and the text inside the JTextComponent -JavaSource.forDocument now returns JavaSource also for Documents which have binding created using JavaSource.forFileObjectBinding -the JavaSourceTaskFactory supports now allow to specify mime types on which the tasks should be run. The default is to run only on Java source file. I am attaching diff of the API, full code is in "retouche_jsp_2007_2" branch, in "java" CVS module and in web/jspsyntax.
Created attachment 43675 [details] Proposed change.
@since tags will be added to appropriate methods/classes before commit.
Several comments: 1) ConversionInfo and CI.getCnversionInfo() are misleading. What they should convert? It's not clear from the name. I suggest to rename them into PositionConversionInfo and CI.getPositionConverionInfo or something more descriptive. 2) JS.forFileObjectBinding - uffff, the name should change, it says nothing about the method at all, no one will use this. 3) PositionInfoJavaFileFilterImplementation extends JavaFileFilterImplementation interface which is in preprocessor bridge module, maybe it should be moved also into preprocessor bridge, but this is not important. 4) The issue number in the apichanges is strange.
Comments: 1) Placing JavaSourceProvider interface inside of the preprocessorbridge module seems a bit strange. 2) ad TZ1 - based on the public API methods of the class I suggest to omit "Info" part of the names and use PositionConvertor and getPositionConvertor() The rest of the API seems to be OK for me.
TZ1&TZ2&DB2: unfortunately, I do not have a good proposal for names, so I will use whatever names you agree on TZ3&DB1: (this is based on Dusan's original proposal :-) ). given that this is only a friend SPI, I do not think this is a big problem. Or is it? TZ4: yes, it is intentionally very strange, will be corrected before commit
Created attachment 43779 [details] Updated patch.
Attached is updated patch: -(get)ConversionInfo->(get)PositionConverter -JavaSource.forFileObjectBinding->DialogBinding.bindComponentToFile in java/sourceui
The new patch looks good.
Done: Checking in java/editor/nbproject/project.properties; /cvs/java/editor/nbproject/project.properties,v <-- project.properties new revision: 1.18; previous revision: 1.17 done Checking in java/editor/nbproject/project.xml; /cvs/java/editor/nbproject/project.xml,v <-- project.xml new revision: 1.37; previous revision: 1.36 done Checking in java/editor/src/org/netbeans/modules/editor/java/GoToSupport.java; /cvs/java/editor/src/org/netbeans/modules/editor/java/GoToSupport.java,v <-- GoToSupport.java new revision: 1.14; previous revision: 1.13 done Checking in java/editor/src/org/netbeans/modules/editor/java/JavaCompletionItem.java; /cvs/java/editor/src/org/netbeans/modules/editor/java/JavaCompletionItem.java,v <-- JavaCompletionItem.java new revision: 1.47; previous revision: 1.46 done Checking in java/editor/src/org/netbeans/modules/editor/java/JavaCompletionProvider.java; /cvs/java/editor/src/org/netbeans/modules/editor/java/JavaCompletionProvider.java,v <-- JavaCompletionProvider.java new revision: 1.117; previous revision: 1.116 done Checking in java/editor/src/org/netbeans/modules/editor/java/Utilities.java; /cvs/java/editor/src/org/netbeans/modules/editor/java/Utilities.java,v <-- Utilities.java new revision: 1.26; previous revision: 1.25 done Checking in java/editor/src/org/netbeans/modules/java/editor/rename/InstantRenamePerformer.java; /cvs/java/editor/src/org/netbeans/modules/java/editor/rename/InstantRenamePerformer.java,v <-- InstantRenamePerformer.java new revision: 1.7; previous revision: 1.6 done Checking in java/editor/src/org/netbeans/modules/java/editor/semantic/FindLocalUsagesQuery.java; /cvs/java/editor/src/org/netbeans/modules/java/editor/semantic/FindLocalUsagesQuery.java,v <-- FindLocalUsagesQuery.java new revision: 1.4; previous revision: 1.3 done Checking in java/editor/src/org/netbeans/modules/java/editor/semantic/MarkOccurrencesHighlighter.java; /cvs/java/editor/src/org/netbeans/modules/java/editor/semantic/MarkOccurrencesHighlighter.java,v <-- MarkOccurrencesHighlighter.java new revision: 1.5; previous revision: 1.4 done Checking in java/editor/src/org/netbeans/modules/java/editor/semantic/MarkOccurrencesHighlighterFactory.java; /cvs/java/editor/src/org/netbeans/modules/java/editor/semantic/MarkOccurrencesHighlighterFactory.java,v <-- MarkOccurrencesHighlighterFactory.java new revision: 1.6; previous revision: 1.5 done Checking in java/editor/src/org/netbeans/modules/java/editor/semantic/MethodExitDetector.java; /cvs/java/editor/src/org/netbeans/modules/java/editor/semantic/MethodExitDetector.java,v <-- MethodExitDetector.java new revision: 1.4; previous revision: 1.3 done Checking in java/editor/src/org/netbeans/modules/java/editor/semantic/SemanticHighlighter.java; /cvs/java/editor/src/org/netbeans/modules/java/editor/semantic/SemanticHighlighter.java,v <-- SemanticHighlighter.java new revision: 1.15; previous revision: 1.14 done Checking in java/editor/src/org/netbeans/modules/java/editor/semantic/SemanticHighlighterFactory.java; /cvs/java/editor/src/org/netbeans/modules/java/editor/semantic/SemanticHighlighterFactory.java,v <-- SemanticHighlighterFactory.java new revision: 1.4; previous revision: 1.3 done Checking in java/editor/src/org/netbeans/modules/java/editor/semantic/Utilities.java; /cvs/java/editor/src/org/netbeans/modules/java/editor/semantic/Utilities.java,v <-- Utilities.java new revision: 1.8; previous revision: 1.7 done Checking in java/editor/test/unit/src/org/netbeans/modules/java/editor/semantic/DetectorTest.java; /cvs/java/editor/test/unit/src/org/netbeans/modules/java/editor/semantic/DetectorTest.java,v <-- DetectorTest.java new revision: 1.13; previous revision: 1.12 done Checking in java/hints/nbproject/project.properties; /cvs/java/hints/nbproject/project.properties,v <-- project.properties new revision: 1.25; previous revision: 1.24 done Checking in java/hints/nbproject/project.xml; /cvs/java/hints/nbproject/project.xml,v <-- project.xml new revision: 1.31; previous revision: 1.30 done Checking in java/hints/src/org/netbeans/modules/java/hints/AddOverrideAnnotation.java; /cvs/java/hints/src/org/netbeans/modules/java/hints/AddOverrideAnnotation.java,v <-- AddOverrideAnnotation.java new revision: 1.3; previous revision: 1.2 done Checking in java/hints/src/org/netbeans/modules/java/hints/EmptyCancelForCancellableTask.java; /cvs/java/hints/src/org/netbeans/modules/java/hints/EmptyCancelForCancellableTask.java,v <-- EmptyCancelForCancellableTask.java new revision: 1.2; previous revision: 1.1 done Checking in java/hints/src/org/netbeans/modules/java/hints/ExportNonAccessibleElement.java; /cvs/java/hints/src/org/netbeans/modules/java/hints/ExportNonAccessibleElement.java,v <-- ExportNonAccessibleElement.java new revision: 1.8; previous revision: 1.7 done Checking in java/hints/src/org/netbeans/modules/java/hints/HideField.java; /cvs/java/hints/src/org/netbeans/modules/java/hints/HideField.java,v <-- HideField.java new revision: 1.5; previous revision: 1.4 done Checking in java/hints/src/org/netbeans/modules/java/hints/HideFieldByVar.java; /cvs/java/hints/src/org/netbeans/modules/java/hints/HideFieldByVar.java,v <-- HideFieldByVar.java new revision: 1.3; previous revision: 1.2 done Checking in java/hints/src/org/netbeans/modules/java/hints/MissingHashCode.java; /cvs/java/hints/src/org/netbeans/modules/java/hints/MissingHashCode.java,v <-- MissingHashCode.java new revision: 1.3; previous revision: 1.2 done Checking in java/hints/src/org/netbeans/modules/java/hints/SuspiciousNamesCombination.java; /cvs/java/hints/src/org/netbeans/modules/java/hints/SuspiciousNamesCombination.java,v <-- SuspiciousNamesCombination.java new revision: 1.2; previous revision: 1.1 done Checking in java/hints/src/org/netbeans/modules/java/hints/UtilityClass.java; /cvs/java/hints/src/org/netbeans/modules/java/hints/UtilityClass.java,v <-- UtilityClass.java new revision: 1.7; previous revision: 1.6 done Checking in java/hints/src/org/netbeans/modules/java/hints/errors/CreateElement.java; /cvs/java/hints/src/org/netbeans/modules/java/hints/errors/CreateElement.java,v <-- CreateElement.java new revision: 1.7; previous revision: 1.6 done Checking in java/hints/src/org/netbeans/modules/java/hints/errors/ImportClass.java; /cvs/java/hints/src/org/netbeans/modules/java/hints/errors/ImportClass.java,v <-- ImportClass.java new revision: 1.4; previous revision: 1.3 done Checking in java/hints/src/org/netbeans/modules/java/hints/infrastructure/ErrorHintsFactory.java; /cvs/java/hints/src/org/netbeans/modules/java/hints/infrastructure/ErrorHintsFactory.java,v <-- ErrorHintsFactory.java new revision: 1.2; previous revision: 1.1 done Checking in java/hints/src/org/netbeans/modules/java/hints/infrastructure/ErrorHintsProvider.java; /cvs/java/hints/src/org/netbeans/modules/java/hints/infrastructure/ErrorHintsProvider.java,v <-- ErrorHintsProvider.java new revision: 1.4; previous revision: 1.3 done Checking in java/hints/test/unit/src/org/netbeans/modules/java/hints/errors/CreateClassTest.java; /cvs/java/hints/test/unit/src/org/netbeans/modules/java/hints/errors/CreateClassTest.java,v <-- CreateClassTest.java new revision: 1.3; previous revision: 1.2 done Checking in java/hints/test/unit/src/org/netbeans/modules/java/hints/errors/CreateMethodTest.java; /cvs/java/hints/test/unit/src/org/netbeans/modules/java/hints/errors/CreateMethodTest.java,v <-- CreateMethodTest.java new revision: 1.5; previous revision: 1.4 done Checking in java/hints/test/unit/src/org/netbeans/modules/java/hints/infrastructure/ErrorHintsTestBase.java; /cvs/java/hints/test/unit/src/org/netbeans/modules/java/hints/infrastructure/ErrorHintsTestBase.java,v <-- ErrorHintsTestBase.java new revision: 1.4; previous revision: 1.3 done Checking in java/source/apichanges.xml; /cvs/java/source/apichanges.xml,v <-- apichanges.xml new revision: 1.16; previous revision: 1.15 done Checking in java/source/nbproject/project.properties; /cvs/java/source/nbproject/project.properties,v <-- project.properties new revision: 1.28; previous revision: 1.27 done Checking in java/source/nbproject/project.xml; /cvs/java/source/nbproject/project.xml,v <-- project.xml new revision: 1.20; previous revision: 1.19 done Checking in java/source/preprocessorbridge/manifest.mf; /cvs/java/source/preprocessorbridge/manifest.mf,v <-- manifest.mf new revision: 1.2; previous revision: 1.1 done Checking in java/source/preprocessorbridge/nbproject/project.xml; /cvs/java/source/preprocessorbridge/nbproject/project.xml,v <-- project.xml new revision: 1.2; previous revision: 1.1 done Checking in java/source/preprocessorbridge/src/org/netbeans/modules/java/preprocessorbridge/spi/JavaSourceProvider.java; /cvs/java/source/preprocessorbridge/src/org/netbeans/modules/java/preprocessorbridge/spi/JavaSourceProvider.java,v <-- JavaSourceProvider.java new revision: 1.2; previous revision: 1.1 done Checking in java/source/src/org/netbeans/api/java/source/CompilationController.java; /cvs/java/source/src/org/netbeans/api/java/source/CompilationController.java,v <-- CompilationController.java new revision: 1.9; previous revision: 1.8 done Checking in java/source/src/org/netbeans/api/java/source/CompilationInfo.java; /cvs/java/source/src/org/netbeans/api/java/source/CompilationInfo.java,v <-- CompilationInfo.java new revision: 1.13; previous revision: 1.12 done Checking in java/source/src/org/netbeans/api/java/source/JavaSource.java; /cvs/java/source/src/org/netbeans/api/java/source/JavaSource.java,v <-- JavaSource.java new revision: 1.64; previous revision: 1.63 done RCS file: /cvs/java/source/src/org/netbeans/api/java/source/PositionConverter.java,v done Checking in java/source/src/org/netbeans/api/java/source/PositionConverter.java; /cvs/java/source/src/org/netbeans/api/java/source/PositionConverter.java,v <-- PositionConverter.java initial revision: 1.1 done Checking in java/source/src/org/netbeans/api/java/source/SourceUtils.java; /cvs/java/source/src/org/netbeans/api/java/source/SourceUtils.java,v <-- SourceUtils.java new revision: 1.37; previous revision: 1.36 done Checking in java/source/src/org/netbeans/api/java/source/support/CaretAwareJavaSourceTaskFactory.java; /cvs/java/source/src/org/netbeans/api/java/source/support/CaretAwareJavaSourceTaskFactory.java,v <-- CaretAwareJavaSourceTaskFactory.java new revision: 1.4; previous revision: 1.3 done Checking in java/source/src/org/netbeans/api/java/source/support/EditorAwareJavaSourceTaskFactory.java; /cvs/java/source/src/org/netbeans/api/java/source/support/EditorAwareJavaSourceTaskFactory.java,v <-- EditorAwareJavaSourceTaskFactory.java new revision: 1.4; previous revision: 1.3 done Checking in java/source/src/org/netbeans/api/java/source/support/LookupBasedJavaSourceTaskFactory.java; /cvs/java/source/src/org/netbeans/api/java/source/support/LookupBasedJavaSourceTaskFactory.java,v <-- LookupBasedJavaSourceTaskFactory.java new revision: 1.4; previous revision: 1.3 done Checking in java/source/src/org/netbeans/api/java/source/support/OpenedEditors.java; /cvs/java/source/src/org/netbeans/api/java/source/support/OpenedEditors.java,v <-- OpenedEditors.java new revision: 1.4; previous revision: 1.3 done Checking in java/source/src/org/netbeans/modules/java/source/JavaSourceAccessor.java; /cvs/java/source/src/org/netbeans/modules/java/source/JavaSourceAccessor.java,v <-- JavaSourceAccessor.java new revision: 1.11; previous revision: 1.10 done Checking in java/source/src/org/netbeans/modules/java/source/parsing/SourceFileObject.java; /cvs/java/source/src/org/netbeans/modules/java/source/parsing/SourceFileObject.java,v <-- SourceFileObject.java new revision: 1.13; previous revision: 1.12 done Checking in java/source/test/unit/src/org/netbeans/api/java/source/JavaSourceTest.java; /cvs/java/source/test/unit/src/org/netbeans/api/java/source/JavaSourceTest.java,v <-- JavaSourceTest.java new revision: 1.16; previous revision: 1.15 done Checking in java/source/test/unit/src/org/netbeans/api/java/source/SourceUtilsTest.java; /cvs/java/source/test/unit/src/org/netbeans/api/java/source/SourceUtilsTest.java,v <-- SourceUtilsTest.java new revision: 1.5; previous revision: 1.4 done Checking in java/sourceui/nbproject/project.properties; /cvs/java/sourceui/nbproject/project.properties,v <-- project.properties new revision: 1.2; previous revision: 1.1 done Checking in java/sourceui/nbproject/project.xml; /cvs/java/sourceui/nbproject/project.xml,v <-- project.xml new revision: 1.3; previous revision: 1.2 done RCS file: /cvs/java/sourceui/src/org/netbeans/api/java/source/ui/DialogBinding.java,v done Checking in java/sourceui/src/org/netbeans/api/java/source/ui/DialogBinding.java; /cvs/java/sourceui/src/org/netbeans/api/java/source/ui/DialogBinding.java,v <-- DialogBinding.java initial revision: 1.1 done Checking in web/jspsyntax/nbproject/project.properties; /cvs/web/jspsyntax/nbproject/project.properties,v <-- project.properties new revision: 1.26; previous revision: 1.25 done Checking in web/jspsyntax/nbproject/project.xml; /cvs/web/jspsyntax/nbproject/project.xml,v <-- project.xml new revision: 1.31; previous revision: 1.30 done Checking in web/jspsyntax/src/META-INF/services/org.netbeans.modules.java.preprocessorbridge.spi.JavaSourceProvider; /cvs/web/jspsyntax/src/META-INF/services/org.netbeans.modules.java.preprocessorbridge.spi.JavaSourceProvider,v <-- org.netbeans.modules.java.preprocessorbridge.spi.JavaSourceProvider new revision: 1.2; previous revision: 1.1 done Checking in web/jspsyntax/src/org/netbeans/modules/web/core/syntax/JavaSourceProviderImpl.java; /cvs/web/jspsyntax/src/org/netbeans/modules/web/core/syntax/JavaSourceProviderImpl.java,v <-- JavaSourceProviderImpl.java new revision: 1.2; previous revision: 1.1 done Checking in web/jspsyntax/src/org/netbeans/modules/web/core/syntax/SimplifiedJSPServlet.java; /cvs/web/jspsyntax/src/org/netbeans/modules/web/core/syntax/SimplifiedJSPServlet.java,v <-- SimplifiedJSPServlet.java new revision: 1.5; previous revision: 1.4 done Checking in web/jspsyntax/src/org/netbeans/modules/web/core/syntax/resources/layer.xml; /cvs/web/jspsyntax/src/org/netbeans/modules/web/core/syntax/resources/layer.xml,v <-- layer.xml new revision: 1.14; previous revision: 1.13 done