Thanks for your responses.

I know how to create a custom panel and how to use "SimpleDoubleInformationHelper". My problem is how to get a "DoubleArrayInformationHelper" from a vtkDoubleArray with unknown size and send it to my custom panel. The compoment of this vtkDoubleArray ( called "VolumesArray" here) will be added in ResquestData().

I found a way to do it:

XML:
      <StringVectorProperty
         name="VolumesArray"
         command="GetVolumesArray"
         information_only="1">
        <SimpleStringInformationHelper/>
      </StringVectorProperty>

In RequestData(), I will set VolumesArray to some values like "1223.44|2244.09|233232|..." Note the "|" separator after each volume.

In my .ui, I created a QLineEdit with the same name ("VolumesArray").

In my pqCustomPanel.cxx:

pqComputeVolumes::pqComputeVolumes(pqProxy* pxy, QWidget* p) : pqLoadedFormObjectPanel(":/CustomWidget/pqComputeVolumes.ui", pxy, p)
  {

this->volumes = this->findChild<QLineEdit*>("VolumesArray"); this->volumesList = this->findChild<QListWidget*>("volumesList");

                this->volumes->setVisible(false);

QObject::connect(this->volumes, SIGNAL(textChanged(const QString&)), this, SLOT(onShowVolumesList(const QString&)),Qt::QueuedConnection);

          this->linkServerManagerProperties();       
        }


void pqComputeVolumes::onShowVolumesList(const QString& text)
{
        int i=0;
QStringList list = text.split("|",QString::SkipEmptyParts);

        foreach( QString v, list)
        {
                i++;
this->volumesList->addItem("Volume " + QString::number(i) + " " + v);
        }
}

This works fine for me but I think there is an easier way.


Nehme




On Sat, 03 Jan 2009 21:08:46 -0700
 Clinton Stimpson <clin...@elemtech.com> wrote:

If its because its an information property, I think adding a show="1" attribute to the property will make it show up.

Clint

Utkarsh Ayachit wrote:
You will have to create a custom panel. Look at the custom panel
example in Examples/Plugin.

Utkarsh

On Sat, Jan 3, 2009 at 4:29 PM, Nehme Bilal <nbi...@mirarco.org> wrote:
Hi,

I am trying to use "DoubleArrayInformationHelper" to get a vtkDoubleArray
from server side and show it in my filter GUI.
XML code:

     <DoubleVectorProperty
        name="volumesArray"
        command="GetVolumesArray"
        information_only="1">
       <DoubleArrayInformationHelper/>
     </DoubleVectorProperty>

C++:
       vtkDoubleArray* GetVolumesArray()
       {
               return this->volumesArray;
       }
The current code don't show anything in the GUI.
I would like to see the content of volumesArray in a Table, List or a Tree
widget.

How can I do that ?

Nehme



From: Utkarsh Ayachit <utkarsh.ayac...@kitware.com>
Subject: Re: [Paraview] Object Panel <-> Model Communication
To: rafaelmar...@yahoo.com
Cc: paraview@paraview.org
Date: Tuesday, December 16, 2008, 2:17 PM

To get back "values" from the server, you can use either
"information
properties" or "information objects".

Information properties are properites with information_only="1" set
in
the XML (eg. in Servers/ServerManager/Resources/rendering.xml the "Camera" proxy has "CameraPositionInfo" as an information
property).
Such properties need an "InformationHelper" which knows how to obtain the values from the server. For simple Get*() methods, you can use the <SimpleDoubleInformationHelper/> or <SimpleIntInformationHelper /> etc. based on the type of the property. Complex information helpers
can be written as well. Look at
TimeStepsInformationHelper
(vtkSMTimeStepsInformationHelper.h|cxx) as an example.

Information objects are used to get data from server which cannot be simply put in a property for example information about the data object
produced by a filter (vtkPVDataInformation). These are
vtkPVInformation subclasses. You can create you own vtkPVInformation
subclass that knows how to collect information and then
serialize/deserialize it for transfer to the client from the server
(if needed). To gather such information, one uses
vtkProcessModule::GatherInformation(vtkIdType connectionID, vtkTypeUInt32 serverFlags, vtkPVInformation* info, vtkClientServerID id) where "id" is vtkSMProxy::GetID() returned for the proxy from
which you want to collect the information.

In your case, information property may be an easier solution -- if I
understand your problem correctly.

There is a pqServerManagerModel instance
accessible as
pqApplicationCore::instance()->getServerManagerModel() that can be used to access sources/filters their representations, views etc. Take a look at Qt/Core/pqServerManagerModel.h for the API. That should help
you access the visualization pipeline.

"How to get, for instance, the ids of the nodes which are displayed
after the application of a filter to the model ?"
Not sure I understand what you mean by that. Can you please elaborate?

Utkarsh

On Tue, Dec 16, 2008 at 6:38 AM, Rafael March <rafaelmar...@yahoo.com>
wrote:
Hey all,

I'm programming a filter with a custom Object Panel,
and I'm feeling a little bit lost about the ParaView architecture and
code design.

My great problem is the comunication between the
Object Panel and the Model. I know I can't have a pointer to my
vtkUnstructuredGrid displayed, 'cause they are not
necessarily at the
same machine or process. I also know that I'm able to send information to the model through properties, since I can get the vtkSMProxy in my panel. But what about the way back ? Is there a way to send information from the display view to the panel ? How can I display in a QTable, for instance, the nodes of my model which have some property equals to 1 ?

Another problem is the Visualization Pipeline: is there a way to
"walk" on
it ?
I mean, if I have a filter name, am I able to get the the filter no
matter where it is in the Pipeline ?

Sorry for the mess with the questions. I hope I made it clear and someone
can help me ! :)

Regards,
Rafael March.

_______________________________________________
ParaView mailing list
ParaView@paraview.org

http://www.paraview.org/mailman/listinfo/paraview
_______________________________________________
ParaView mailing list
ParaView@paraview.org
http://www.paraview.org/mailman/listinfo/paraview


_______________________________________________
ParaView mailing list
ParaView@paraview.org
http://www.paraview.org/mailman/listinfo/paraview

_______________________________________________
ParaView mailing list
ParaView@paraview.org
http://www.paraview.org/mailman/listinfo/paraview



_______________________________________________
ParaView mailing list
ParaView@paraview.org
http://www.paraview.org/mailman/listinfo/paraview

Reply via email to