Code refactoring

This commit is contained in:
Nikolay Borodin 2024-06-13 20:07:06 +02:00
parent 5201c3c7e4
commit 5b021b6997
2 changed files with 13 additions and 11 deletions

View file

@ -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) {
}

View file

@ -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
}// </editor-fold>//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