<div dir="ltr">Joshua,<br><br>Just to make it easier to discuss, let's take a specific case:<div><br></div><div>We have a VTK algorithm, <i>vtkMyFilter</i>. It has a property <b><i>Alpha</i></b> which calls the method <i>SetAlpha</i>. When <i>SetAlpha</i> is classed, <i>vtkMyFilter</i> computes <i>BetaRange</i>. On our proxy, we have  an information property <b><i>BetaRangeInfo</i></b> which is calls <i>GetBetaRange</i>. We have another property <i style="font-weight:bold">Beta</i> which we want to reset to middle of the <i>BetaRange </i> every time <b><i>Alpha</i></b> is changed by the user.</div>
<div><br></div><div>Let's say we let pqPropertiesPanel create a default widget for <b><i>Alpha</i>.</b> Now, when the user changes the widget, <i>SetAlpha</i> isn't immediately called. It will be called only when the user hits the Apply button (or auto-apply is ON). So even if we called UpdatePropertyInformation() on the filter proxy, <i style="font-weight:bold">BetaRangeInfo </i>will not reflect any changes. </div>
<div><br></div><div>So first step, we'll need to create a custom subclass of pqPropertyWidget that forces auto-update by calling pqPropertyWidget::setAutoUpdateVTKObjects(true), pqPropertyWidget::setUseUncheckedProperties(false) and then overridding those methods so that pqProxyWidget::setApplyChangesImmediately(...) doesn't override that behavior.</div>
<div><br></div><div>Next, in this custom widget for <i style="font-weight:bold">Alpha,</i> we will need to override pqPropertyWidget::apply() to call proxy->UpdatePropertyInformation().</div><div><br></div><div>Moving on, we now need <i style="font-weight:bold">Beta</i> to reset whenever <i style="font-weight:bold">BetaRangeInfo</i> changes. If possible, I tend to do this in domain. Write a domain that depends on the info property and the domain will update when the  info property changes. But since we don't merely want to change the domain, but also the property value, we can create a custom widget for <i style="font-weight:bold">Beta</i> where we add observers to the info property to update the widget value every time the info property changes as appropriate.</div>
<div><br></div><div>Hope that helps.</div><div>Utkarsh</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Mar 6, 2014 at 3:00 PM, Joshua Murphy <span dir="ltr"><<a href="mailto:Joshua.Murphy@lasp.colorado.edu" target="_blank">Joshua.Murphy@lasp.colorado.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="font-size:14px;font-family:Calibri,sans-serif;word-wrap:break-word"><div>Hello,</div><div><br></div><div>I am working on some properties for a custom filter, and I am trying to figure out how to get the following functionality.</div>
<div><br></div><div>I need to be able to:</div><div><br></div><ol><li>set a property to change a condition in the filter</li><li>Have that changed condition update information within another property to display on the panel.</li>
</ol><div><br></div><div>This would be akin to the way manipulating the plane in a slice filter render view updates the position of the plane in the properties panel.</div><div><br></div><div>So, how do I force the properties panel to update to new values within information properties when values change?</div>
<div><br></div><div>Thanks,</div><div>Josh</div></div>
<br>_______________________________________________<br>
Paraview-developers mailing list<br>
<a href="mailto:Paraview-developers@paraview.org">Paraview-developers@paraview.org</a><br>
<a href="http://public.kitware.com/mailman/listinfo/paraview-developers" target="_blank">http://public.kitware.com/mailman/listinfo/paraview-developers</a><br>
<br></blockquote></div><br></div>