diff options
| author | Lakshminarayana Nekkanti | 2021-02-13 06:07:47 +0000 |
|---|---|---|
| committer | Lakshminarayana Nekkanti | 2021-02-13 08:25:18 +0000 |
| commit | fb7afb65e2dbc50df943b8cd5d19927b483dae97 (patch) | |
| tree | bc901431799036d7413792d417387dd2b7fba93f | |
| parent | ae9c1938372e3c853f2b7c229cddbd80403338e0 (diff) | |
| download | webtools.dali-fb7afb65e2dbc50df943b8cd5d19927b483dae97.tar.gz webtools.dali-fb7afb65e2dbc50df943b8cd5d19927b483dae97.tar.xz webtools.dali-fb7afb65e2dbc50df943b8cd5d19927b483dae97.zip | |
JpaJpqlCompletionProposalComputer require UI Thread
Change-Id: I1b1c656d81fecbbdb140ffc2be72a9a060be024b
Signed-off-by: Lakshminarayana Nekkanti <narayana.nekkanti@gmail.com>
6 files changed, 25 insertions, 23 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.ui/plugin.xml b/jpa/plugins/org.eclipse.jpt.jpa.ui/plugin.xml index 1b4df162ae..564544e31b 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.ui/plugin.xml +++ b/jpa/plugins/org.eclipse.jpt.jpa.ui/plugin.xml @@ -172,8 +172,7 @@ activate="true" categoryId="org.eclipse.jpt.jpa.ui.jpaProposalCategory" class="org.eclipse.jpt.jpa.ui.internal.jpql.JpaJpqlJavaCompletionProposalComputer" - requiresUIThread="true"> - <!-- requires UI Thread because it dereferences getViewer() to utlimately ask StyledText.getData() --> + requiresUIThread="false"> <partition type="__dftl_partition_content_type"/> <partition type="__java_string"/> </javaCompletionProposalComputer> diff --git a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/JpaXmlCompletionProposalComputer.java b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/JpaXmlCompletionProposalComputer.java index 8a8b8549f7..eba0c1627c 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/JpaXmlCompletionProposalComputer.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/JpaXmlCompletionProposalComputer.java @@ -35,7 +35,6 @@ import org.eclipse.jpt.jpa.ui.JptJpaUiImages; import org.eclipse.jpt.jpa.ui.JptJpaUiMessages; import org.eclipse.jpt.jpa.ui.internal.plugin.JptJpaUiPlugin; import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.widgets.Control; import org.eclipse.wst.sse.ui.contentassist.CompletionProposalInvocationContext; import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement; @@ -53,6 +52,8 @@ import org.w3c.dom.Node; */ public class JpaXmlCompletionProposalComputer extends DefaultJpaXmlCompletionProposalComputer { + private ResourceManager resourceManager; + public JpaXmlCompletionProposalComputer() { } @@ -190,12 +191,12 @@ public class JpaXmlCompletionProposalComputer extends DefaultJpaXmlCompletionPro if (proposedValue.startsWith("\"")) { //$NON-NLS-1$ proposal = new CompletionProposal( convertedProposedValue, begin, length, convertedProposedValue.length(), - this.getImage(context, JptJpaUiImages.JPA_CONTENT), proposedValue, null, + this.getImage(JptJpaUiImages.JPA_CONTENT), proposedValue, null, JptJpaUiMessages.JPA_XML_COMPLETION_PROPOSAL_COMPUTER_SPECIAL_NAME_MSG); } else { proposal = new CompletionProposal( convertedProposedValue, begin, length, convertedProposedValue.length(), - this.getImage(context, JptJpaUiImages.JPA_CONTENT), proposedValue, null, null); + this.getImage(JptJpaUiImages.JPA_CONTENT), proposedValue, null, null); } contentAssistRequest.addProposal(proposal); @@ -297,16 +298,15 @@ public class JpaXmlCompletionProposalComputer extends DefaultJpaXmlCompletionPro return ((node != null) && (node instanceof IDOMElement) && ((IDOMElement) node).isCommentTag()); } - private Image getImage(CompletionProposalInvocationContext context, ImageDescriptor descriptor) { - return this.getImage(context.getViewer().getTextWidget(), descriptor); - } - - private Image getImage(Control control, ImageDescriptor descriptor) { - return this.getResourceManager(control).createImage(descriptor); + private Image getImage(ImageDescriptor descriptor) { + return this.getResourceManager().createImage(descriptor); } - private ResourceManager getResourceManager(Control control) { - return this.getJpaWorkbench().getResourceManager(control); + private ResourceManager getResourceManager() { + if (resourceManager == null) { + resourceManager = getJpaWorkbench().buildLocalResourceManager(); + } + return resourceManager; } private JpaWorkbench getJpaWorkbench() { diff --git a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpql/JpaJpqlContentProposalProvider.java b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpql/JpaJpqlContentProposalProvider.java index e4ea34a297..0967768c31 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpql/JpaJpqlContentProposalProvider.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpql/JpaJpqlContentProposalProvider.java @@ -624,7 +624,7 @@ public final class JpaJpqlContentProposalProvider extends JpqlCompletionProposal 0, jpqlQuery.length(), position, - getResourceManager(viewer.getTextWidget()) + getResourceManager() ); return proposals.toArray(new ICompletionProposal[proposals.size()]); diff --git a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpql/JpaJpqlJavaCompletionProposalComputer.java b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpql/JpaJpqlJavaCompletionProposalComputer.java index ee227f2886..e97bf2928f 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpql/JpaJpqlJavaCompletionProposalComputer.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpql/JpaJpqlJavaCompletionProposalComputer.java @@ -38,7 +38,6 @@ import org.eclipse.jdt.core.dom.StringLiteral; import org.eclipse.jdt.ui.text.java.ContentAssistInvocationContext; import org.eclipse.jdt.ui.text.java.IJavaCompletionProposalComputer; import org.eclipse.jdt.ui.text.java.JavaContentAssistInvocationContext; -import org.eclipse.jface.resource.ResourceManager; import org.eclipse.jface.text.contentassist.ICompletionProposal; import org.eclipse.jface.text.contentassist.IContextInformation; import org.eclipse.jpt.common.core.internal.utility.jdt.ASTTools; @@ -171,8 +170,7 @@ public final class JpaJpqlJavaCompletionProposalComputer extends JpqlCompletionP String jpqlQuery = retrieveQuery(astRoot, tokenStart, tokenEnd, position); // Now create the proposals - ResourceManager resourceManager = this.getResourceManager(context.getViewer().getTextWidget()); - return buildProposals(namedQuery, jpqlQuery, tokenStart[0], tokenEnd[0], position[0], resourceManager); + return buildProposals(namedQuery, jpqlQuery, tokenStart[0], tokenEnd[0], position[0], getResourceManager()); } /** diff --git a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpql/JpaJpqlSseCompletionProposalComputer.java b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpql/JpaJpqlSseCompletionProposalComputer.java index 7af9e6c497..63266a0759 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpql/JpaJpqlSseCompletionProposalComputer.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpql/JpaJpqlSseCompletionProposalComputer.java @@ -24,7 +24,6 @@ import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IWorkspaceRoot; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.jface.resource.ResourceManager; import org.eclipse.jface.text.BadLocationException; import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.contentassist.ICompletionProposal; @@ -134,8 +133,7 @@ public final class JpaJpqlSseCompletionProposalComputer extends JpqlCompletionPr int tokenEnd = tokenStart + jpqlQuery.length(); // Now create the proposals - ResourceManager resourceManager = this.getResourceManager(context.getViewer().getTextWidget()); - return buildProposals(namedQuery, jpqlQuery, tokenStart, tokenEnd, position[0], resourceManager); + return buildProposals(namedQuery, jpqlQuery, tokenStart, tokenEnd, position[0], getResourceManager()); } catch (Exception ex) { JptJpaUiPlugin.instance().logError(ex, JptJpaUiMessages.JPA_JPQL_SSE_COMPLETION_PROPOSAL_COMPUTER_ERROR); diff --git a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpql/JpqlCompletionProposalComputer.java b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpql/JpqlCompletionProposalComputer.java index c1deb8b535..1cad93403a 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpql/JpqlCompletionProposalComputer.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpql/JpqlCompletionProposalComputer.java @@ -50,7 +50,6 @@ import org.eclipse.persistence.jpa.jpql.tools.spi.IEntity; import org.eclipse.persistence.jpa.jpql.tools.spi.IMapping; import org.eclipse.persistence.jpa.jpql.tools.spi.IType; import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.widgets.Control; /** * The abstract definition of JPQL content assist support. @@ -114,6 +113,11 @@ abstract class JpqlCompletionProposalComputer<T> { int tokenStart; /** + * Resource manager + */ + private ResourceManager resourceManager; + + /** * Creates a new <code>JpqlCompletionProposalComputer</code>. */ public JpqlCompletionProposalComputer() { @@ -431,8 +435,11 @@ abstract class JpqlCompletionProposalComputer<T> { return WorkbenchTools.getAdapter(JpaWorkbench.class); } - ResourceManager getResourceManager(Control control) { - return this.getJpaWorkbench().getResourceManager(control); + ResourceManager getResourceManager() { + if (resourceManager == null) { + resourceManager = getJpaWorkbench().buildLocalResourceManager(); + } + return resourceManager; } private boolean isRealFunction(String identifier) { |
