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.Component;
import java.awt.Point; import java.awt.Point;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId; import java.time.ZoneId;
import java.util.Date; import java.util.Date;
import javax.swing.JSpinner; import javax.swing.JSpinner;
@ -35,13 +36,13 @@ import javax.swing.SwingUtilities;
* Uses internal library methods. * Uses internal library methods.
* @author monsterovich * @author monsterovich
*/ */
public class Calendar implements CalendarListener { public class CalendarPopup implements CalendarListener {
private final CalendarPanel calendarPanel; private final CalendarPanel calendarPanel;
private CustomPopup calendarPopup; private CustomPopup calendarPopup;
private final Component parentComponent; private final Component parentComponent;
private final JSpinner inputField; private final JSpinner inputField;
public Calendar(Component component, JSpinner field) { public CalendarPopup(Component component, JSpinner field) {
parentComponent = component; parentComponent = component;
inputField = field; inputField = field;
@ -68,18 +69,19 @@ public class Calendar implements CalendarListener {
calendarPanel.requestFocus(); calendarPanel.requestFocus();
} }
@Override
public void selectedDateChanged(CalendarSelectionEvent event) { public void selectedDateChanged(CalendarSelectionEvent event) {
LocalDate calendarDate = event.getSource().getSelectedDate(); LocalDate calendarDate = event.getSource().getSelectedDate();
if (calendarDate != null && event.isDuplicate()) { if (calendarDate != null && event.isDuplicate()) {
Date originalDate = (Date) inputField.getModel().getValue(); LocalDateTime originalDateTime = ((Date) inputField.getModel().getValue()).toInstant()
Date date = Date.from(calendarDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); .atZone(ZoneId.systemDefault()).toLocalDateTime();
date.setHours(originalDate.getHours()); LocalDateTime newDateTime = calendarDate.atTime(originalDateTime.getHour(), originalDateTime.getMinute());
date.setMinutes(originalDate.getMinutes()); inputField.getModel().setValue(Date.from(newDateTime.atZone(ZoneId.systemDefault()).toInstant()));
inputField.getModel().setValue(date);
calendarPopup.hide(); calendarPopup.hide();
} }
} }
@Override
public void yearMonthChanged(YearMonthChangeEvent event) { public void yearMonthChanged(YearMonthChangeEvent event) {
} }

View file

@ -39,7 +39,7 @@ import javax.swing.JMenuItem;
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
import javax.swing.JPopupMenu; import javax.swing.JPopupMenu;
import org.p2pvpn.tools.AdvProperties; 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. * 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; MainControl mainControl;
JFileChooser fileChooser; JFileChooser fileChooser;
Calendar calendar; CalendarPopup calendarPopup;
/** /**
@ -80,7 +80,7 @@ public class InviteWindow extends javax.swing.JDialog implements ClipboardOwner
}); });
menu.add(mitem); menu.add(mitem);
txtInvitation.setComponentPopupMenu(menu); 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 }// </editor-fold>//GEN-END:initComponents
private void btnCalendarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCalendarActionPerformed private void btnCalendarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCalendarActionPerformed
calendar.show(); calendarPopup.show();
}//GEN-LAST:event_btnCalendarActionPerformed }//GEN-LAST:event_btnCalendarActionPerformed
private void btnCloseActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_btnCloseActionPerformed private void btnCloseActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_btnCloseActionPerformed