protected void postShow(Form f) {
   if ("Main".equals(f.getName())) {
     postMain(f);
     aboutToShowThisContainer = null;
     return;
   }
 }
 protected void beforeShow(Form f) {
   aboutToShowThisContainer = f;
   if ("Main".equals(f.getName())) {
     beforeMain(f);
     aboutToShowThisContainer = null;
     return;
   }
 }
 public Container startApp(Resources res, String resPath, boolean loadTheme) {
   initVars();
   UIBuilder.registerCustomComponent("Button", com.codename1.ui.Button.class);
   UIBuilder.registerCustomComponent("ComponentGroup", com.codename1.ui.ComponentGroup.class);
   UIBuilder.registerCustomComponent("MapComponent", com.codename1.maps.MapComponent.class);
   UIBuilder.registerCustomComponent("Tabs", com.codename1.ui.Tabs.class);
   UIBuilder.registerCustomComponent("MultiButton", com.codename1.components.MultiButton.class);
   UIBuilder.registerCustomComponent("Form", com.codename1.ui.Form.class);
   UIBuilder.registerCustomComponent("Label", com.codename1.ui.Label.class);
   UIBuilder.registerCustomComponent("TextArea", com.codename1.ui.TextArea.class);
   UIBuilder.registerCustomComponent("Container", com.codename1.ui.Container.class);
   if (loadTheme) {
     if (res == null) {
       try {
         if (resPath.endsWith(".res")) {
           res = Resources.open(resPath);
           System.out.println(
               "Warning: you should construct the state machine without the .res extension to allow theme overlays");
         } else {
           res = Resources.openLayered(resPath);
         }
       } catch (java.io.IOException err) {
         err.printStackTrace();
       }
     }
     initTheme(res);
   }
   if (res != null) {
     setResourceFilePath(resPath);
     setResourceFile(res);
     initVars(res);
     return showForm("Main", null);
   } else {
     Form f = (Form) createContainer(resPath, "Main");
     initVars(fetchResourceFile());
     beforeShow(f);
     f.show();
     postShow(f);
     return f;
   }
 }