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 <[email protected]> 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<[email protected]> >>> 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<[email protected]> >>>>> 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 >>>> >>>> >> > _______________________________________________ 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
