[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