docs: public void init(Record record, ScreenLocation itsLocation, BasePanel parentScreen, Converter fieldConverter, int iDisplayFieldDesc, Map<String,Object> properties)
      {
          if (properties != null)
          {
              Task task = parentScreen.getTask();
              BaseApplication app = (BaseApplication)task.getApplication();
          
              properties.remove(DBParams.SCREEN);
              properties.remove(ScreenModel.LOCATION);    // Lame
              properties.remove(ScreenModel.DISPLAY);     // Lame
              boolean isSameProperties = true;
              for (String key : properties.keySet())
              {
                  if ((properties.get(key) == null) || (DBConstants.BLANK.equals(properties.get(key))))
                      if (app.getProperty(key) != null)
                          properties.put(key, app.getProperty(key));  // Blank property means use old property
                  if (properties.get(key).equals(app.getProperty(key)))
                      continue;
                  isSameProperties = false;
              }
              if (!isSameProperties)
              {
                  app.removeTask(task);
                  task.setApplication(null); 
                  Environment env = app.getEnvironment();
                  Map<String,Object> appProps = env.getDefaultApplication().getProperties();
                  if ((appProps != null) && (properties != null))
                  { // Merge starting properties
                      String[] propNames = {DBParams.CONNECTION_TYPE, DBParams.CODEBASE, DBParams.REMOTE_HOST, DBParams.USER_NAME, DBParams.USER_ID, DBParams.LOCAL, DBParams.REMOTE, DBParams.TABLE};
                      Iterator<String> i = appProps.keySet().iterator();
                      while (i.hasNext())
                      {
                          String key = i.next();
                          for (String s : propNames)
                          {
                              if (s.equalsIgnoreCase(key))
                                  properties.put(key, appProps.get(key));
                          }
                          
                      }
                  }
                  env.removeApplication(app);
                  env.free();
                  env = new Environment(properties);
                  app = new MainApplication(env, properties, null);
                  app.addTask(task, null);
                  task.setApplication(app);
              }
          }
          super.init(record, itsLocation, parentScreen, fieldConverter, iDisplayFieldDesc, properties);
      }