Search in sources :

Example 1 with PropertiesListResolver

use of de.alpharogroup.resourcebundle.inspector.search.PropertiesListResolver in project bundle-app-ui by astrapi69.

the class ApplicationDashboardContentPanel method onChooseImportResourceBundle.

/**
 * Callback method which import resourcebundles from a folder of file.
 *
 * @param dir the dir
 */
protected void onChooseImportResourceBundle(final boolean dir) {
    final int returnVal = fileChooser.showOpenDialog(ApplicationDashboardContentPanel.this);
    if (returnVal == JFileChooser.APPROVE_OPTION) {
        final File resourceBundleToImport = fileChooser.getSelectedFile();
        getModelObject().setResourceBundleToImport(resourceBundleToImport);
        try {
            if (dir) {
                ApplicationDashboardBean mo = getModelObject();
                BundleApplications bundleApplications = SpringApplicationContext.getInstance().getBundleApplicationsService().get(mo.getBundleApplication().getId());
                final Locale defaultLocale = SpringApplicationContext.getInstance().getLanguageLocalesService().resolveLocale(bundleApplications.getDefaultLocale());
                final PropertiesListResolver resolver1 = new PropertiesListResolver(resourceBundleToImport, defaultLocale);
                resolver1.resolve();
                final List<KeyValuePair<File, Locale>> propertiesList = resolver1.getPropertiesList();
                getModelObject().setFoundProperties(ConvertExtensions.convertAndSort(propertiesList));
                // 1. create bundleapp
                final BundleApplicationsService bundleApplicationsService = SpringApplicationContext.getInstance().getBundleApplicationsService();
                final ResourcebundlesService resourcebundlesService = SpringApplicationContext.getInstance().getResourcebundlesService();
                BundleApplications bundleApplication = getModelObject().getBundleApplication();
                // 2. get properties files
                final List<Triple<File, Locale, KeyValuePair<Boolean, File>>> foundProperties = getModelObject().getFoundProperties();
                // 3. save properties files the to the bundleapp
                final Set<BundleNames> set = SetExtensions.newHashSet();
                for (final Triple<File, Locale, KeyValuePair<Boolean, File>> entry : foundProperties) {
                    if (BooleanUtils.toBoolean(entry.getRight().getKey())) {
                        final File propertiesFile = entry.getLeft();
                        final Locale locale = entry.getMiddle();
                        final String bundlename = LocaleResolver.resolveBundlename(propertiesFile);
                        Properties properties = null;
                        try {
                            properties = PropertiesExtensions.loadProperties(propertiesFile);
                        } catch (final IOException e) {
                            log.error(e.getLocalizedMessage(), e);
                        }
                        final BundleNames bundleNames = resourcebundlesService.updateProperties(bundleApplication, properties, bundlename, locale);
                        set.add(bundleNames);
                    }
                }
                bundleApplication = bundleApplicationsService.merge(bundleApplication);
            } else {
                final Properties importedProperties = PropertiesExtensions.loadProperties(resourceBundleToImport);
                getModelObject().setImportedProperties(importedProperties);
                final List<KeyValuePair<String, String>> keyValuePairs = PropertiesExtensions.toKeyValuePairs(importedProperties);
                Collections.sort(keyValuePairs, NullCheckComparator.<KeyValuePair<String, String>>of(new KeyValuePairKeyComparator<>()));
                getModelObject().setImportedKeyValuePairs(keyValuePairs);
                MainApplication.get().getApplicationEventBus().post(ApplicationDashboardContentPanel.this.getModelObject());
                getCardLayout().show(this, ApplicationDashboardView.IMPORT_RB.name());
            }
        } catch (final IOException e) {
            log.error(e.getLocalizedMessage(), e);
        }
    }
}
Also used : Locale(java.util.Locale) KeyValuePair(de.alpharogroup.collections.pairs.KeyValuePair) PropertiesListResolver(de.alpharogroup.resourcebundle.inspector.search.PropertiesListResolver) BundleApplications(de.alpharogroup.db.resource.bundles.entities.BundleApplications) IOException(java.io.IOException) Properties(java.util.Properties) Triple(de.alpharogroup.collections.pairs.Triple) BundleApplicationsService(de.alpharogroup.db.resource.bundles.service.api.BundleApplicationsService) BundleNames(de.alpharogroup.db.resource.bundles.entities.BundleNames) ResourcebundlesService(de.alpharogroup.db.resource.bundles.service.api.ResourcebundlesService) KeyValuePairKeyComparator(de.alpharogroup.comparators.pairs.KeyValuePairKeyComparator) File(java.io.File)

Example 2 with PropertiesListResolver

use of de.alpharogroup.resourcebundle.inspector.search.PropertiesListResolver in project bundle-app-ui by astrapi69.

the class ImportWizardPanel method startResolving.

private void startResolving() throws IOException {
    final File rootDir = getModelObject().getRootDir();
    final Locale defaultLocale = getModelObject().getDefaultLocale();
    final PropertiesListResolver resolver1 = new PropertiesListResolver(rootDir, defaultLocale);
    resolver1.resolve();
    final List<KeyValuePair<File, Locale>> propertiesList = resolver1.getPropertiesList();
    getModelObject().setFoundProperties(ConvertExtensions.convertAndSort(propertiesList));
    getModelObject().setDbImport(true);
    final EventSource<EventObject<ImportWizardModel>> eventSource = MainApplication.getImportWizardModel();
    eventSource.fireEvent(new EventObject<>(getModelObject()));
    // set buttons state...
    getModelObject().setValidPrevious(true);
    getModelObject().setValidFinish(true);
    final EventSource<EventObject<NavigationEventState>> navigationEventState = MainApplication.getImportNavigationState();
    navigationEventState.fireEvent(new EventObject<>(NavigationEventState.UPDATE));
}
Also used : Locale(java.util.Locale) KeyValuePair(de.alpharogroup.collections.pairs.KeyValuePair) PropertiesListResolver(de.alpharogroup.resourcebundle.inspector.search.PropertiesListResolver) File(java.io.File) EventObject(de.alpharogroup.design.pattern.observer.event.EventObject)

Aggregations

KeyValuePair (de.alpharogroup.collections.pairs.KeyValuePair)2 PropertiesListResolver (de.alpharogroup.resourcebundle.inspector.search.PropertiesListResolver)2 File (java.io.File)2 Locale (java.util.Locale)2 Triple (de.alpharogroup.collections.pairs.Triple)1 KeyValuePairKeyComparator (de.alpharogroup.comparators.pairs.KeyValuePairKeyComparator)1 BundleApplications (de.alpharogroup.db.resource.bundles.entities.BundleApplications)1 BundleNames (de.alpharogroup.db.resource.bundles.entities.BundleNames)1 BundleApplicationsService (de.alpharogroup.db.resource.bundles.service.api.BundleApplicationsService)1 ResourcebundlesService (de.alpharogroup.db.resource.bundles.service.api.ResourcebundlesService)1 EventObject (de.alpharogroup.design.pattern.observer.event.EventObject)1 IOException (java.io.IOException)1 Properties (java.util.Properties)1