[Paraview] Trouble with "information_only" GUI property in paraview filter
Yumin Yuan
yumin.yuan at kitware.com
Fri Jun 8 21:17:33 EDT 2012
Nice job, Alex.
I just found out that this "hints" behavior is actually documented here:
http://paraview.org/Wiki/ServerManager_XML_Hints
Yumin
On Fri, Jun 8, 2012 at 6:15 PM, Alex Rattner <Alex.Rattner at gatech.edu> wrote:
> Hi all,
>
> I was eventually able to work out this display issue. The show command has
> to be set as a separate hint in the source proxy, like so:
>
>
> <IntVectorProperty
> name="NumberOfFeatures"
> label="Num Features"
> command="GetNumFeatures"
> number_of_elements="1"
> default_values="0"
> information_only="1">
> <Documentation>
> Number of features in the field.
> </Documentation>
> </IntVectorProperty>
>
> <Hints>
> <Property name="NumberOfFeatures" show="1"/>
> </Hints>
>
> I hope this saves someone else the trouble. Thanks again Yumin for pointing
> me in the right direction.
>
> -Alex
>
>
> On 06/08/2012 03:35 PM, Alex Rattner wrote:
>>
>> Hi Yumin,
>>
>> Thank you for the suggestion. I debugged into pqNamedWidgets, and found
>> that my property was being excluded from the propertiesToShow list, even
>> with the show="1" setting. When I manually switched it in the debugger, the
>> property showed up and worked correctly.
>>
>> The issue seems to go a step deeper. The pqNamedWidgets::createWidgets
>> function calls pqNamedWidgets::processHints. Now process hints scans through
>> the list of hints in the following loop.
>>
>> for (unsigned int i = 0; i < numHints; i++)
>> {
>> vtkPVXMLElement *element = hints->GetNestedElement(i);
>> if (QString("Property") == element->GetName())
>> {
>> QString propertyName = element->GetAttribute("name");
>> int showProperty;
>> if (element->GetScalarAttribute("show", &showProperty))
>> {
>> if (showProperty)
>> {
>> propertiesToShow.push_back(propertyName);
>> }
>> else
>> {
>> propertiesToHide.push_back(propertyName);
>> }
>> }
>> }
>> }
>>
>> First it checks if the hint is named "Property" (with the attribute
>> "show"), but this one is actually named "ShowInMenu". So it seems that the
>> hints data structure is not being set up correctly.
>>
>> Do you happen to have any other thoughts of ways to get this property to
>> display?
>>
>> Thanks again,
>> Alex
>>
>>
>> On 06/08/2012 02:28 PM, Yumin Yuan wrote:
>>>
>>> Hi Alex,
>>>
>>> If you can debug into pqNamedWidgets::createWidgets(), and see where
>>> and why this property is being skipped, it will help to narrow down
>>> the problem, especially around this piece of logic (starting with line
>>> 892).
>>>
>>>
>>> // skip information properties
>>> if((!propertiesToShow.contains(propertyName)&& informationOnly) ||
>>> SMProperty->GetIsInternal())
>>> {
>>> continue;
>>> }
>>>
>>> vtkPVXMLElement *hints = SMProperty->GetHints();
>>>
>>> // skip non-summary properties if summaryOnly is true
>>> if(summaryOnly&& (!hints ||
>>> hints->FindNestedElementByName("ShowInSummaryPanel") == 0))
>>> {
>>> continue;
>>> }
>>>
>>>
>>> HTH,
>>> Yumin
>>>
>>> On Fri, Jun 8, 2012 at 3:57 PM, Alex Rattner<Alex.Rattner at gatech.edu>
>>> wrote:
>>>>
>>>> Hi Yumin,
>>>>
>>>> Thank you for the response. I tried this and still no luck, the property
>>>> still won't appear. For reference, my new xml was
>>>>
>>>> <IntVectorProperty
>>>> name="NumberOfFeatures"
>>>> label="Num Features"
>>>>
>>>> command="GetNumFeatures"
>>>> number_of_elements="1"
>>>> default_values="0"
>>>> information_only="1"
>>>> show="1">
>>>>
>>>> <Documentation>
>>>> Number of features in the field.
>>>> </Documentation>
>>>> </IntVectorProperty>
>>>>
>>>> I'm pretty sure that the property is actually being made and called,
>>>> because
>>>> I debugged paraview and found that the GetNumFeatures method was being
>>>> called. It just seems that the property isn't being displayed. Could
>>>> this
>>>> really be a bug in paraview?
>>>>
>>>> Thanks,
>>>> Alex
>>>>
>>>>
>>>> On 06/08/2012 01:22 PM, Yumin Yuan wrote:
>>>>>
>>>>> Hi Alex,
>>>>>
>>>>> You can add the following to your xml to see if it helps.
>>>>>
>>>>> show="1"
>>>>>
>>>>> If this property does show up after adding that, it should be
>>>>> displayed as disabled since it is read-only. If it does not help, this
>>>>> could be a bug.
>>>>>
>>>>> Yumin
>>>>>
>>>>> On Fri, Jun 8, 2012 at 2:40 PM, Alex Rattner<Alex.Rattner at gatech.edu>
>>>>> wrote:
>>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> I have been developing a feature tracking filter plug-in for paraview
>>>>>> for
>>>>>> a
>>>>>> couple weeks. I am currently trying to improve the plug-in GUI, but
>>>>>> ran
>>>>>> into
>>>>>> an issue.
>>>>>>
>>>>>> I want the plug-in to return some basic information to the user in the
>>>>>> GUI,
>>>>>> so I added a property to the server xml file like:
>>>>>>
>>>>>> <IntVectorProperty
>>>>>> name="NumberOfFeatures"
>>>>>> label="Number Of Features"
>>>>>> command="GetNumFeatures"
>>>>>> number_of_elements="1"
>>>>>> default_values="0"
>>>>>> information_only="1">
>>>>>> <Documentation>
>>>>>> Number of features in the field.
>>>>>> </Documentation>
>>>>>> </IntVectorProperty>
>>>>>>
>>>>>> with corresponding code in the class definition:
>>>>>> vtkGetMacro(NumFeatures, int);
>>>>>>
>>>>>> However, the property does not appear on the plug-in gui. Similar
>>>>>> "input"
>>>>>> GUI properties work fine, but I've been messing around for a couple
>>>>>> hours
>>>>>> and I cannot get this "output" GUI property to appear. Is this
>>>>>> specific
>>>>>> to
>>>>>> the "filters" ProxyGroup - because I have found other plug-ins that
>>>>>> use
>>>>>> essentially the same xml code to output information? Do you have any
>>>>>> suggestions on how to make such output properties display and work?
>>>>>>
>>>>>> Thanks,
>>>>>> Alex
>>>>>> _______________________________________________
>>>>>> Powered by www.kitware.com
>>>>>>
>>>>>> Visit other Kitware open-source projects at
>>>>>> http://www.kitware.com/opensource/opensource.html
>>>>>>
>>>>>> Please keep messages on-topic and check the ParaView Wiki at:
>>>>>> http://paraview.org/Wiki/ParaView
>>>>>>
>>>>>> Follow this link to subscribe/unsubscribe:
>>>>>> http://www.paraview.org/mailman/listinfo/paraview
>>>>
>>>>
>>
>
More information about the ParaView
mailing list