Skip to content

Commit

Permalink
Switch to LGoodDatePicker (#2340)
Browse files Browse the repository at this point in the history
* Switch to LGoodDatePicker

* document switch to LGoodDatePicker in external-libraries.txt

* use maven version of LGoodDatePicker and minor typo fixes
  • Loading branch information
matthiasgeiger committed Dec 5, 2016
1 parent 7347241 commit 8556e65
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 32 deletions.
2 changes: 2 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,8 @@ dependencies {
compile 'org.citationstyles:styles:1.0.1-SNAPSHOT'
compile 'org.citationstyles:locales:1.0.1-SNAPSHOT'
compile 'de.undercouch:citeproc-java:1.0.1'

compile 'com.github.lgooddatepicker:LGoodDatePicker:8.2.2'

testCompile 'junit:junit:4.12'
testCompile 'org.mockito:mockito-core:2.2.26'
Expand Down
9 changes: 4 additions & 5 deletions external-libraries.txt
Original file line number Diff line number Diff line change
Expand Up @@ -145,11 +145,10 @@ Project: SwingX
URL: https://swingx.java.net/
License: LGPL-3.0

Id: microba
Path: lib/microba.jar
Project: Microba
URL: https://github.com/tdbear/microba
License: BSD
Id: com.github.lgooddatepicker:LGoodDatePicker
Project: LGoodDatePicker
URL: https://github.com/LGoodDatePicker/LGoodDatePicker
License: MIT

Id: spin
Path: lib/spin.jar
Expand Down
Binary file removed lib/microba.jar
Binary file not shown.
1 change: 1 addition & 0 deletions src/main/java/net/sf/jabref/gui/IconTheme.java
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,7 @@ public enum JabRefIcon {
FACEBOOK("\uf20c"), /* css: facebook */
BLOG("\uf46b"), /* css: rss */
GLOBAL_SEARCH("\uF1E7"), /* css: earth */
DATE_PICKER("\uF0ED;"), /* css: calendar */
// STILL MISSING:
GROUP_REGULAR("\uF4E6", Color.RED);

Expand Down
39 changes: 24 additions & 15 deletions src/main/java/net/sf/jabref/gui/date/DatePickerButton.java
Original file line number Diff line number Diff line change
@@ -1,51 +1,60 @@
package net.sf.jabref.gui.date;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;
import java.time.LocalDate;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

import javax.swing.JComponent;
import javax.swing.JPanel;

import net.sf.jabref.Globals;
import net.sf.jabref.gui.IconTheme;
import net.sf.jabref.gui.fieldeditors.FieldEditor;
import net.sf.jabref.logic.util.date.EasyDateFormat;
import net.sf.jabref.preferences.JabRefPreferences;

import com.michaelbaranov.microba.calendar.DatePicker;
import com.github.lgooddatepicker.components.DatePicker;
import com.github.lgooddatepicker.components.DatePickerSettings;
import com.github.lgooddatepicker.optionalusertools.DateChangeListener;
import com.github.lgooddatepicker.zinternaltools.DateChangeEvent;

/**
* wrapper and service class for the DatePicker handling at the EntryEditor
*/
public class DatePickerButton implements ActionListener {
public class DatePickerButton implements DateChangeListener {

private final DatePicker datePicker = new DatePicker();
private final DatePicker datePicker;
private final JPanel panel = new JPanel();
private final FieldEditor editor;
private final boolean isoFormat;


public DatePickerButton(FieldEditor pEditor, Boolean isoFormat) {
this.isoFormat = isoFormat;
datePicker.showButtonOnly(true);
datePicker.addActionListener(this);
datePicker.setShowTodayButton(true);
// Create a date picker with hidden text field (showing button only).
DatePickerSettings dateSettings = new DatePickerSettings();
dateSettings.setVisibleDateTextField(false);
dateSettings.setGapBeforeButtonPixels(0);

datePicker = new DatePicker(dateSettings);
datePicker.addDateChangeListener(this);
datePicker.getComponentToggleCalendarButton().setIcon(IconTheme.JabRefIcon.DATE_PICKER.getIcon());
datePicker.getComponentToggleCalendarButton().setText("");

panel.setLayout(new BorderLayout());
panel.add(datePicker, BorderLayout.WEST);
editor = pEditor;
}

@Override
public void actionPerformed(ActionEvent e) {
Date date = datePicker.getDate();
public void dateChanged(DateChangeEvent dateChangeEvent) {
LocalDate date = datePicker.getDate();
if (date != null) {
if (isoFormat) {
editor.setText(EasyDateFormat.isoDateFormat().getDateAt(date));
editor.setText(date.format(DateTimeFormatter.ISO_DATE));
} else {
editor.setText(EasyDateFormat
.fromTimeStampFormat(Globals.prefs.get(JabRefPreferences.TIME_STAMP_FORMAT))
.getDateAt(date));
EasyDateFormat.fromTimeStampFormat(Globals.prefs.get(JabRefPreferences.TIME_STAMP_FORMAT)).getDateAt(ZonedDateTime.from(date));
}
} else {
// in this case the user selected "none" in the date picker, so we just clear the field
Expand Down
12 changes: 0 additions & 12 deletions src/main/java/net/sf/jabref/logic/util/date/EasyDateFormat.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
package net.sf.jabref.logic.util.date;

import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;

public class EasyDateFormat {

Expand Down Expand Up @@ -32,16 +30,6 @@ public String getCurrentDate() {
return getDateAt(ZonedDateTime.now());
}

/**
* Creates a readable Date string from the parameter date. The format is set
* in preferences under the key "timeStampFormat".
*
* @return The formatted date string.
*/
public String getDateAt(Date date) {
return getDateAt(date.toInstant().atZone(ZoneId.systemDefault()));
}

/**
* Creates a readable Date string from the parameter date. The format is set
* in preferences under the key "timeStampFormat".
Expand Down

0 comments on commit 8556e65

Please sign in to comment.