package name.abuchen.portfolio.ui.views.dashboard; import java.time.LocalDate; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.time.format.FormatStyle; import org.eclipse.jface.layout.GridDataFactory; import org.eclipse.jface.layout.GridLayoutFactory; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; import name.abuchen.portfolio.model.Dashboard.Widget; public class CurrentDateWidget extends WidgetDelegate { private Label title; private DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.LONG) .withZone(ZoneId.systemDefault()); public CurrentDateWidget(Widget widget, DashboardData dashboardData) { super(widget, dashboardData); } @Override public Composite createControl(Composite parent, DashboardResources resources) { Composite container = new Composite(parent, SWT.NONE); container.setBackground(parent.getBackground()); GridLayoutFactory.fillDefaults().numColumns(1).margins(5, 5).applyTo(container); title = new Label(container, SWT.NONE); title.setText(getWidget().getLabel()); GridDataFactory.fillDefaults().grab(true, false).applyTo(title); return container; } @Override Control getTitleControl() { return title; } @Override void update() { this.title.setText(getWidget().getLabel() + ' ' + formatter.format(LocalDate.now())); } }