code: public void showSessionDialog(Session session, String panel, boolean recreateUISharedContexts, Runnable postInitRunnable) {
      	if (sessionDialog == null) {
      		this.getSessionDialog();
      	}
      	
          if (recreateUISharedContexts) {
              sessionDialog.recreateUISharedContexts(session);
          }
          
          sessionDialog.initParam(session);
          if (postInitRunnable != null) {
              postInitRunnable.run();
          }
          
          sessionDialog.setTitle(Constant.messages.getString("session.properties.title"));
          sessionDialog.showDialog(false, panel);
      }
docs: Shows the session properties dialog. If a panel is specified, the dialog
  is opened showing that panel. If {@code recreateUISharedContexts} is
  {@code true}, any old UI shared contexts are discarded and new ones are
  created as copies of the contexts. If a {@code postInitRunnable} is
  provided, its {@link Runnable#run} method is called after the
  initialization of all the panels of the session properties dialog.
  
  @param session the session
  @param panel the panel name to be shown
  @param recreateUISharedContexts if true, any old UI shared contexts are
  discarded and new ones are created as copies of the contexts
  @param postInitRunnable if provided, its {@link Runnable#run} method is
  called after the initialization of all the panels of the session
  properties dialog.