public static void addNewLocale(ProjectLocale locale, ProjectVersion version) { ProjectLocale template = version.getTemplate(); version.getChildren().add(locale); if(template==null) { //we always need a template template = PropertiesFactory.eINSTANCE.createProjectLocale(); version.setTemplate(template); template.setName("template"); version.getChildren().add(template); } createMissingChildren(template, locale); }
@Override public Project apply(Project object) { ProjectVersion child = PropertiesFactory.eINSTANCE.createProjectVersion(); ProjectLocale locale = PropertiesFactory.eINSTANCE.createProjectLocale(); child.getChildren().add(locale); child.setTemplate(locale); child.setName(uri.lastSegment()); object.getChildren().add(child); return object; } });
public ProjectLocale getOrCreateProjectLocale(Locale locale) { ProjectLocale projectLocale = getProjectVersion().getProjectLocale(locale); if (projectLocale == null) { projectLocale = PropertiesFactory.eINSTANCE.createProjectLocale(); projectLocale.setLocale(locale); getProjectVersion().getChildren().add(projectLocale); } return projectLocale; }
/** * calculates a diff between existing locales and selected ones. * Deletes and adds ProjectLocales as needed * @param object * @param input */ protected void applyLocaleList(List<String> object, IModel<ProjectVersion> input) { Set<String> locales = new HashSet<String>(object); ProjectVersion version = input.getObject(); List<ProjectLocale> projectLocales = version.getChildren(); List<ProjectLocale> toDelete = new ArrayList<>(); for (Iterator<ProjectLocale> iterator = projectLocales.iterator(); iterator.hasNext();) { ProjectLocale projectLocale = iterator.next(); if(projectLocale.isMaster()) continue; if(!locales.remove(projectLocale.getName())) { toDelete.add(projectLocale); } } for (ProjectLocale projectLocale : toDelete) { LOGGER.info("Deleting ProjectLocale {} from {}",projectLocale.getName(), version.fullPath()); EcoreUtil.delete(projectLocale, true); } for (String locale : locales) { ProjectLocale projectLocale = PropertiesFactory.eINSTANCE.createProjectLocale(); projectLocale.setLocale((Locale) PropertiesFactory.eINSTANCE.createFromString(PropertiesPackage.Literals.LOCALE, locale)); LOGGER.info("Adding ProjectLocale {} to {}",projectLocale.getName(), version.fullPath()); PropertyResourceUtil.addNewLocale(projectLocale, input.getObject()); } }
public ProjectLocale getOrCreateProjectLocale(Locale locale) { ProjectLocale projectLocale = getProjectVersion().getProjectLocale(locale); if (projectLocale == null) { projectLocale = PropertiesFactory.eINSTANCE.createProjectLocale(); projectLocale.setLocale(locale); getProjectVersion().getChildren().add(projectLocale); PropertyResourceUtil.addNewLocale(projectLocale, getProjectVersion()); } return projectLocale; }
@Override public ProjectVersion apply(ProjectVersion object) { ProjectLocale locale = PropertiesFactory.eINSTANCE.createProjectLocale(); locale.setName(uri.lastSegment()); locale.setLocale((Locale) PropertiesFactory.eINSTANCE.createFromString(PropertiesPackage.Literals.LOCALE, uri.lastSegment())); PropertyResourceUtil.addNewLocale(locale, object); return object; } });
getProjectVersion().setTemplate(PropertiesFactory.eINSTANCE.createProjectLocale()); getProjectVersion().getTemplate().setName("template"); getProjectVersion().getChildren().add(getProjectVersion().getTemplate());
private void newTemplateMatch(File file) { URI location = calculateLocation(file); if (getProjectVersion().getTemplate() == null) { getProjectVersion().setTemplate(PropertiesFactory.eINSTANCE.createProjectLocale()); getProjectVersion().getTemplate().setName("template"); getProjectVersion().getChildren().add(getProjectVersion().getTemplate());