[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [pdt-dev] can i get ISourceModule from IStructuredDocumentRegion

Can you use PlatformUI.getWorkbench().getDisplay().syncExec() ?

2009/4/13 赵忠伟 <zhaozhongwei@xxxxxxxxxxxxxxxx>:
> thanks for your reply.i think it is executed in non-ui thread ,and the
> result is (page == null),as i use the following code.
>
> //   IWorkbench workbench  = PlatformUI.getWorkbench();
> //   IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
> //   IWorkbenchPage page  = window.getActivePage();
> //   IEditorPart editorpart = page.getActiveEditor();
> //   if(editorpart instanceof PHPStructuredEditor){
> but i think i have some other method to get the edtior.descript as
> following:
>
> PHPStructuredEditor#createStructedTextViewer
>  protected StructuredTextViewer createStructedTextViewer(Composite parent,
> IVerticalRuler verticalRuler, int styles) {
>   PHPStructuredTextViewer structuredTextViewer = new
> PHPStructuredTextViewer(this, parent, verticalRuler, getOverviewRuler(),
> isOverviewRulerVisible(), styles);
>   structuredTextViewer.addTextInputListener(new ITextInputListener(){
>
>    public void inputDocumentChanged(IDocument oldInput, IDocument newInput)
> {
> //do some operation
>    }
>
>    public void inputDocumentAboutToBeChanged(IDocument oldInput, IDocument
> newInput) {
>    }
>   });
>   return structuredTextViewer;
>  }
> i do some operations to put the current PHPStructuredEditor instance and
> IDocument to two global maps(they map to each other in a thread save way)
> .,and remove them when the editor is disposed.
>
> so in  ISemanticHighlighting#consumes i can get the IDocument :
> IStructuredDocumentRegion sdRegion;
> IStructuredDocument parentDocument = sdRegion.getParentDocument();
>
> and then through the global map,i think i can make it. i think it is a very
> poor way!
>
>
> wei
>
> 2009/4/13 Michael Spector <spektom@xxxxxxxxx>
>>
>> In this case you can do the following hack :)
>>
>> IStructuredDocumentRegion sdRegion;
>> IStructuredDocument parentDocument = sdRegion.getParentDocument();
>> IWorkbenchPage page = PHPUiPlugin.getActivePage();
>> if (page != null) {
>>        IEditorPart editor = page.getActiveEditor();
>>        if (editor instanceof PHPStructuredEditor) {
>>                ISourceModule sourceModule = (ISourceModule)
>> ((PHPStructuredEditor)
>> editor).getModelElement();
>>        }
>> }
>>
>> On Mon, Apr 13, 2009 at 12:22 PM, 赵忠伟 <zhaozhongwei@xxxxxxxxxxxxxxxx>
>> wrote:
>> > hi, Michael
>> >
>> > i extended the extension "org.eclipse.wst.sse.ui.semanticHighlighting"
>> > as following:
>> >  <extension point="org.eclipse.wst.sse.ui.semanticHighlighting">
>> >   <highlighting
>> >
>> >
>> > class="org.eclipse.php.internal.ui.editor.highlighting.PHPStaticSemanticHighlighting"
>> >         target="org.eclipse.php.core.phpsource">
>> >   </highlighting>
>> >  </extension>
>> >
>> > here PHPStaticSemanticHighlighting need to implement
>> > ISemanticHighlighting
>> > interface
>> > and there is a method public Position[]
>> > consumes(IStructuredDocumentRegion
>> > region); in ISemanticHighlighting interface ,so the context is i can get
>> > nothing except IStructuredDocumentRegion (actually
>> > XMLStructuredDocumentRegion).the method ISemanticHighlighting#consumes
>> > is
>> > called by SemanticHighlightingReconciler#reconcile (more or less 133rd
>> > line) .there is StructuredTextEditor in
>> > SemanticHighlightingReconciler,but i
>> > could not get it.if i the editor,i can get editorinput and the file,so i
>> > can
>> > use DLTKCore#create to get a ISourceModule ,but now i can only get
>> > IStructuredDocumentRegion ,nothing else!i search a lot in the pdt source
>> > but
>> > i did not find a way to get ISourceModule from
>> > IStructuredDocumentRegion.and
>> > in my oponion,ISourceModule must be relative to IScriptProject and
>> > IScriptFolder,so from IStructuredDocumentRegion ,it is hardly to find
>> > the
>> > corresponding ISourceModule (IScriptProject and IScriptFolder) it
>> > belongs
>> > to.i am sorry for my poor english:)
>> >
>> >
>> >
>> > thank you very much!
>> > best regards!
>> > _______________________________________________
>> > pdt-dev mailing list
>> > pdt-dev@xxxxxxxxxxx
>> > https://dev.eclipse.org/mailman/listinfo/pdt-dev
>> >
>> >
>>
>>
>>
>> --
>> Best regards,
>> Michael
>> _______________________________________________
>> pdt-dev mailing list
>> pdt-dev@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/pdt-dev
>
>
> _______________________________________________
> pdt-dev mailing list
> pdt-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/pdt-dev
>
>



-- 
Best regards,
Michael