Welcome To Support Community

Pipeline Pilot and BIOVIA Foundation

Advanced Search
Ask Search:
Matthew BrownMatthew Brown 

Custom Component Parameter Type or Button Behavior

I have been thinking about creating a set of components to provide our PP Client users access to the functionality provided by our Box.com account via their API. Specifically, the ability to do things like upload or download files, check for the presence of a file in a folder, or just get a list of files in a folder. 

I would like the components to be user friendly, however one problem is that the API requires File and Folder ID numbers be passed in, so users of the components would be required to open Box.com, navigate to the folder, and grab the ID from the URL. Not impossible, but not ideal either. I am wondering if it is possible to modify the PP Client in some way so that when a user clicks on the ... button in a parameter, instead of a file browser or script window opening, a custom dialog opens that could log the user into Box and allow them to navigate the folder hierarchy and select a folder or file directly in the PP interface (which would then populate the parameter with the correct ID). 

Is this even possible?
Michael Peeler (BIOVIA)Michael Peeler (BIOVIA)
Hi Matthew -
The short answer is yes, there is a concept of “custom parameter type” which expects you to define the location of an HTML file to use for editing/showing the current parameter value. This technique has never been publicized for general use.

It does require the use of a Pipeline Pilot package, because a package nicely handles the deployment of the following:
  • An XML file to define the details of the custom type – dialog URL, title, help text, dimensions and some behavioral flags (e.g. resizable).
  • The HTML and JavaScript used to implement the custom UI and interface with the parameter grid – which involves handling various events.
  • A web alias to serve up the HTML.
So, given all that, if you are interested in pursuing it, I can take a shot at providing an example.