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;
   }
 }
 public Container createWidget(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 {
         res = Resources.openLayered(resPath);
       } catch (java.io.IOException err) {
         err.printStackTrace();
       }
     }
     initTheme(res);
   }
   return createContainer(resPath, "Main");
 }
 protected void initTheme(Resources res) {
   String[] themes = res.getThemeResourceNames();
   if (themes != null && themes.length > 0) {
     UIManager.getInstance().setThemeProps(res.getTheme(themes[0]));
   }
 }