Initial commit
This commit is contained in:
24
gui/core/pom.xml
Normal file
24
gui/core/pom.xml
Normal file
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>ch.gtache.fro.gui</groupId>
|
||||
<artifactId>gui</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>gui-core</artifactId>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>ch.gtache.fro.gui</groupId>
|
||||
<artifactId>gui-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ch.gtache.fro</groupId>
|
||||
<artifactId>fro-core</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
@@ -0,0 +1,41 @@
|
||||
package ch.gtache.fro.gui.impl;
|
||||
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.inject.Singleton;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Enumeration;
|
||||
import java.util.Map;
|
||||
import java.util.ResourceBundle;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* Combination of multiple resource bundles
|
||||
*/
|
||||
@Singleton
|
||||
public class CombinedResourceBundle extends ResourceBundle {
|
||||
|
||||
private final Map<String, String> entries;
|
||||
|
||||
@Inject
|
||||
CombinedResourceBundle(final Set<ResourceBundle> resourceBundles) {
|
||||
this.entries = resourceBundles.stream()
|
||||
.flatMap(r -> r.keySet().stream().map(k -> new KeyValue(k, r.getString(k))))
|
||||
.collect(Collectors.toUnmodifiableMap(KeyValue::key, KeyValue::value));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Object handleGetObject(final String key) {
|
||||
return entries.get(key);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Enumeration<String> getKeys() {
|
||||
return Collections.enumeration(entries.keySet());
|
||||
}
|
||||
|
||||
private record KeyValue(String key, String value) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package ch.gtache.fro.modules.gui.impl;
|
||||
|
||||
import ch.gtache.fro.modules.practice.gui.impl.GuiPracticeCoreModule;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
import dagger.multibindings.IntoSet;
|
||||
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
@Module(includes = GuiPracticeCoreModule.class)
|
||||
public abstract class GuiCoreModule {
|
||||
|
||||
private GuiCoreModule() {
|
||||
|
||||
}
|
||||
|
||||
@Provides
|
||||
@IntoSet
|
||||
static ResourceBundle providesFetchBundle() {
|
||||
return ResourceBundle.getBundle("ch.gtache.fro.gui.impl.FetchBundle");
|
||||
}
|
||||
|
||||
@Provides
|
||||
@IntoSet
|
||||
static ResourceBundle providesMainBundle() {
|
||||
return ResourceBundle.getBundle("ch.gtache.fro.gui.impl.MainBundle");
|
||||
}
|
||||
|
||||
@Provides
|
||||
@IntoSet
|
||||
static ResourceBundle providesSettingsBundle() {
|
||||
return ResourceBundle.getBundle("ch.gtache.fro.gui.impl.SettingsBundle");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
package ch.gtache.fro.modules.practice.gui.impl;
|
||||
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
import dagger.multibindings.IntoSet;
|
||||
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
@Module
|
||||
public abstract class GuiPracticeCoreModule {
|
||||
|
||||
private GuiPracticeCoreModule() {
|
||||
|
||||
}
|
||||
|
||||
@Provides
|
||||
@IntoSet
|
||||
static ResourceBundle providesPracticeBundle() {
|
||||
return ResourceBundle.getBundle("ch.gtache.fro.practice.gui.impl.PracticeBundle");
|
||||
}
|
||||
|
||||
@Provides
|
||||
@IntoSet
|
||||
static ResourceBundle providesPracticePictureExactBundle() {
|
||||
return ResourceBundle.getBundle("ch.gtache.fro.practice.gui.impl.PracticePictureExactBundle");
|
||||
}
|
||||
|
||||
@Provides
|
||||
@IntoSet
|
||||
static ResourceBundle providesPracticePictureMultichoiceBundle() {
|
||||
return ResourceBundle.getBundle("ch.gtache.fro.practice.gui.impl.PracticePictureMultichoiceBundle");
|
||||
}
|
||||
|
||||
@Provides
|
||||
@IntoSet
|
||||
static ResourceBundle providesPracticeResultBundle() {
|
||||
return ResourceBundle.getBundle("ch.gtache.fro.practice.gui.impl.PracticeResultBundle");
|
||||
}
|
||||
|
||||
@Provides
|
||||
@IntoSet
|
||||
static ResourceBundle providesPracticeSettingsBundle() {
|
||||
return ResourceBundle.getBundle("ch.gtache.fro.practice.gui.impl.PracticeSettingsBundle");
|
||||
}
|
||||
|
||||
@Provides
|
||||
@IntoSet
|
||||
static ResourceBundle providesPracticeSoundExactBundle() {
|
||||
return ResourceBundle.getBundle("ch.gtache.fro.practice.gui.impl.PracticeSoundExactBundle");
|
||||
}
|
||||
|
||||
@Provides
|
||||
@IntoSet
|
||||
static ResourceBundle providesPracticeSoundMultichoiceBundle() {
|
||||
return ResourceBundle.getBundle("ch.gtache.fro.practice.gui.impl.PracticeSoundMultichoiceBundle");
|
||||
}
|
||||
|
||||
@Provides
|
||||
@IntoSet
|
||||
static ResourceBundle providesPracticeSoundMultichoicePictureBundle() {
|
||||
return ResourceBundle.getBundle("ch.gtache.fro.practice.gui.impl.PracticeSoundMultichoicePictureBundle");
|
||||
}
|
||||
}
|
||||
13
gui/core/src/main/java/module-info.java
Normal file
13
gui/core/src/main/java/module-info.java
Normal file
@@ -0,0 +1,13 @@
|
||||
/**
|
||||
* GUI core module for the FRO project
|
||||
*/
|
||||
module ch.gtache.fro.gui.core {
|
||||
requires transitive ch.gtache.fro.gui.api;
|
||||
requires ch.gtache.fro.core;
|
||||
requires jakarta.inject;
|
||||
requires dagger;
|
||||
|
||||
exports ch.gtache.fro.gui.impl;
|
||||
exports ch.gtache.fro.modules.gui.impl;
|
||||
exports ch.gtache.fro.modules.practice.gui.impl;
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fetch.button.all.label=Fetch all
|
||||
fetch.button.fetch.label=Fetch
|
||||
fetch.providers.label=Providers
|
||||
@@ -0,0 +1,3 @@
|
||||
fetch.button.all.label=Fetch all
|
||||
fetch.button.fetch.label=Fetch
|
||||
fetch.providers.label=Providers
|
||||
@@ -0,0 +1,3 @@
|
||||
fetch.button.all.label=Télécharger tous
|
||||
fetch.button.fetch.label=Télécharger
|
||||
fetch.providers.label=Sources
|
||||
@@ -0,0 +1,3 @@
|
||||
main.tab.fetch.label=Fetch
|
||||
main.tab.practice.label=Practice
|
||||
main.tab.settings.label=Settings
|
||||
@@ -0,0 +1,3 @@
|
||||
main.tab.fetch.label=Fetch
|
||||
main.tab.practice.label=Practice
|
||||
main.tab.settings.label=Settings
|
||||
@@ -0,0 +1,3 @@
|
||||
main.tab.fetch.label=Téléchargement
|
||||
main.tab.practice.label=Entraînement
|
||||
main.tab.settings.label=Paramètres
|
||||
@@ -0,0 +1,5 @@
|
||||
settings.table.column.bird=Bird
|
||||
settings.table.column.enabled=Enabled
|
||||
settings.table.column.fetchers=Fetchers
|
||||
settings.table.column.pictures=Pictures
|
||||
settings.table.column.sounds=Sounds
|
||||
@@ -0,0 +1,5 @@
|
||||
settings.table.column.bird=Bird
|
||||
settings.table.column.enabled=Enabled
|
||||
settings.table.column.fetchers=Fetchers
|
||||
settings.table.column.pictures=Pictures
|
||||
settings.table.column.sounds=Sounds
|
||||
@@ -0,0 +1,5 @@
|
||||
settings.table.column.bird=Oiseau
|
||||
settings.table.column.enabled=Activé
|
||||
settings.table.column.fetchers=Fournisseurs
|
||||
settings.table.column.pictures=Images
|
||||
settings.table.column.sounds=Sons
|
||||
@@ -0,0 +1 @@
|
||||
practice.picture.exact.validate.button.label=Confirm
|
||||
@@ -0,0 +1 @@
|
||||
practice.picture.exact.validate.button.label=Confirm
|
||||
@@ -0,0 +1 @@
|
||||
practice.picture.exact.validate.button.label=Confirmer
|
||||
@@ -0,0 +1 @@
|
||||
practice.picture.multichoice.validate.button.label=Confirm
|
||||
@@ -0,0 +1 @@
|
||||
practice.picture.multichoice.validate.button.label=Confirm
|
||||
@@ -0,0 +1 @@
|
||||
practice.picture.multichoice.validate.button.label=Confirmer
|
||||
@@ -0,0 +1,3 @@
|
||||
practice.result.failure.label=Failed guesses
|
||||
practice.result.label=Practice result
|
||||
practice.result.success.label=Correct guesses
|
||||
@@ -0,0 +1,3 @@
|
||||
practice.result.failure.label=Failed guesses
|
||||
practice.result.label=Practice result
|
||||
practice.result.success.label=Correct guesses
|
||||
@@ -0,0 +1,3 @@
|
||||
practice.result.failure.label=Choix incorrects
|
||||
practice.result.label=Résultat
|
||||
practice.result.success.label=Choix corrects
|
||||
@@ -0,0 +1,3 @@
|
||||
practice.settings.start.button.label=Start
|
||||
practice.settings.suggestions.number.label=Number of suggestions
|
||||
practice.settings.type.label=Practice type
|
||||
@@ -0,0 +1,3 @@
|
||||
practice.settings.start.button.label=Start
|
||||
practice.settings.suggestions.number.label=Number of suggestions
|
||||
practice.settings.type.label=Practice type
|
||||
@@ -0,0 +1,3 @@
|
||||
practice.settings.start.button.label=Démarrer
|
||||
practice.settings.suggestions.number.label=Nombre de suggestions
|
||||
practice.settings.type.label=Type d'entraînement
|
||||
@@ -0,0 +1 @@
|
||||
practice.sound.exact.validate.button.label=Confirm
|
||||
@@ -0,0 +1 @@
|
||||
practice.sound.exact.validate.button.label=Confirm
|
||||
@@ -0,0 +1 @@
|
||||
practice.sound.exact.validate.button.label=Confirmer
|
||||
@@ -0,0 +1 @@
|
||||
practice.sound.multichoice.validate.button.label=Confirm
|
||||
@@ -0,0 +1 @@
|
||||
practice.sound.multichoice.validate.button.label=Confirm
|
||||
@@ -0,0 +1 @@
|
||||
practice.sound.multichoice.validate.button.label=Confirmer
|
||||
@@ -0,0 +1 @@
|
||||
practice.sound.multichoice.picture.validate.button.label=Confirm
|
||||
@@ -0,0 +1 @@
|
||||
practice.sound.multichoice.picture.validate.button.label=Confirm
|
||||
@@ -0,0 +1 @@
|
||||
practice.sound.multichoice.picture.validate.button.label=Confirmer
|
||||
Reference in New Issue
Block a user