[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [cdt-dev] Property page not displaying - any ideas?
|
>
> Sometime during Eclipse 3.1 or CDT 3.0 development,=20
>
> the MBS "resource" property page stopped displaying. =20
>
> It uses the nameFilter attribute of the=20
>
> org.eclipse.ui.propertyPages extension point. =20
>
> =20
>
> Here is an example
>
> =20
>
> <extension
>
> point=3D"org.eclipse.ui.propertyPages">
>
> <page
>
> objectClass=3D"org.eclipse.core.resources.IFile"
>
> adaptable=3D"true"
>
> name=3D"%MngResourceProp.name"
>
> nameFilter=3D"*.c"
>
> =20
> class=3D"org.eclipse.cdt.managedbuilder.ui.properties.ResourceBuildProper=
> t
> yPage"
>
> =20
> id=3D"org.eclipse.cdt.managedbuilder.ui.properties.ResourceBuildPropertie=
> s
> ">
>
> </page>
>
> </extension>
>
> =20
>
> A Foo.c file only gets the Info property page now, and the
>
> Info page identifies the file as Type: File (C++ Header File).
>
> =20
>
> Could a CDT change have affected this, or is it time for an
>
> Eclipse bugzilla?
>
The problem is that you have the same id=".." tags for all your property pages
so possible solutions:
(a) Just have one <page>..</page> 8-)
(b) provide a different id for each page. The id should be uniq, so for IFile and nameFilter=*.c
id="org.eclipse.cdt.managedbuilder.ui.properties.ResourceBuildProperties.c"
for IFile and nameFilter=*.cpp
id="org.eclipse.cdt.managedbuilder.ui.properties.ResourceBuildProperties.cpp"
etc ...
>
> Eclipse bugzilla?
Yes, 8-) still not out of the woods, NPE when I fix your plugin.xml with solution (a):
java.lang.NullPointerException
at org.eclipse.cdt.managedbuilder.ui.properties.ResourceBuildPropertyPage.createContents(ResourceBuildPropertyPage.java:130)
at org.eclipse.jface.preference.PreferencePage.createControl(PreferencePage.java:423)
at org.eclipse.jface.preference.PreferencePage.createControl(PreferencePage.java:388)
at org.eclipse.jface.preference.PreferenceDialog.createPageControl(PreferenceDialog.java:1407)
at org.eclipse.jface.preference.PreferenceDialog$13.run(PreferenceDialog.java:1119)
...
I would recommand solution (c) for your property page:
(c)
<page
objectClass="org.eclipse.cdt.core.model.ITranslationUnit"
name="%ManagedMakeResourcePropertyPage.name"
adaptable="true"
class="org.eclipse.cdt.managedbuilder.ui.properties.ResourceBuildPropertyPage"
id="org.eclipse.cdt.managedbuilder.ui.properties.ResourceBuildProperties.cunit">
<filter
name="projectNature"
value="org.eclipse.cdt.managedbuilder.core.managedBuildNature">
</filter>
</page>
The advantages:
- save you from providing a <page></page> for all possible nameFilter(*.c, *cpp,*.hxx, *.cxx, *.cc, etc ..)
leave that to the CDT/Core(ResolverModel or IContentTypeManager)
- and you probably want to filter this page for only managed builder project(projectNature).
Small drawback:
- it will not show if you use the navigator. But that's is a PR for the CDT/Core.
CDT should provide an adapter factory extension for IFile --> ITranslationUnit.
For some odd reason we did not provide any.
P.S.: Dinglis is working on a PR about IActionFilter(<filter></filter> tags) and ICElement
but I could not find the PR number ...