private void addChildren(final PanelDefinition panel) {
   Set<PartDefinition> parts = panel.getParts();
   for (PartDefinition part : parts) {
     final PlaceRequest place = clonePlaceAndMergeParameters(part.getPlace());
     part.setPlace(place);
     placeManager.goTo(part, panel);
   }
   buildPerspective(panel);
 }
  // Initialise Workbench state to that of the provided perspective
  private void initialisePerspective(final PerspectiveDefinition perspective) {

    panelManager.setPerspective(perspective);

    Set<PartDefinition> parts = panelManager.getRoot().getParts();
    for (PartDefinition part : parts) {
      final PlaceRequest place = clonePlaceAndMergeParameters(part.getPlace());
      part.setPlace(place);
      placeManager.goTo(part, panelManager.getRoot());
    }
    buildPerspective(panelManager.getRoot());

    onOpen();
  }