@Override public ProjectLocale apply(PropertyFileDescriptor object) { ProjectLocale locale = object.getProjectLocale(); if(!object.isMaster()) object = object.getMaster(); if(object!=null) PropertyResourceUtil.removeDescriptor(object); return locale; }; });
/** * Helper method. Create Map with K=Template Name, V=Descriptor.<br> * * This associates a property descriptor with the path of its respective template for faster lookups.<br> */ private Map<String, PropertyFileDescriptor> loadDescriptorsForLocale(Locale locale) { Map<String, PropertyFileDescriptor> ret = new LinkedHashMap<String, PropertyFileDescriptor>(); List<PropertyFileDescriptor> descriptors = null; /* * Load the List of descriptors available for this locale.<br> * Note that a null locale implies that either no source language was selected, or the * selected source language is the template language.<br> */ if (locale == null) { descriptors = projectVersion.getTemplate().getDescriptors(); } else { descriptors = projectVersion.getProjectLocale(locale).getDescriptors(); } for (PropertyFileDescriptor descriptor : descriptors) { ret.put(descriptor.isMaster() ? descriptor.getLocation().toString() : descriptor.getMaster().getLocation().toString(), descriptor); } return ret; }
@Override public IModel<String> casePropertyFileDescriptor(PropertyFileDescriptor object) { int propertyCount = object.getKeys(); if(object.isMaster()) { String message = NUMBER_OF_KEYS_KEY; message = MessageFormat.format(message, propertyCount); return new StringResourceModel(NUMBER_OF_KEYS_KEY, parent, null, propertyCount); } else { int templateCount = object.getMaster().getKeys(); return new StringResourceModel(TRANSLATION_PERCENTAGE_KEY, parent, null, propertyCount,templateCount,object.getPercentComplete()); } }
PropertyFileDescriptor master = descriptor.isMaster() ? descriptor : descriptor.getMaster(); if(master==null) return Collections.emptyList();
/** * computes the width of the two stacked progress bars * @param resolvable * @return */ protected Triplet computeProgressBars(Resolvable<?, ?> resolvable) { int greenWidth = resolvable.getPercentComplete(); int yellowWidth = 0; if (resolvable instanceof PropertyFileDescriptor) { PropertyFileDescriptor descriptor = (PropertyFileDescriptor) resolvable; int keys = descriptor.getMaster() == null ? descriptor.getKeys() : descriptor.getMaster().getKeys(); if(keys>0) { EList<Review> reviews = descriptor.getReviews(); int activeReviews = 0; for (Review review : reviews) { if(review.getState()==ReviewState.OPEN || review.getState()==ReviewState.REOPENED) activeReviews++; } yellowWidth = (int) (activeReviews*100/(double)keys); greenWidth -= yellowWidth; } } return new Triplet(greenWidth, yellowWidth); }
PropertyFile masterFile = descriptor.getMaster().loadProperties(); masterProperties = masterFile.asMap(); Field value = new Field(QueryService.FIELD_VALUE, nullSafe(property.getValue()), Store.YES, Index.ANALYZED); doc.add(value); String templateLocation = descriptor.getMaster() == null ? "" : descriptor.getMaster().getLocation().toString(); Field templateLoc = new Field(QueryService.FIELD_TEMPLATE_LOCATION, templateLocation, Store.YES, Index.NOT_ANALYZED); doc.add(templateLoc);
protected List<PropertyPair> createContents() { PropertyFileDescriptor descriptor = model.getObject(); Multimap<String, Review> reviews = reviewModel.getObject(); PropertyFileDescriptor master = descriptor.getMaster(); Map<String, Property> translated = descriptor.loadProperties().asMap(); PropertyFile templateFile = master.loadProperties(); List<PropertyPair> contents = new ArrayList<PropertyPair>(); for (Property property : templateFile.getProperties()) { // IModel<String> bind = model.bind(property.getKey()); // bind.set PropertyPair pair = new PropertyPair(property, translated.remove(property.getKey()),descriptor.getVariant(), descriptor.cdoID()); String key = pair.getKey(); if (mode.apply(pair,reviews.get(key))) contents.add(pair); } for (Property property : translated.values()) { PropertyPair pair = new PropertyPair(null, property,descriptor.getVariant(), descriptor.cdoID()); if (mode.apply(pair,reviews.get(pair.getKey()))) contents.add(pair); } return contents; }
public void setKey(String key) { if(key!=null && !key.isEmpty() && !key.equals(currentKey)) { PropertyFileDescriptor translation = getModel().getObject(); PropertyFile properties; try { properties = persistenceService.loadProperties(translation); properties.getProperty(key); PropertyFileDescriptor master = translation.getMaster(); PropertyFile masterFile = persistenceService.loadProperties(master); PropertyPair pair = new PropertyPair(masterFile.getProperty(key),properties.getProperty(key), translation.getVariant(),translation.cdoID()); // int selected = tabContainer.getSelectedTab(); for (PropertyToolTab tool : extensions) { tool.setModel(Model.of(pair)); } } catch (ExecutionException e) { logger.error("Failed to load property file",e); } } this.currentKey = key; }
protected List<PropertyPair> createContents() { PropertyFileDescriptor descriptor = model.getObject(); Multimap<String, Review> reviews = reviewModel.getObject(); PropertyFileDescriptor master = descriptor.isMaster() ? descriptor : descriptor.getMaster() ; Map<String, Property> translated = new HashMap<String, Property>(loadProperties(descriptor).asMap()); PropertyFile templateFile = loadProperties(master); List<PropertyPair> contents = new ArrayList<PropertyPair>(); for (Property property : templateFile.getProperties()) { // IModel<String> bind = model.bind(property.getKey()); // bind.set PropertyPair pair = new PropertyPair(property, translated.remove(property.getKey()), descriptor.getVariant(), descriptor.cdoID()); String key = pair.getKey(); if (mode.apply(pair, reviews.get(key))) contents.add(pair); } for (Property property : translated.values()) { PropertyPair pair = new PropertyPair(null, property, descriptor.getVariant(), descriptor.cdoID()); if (mode.apply(pair, reviews.get(pair.getKey()))) contents.add(pair); } return contents; }
/** * Merges a {@link Map} of {@link Property}s into the existing {@link PropertyFileDescriptor}.<br> * TODO: Possibly merge with persist logic in {@link PropertyListPanel}.<br> * * @return count of updated properties.<br> */ private static int merge(Map<String, Property> newProperties, PropertyFileDescriptor descriptor) throws ExecutionException { PropertyFile existingFile = getPersistenceService().loadProperties(descriptor); Map<String, Property> existingProperties = existingFile.asMap(); Map<String, Property> master = descriptor.getMaster().loadProperties().asMap(); int updateCount = 0; for (Property newProperty : newProperties.values()) { Property existingProperty = existingProperties.get(newProperty.getKey()); if (!master.containsKey(newProperty.getKey())) { continue; // we're not creating new K/V pairs, only updating. } if (!updatePropertyValue(newProperty, existingProperty)) { continue; // not setting null, but we allow empty (value deletion). } updateExistingProperty(existingFile, existingProperty, newProperty); updateCount++; // trigger persist. } if (updateCount > 0) { getPersistenceService().saveProperties(descriptor, existingFile); } return updateCount; }
PropertyFileDescriptor master = descriptor.getMaster(); List<Property> templateProperties = getPersistenceService().loadProperties(master).getProperties();
boolean isTemplateOnly = descriptor.isMaster(); Multimap<String, Review> reviews = reviewModel.getObject(); PropertyFileDescriptor master = isTemplateOnly ? descriptor : descriptor.getMaster(); Map<String, Property> translated = new HashMap<String, Property>(loadProperties(descriptor).asMap()); PropertyFile templateFile = loadProperties(master);
try { PropertyFile original = persistenceService.loadProperties(getModelObject()); PropertyFile master = persistenceService.loadProperties(getModelObject().getMaster()); Map<String, Property> originalProperties = original.asMap();