Difference between revisions of "Documentation/Labs/CustomSlicerGenerator"

From Slicer Wiki
Jump to: navigation, search
Line 27: Line 27:
 
## Define configuration format
 
## Define configuration format
 
## Determine how to access all directories and other info in order to automate download and packaging cross-platform
 
## Determine how to access all directories and other info in order to automate download and packaging cross-platform
 +
 +
== Issues to sort out ==
 +
 +
* How to make a custom application icon (currently app icons are stored as read-only resources inside the application executable).
 +
 +
* How to tell slicer to use the extensions.
 +
** Could copy all extension executables and shared libraries into lib/Slicer-4.4/cli-modules, but on Mac the paths are 'fixed up' meaning they are hard coded to be in extension subdirectories.  They do not work if copied into the core.
 +
** Could find a way to customize the settings file to set module path and mimic the behavior of the extension manager.
 +
** Could provide a scripted module that finishes the installation of the Custom Slicer application the first time it is run on a client machine (this might be the best option).
 +
 +
* How to remove module menu groups like "Diffusion" when they are empty.

Revision as of 19:04, 13 January 2015

Home < Documentation < Labs < CustomSlicerGenerator

Goals

In many use cases it is desirable to provide customized versions of Slicer that remove clutter from the user interface and only expose the set of functionality that is needed.

Ideas

Based on original design ideas from Bea, at the 2015 Winter Project Week Steve, Francois, and Jc brainstormed about what is needed and how we might accomplish it.

Some goals were:

  • Single click download for end users, customized logo and application name
  • Cross-platform support
  • Ability to configure:
    • Included extensions
    • Excluded modules
    • Application settings (layout, toolbar, home module...)
  • Easy to generate and update and create new versions
    • Interactively
    • Batch

Planned Steps

  1. Create Prototype ProfileWizard as scripted module in a custom Extension
    1. Offer a list of modules with checkboxes
    2. Create a new output application directory containing only selected modules
  2. Test this on the TMJ-OA craniofacial use cases
  3. Review how to map to batch mode
    1. Define configuration format
    2. Determine how to access all directories and other info in order to automate download and packaging cross-platform

Issues to sort out

  • How to make a custom application icon (currently app icons are stored as read-only resources inside the application executable).
  • How to tell slicer to use the extensions.
    • Could copy all extension executables and shared libraries into lib/Slicer-4.4/cli-modules, but on Mac the paths are 'fixed up' meaning they are hard coded to be in extension subdirectories. They do not work if copied into the core.
    • Could find a way to customize the settings file to set module path and mimic the behavior of the extension manager.
    • Could provide a scripted module that finishes the installation of the Custom Slicer application the first time it is run on a client machine (this might be the best option).
  • How to remove module menu groups like "Diffusion" when they are empty.