The code can be viewed from the following web address:
http://www.bluequartz.net/viewvc/CTMD/PVRoboMet
(It is a slow CVS server so give it some time..)
I'll try to summarize what you will need to do.
SERVER SIDE:
Within your filter/reader that you want to get information about
you will need to implement all the Get* methods of the values that you
want information about. For example in the file src/Readers/
vtkH5RoboMetReader.h you will see methods such as
vtkTypeInt32 GetCurrentMosaicWidth();
vtkTypeInt32 GetCurrentMosaicHeight();
Once you have those implemented you will next need to add some XML to
the Server Manager XML file (pv3_xml/PVRoboMet_PVSM.xml in my code base)
To expose those 2 properties from above we need to add the following
xml (Assuming you already have a complete Server Manager XML file
working..)
<IntVectorProperty name="CurrentMosaicWidth"
command="GetCurrentMosaicWidth"
number_of_elements="1"
default_values="0"
information_only="1" >
<SimpleIntInformationHelper />
</IntVectorProperty>
<IntVectorProperty name="CurrentMosaicHeight"
command="GetCurrentMosaicHeight"
number_of_elements="1"
default_values="0"
information_only="1" >
<SimpleIntInformationHelper />
</IntVectorProperty>
That is all for the SERVER SIDE of things. Now for the Client Side of
things.
Take a look in the src/PV3ClientPlugin folder for the source.
In the pqH5RoboMetReaderPanel class you will see that I inherit from
pqLoadedFormObjectPanel. There may be other ways to do this but I used
this class. I then created my GUI QtPanel inside of QtDesigner placing
my QLabels into my design. Name all the QLabels appropriately for your
case.
Some of the details of the class can be seen in the .cpp file. In
the constructor of the class I get pointers to all the QLabels that I
want to set the value for.
MosaicWidth = qFindChild<QLabel*>(this, "MosaicWidth");
MosaicHeight = qFindChild<QLabel*>(this, "MosaicHeight");
Note the value in the double quotes in the arguments is the "Object
Name" that you gave to your label in QtDesigner.
You need to implement the updateInformationAndDomains() methods from
the super class to actually get the information from the server side:
void pqH5RoboMetReaderPanel::updateInformationAndDomains()
{
pqLoadedFormObjectPanel::updateInformationAndDomains();
updateIntValue(this->MosaicWidth, "CurrentMosaicWidth", 0);
updateIntValue(this->MosaicHeight, "CurrentMosaicHeight", 0);
}
and I implemented this method:
void pqH5RoboMetReaderPanel::updateIntValue(QLabel* qLabel,
QString property,
qint32 index)
{
vtkSMProperty* smProperty = this->proxy()-
>GetProperty(property.toAscii());
if (NULL == smProperty)
{
std::string msg = "SMProperty [int] was NULL for ";
msg.append(property.toAscii() );
DebugTrace(<< msg.c_str() );
}
vtkSMIntVectorProperty* dvp =
vtkSMIntVectorProperty::SafeDownCast(smProperty);
int value = dvp->GetElement(index);
qLabel->setText(QString::number(value));
}
That should get you going enough. Let me know if you have any
questions. I guess this might be a good one to put on the Wiki as a
tutorial.
_________________________________________________________
Mike Jackson [EMAIL PROTECTED]
www.bluequartz.net
On Nov 25, 2008, at 2:44 AM, Bryn Lloyd wrote:
Hi Micheal,
Yes, I would be interested. Thanks!
-Bryn
Michael Jackson wrote:
I have some example code that might help if you are interested..
On Nov 24, 2008, at 5:43 PM, Moreland, Kenneth wrote:
A straightforward way of implementing this would be to add a
custom view via a plugin. The Plugin HowTo Wiki page describes
how to make a plugin with a custom view in it. The implementation
to get the data you need to display in the view is up to you.
http://www.paraview.org/Wiki/Plugin_HowTo
-Ken
On 11/24/08 10:24 AM, "Bryn Lloyd" <[EMAIL PROTECTED]> wrote:
Hi
I have been looking for an example, which would help me understand
how
I can get some information about a dataset and display it in a GUI
element (e.g. in a QLabel).
E.g. as an example, I would like to have a panel or some other gui
element, which displays certain values which it gets from a data set
(e.g. number of lines in a polydata, or total volume of a
unstructured
grid, or ...)
Can you please suggest how I could achieve this?
Thanks,
Bryn
**** Kenneth Moreland
*** Sandia National Laboratories
***********
*** *** *** email: [EMAIL PROTECTED]
** *** ** phone: (505) 844-8919
*** web: http://www.cs.unm.edu/~kmorel
_________________________________________________________
Mike Jackson [EMAIL PROTECTED]
BlueQuartz Software www.bluequartz.net
Principal Software Engineer Dayton, Ohio
--
-------------------------------------------------
Bryn Lloyd
Computer Vision Laboratory
ETH Zürich, Sternwartstrasse 7
CH - 8092 Zürich, Switzerland
Tel: +41 44 63 27690
Fax: +41 44 63 21199
-------------------------------------------------
_______________________________________________
ParaView mailing list
[email protected]
http://www.paraview.org/mailman/listinfo/paraview