Footer Component added.

master
Markus Kreth 4 years ago
parent 8fd09d8aef
commit 632115eefe
  1. 56
      src/main/java/de/kreth/invoice/Version_Properties.java
  2. 61
      src/main/java/de/kreth/invoice/views/FooterComponent.java
  3. 4
      src/main/java/de/kreth/invoice/views/View.java
  4. 4
      src/main/resources/version.properties

@ -0,0 +1,56 @@
package de.kreth.invoice;
import java.util.Properties;
import java.util.ResourceBundle;
import java.util.function.UnaryOperator;
import javax.annotation.processing.Generated;
/**
* Property keys from version.properties
*/
@Generated(date = "29.05.2022, 21:56:35", value = "de.kreth.property2java.Generator")
public enum Version_Properties {
/**
* project.version = "${project.version}"
*/
PROJECT_VERSION ("project.version"),
/**
* package_name = "${project.artifactId}-${project.version}.${project.packaging}"
*/
PACKAGE_NAME ("package_name"),
/**
* build.dateTime = "${timestamp}"
*/
BUILD_DATETIME ("build.dateTime"),
/**
* project.artifactId = "${project.artifactId}"
*/
PROJECT_ARTIFACTID ("project.artifactId");
private final String value;
private Version_Properties (String value) {
this.value = value;
}
/**
* Represented Key in property File.
* @return key
*/
public String getValue() {
return value;
}
/**
* Resolves the value for this key from the parameter function.
* <p>
* e.g. <code>Version_Properties.getString(resBundle::getString)</code>
* @param resourceFunction {@link Properties#getProperty(String)} or {@link ResourceBundle#getString(String)}
* @return
*/
public String getString(UnaryOperator<String> resourceFunction) {
return resourceFunction.apply(value);
}
}

@ -2,15 +2,21 @@ package de.kreth.invoice.views;
import java.io.IOException; import java.io.IOException;
import java.net.URL; import java.net.URL;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties; import java.util.Properties;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.vaadin.flow.component.Text; import com.vaadin.flow.component.Text;
import com.vaadin.flow.component.orderedlayout.HorizontalLayout; import com.vaadin.flow.component.formlayout.FormLayout;
public class FooterComponent extends HorizontalLayout { import de.kreth.invoice.Version_Properties;
public class FooterComponent extends FormLayout {
private static final long serialVersionUID = 4845822203421115202L; private static final long serialVersionUID = 4845822203421115202L;
@ -19,7 +25,7 @@ public class FooterComponent extends HorizontalLayout {
private static final Properties VERSION = new Properties(); private static final Properties VERSION = new Properties();
static { static {
String path = "/../version.properties"; String path = "/version.properties";
try { try {
recursivelyLoadPropFromPath(FooterComponent.class, path, 0); recursivelyLoadPropFromPath(FooterComponent.class, path, 0);
} catch (Exception e) { } catch (Exception e) {
@ -46,33 +52,32 @@ public class FooterComponent extends HorizontalLayout {
public FooterComponent() { public FooterComponent() {
Text copyright = new Text("&copy; Markus Kreth"); Text copyright = new Text("\u00a9 Markus Kreth");
add(copyright); add(copyright);
// if (propertiesLoaded()) { if (propertiesLoaded()) {
//
// String dateTimeProperty = Version_Properties.BUILD_DATETIME.getString(VERSION::getProperty); String dateTimeProperty = Version_Properties.BUILD_DATETIME.getString(VERSION::getProperty);
// SimpleDateFormat sourceFormat = new SimpleDateFormat( SimpleDateFormat sourceFormat = new SimpleDateFormat(
// "yyyy-MM-dd HH:mm:ss"); "yyyy-MM-dd HH:mm:ss");
// sourceFormat.setTimeZone(TimeZone.getTimeZone("UTC")); try {
// try { Date date = sourceFormat.parse(dateTimeProperty);
// Date date = sourceFormat.parse(dateTimeProperty); dateTimeProperty = DateFormat.getDateTimeInstance(
// dateTimeProperty = DateFormat.getDateTimeInstance( DateFormat.MEDIUM, DateFormat.SHORT).format(date);
// DateFormat.MEDIUM, DateFormat.SHORT).format(date); } catch (ParseException e) {
// } catch (ParseException e) { LOGGER.warn(
// LOGGER.warn( "Unable to parse dateTimeProperty=" + dateTimeProperty,
// "Unable to parse dateTimeProperty=" + dateTimeProperty, e);
// e); }
// } Text vers = new Text(
// Label vers = new Label( "Version: " + Version_Properties.PROJECT_VERSION.getString(VERSION::getProperty));
// "Version: " + Version_Properties.PROJECT_VERSION.getString(VERSION::getProperty)); Text buildTime = new Text("Build: " + dateTimeProperty);
// Label buildTime = new Label("Build: " + dateTimeProperty); add(vers, buildTime);
// adds(vers, buildTime); }
// } getStyle().set("margin", "3px");
} }
// private boolean propertiesLoaded() { private boolean propertiesLoaded() {
// return Version_Properties.BUILD_DATETIME.getString(VERSION::getProperty) != null return !VERSION.isEmpty() && !Version_Properties.BUILD_DATETIME.getString(VERSION::getProperty).contains("${");
// && Version_Properties.BUILD_DATETIME.getString(VERSION::getProperty).trim().isEmpty() == false; }
// }
} }

@ -180,6 +180,7 @@ public class View extends VerticalLayout implements BeforeEnterObserver {
invoiceItems.refreshData(); invoiceItems.refreshData();
invoiceCompoent.refreshData(); invoiceCompoent.refreshData();
add(new FooterComponent());
} }
public void onMenuButtonClick(ClickEvent<Button> event) { public void onMenuButtonClick(ClickEvent<Button> event) {
@ -203,6 +204,9 @@ public class View extends VerticalLayout implements BeforeEnterObserver {
dlg.add(new H1("Abrechnungen")); dlg.add(new H1("Abrechnungen"));
dlg.add(new Text( dlg.add(new Text(
"Abrechnungen ist eine App zur Erfassung von Übungsleiterstunden und Abrechnung im MTV Groß-Buchholz.")); "Abrechnungen ist eine App zur Erfassung von Übungsleiterstunden und Abrechnung im MTV Groß-Buchholz."));
dlg.add(new Text(
""));
dlg.open(); dlg.open();
} }

@ -0,0 +1,4 @@
project.artifactId=trainerinvoice
project.version=1.0.0-SNAPSHOT
build.dateTime=2022-05-29 23:00:00
package_name=trainerinvoice-1.0.0-SNAPSHOT.jar
Loading…
Cancel
Save