private boolean initModules(IResource selection) {
    // If the selection was module file, use that as the default
    if (ModuleUtils.isModuleXml(selection)) {
      ModuleFile module = ModuleUtils.create((IFile) selection);
      List<String> moduleNames = Arrays.asList(new String[] {module.getQualifiedName()});
      modulesBlock.setModules(moduleNames);
    } else {
      // Otherwise, include all modules in the project
      modulesBlock.setModules(GWTProjectProperties.getEntryPointModules(hostPageProject));
    }

    modulesBlock.setDefaultModules(GWTProjectProperties.getEntryPointModules(hostPageProject));

    return true;
  }
  private List<String> findModules(Plugin pluginConfig, IJavaProject javaProject) {
    List<String> modNames = new ArrayList<String>();
    Xpp3Dom gwtConfig = (Xpp3Dom) pluginConfig.getConfiguration();

    if (gwtConfig != null) {
      Xpp3Dom[] moduleNodes = gwtConfig.getChildren("module");
      if (moduleNodes.length > 0) {
        String moduleQNameTrimmed = null;
        for (Xpp3Dom mNode : moduleNodes) {
          moduleQNameTrimmed = mNode.getValue().trim();
        }
        if (moduleQNameTrimmed != null) {
          modNames.add(moduleQNameTrimmed);
        }
      } else {
        Xpp3Dom modulesNode = gwtConfig.getChild("modules");
        if (modulesNode != null) {
          moduleNodes = modulesNode.getChildren("module");
          for (Xpp3Dom mNode : moduleNodes) {
            String moduleQNameTrimmed = mNode.getValue().trim();
            modNames.add(moduleQNameTrimmed);
          }
        }
      }
    }
    if (modNames.size() == 0) {
      IModule[] modules = ModuleUtils.findAllModules(javaProject, false);
      modNames = new ArrayList<String>();
      for (IModule iModule : modules) {
        modNames.add(iModule.getQualifiedName());
        log.debug("\t{}", iModule.getQualifiedName());
      }
    }
    return modNames;
  }
  public List<ModuleFile> getModules() {
    List<ModuleFile> modules = new ArrayList<ModuleFile>();

    // Convert fully-qualified module names into actual ModuleFile's
    for (String moduleName : modulesBlock.getModules()) {
      ModuleFile module = (ModuleFile) ModuleUtils.findModule(getJavaProject(), moduleName, false);
      if (module != null) {
        modules.add(module);
      }
    }

    return modules;
  }