[Paraview] Custom display panel for a source or filter

Utkarsh Ayachit utkarsh.ayachit at kitware.com
Mon Jan 7 09:41:15 EST 2008


Cast it to pqDataRepresentation as follows:
pqDataRepresentation* dr = qobject_cast<pqDataRepresentation*>(display);

Utkarsh

Paul Edwards wrote:
> Sorry to keep asking questions but pqRepresentation doesn't have a 
> "getInput()" method...
> 
> Regards,
> Paul
> 
> On 04/01/2008, *Clinton Stimpson * <clinton at elemtech.com 
> <mailto:clinton at elemtech.com>> wrote:
> 
> 
>     In your pqDisplayPanelInterface implementation you check for the source
>     or filter like so:
> 
>     bool  MyDisplayInterface::canCreatePanel(pqRepresentation* display)
>     {
>       pqPipelineSource* s = display->getInput();
>       vtkSMProxy = s->getProxy();
>       if(QString("MySourceOrFilter") == s->GetXMLName())
>       {
>         return true;
>       }
>       return false;
>     }
> 
> 
>     Clint
> 
> 
>     Paul Edwards wrote:
>      > I can now change the display panel for all sources/filters
>     relating to
>      > a view.  Is there a way to set the display panel depending on the
>      > source or filter?
>      >
>      > Thanks for all the help so far,
>      > Paul
>      >
>      > On 03/01/2008, *Clinton Stimpson* < clinton at elemtech.com
>     <mailto:clinton at elemtech.com>
>      > <mailto:clinton at elemtech.com <mailto:clinton at elemtech.com>>> wrote:
>      >
>      >     Paul Edwards wrote:
>      >     > Does this mean that I don't need to edit the main Paraview
>     code?
>      >     That's correct.  You can do this in a plugin.
>      >     > Do you have any examples of a plugin which does this?
>      >     The closest example is ParaView3/Examples/Plugins/GUIView.  But
>      >     what you
>      >     want is different enough that it may not help much.
>      >     > If not, I would be happy to make one, but I'm still a little
>      >     confused
>      >     > as to how to implement it.  So far I have a plugin for the
>      >     server and
>      >     > one for the client, adding a reader and panel to
>      >     paraview.  Below is
>      >     > my CMake file:
>      >     >
>      >     >
>     8<----------------------------------------------------------------
>      >     > FIND_PACKAGE(ParaView REQUIRED)
>      >     > INCLUDE(${PARAVIEW_USE_FILE})
>      >     >
>      >     >
>      >     > QT4_WRAP_CPP(MOC_SRCS pqMyPanel.h)
>      >     > QT4_WRAP_UI(UIC_SRCS pqMyPanel.ui )
>      >     >
>      >     > ADD_PARAVIEW_OBJECT_PANEL(IFACES IFACE_SRCS CLASS_NAME
>     pqMyPanel
>      >     >                           XML_NAME MyReader XML_GROUP sources)
>      >     >
>      >     >
>      >     > ADD_PARAVIEW_PLUGIN(MyReaderSMPlugin "1.0"
>      >     >                     SERVER_MANAGER_XML vtkMyReader.xml
>      >     >                     SERVER_MANAGER_SOURCES vtkMyReader.cxx)
>      >     > ADD_PARAVIEW_PLUGIN(MyReaderGUIPlugin " 1.0"
>      >     >                     GUI_INTERFACES ${IFACES}
>      >     >                     GUI_RESOURCE_FILES pqMyReader.xml
>      >     >                     SOURCES pqMyPanel.cxx ${MOC_SRCS}
>     ${UIC_SRCS}
>      >     > ${IFACE_SRCS})
>      >     >
>     ---------------------------------------------------------------->8
>      >     >
>      >     > Is there a macro to add a display panel so the file can be
>     auto
>      >     > generated, or do I need to create my own subclass for
>     pqPlugin and
>      >     > manually add it as one of the interfaces?
>      >     As Utkarsh said, you create your own implementation of
>      >     pqDisplayPanelInterface, not pqPlugin.
>      >     There's an ADD_PARAVIEW_DISPLAY_PANEL macro that you can
>     follow as an
>      >     example.  Since you need to make your own
>      >     pqDisplayPanelInterface,  you
>      >     can't call that macro.
>      >     Your implementation of pqDisplayPanelInterface needs to be
>     give to
>      >     ADD_PARAVIEW_PLUGIN's GUI_INTERFACES argument so it can put
>     it in the
>      >     pqPlugin implementation it creates.
>      >
>      >     Clint
>      >
>      >     > On 03/01/2008, *Utkarsh Ayachit*
>     <utkarsh.ayachit at kitware.com <mailto:utkarsh.ayachit at kitware.com>
>      >     <mailto: utkarsh.ayachit at kitware.com
>     <mailto:utkarsh.ayachit at kitware.com>>
>      >     > <mailto: utkarsh.ayachit at kitware.com
>     <mailto:utkarsh.ayachit at kitware.com>
>      >     <mailto:utkarsh.ayachit at kitware.com
>     <mailto:utkarsh.ayachit at kitware.com>>>> wrote:
>      >     >
>      >     >     Hi Paul,
>      >     >
>      >     >     In your plugin, you need to implement the
>      >     pqDisplayPanelInterface
>      >     >     (just
>      >     >     what the pqStandardDisplayPanels in
>      >     pqDisplayProxyEditorWidget.cxx
>      >     >     does)
>      >     >     and the register it with the plugin manager. If you look at
>      >     >     pqDisplayProxyEditorWidget::updatePanel, you'll see
>     that it
>      >     checks for
>      >     >     all pqDisplayPanelInterface implementations registered
>     and asks
>      >     >     them to
>      >     >     create the panel for the source.
>      >     >
>      >     >     Utkarsh
>      >     >
>      >     >
>      >     >     Robert Maynard wrote:
>      >     >     >
>      >     >     > Last time I asked the same question, I was told I would
>      >     have to
>      >     >     include
>      >     >     > the xmlName of my class to the conditional statement, and
>      >     recompile
>      >     >     > paraview to get custom display panels like TextSource
>     to work.
>      >     >     >
>      >     >     > On Jan 3, 2008 9:12 AM, Paul Edwards <
>      >     paul.m.edwards at gmail.com <mailto:paul.m.edwards at gmail.com>
>     <mailto:paul.m.edwards at gmail.com <mailto:paul.m.edwards at gmail.com>>
>      >     >     <mailto:paul.m.edwards at gmail.com
>     <mailto:paul.m.edwards at gmail.com>
>      >     <mailto:paul.m.edwards at gmail.com
>     <mailto:paul.m.edwards at gmail.com>>>
>      >     >     > <mailto: paul.m.edwards at gmail.com
>     <mailto:paul.m.edwards at gmail.com>
>      >     <mailto:paul.m.edwards at gmail.com
>     <mailto:paul.m.edwards at gmail.com>>
>      >     >     <mailto: paul.m.edwards at gmail.com
>     <mailto:paul.m.edwards at gmail.com>
>      >     <mailto:paul.m.edwards at gmail.com
>     <mailto:paul.m.edwards at gmail.com>>>>> wrote:
>      >     >     >
>      >     >     >     I am trying to provide a custom display panel for a
>      >     plugin I
>      >     >     have
>      >     >     >     created.  The plugin is for a new source which is a
>      >     subclass of
>      >     >     >     vtkMultiBlockPLOT3DReader (the plot3d file is
>      >     generated from
>      >     >     inputs
>      >     >     >     selected in the object panel) and I would like to
>      >     customize the
>      >     >     >     display options for my users.
>      >     >     >
>      >     >     >     I can see this is done for "TextSource" and
>      >     >     "TimeToTextConverter"
>      >     >     >     but when looking through the code (
>      >     pqObjectBuilder.cxx, line
>      >     >     400)
>      >     >     >     there is a conditional statement to check
>     specifically
>      >     for these
>      >     >     >     sources.  Does this mean that it is not possible
>     from a
>      >     >     plugin? (Or
>      >     >     >     am I looking in the wrong place here?)
>      >     >     >
>      >     >     >     Any help would be appreciated, thanks in advance,
>      >     >     >     Paul
>      >     >     >
>      >     >     >     PS Great software ;)
>      >     >     >
>      >     >     >     _______________________________________________
>      >     >     >     ParaView mailing list
>      >     >     >     ParaView at paraview.org
>     <mailto:ParaView at paraview.org> <mailto:ParaView at paraview.org
>     <mailto:ParaView at paraview.org>>
>      >     <mailto: ParaView at paraview.org <mailto:ParaView at paraview.org>
>     <mailto:ParaView at paraview.org <mailto:ParaView at paraview.org>>>
>      >     >     <mailto:ParaView at paraview.org
>     <mailto:ParaView at paraview.org> <mailto: ParaView at paraview.org
>     <mailto:ParaView at paraview.org>>
>      >     <mailto:ParaView at paraview.org <mailto:ParaView at paraview.org>
>     <mailto:ParaView at paraview.org <mailto:ParaView at paraview.org>>>>
>      >     >     >     http://www.paraview.org/mailman/listinfo/paraview
>      >     >     >
>      >     >     >
>      >     >     >
>      >     >     >
>      >     >
>      >    
>     ------------------------------------------------------------------------
>      >
>      >     >     >
>      >     >     > _______________________________________________
>      >     >     > ParaView mailing list
>      >     >     > ParaView at paraview.org <mailto:ParaView at paraview.org>
>     <mailto:ParaView at paraview.org <mailto:ParaView at paraview.org>>
>      >     <mailto: ParaView at paraview.org <mailto:ParaView at paraview.org>
>     <mailto:ParaView at paraview.org <mailto:ParaView at paraview.org>>>
>      >     >     > http://www.paraview.org/mailman/listinfo/paraview
>     <http://www.paraview.org/mailman/listinfo/paraview>
>      >     >     < http://www.paraview.org/mailman/listinfo/paraview>
>      >     >
>      >     >
>      >     >
>      >    
>     ------------------------------------------------------------------------
> 
>      >     >
>      >     > _______________________________________________
>      >     > ParaView mailing list
>      >     > ParaView at paraview.org <mailto:ParaView at paraview.org>
>     <mailto: ParaView at paraview.org <mailto:ParaView at paraview.org>>
>      >     > http://www.paraview.org/mailman/listinfo/paraview
>      >     >
>      >
>      >
> 
> 


More information about the ParaView mailing list