Skip to content

Commit 8f8cb42

Browse files
authored
Merge pull request #17 from xdev-software/i18n
Do not depend on Vaadin's I18N / Allow custom path to text translation
2 parents 6b54497 + 63d829b commit 8f8cb42

File tree

23 files changed

+252
-220
lines changed

23 files changed

+252
-220
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,6 @@
1+
# 1.1.0
2+
* Do not depend on Vaadin's I18N / Allow custom path to text translation #1
3+
* Updated dependencies
4+
15
# 1.0.0
26
_Initial release_

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>software.xdev</groupId>
88
<artifactId>vaadin-breadcrumbs-root</artifactId>
9-
<version>1.0.1-SNAPSHOT</version>
9+
<version>1.1.0-SNAPSHOT</version>
1010
<packaging>pom</packaging>
1111

1212
<organization>

vaadin-breadcrumbs-demo/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
<parent>
88
<groupId>software.xdev</groupId>
99
<artifactId>vaadin-breadcrumbs-root</artifactId>
10-
<version>1.0.1-SNAPSHOT</version>
10+
<version>1.1.0-SNAPSHOT</version>
1111
</parent>
1212

1313
<artifactId>vaadin-breadcrumbs-demo</artifactId>
14-
<version>1.0.1-SNAPSHOT</version>
14+
<version>1.1.0-SNAPSHOT</version>
1515
<packaging>jar</packaging>
1616

1717
<organization>

vaadin-breadcrumbs-demo/src/main/java/software/xdev/vaadin/view/HomeView.java renamed to vaadin-breadcrumbs-demo/src/main/java/software/xdev/vaadin/ui/HomeView.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package software.xdev.vaadin.view;
1+
package software.xdev.vaadin.ui;
22

33
import com.vaadin.flow.component.UI;
44
import com.vaadin.flow.component.button.Button;
@@ -7,7 +7,7 @@
77
import com.vaadin.flow.router.Route;
88

99

10-
@Route(value = "", layout = MainLayout.class)
10+
@Route("")
1111
public class HomeView extends VerticalLayout
1212
{
1313
public HomeView()

vaadin-breadcrumbs-demo/src/main/java/software/xdev/vaadin/view/MainLayout.java renamed to vaadin-breadcrumbs-demo/src/main/java/software/xdev/vaadin/ui/MainLayout.java

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package software.xdev.vaadin.view;
1+
package software.xdev.vaadin.ui;
22

33
import java.util.Objects;
44

@@ -10,46 +10,48 @@
1010
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
1111
import com.vaadin.flow.component.sidenav.SideNav;
1212
import com.vaadin.flow.component.sidenav.SideNavItem;
13+
import com.vaadin.flow.router.Layout;
1314
import com.vaadin.flow.router.PageTitle;
1415

1516
import software.xdev.vaadin.breadcrumbs.Breadcrumbs;
16-
import software.xdev.vaadin.view.cars.CarsView;
17-
import software.xdev.vaadin.view.cars.brand.ElectricView;
18-
import software.xdev.vaadin.view.cars.brand.GasolineView;
19-
import software.xdev.vaadin.view.cars.brand.HybridView;
17+
import software.xdev.vaadin.ui.cars.CarsView;
18+
import software.xdev.vaadin.ui.cars.brand.ElectricView;
19+
import software.xdev.vaadin.ui.cars.brand.GasolineView;
20+
import software.xdev.vaadin.ui.cars.brand.HybridView;
2021

2122

23+
@Layout
2224
@PageTitle("Breadcrumb Demo")
2325
public class MainLayout extends AppLayout
2426
{
25-
private static final String SIDE_NAV_I18N_PREFIX = "sidenav_";
26-
27-
private final Breadcrumbs breadcrumbs = new Breadcrumbs();
27+
private final Breadcrumbs breadcrumbs = new Breadcrumbs()
28+
.withHomeBreadcrumbName(this.getTranslation(TranslationKeys.HOME))
29+
.withBreadcrumbNameResolver((full, part) -> this.getTranslation(part));
2830

2931
public MainLayout()
3032
{
3133
final SideNav sideNav = new SideNav();
3234
sideNav.addItem(new SideNavItem(
33-
this.getTranslation(SIDE_NAV_I18N_PREFIX + "home"),
35+
this.getTranslation(TranslationKeys.HOME),
3436
"",
3537
VaadinIcon.HOME_O.create()));
3638

3739
final SideNavItem carsItem = new SideNavItem(
38-
this.getTranslation(SIDE_NAV_I18N_PREFIX + "cars"),
40+
this.getTranslation(TranslationKeys.CARS),
3941
CarsView.class,
4042
VaadinIcon.CAR.create());
4143
carsItem.addItem(new SideNavItem(
42-
this.getTranslation(SIDE_NAV_I18N_PREFIX + "electric"),
43-
ElectricView.class,
44-
VaadinIcon.BOLT.create()));
44+
this.getTranslation(TranslationKeys.GASOLINE),
45+
GasolineView.class,
46+
VaadinIcon.FIRE.create()));
4547
carsItem.addItem(new SideNavItem(
46-
this.getTranslation(SIDE_NAV_I18N_PREFIX + "hybrid"),
48+
this.getTranslation(TranslationKeys.HYBRID),
4749
HybridView.class,
4850
VaadinIcon.GLOBE.create()));
4951
carsItem.addItem(new SideNavItem(
50-
this.getTranslation(SIDE_NAV_I18N_PREFIX + "gasoline"),
51-
GasolineView.class,
52-
VaadinIcon.FIRE.create()));
52+
this.getTranslation(TranslationKeys.ELECTRIC),
53+
ElectricView.class,
54+
VaadinIcon.BOLT.create()));
5355

5456
sideNav.addItem(Objects.requireNonNull(carsItem));
5557

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package software.xdev.vaadin.ui;
2+
3+
public final class TranslationKeys
4+
{
5+
public static final String HOME = "home";
6+
7+
public static final String CARS = "cars";
8+
public static final String ELECTRIC = "electric";
9+
public static final String HYBRID = "hybrid";
10+
public static final String GASOLINE = "gasoline";
11+
public static final String PLUTONIUM = "plutonium";
12+
13+
public static final String FUEL = "fuel";
14+
public static final String MODEL = "model";
15+
public static final String HP = "hp";
16+
17+
private TranslationKeys()
18+
{
19+
}
20+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package software.xdev.vaadin.ui.cars;
2+
3+
import static software.xdev.vaadin.ui.TranslationKeys.ELECTRIC;
4+
import static software.xdev.vaadin.ui.TranslationKeys.GASOLINE;
5+
import static software.xdev.vaadin.ui.TranslationKeys.HYBRID;
6+
import static software.xdev.vaadin.ui.TranslationKeys.PLUTONIUM;
7+
8+
import java.util.List;
9+
10+
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
11+
12+
13+
public abstract class AbstractCarView extends VerticalLayout
14+
{
15+
protected AbstractCarView()
16+
{
17+
final CarGrid carGrid = new CarGrid(this.getCars());
18+
carGrid.setAllRowsVisible(true);
19+
this.add(carGrid);
20+
}
21+
22+
protected abstract List<Car> getCars();
23+
24+
protected static List<Car> getCarsByFuel(final String fuel)
25+
{
26+
return getAllCars().stream()
27+
.filter(c -> fuel.equals(c.fuelI18N()))
28+
.toList();
29+
}
30+
31+
@SuppressWarnings("checkstyle:MagicNumber")
32+
protected static List<Car> getAllCars()
33+
{
34+
return List.of(
35+
new Car(GASOLINE, "Opel Astra K", 110),
36+
new Car(GASOLINE, "Skoda Octavia 4", 150),
37+
new Car(GASOLINE, "VW Golf 7 GTI", 220),
38+
new Car(GASOLINE, "Porsche GT3 RS", 525),
39+
new Car(HYBRID, "Mercedes A250", 160),
40+
new Car(HYBRID, "VW Golf 8 eTSI", 150),
41+
new Car(ELECTRIC, "Tesla Model 3", 460),
42+
new Car(ELECTRIC, "BMW i4", 540),
43+
new Car(PLUTONIUM, "DeLorean DMC-12", 1_620_000)
44+
);
45+
}
46+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package software.xdev.vaadin.ui.cars;
2+
3+
public record Car(String fuelI18N, String model, int hp)
4+
{
5+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package software.xdev.vaadin.ui.cars;
2+
3+
import java.util.List;
4+
5+
import com.vaadin.flow.component.grid.Grid;
6+
7+
import software.xdev.vaadin.ui.TranslationKeys;
8+
9+
10+
public class CarGrid extends Grid<Car>
11+
{
12+
13+
public CarGrid(final List<Car> cars)
14+
{
15+
this.setItems(cars);
16+
this.addColumn(car -> this.getTranslation(car.fuelI18N()))
17+
.setHeader(this.getTranslation(TranslationKeys.FUEL));
18+
this.addColumn(Car::model).setHeader(this.getTranslation(TranslationKeys.MODEL));
19+
this.addColumn(Car::hp).setHeader(this.getTranslation(TranslationKeys.HP));
20+
}
21+
}

vaadin-breadcrumbs-demo/src/main/java/software/xdev/vaadin/view/cars/CarsView.java renamed to vaadin-breadcrumbs-demo/src/main/java/software/xdev/vaadin/ui/cars/CarsView.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
1-
package software.xdev.vaadin.view.cars;
1+
package software.xdev.vaadin.ui.cars;
22

33
import java.util.List;
44

55
import com.vaadin.flow.router.Route;
66

7-
import software.xdev.vaadin.view.MainLayout;
87

9-
10-
@Route(value = "cars", layout = MainLayout.class)
8+
@Route("cars")
119
public class CarsView extends AbstractCarView
1210
{
1311
@Override

0 commit comments

Comments
 (0)