<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; font-size: 14px; font-family: Calibri, sans-serif; "><div style="color: rgb(0, 0, 0); ">Hi Utarsh,</div><div style="color: rgb(0, 0, 0); "><br></div><div style="color: rgb(0, 0, 0); ">Thanks for the great reply!  I have one question at this point…</div><div style="color: rgb(0, 0, 0); "><br></div><div>You state: <font class="Apple-style-span" color="#ff2600">then overridding those methods so that pqProxyWidget::setApplyChangesImmediately(...) doesn't override that behavior.</font></div><div style="color: rgb(0, 0, 0); "><br></div><div>I am unsure what you mean by this.  Do I need to override <font class="Apple-style-span" color="#ff2600">pqPropertyWidget::setAutoUpdateVTKObjects</font><span class="Apple-style-span" style="color: rgb(0, 0, 0); "> and pqPropertyWidget::setUseUncheckedProperties?And, if so, how does one prevent setApplyChangesImmediately from overriding this behavior?  Can you elaborate a little on this? Or point me at some code I can go through??</span></div><div><span class="Apple-style-span" style="color: rgb(0, 0, 0); "><br></span></div><div><span class="Apple-style-span" style="color: rgb(0, 0, 0); ">Thanks,</span></div><div><span class="Apple-style-span" style="color: rgb(0, 0, 0); ">Josh</span></div><div style="color: rgb(0, 0, 0); "><br></div><span id="OLK_SRC_BODY_SECTION" style="color: rgb(0, 0, 0); "><div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt"><span style="font-weight:bold">From: </span> Utkarsh Ayachit <<a href="mailto:utkarsh.ayachit@kitware.com">utkarsh.ayachit@kitware.com</a>><br><span style="font-weight:bold">Date: </span> Sun, 9 Mar 2014 13:22:59 -0600<br><span style="font-weight:bold">To: </span> Joshua Murphy <<a href="mailto:joshua.murphy@lasp.colorado.edu">joshua.murphy@lasp.colorado.edu</a>><br><span style="font-weight:bold">Cc: </span> "<a href="mailto:paraview-developers@paraview.org">paraview-developers@paraview.org</a>" <<a href="mailto:paraview-developers@paraview.org">paraview-developers@paraview.org</a>><br><span style="font-weight:bold">Subject: </span> Re: [Paraview-developers] Properties Question<br></div><div><br></div><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></span></body></html>