Skip to content

Commit 12a958d

Browse files
authored
Enable harmonised date time rendering (#946)
Because it is just annoying to present users with a ISO8601 unformatted timestamp.
1 parent b6e68c8 commit 12a958d

File tree

3 files changed

+35
-7
lines changed

3 files changed

+35
-7
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package life.qbic.datamanager.views.general;
2+
3+
import java.time.Instant;
4+
import java.time.ZoneId;
5+
import java.time.format.DateTimeFormatter;
6+
7+
/**
8+
* <b>Date Time Rendering</b>
9+
*
10+
* <p>A collection of utility methods to render instants in a harmonised way throughout the
11+
* application.</p>
12+
*
13+
* @since 1.7.0
14+
*/
15+
public class DateTimeRendering {
16+
17+
private static final String DATE_TIME_PATTERN = "dd.MM.yyyy HH:mm";
18+
19+
/**
20+
* Formats an {@link Instant} in "dd.MM.yyyy HH:mm".
21+
*
22+
* @param instant the instant to format
23+
* @return the formatted instant
24+
* @since 1.7.0
25+
*/
26+
public static String simple(Instant instant) {
27+
var formatter = DateTimeFormatter.ofPattern(DATE_TIME_PATTERN).withZone(ZoneId.systemDefault());
28+
return formatter.format(instant);
29+
}
30+
31+
}

user-interface/src/main/java/life/qbic/datamanager/views/projects/overview/components/ProjectCollectionComponent.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import life.qbic.application.commons.SortOrder;
2525
import life.qbic.datamanager.views.account.UserAvatar.UserAvatarGroupItem;
2626
import life.qbic.datamanager.views.general.Card;
27+
import life.qbic.datamanager.views.general.DateTimeRendering;
2728
import life.qbic.datamanager.views.general.PageArea;
2829
import life.qbic.datamanager.views.general.Tag;
2930
import life.qbic.datamanager.views.general.Tag.TagColor;
@@ -200,7 +201,7 @@ public ProjectOverviewItem(ProjectOverview projectOverview) {
200201
Span header = createHeader(projectOverview.projectCode(), projectOverview.projectTitle());
201202
add(header);
202203
Span lastModified = new Span(
203-
String.format("Last modified on %s", projectOverview.lastModified()));
204+
String.format("Last modified on %s", DateTimeRendering.simple(projectOverview.lastModified())));
204205
lastModified.addClassName("tertiary");
205206
add(lastModified);
206207
projectDetails.addClassName("details");

user-interface/src/main/java/life/qbic/datamanager/views/projects/project/info/ProjectSummaryComponent.java

+2-6
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import life.qbic.datamanager.views.Context;
3838
import life.qbic.datamanager.views.TagFactory;
3939
import life.qbic.datamanager.views.account.UserAvatar.UserAvatarGroupItem;
40+
import life.qbic.datamanager.views.general.DateTimeRendering;
4041
import life.qbic.datamanager.views.general.CollapsibleDetails;
4142
import life.qbic.datamanager.views.general.DetailBox;
4243
import life.qbic.datamanager.views.general.Heading;
@@ -200,11 +201,6 @@ private static List<? extends UserScopeStrategy> loadWriteScope(Section[] sectio
200201
return Arrays.stream(sections).map(WriteScopeStrategy::new).toList();
201202
}
202203

203-
private String formatDate(Instant date) {
204-
var formatter = DateTimeFormatter.ofPattern(DATE_TIME_PATTERN).withZone(ZoneId.systemDefault());
205-
return formatter.format(date);
206-
}
207-
208204
public void setContext(Context context) {
209205
this.context = Objects.requireNonNull(context);
210206
var projectId = context.projectId()
@@ -556,7 +552,7 @@ private void buildHeaderSection(ProjectOverview projectOverview) {
556552
sectionContent.add(createTags(projectOverview));
557553

558554
header.setSectionNote(new SectionNote(
559-
"Last modified on %s".formatted(formatDate(projectOverview.lastModified()))));
555+
"Last modified on %s".formatted(DateTimeRendering.simple(projectOverview.lastModified()))));
560556
headerSection.setHeader(header);
561557
headerSection.setContent(sectionContent);
562558
}

0 commit comments

Comments
 (0)