[Paraview] Custom display panel for a source or filter

Clinton Stimpson clinton at elemtech.com
Fri Jan 4 10:54:17 EST 2008


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>> 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>>> 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>>>> 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>>>
>     >     >     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
>     >     < http://www.paraview.org/mailman/listinfo/paraview>
>     >
>     >
>     >
>     ------------------------------------------------------------------------
>     >
>     > _______________________________________________
>     > ParaView mailing list
>     > ParaView at paraview.org <mailto:ParaView at paraview.org>
>     > http://www.paraview.org/mailman/listinfo/paraview
>     >
>
>



More information about the ParaView mailing list