docs: public void init(ScreenLocation itsLocation, BasePanel parentScreen, Converter fieldConverter, int iDisplayFieldDesc, Map<String, Object> properties)
      {
          if (itsLocation == null) if (parentScreen != null)
              itsLocation = parentScreen.getNextLocation(ScreenConstants.BELOW_LAST_DESC, ScreenConstants.DONT_SET_ANCHOR);
          
          m_SFieldList = new Vector<ScreenField>();
  
          m_vHistory = null;
          if (properties != null)
          {
              for (String key : properties.keySet())
              {
                  Object value = properties.get(key).toString();
                  if (value != null)
                      this.setProperty(key, value.toString());
          	}
          }
  
          super.init(itsLocation, parentScreen, fieldConverter, iDisplayFieldDesc, properties);
          m_bIsFocusTarget = false; // Generally, can't tab to a panel
  
          int iErrorCode = this.checkSecurity();
          if ((iErrorCode != Constant.NORMAL_RETURN) && (iErrorCode != Constants.READ_ACCESS))
          {
              this.displaySecurityWarning(this.checkSecurity());
              return;
          }
          
          this.getScreenFieldView().addScreenLayout();            // Set up the screen layout
          this.setupSFields();                // Add the sub-views (usually overidden by the screen in use)
          this.addToolbars();
          this.makeSubScreen();
          this.addScreenMenus();
          this.addListeners();        // Add the screen behaviors
          if (iErrorCode == Constants.READ_ACCESS)
              this.setEditing(false);
      }