private void loadViewPanesVisibility() {
    String visiblePanes =
        Platform.getPreferencesService()
            .getString(DebugUIPlugin.getUniqueIdentifier(), getVisibilityPrefId(), null, null);

    if (visiblePanes != null && visiblePanes.length() > 0) {
      StringTokenizer tokenizer = new StringTokenizer(visiblePanes, ","); // $NON-NLS-1$
      while (tokenizer.hasMoreTokens()) {
        String paneId = tokenizer.nextToken();
        fVisibleViewPanes.add(paneId);
      }
    } else {
      for (int i = 0; i < defaultVisiblePaneIds.length; i++) {
        fVisibleViewPanes.add(defaultVisiblePaneIds[i]);
      }
    }

    Enumeration<String> enumeration = fViewPaneControls.keys();
    while (enumeration.hasMoreElements()) {
      String paneId = enumeration.nextElement();
      boolean visible = false;
      if (fVisibleViewPanes.contains(paneId)) visible = true;

      Control control = fViewPaneControls.get(paneId);
      control.setVisible(visible);

      IMemoryViewPane viewPane = fViewPanes.get(paneId);
      viewPane.setVisible(visible);
    }

    fSashForm.layout();
  }
  /*
   * (non-Javadoc)
   * @see
   * org.eclipse.debug.internal.ui.views.memory.IMultipaneMemoryView#showViewPane
   * (boolean, java.lang.String)
   */
  public void showViewPane(boolean show, String paneId) {

    Control viewPaneControl = fViewPaneControls.get(paneId);

    if (viewPaneControl != null) {
      Control children[] = fSashForm.getChildren();

      for (int i = 0; i < children.length; i++) {
        if (children[i] == viewPaneControl) {
          children[i].setVisible(show);
          IMemoryViewPane viewPane = fViewPanes.get(paneId);
          if (viewPane != null) viewPane.setVisible(show);
        }
      }
      fSashForm.layout();
    }

    storeViewPaneVisibility();
  }