diff --git a/src/org/p2pvpn/gui/Calendar.java b/src/org/p2pvpn/gui/CalendarPopup.java similarity index 82% rename from src/org/p2pvpn/gui/Calendar.java rename to src/org/p2pvpn/gui/CalendarPopup.java index 69f01c4..ebbc578 100644 --- a/src/org/p2pvpn/gui/Calendar.java +++ b/src/org/p2pvpn/gui/CalendarPopup.java @@ -25,6 +25,7 @@ import com.github.lgooddatepicker.optionalusertools.CalendarListener; import java.awt.Component; import java.awt.Point; import java.time.LocalDate; +import java.time.LocalDateTime; import java.time.ZoneId; import java.util.Date; import javax.swing.JSpinner; @@ -35,13 +36,13 @@ import javax.swing.SwingUtilities; * Uses internal library methods. * @author monsterovich */ -public class Calendar implements CalendarListener { +public class CalendarPopup implements CalendarListener { private final CalendarPanel calendarPanel; private CustomPopup calendarPopup; private final Component parentComponent; private final JSpinner inputField; - public Calendar(Component component, JSpinner field) { + public CalendarPopup(Component component, JSpinner field) { parentComponent = component; inputField = field; @@ -68,18 +69,19 @@ public class Calendar implements CalendarListener { calendarPanel.requestFocus(); } + @Override public void selectedDateChanged(CalendarSelectionEvent event) { LocalDate calendarDate = event.getSource().getSelectedDate(); if (calendarDate != null && event.isDuplicate()) { - Date originalDate = (Date) inputField.getModel().getValue(); - Date date = Date.from(calendarDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); - date.setHours(originalDate.getHours()); - date.setMinutes(originalDate.getMinutes()); - inputField.getModel().setValue(date); + LocalDateTime originalDateTime = ((Date) inputField.getModel().getValue()).toInstant() + .atZone(ZoneId.systemDefault()).toLocalDateTime(); + LocalDateTime newDateTime = calendarDate.atTime(originalDateTime.getHour(), originalDateTime.getMinute()); + inputField.getModel().setValue(Date.from(newDateTime.atZone(ZoneId.systemDefault()).toInstant())); calendarPopup.hide(); } } + @Override public void yearMonthChanged(YearMonthChangeEvent event) { } diff --git a/src/org/p2pvpn/gui/InviteWindow.java b/src/org/p2pvpn/gui/InviteWindow.java index c1e4f69..24f623b 100644 --- a/src/org/p2pvpn/gui/InviteWindow.java +++ b/src/org/p2pvpn/gui/InviteWindow.java @@ -39,7 +39,7 @@ import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPopupMenu; import org.p2pvpn.tools.AdvProperties; -import org.p2pvpn.gui.Calendar; +import org.p2pvpn.gui.CalendarPopup; /** * This window is shown, when the user wants to invite another persion. @@ -50,7 +50,7 @@ public class InviteWindow extends javax.swing.JDialog implements ClipboardOwner MainControl mainControl; JFileChooser fileChooser; - Calendar calendar; + CalendarPopup calendarPopup; /** @@ -80,7 +80,7 @@ public class InviteWindow extends javax.swing.JDialog implements ClipboardOwner }); menu.add(mitem); txtInvitation.setComponentPopupMenu(menu); - calendar = new Calendar(btnCalendar, spnExpiryDate); + calendarPopup = new CalendarPopup(btnCalendar, spnExpiryDate); } /** @@ -252,7 +252,7 @@ public class InviteWindow extends javax.swing.JDialog implements ClipboardOwner }// //GEN-END:initComponents private void btnCalendarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCalendarActionPerformed - calendar.show(); + calendarPopup.show(); }//GEN-LAST:event_btnCalendarActionPerformed private void btnCloseActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_btnCloseActionPerformed