# Difference between app with PV's framework and maximum customization

**URL:** https://discourse.paraview.org/t/difference-between-app-with-pvs-framework-and-maximum-customization/3481
**Category:** ParaView Support
**Created:** [February 2, 2020, 9:37am UTC](https://discourse.paraview.org/t/difference-between-app-with-pvs-framework-and-maximum-customization/3481 "2020-02-02T09:37:05Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![Yoshino](https://discourse.paraview.org/letter_avatar_proxy/v4/letter/y/bcef8e/32.png) [@Yoshino](https://discourse.paraview.org/u/Yoshino)
#### Post date: [February 2, 2020, 9:37am UTC](https://discourse.paraview.org/t/difference-between-app-with-pvs-framework-and-maximum-customization/3481/1 "2020-02-02T09:37:06Z")

</div>

I learnt from PV’s wiki webpage that customized application could either be PV-branded or radically different from PV. But I was uncertain about their major difference.

1. Since a PV-branded app could be generated by virtue of PV’s current GUI components, is it a simplified version of PV?
2. As for PV’s **Reactions** and **Behaviors** , provided that I wanna display viewimmediately after data is loaded(_i.e. skip the **Apply** click_), could this be done in PV-branded app?
3. And an app with maximum customization also includes “_ **pqApplicationcore.h** _”, is this core-based and could still use wrapped VTK-API?

I’m reading PV’s C++ API document for now. Hope my description above can make sense to u guys, all I want is to be clear lest I did everything in vain.

---

<div class="post-metadata">

### Author: ![cory.quammen](https://discourse.paraview.org/user_avatar/discourse.paraview.org/cory.quammen/32/11193_2.png) [@cory.quammen](https://discourse.paraview.org/u/cory.quammen)
#### Post date: [February 2, 2020, 9:21pm UTC](https://discourse.paraview.org/t/difference-between-app-with-pvs-framework-and-maximum-customization/3481/2 "2020-02-02T21:21:56Z")

</div>

> [@Yoshino](#):
>
> - Since a PV-branded app could be generated by virtue of PV’s current GUI components, is it a simplified version of PV?

That is one way to build a custom application, but not the only way. You can use no ParaView GUI components and still use ParaView as a rendering framework for your application with completely custom GUI components.

> [@Yoshino](#):
>
> - As for PV’s **Reactions** and **Behaviors** , provided that I wanna display viewimmediately after data is loaded( _i.e. skip the **Apply** click_ ), could this be done in PV-branded app?

Yes.

> [@Yoshino](#):
>
> - And an app with maximum customization also includes “ _ **pqApplicationcore.h** _ ”, is this core-based and could still use wrapped VTK-API?

I’m not sure what you mean by “core-based”, but you can still use ParaView’s server manager infrastructure to create file readers, filters, views, etc. in a layer built on top of VTK objects. You can invoke VTK classes not wrapped in the server manager layer by providing XML that specifies the wrapping, and you can create custom VTK classes and access them pretty much the same way.

---

<div class="post-metadata">

### Author: ![Yoshino](https://discourse.paraview.org/letter_avatar_proxy/v4/letter/y/bcef8e/32.png) [@Yoshino](https://discourse.paraview.org/u/Yoshino)
#### Post date: [February 3, 2020, 2:43am UTC](https://discourse.paraview.org/t/difference-between-app-with-pvs-framework-and-maximum-customization/3481/3 "2020-02-03T02:43:38Z")

</div>

Much thanks to u.  
Now I get a deeper understanding of customization in ParaView. I was being puzzled over the complicated hierarchy of ParaView’s API in [paraview-docs](https://kitware.github.io/paraview-docs/latest/cxx/). Then things goes better when I begin to look into PV’s infrastucture in Visual Studio(project built from source).  
Thanks again for ur much detailed help!

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.paraview.org/user_avatar/discourse.paraview.org/mwestphal/32/17_2.png) [@mwestphal](https://discourse.paraview.org/u/mwestphal)
#### Post date: [February 3, 2020, 2:45am UTC](https://discourse.paraview.org/t/difference-between-app-with-pvs-framework-and-maximum-customization/3481/4 "2020-02-03T02:45:17Z")

</div>

> _skip the **Apply** click_

You can do that in standard ParaView.  
Settings → General → Auto Appply

---

<div class="post-metadata">

### Author: ![Yoshino](https://discourse.paraview.org/letter_avatar_proxy/v4/letter/y/bcef8e/32.png) [@Yoshino](https://discourse.paraview.org/u/Yoshino)
#### Post date: [February 6, 2020, 2:39pm UTC](https://discourse.paraview.org/t/difference-between-app-with-pvs-framework-and-maximum-customization/3481/5 "2020-02-06T14:39:59Z")

</div>

Hello, sorry to bother you again. I learnt that ParaView provides a CMake macro **build\_paraview\_client** for a standard customization framework.  
For example, an example in paraview source——_SpreadSheet_:  
 ![image](https://discourse.paraview.org/uploads/default/original/2X/2/23032747944d1c747b0016ad5a39e59972b1a125.png)  
However, I also found that ParaView defines another macro **paraview\_client\_add** in _ParaViewClient.cmake_  
 ![image](https://discourse.paraview.org/uploads/default/original/2X/7/7678c876aa5466c2e6ed1e027a90b8cf8ccfff2a.png)  
They require similiar parameters so I guess one of them got replaced by the other, but not sure which one.  
Moreover, I encountered errors while building that SpreadSheet example:  
 ![image](https://discourse.paraview.org/uploads/default/original/2X/e/e1ee11189dcb283106afc701ae7be8b1e6ec6290.png)  
so the **build\_paraview\_client** macro should be the deprecated one?

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.paraview.org/user_avatar/discourse.paraview.org/mwestphal/32/17_2.png) [@mwestphal](https://discourse.paraview.org/u/mwestphal)
#### Post date: [February 7, 2020, 3:20am UTC](https://discourse.paraview.org/t/difference-between-app-with-pvs-framework-and-maximum-customization/3481/6 "2020-02-07T03:20:24Z")

</div>

Spreadsheet is a disabled, out of date example that should be removed or upgraded.

See `Examples/CMakeLists.txt` to check which example are actually usable.

---

<div class="post-metadata">

### Author: ![mwestphal](https://discourse.paraview.org/user_avatar/discourse.paraview.org/mwestphal/32/17_2.png) [@mwestphal](https://discourse.paraview.org/u/mwestphal)
#### Post date: [February 13, 2020, 7:40am UTC](https://discourse.paraview.org/t/difference-between-app-with-pvs-framework-and-maximum-customization/3481/7 "2020-02-13T07:40:00Z")

</div>

[https://gitlab.kitware.com/paraview/paraview/issues/19682](https://gitlab.kitware.com/paraview/paraview/issues/19682)
