mirror of
https://github.com/robertvokac/time-calc.git
synced 2025-03-25 07:27:49 +01:00
Added several improvements, changes and bug fixes
This commit is contained in:
parent
46130d1855
commit
abc622290c
@ -3,23 +3,14 @@ package org.nanoboot.utils.timecalc.swing.common;
|
|||||||
import org.jfree.chart.ChartFactory;
|
import org.jfree.chart.ChartFactory;
|
||||||
import org.jfree.chart.ChartPanel;
|
import org.jfree.chart.ChartPanel;
|
||||||
import org.jfree.chart.JFreeChart;
|
import org.jfree.chart.JFreeChart;
|
||||||
import org.jfree.chart.axis.CategoryAxis;
|
|
||||||
import org.jfree.chart.axis.CategoryLabelPositions;
|
|
||||||
import org.jfree.chart.block.BlockBorder;
|
import org.jfree.chart.block.BlockBorder;
|
||||||
import org.jfree.chart.plot.CategoryPlot;
|
|
||||||
import org.jfree.chart.plot.PlotOrientation;
|
|
||||||
import org.jfree.chart.plot.XYPlot;
|
import org.jfree.chart.plot.XYPlot;
|
||||||
import org.jfree.chart.renderer.category.LineAndShapeRenderer;
|
|
||||||
import org.jfree.chart.renderer.xy.XYItemRenderer;
|
import org.jfree.chart.renderer.xy.XYItemRenderer;
|
||||||
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
|
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
|
||||||
import org.jfree.chart.title.TextTitle;
|
import org.jfree.chart.title.TextTitle;
|
||||||
import org.jfree.data.category.CategoryDataset;
|
|
||||||
import org.jfree.data.category.DefaultCategoryDataset;
|
|
||||||
import org.jfree.data.time.Day;
|
import org.jfree.data.time.Day;
|
||||||
import org.jfree.data.time.Second;
|
|
||||||
import org.jfree.data.time.TimeSeries;
|
import org.jfree.data.time.TimeSeries;
|
||||||
import org.jfree.data.time.TimeSeriesCollection;
|
import org.jfree.data.time.TimeSeriesCollection;
|
||||||
import org.jfree.data.xy.XYDataset;
|
|
||||||
import org.nanoboot.utils.timecalc.utils.common.NumberFormats;
|
import org.nanoboot.utils.timecalc.utils.common.NumberFormats;
|
||||||
|
|
||||||
import javax.swing.BorderFactory;
|
import javax.swing.BorderFactory;
|
||||||
@ -39,24 +30,35 @@ import java.util.function.BiConsumer;
|
|||||||
public class ArrivalChart extends JPanel {
|
public class ArrivalChart extends JPanel {
|
||||||
private static final Color ORANGE = new Color(237, 125, 49);
|
private static final Color ORANGE = new Color(237, 125, 49);
|
||||||
private static final Color BLUE = new Color(68, 114, 196);
|
private static final Color BLUE = new Color(68, 114, 196);
|
||||||
private static final Color BROWN = new Color(128,0, 64);
|
private static final Color BROWN = new Color(128, 0, 64);
|
||||||
private static final Color PURPLE = new Color(128,0, 255);
|
private static final Color PURPLE = new Color(128, 0, 255);
|
||||||
public static final Rectangle EMPTY_RECTANGLE = new Rectangle();
|
public static final Rectangle EMPTY_RECTANGLE = new Rectangle();
|
||||||
|
private final boolean ma14Enabled;
|
||||||
|
private final boolean ma28Enabled;
|
||||||
|
private final boolean ma56Enabled;
|
||||||
|
|
||||||
public ArrivalChart(ArrivalChartData data, int width) {
|
public ArrivalChart(ArrivalChartData data, int width) {
|
||||||
this(data.getDays(), data.getArrival(), data.getTarget(), data.getMa7(), data.getMa14(), data.getMa28(), data.getMa56(),
|
this(data.getDays(), data.getArrival(), data.getTarget(), data.getMa7(),
|
||||||
data.getStartDate(), data.getEndDate(), width);
|
data.getMa14(), data.getMa28(), data.getMa56(),
|
||||||
|
data.getStartDate(), data.getEndDate(), width,
|
||||||
|
data.isMa14Enabled(), data.isMa28Enabled(),
|
||||||
|
data.isMa56Enabled());
|
||||||
}
|
}
|
||||||
public ArrivalChart(String[] days, double[] arrival, double target, double[] ma7,
|
|
||||||
double[] ma14, double[] ma28, double[] ma56, String startDate, String endDate, int width) {
|
public ArrivalChart(String[] days, double[] arrival, double target,
|
||||||
|
double[] ma7,
|
||||||
|
double[] ma14, double[] ma28, double[] ma56, String startDate,
|
||||||
|
String endDate, int width, boolean ma14Enabled, boolean ma28Enabled,
|
||||||
|
boolean ma56Enabled) {
|
||||||
this.setLayout(null);
|
this.setLayout(null);
|
||||||
|
|
||||||
this.setVisible(true);
|
this.setVisible(true);
|
||||||
//
|
//
|
||||||
String title = "Arrivals";
|
String title = "Arrivals";
|
||||||
|
|
||||||
List<TimeSeries> timeSeries=
|
List<TimeSeries> timeSeries =
|
||||||
createSeries(days, arrival, target, ma7, ma14, ma28, ma56, title, startDate, endDate);
|
createSeries(days, arrival, target, ma7, ma14, ma28, ma56,
|
||||||
|
title, startDate, endDate);
|
||||||
JFreeChart chart = createChart(timeSeries, title);
|
JFreeChart chart = createChart(timeSeries, title);
|
||||||
ChartPanel chartPanel = new ChartPanel(chart);
|
ChartPanel chartPanel = new ChartPanel(chart);
|
||||||
chartPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
|
chartPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
|
||||||
@ -65,10 +67,12 @@ public class ArrivalChart extends JPanel {
|
|||||||
chartPanel.setMouseZoomable(true);
|
chartPanel.setMouseZoomable(true);
|
||||||
this.add(chartPanel);
|
this.add(chartPanel);
|
||||||
chartPanel.setBounds(10, 10, width, 400);
|
chartPanel.setBounds(10, 10, width, 400);
|
||||||
|
this.ma14Enabled = ma14Enabled;
|
||||||
|
this.ma28Enabled = ma28Enabled;
|
||||||
|
this.ma56Enabled = ma56Enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static JFreeChart createChart(List<TimeSeries> timeSeries,
|
private JFreeChart createChart(List<TimeSeries> timeSeries,
|
||||||
String title) {
|
String title) {
|
||||||
|
|
||||||
JFreeChart chart = ChartFactory.createTimeSeriesChart(
|
JFreeChart chart = ChartFactory.createTimeSeriesChart(
|
||||||
@ -79,20 +83,33 @@ public class ArrivalChart extends JPanel {
|
|||||||
);
|
);
|
||||||
|
|
||||||
XYPlot plot = (XYPlot) chart.getPlot();
|
XYPlot plot = (XYPlot) chart.getPlot();
|
||||||
for(int i = 0; i < 6; i++) {
|
for (int i = 0; i < 6; i++) {
|
||||||
|
if (i == 3 && this.ma14Enabled) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (i == 4 && !this.ma28Enabled) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (i == 5 && !this.ma56Enabled) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
plot.setDataset(i, new TimeSeriesCollection(timeSeries.get(i)));
|
plot.setDataset(i, new TimeSeriesCollection(timeSeries.get(i)));
|
||||||
}
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
chart.setBorderVisible(false);
|
chart.setBorderVisible(false);
|
||||||
BiConsumer<Integer, Color> setSeries = (i, c) -> {
|
BiConsumer<Integer, Color> setSeries = (i, c) -> {
|
||||||
XYItemRenderer renderer = new XYLineAndShapeRenderer();
|
XYItemRenderer renderer = new XYLineAndShapeRenderer();
|
||||||
|
|
||||||
// renderer.setDefaultPaint(c);
|
// renderer.setDefaultPaint(c);
|
||||||
// renderer.setDefaultStroke(new BasicStroke(timeSeries.get(0).getItemCount() > 180 ? 1.0f : (i == 1 || i == 2 ? 1.5f : 1.25f)));
|
// renderer.setDefaultStroke(new BasicStroke(timeSeries.get(0).getItemCount() > 180 ? 1.0f : (i == 1 || i == 2 ? 1.5f : 1.25f)));
|
||||||
// renderer.setDefaultShape(EMPTY_RECTANGLE);
|
// renderer.setDefaultShape(EMPTY_RECTANGLE);
|
||||||
|
|
||||||
renderer.setSeriesPaint(0, c);
|
renderer.setSeriesPaint(0, c);
|
||||||
renderer.setSeriesStroke(0, new BasicStroke(i == 1 || i == 2 ? 2.5f : 1.5f));
|
float strength = i == 1 || i == 2 ? 3f : 1.5f;
|
||||||
|
BasicStroke stroke = new BasicStroke(strength);
|
||||||
|
|
||||||
|
renderer.setSeriesStroke(0, stroke);
|
||||||
renderer.setSeriesShape(0, EMPTY_RECTANGLE);
|
renderer.setSeriesShape(0, EMPTY_RECTANGLE);
|
||||||
plot.setRenderer(i, renderer);
|
plot.setRenderer(i, renderer);
|
||||||
};
|
};
|
||||||
@ -105,20 +122,20 @@ public class ArrivalChart extends JPanel {
|
|||||||
|
|
||||||
plot.setBackgroundPaint(Color.white);
|
plot.setBackgroundPaint(Color.white);
|
||||||
|
|
||||||
// plot.setRangeGridlinesVisible(true);
|
// plot.setRangeGridlinesVisible(true);
|
||||||
// plot.setRangeGridlinePaint(Color.BLACK);
|
// plot.setRangeGridlinePaint(Color.BLACK);
|
||||||
//
|
//
|
||||||
// plot.setDomainGridlinesVisible(true);
|
// plot.setDomainGridlinesVisible(true);
|
||||||
// plot.setDomainGridlinePaint(Color.BLACK);
|
// plot.setDomainGridlinePaint(Color.BLACK);
|
||||||
|
|
||||||
chart.getLegend().setFrame(BlockBorder.NONE);
|
chart.getLegend().setFrame(BlockBorder.NONE);
|
||||||
|
|
||||||
// CategoryAxis domainAxis = plot.getDomainAxis();
|
// CategoryAxis domainAxis = plot.getDomainAxis();
|
||||||
// domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_90);
|
// domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_90);
|
||||||
// domainAxis.setLabelFont(SwingUtils.VERY_SMALL_FONT);
|
// domainAxis.setLabelFont(SwingUtils.VERY_SMALL_FONT);
|
||||||
// domainAxis.setTickLabelFont(SwingUtils.VERY_SMALL_FONT);
|
// domainAxis.setTickLabelFont(SwingUtils.VERY_SMALL_FONT);
|
||||||
// domainAxis.setCategoryLabelPositionOffset(10);
|
// domainAxis.setCategoryLabelPositionOffset(10);
|
||||||
// domainAxis.setTickLabelsVisible(true);
|
// domainAxis.setTickLabelsVisible(true);
|
||||||
chart.setTitle(new TextTitle(title,
|
chart.setTitle(new TextTitle(title,
|
||||||
new Font("Serif", Font.BOLD, 18)
|
new Font("Serif", Font.BOLD, 18)
|
||||||
)
|
)
|
||||||
@ -127,7 +144,8 @@ public class ArrivalChart extends JPanel {
|
|||||||
return chart;
|
return chart;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<TimeSeries> createSeries(String[] days, double[] arrival, double target,
|
private List<TimeSeries> createSeries(String[] days, double[] arrival,
|
||||||
|
double target,
|
||||||
double[] ma7, double[] ma14, double[] ma28,
|
double[] ma7, double[] ma14, double[] ma28,
|
||||||
double[] ma56, String title, String startDate, String endDate) {
|
double[] ma56, String title, String startDate, String endDate) {
|
||||||
if (startDate == null) {
|
if (startDate == null) {
|
||||||
@ -138,12 +156,14 @@ public class ArrivalChart extends JPanel {
|
|||||||
}
|
}
|
||||||
List<TimeSeries> result = new ArrayList<>();
|
List<TimeSeries> result = new ArrayList<>();
|
||||||
|
|
||||||
final TimeSeries seriesArrival = new TimeSeries( "Arrival" );
|
final TimeSeries seriesArrival = new TimeSeries("Arrival");
|
||||||
final TimeSeries seriesTarget = new TimeSeries( "Target (" + NumberFormats.FORMATTER_TWO_DECIMAL_PLACES.format(target) + " h)");
|
final TimeSeries seriesTarget = new TimeSeries(
|
||||||
final TimeSeries seriesMa7 = new TimeSeries( "MA7" );
|
"Target (" + NumberFormats.FORMATTER_TWO_DECIMAL_PLACES
|
||||||
final TimeSeries seriesMa14 = new TimeSeries( "MA14" );
|
.format(target) + " h)");
|
||||||
final TimeSeries seriesMa28 = new TimeSeries( "MA28" );
|
final TimeSeries seriesMa7 = new TimeSeries("MA7");
|
||||||
final TimeSeries seriesMa56 = new TimeSeries( "MA56" );
|
final TimeSeries seriesMa14 = new TimeSeries("MA14");
|
||||||
|
final TimeSeries seriesMa28 = new TimeSeries("MA28");
|
||||||
|
final TimeSeries seriesMa56 = new TimeSeries("MA56");
|
||||||
result.add(seriesArrival);
|
result.add(seriesArrival);
|
||||||
result.add(seriesTarget);
|
result.add(seriesTarget);
|
||||||
result.add(seriesMa7);
|
result.add(seriesMa7);
|
||||||
@ -164,20 +184,20 @@ public class ArrivalChart extends JPanel {
|
|||||||
int year = Integer.valueOf(dayArray[0]);
|
int year = Integer.valueOf(dayArray[0]);
|
||||||
int month = Integer.valueOf(dayArray[1]);
|
int month = Integer.valueOf(dayArray[1]);
|
||||||
int day = Integer.valueOf(dayArray[2]);
|
int day = Integer.valueOf(dayArray[2]);
|
||||||
if(year1 != 0) {
|
if (year1 != 0) {
|
||||||
if(month < month1) {
|
if (month < month1) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if(month == month1 && day < day1) {
|
if (month == month1 && day < day1) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(year2 != 0) {
|
if (year2 != 0) {
|
||||||
if(month > month2) {
|
if (month > month2) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if(month == month2 && day > day2) {
|
if (month == month2 && day > day2) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,4 +23,5 @@ public class ArrivalChartData {
|
|||||||
private double[] ma56;
|
private double[] ma56;
|
||||||
private String startDate;
|
private String startDate;
|
||||||
private String endDate;
|
private String endDate;
|
||||||
|
private boolean ma14Enabled = true, ma28Enabled = true, ma56Enabled = true;
|
||||||
}
|
}
|
||||||
|
@ -1,24 +1,28 @@
|
|||||||
package org.nanoboot.utils.timecalc.swing.common;
|
package org.nanoboot.utils.timecalc.swing.common;
|
||||||
|
|
||||||
import java.awt.Color;
|
import org.nanoboot.utils.timecalc.entity.WorkingDay;
|
||||||
import java.awt.Dimension;
|
import org.nanoboot.utils.timecalc.entity.WorkingDayForStats;
|
||||||
import java.awt.Rectangle;
|
import org.nanoboot.utils.timecalc.persistence.api.WorkingDayRepositoryApi;
|
||||||
import java.awt.Toolkit;
|
import org.nanoboot.utils.timecalc.swing.progress.Time;
|
||||||
import java.util.ArrayList;
|
import org.nanoboot.utils.timecalc.utils.common.DateFormats;
|
||||||
import java.util.Calendar;
|
import org.nanoboot.utils.timecalc.utils.common.NumberFormats;
|
||||||
import java.util.List;
|
import org.nanoboot.utils.timecalc.utils.common.TTime;
|
||||||
|
import org.nanoboot.utils.timecalc.utils.common.Utils;
|
||||||
|
|
||||||
import javax.swing.JButton;
|
import javax.swing.JButton;
|
||||||
import javax.swing.JComboBox;
|
import javax.swing.JComboBox;
|
||||||
import javax.swing.JScrollPane;
|
import javax.swing.JScrollPane;
|
||||||
import javax.swing.JTable;
|
import javax.swing.JTable;
|
||||||
import javax.swing.table.DefaultTableModel;
|
import javax.swing.table.DefaultTableModel;
|
||||||
import org.nanoboot.utils.timecalc.entity.WorkingDay;
|
import java.awt.Color;
|
||||||
import org.nanoboot.utils.timecalc.entity.WorkingDayForStats;
|
import java.awt.Dimension;
|
||||||
import org.nanoboot.utils.timecalc.persistence.api.WorkingDayRepositoryApi;
|
import java.awt.Rectangle;
|
||||||
import org.nanoboot.utils.timecalc.swing.progress.Time;
|
import java.awt.Toolkit;
|
||||||
import org.nanoboot.utils.timecalc.utils.common.NumberFormats;
|
import java.awt.event.KeyEvent;
|
||||||
import org.nanoboot.utils.timecalc.utils.common.TTime;
|
import java.awt.event.KeyListener;
|
||||||
import org.nanoboot.utils.timecalc.utils.common.Utils;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert Vokac
|
* @author Robert Vokac
|
||||||
@ -29,7 +33,7 @@ public class WorkingDaysWindow extends TWindow {
|
|||||||
private static final String YES = "YES";
|
private static final String YES = "YES";
|
||||||
private static final String THREE_DASHES = "---";
|
private static final String THREE_DASHES = "---";
|
||||||
//
|
//
|
||||||
private static final Color RED = new Color(255,153,153);
|
private static final Color RED = new Color(255, 153, 153);
|
||||||
public static final String QUESTION_MARK = "?";
|
public static final String QUESTION_MARK = "?";
|
||||||
|
|
||||||
private final WorkingDayRepositoryApi workingDayRepository;
|
private final WorkingDayRepositoryApi workingDayRepository;
|
||||||
@ -39,12 +43,16 @@ public class WorkingDaysWindow extends TWindow {
|
|||||||
private final TTextField startTextField;
|
private final TTextField startTextField;
|
||||||
private final TTextField endTextField;
|
private final TTextField endTextField;
|
||||||
private final int chartWidth;
|
private final int chartWidth;
|
||||||
|
private final JButton decreaseStart;
|
||||||
|
private final JButton decreaseEnd;
|
||||||
private ArrivalChart arrivalChart;
|
private ArrivalChart arrivalChart;
|
||||||
|
|
||||||
private JTable table = null;
|
private JTable table = null;
|
||||||
private final JScrollPane scrollPane;
|
private final JScrollPane scrollPane;
|
||||||
|
private int loadedYear;
|
||||||
|
|
||||||
public WorkingDaysWindow(WorkingDayRepositoryApi workingDayRepository, Time time, double target) {
|
public WorkingDaysWindow(WorkingDayRepositoryApi workingDayRepository,
|
||||||
|
Time time, double target) {
|
||||||
|
|
||||||
setTitle("Work Days");
|
setTitle("Work Days");
|
||||||
this.workingDayRepository = workingDayRepository;
|
this.workingDayRepository = workingDayRepository;
|
||||||
@ -58,7 +66,7 @@ public class WorkingDaysWindow extends TWindow {
|
|||||||
|
|
||||||
List<String> yearsList = workingDayRepository.getYears();
|
List<String> yearsList = workingDayRepository.getYears();
|
||||||
String[] yearsArray = new String[yearsList.size()];
|
String[] yearsArray = new String[yearsList.size()];
|
||||||
for(int i = 0; i< yearsList.size(); i++){
|
for (int i = 0; i < yearsList.size(); i++) {
|
||||||
yearsArray[i] = yearsList.get(i);
|
yearsArray[i] = yearsList.get(i);
|
||||||
}
|
}
|
||||||
JComboBox years = new JComboBox(yearsArray);
|
JComboBox years = new JComboBox(yearsArray);
|
||||||
@ -66,81 +74,188 @@ public class WorkingDaysWindow extends TWindow {
|
|||||||
|
|
||||||
years.setSelectedItem(String.valueOf(year));
|
years.setSelectedItem(String.valueOf(year));
|
||||||
years.addActionListener(e -> {
|
years.addActionListener(e -> {
|
||||||
workingDaysWindow.loadYear(Integer.valueOf((String) years.getSelectedItem()), time);
|
workingDaysWindow
|
||||||
|
.loadYear(Integer.valueOf((String) years.getSelectedItem()),
|
||||||
|
time);
|
||||||
});
|
});
|
||||||
|
|
||||||
add(years);
|
add(years);
|
||||||
years.setBounds(SwingUtils.MARGIN,SwingUtils.MARGIN, 100, 30);
|
years.setBounds(SwingUtils.MARGIN, SwingUtils.MARGIN, 100, 30);
|
||||||
|
|
||||||
this.reloadButton = new JButton("Reload");
|
this.reloadButton = new JButton("Reload");
|
||||||
reloadButton.addActionListener(e -> {
|
reloadButton.addActionListener(e -> {
|
||||||
workingDaysWindow.loadYear(Integer.valueOf((String) years.getSelectedItem()), time);
|
workingDaysWindow
|
||||||
|
.loadYear(Integer.valueOf((String) years.getSelectedItem()),
|
||||||
|
time);
|
||||||
});
|
});
|
||||||
add(reloadButton);
|
add(reloadButton);
|
||||||
reloadButton.setBounds(years.getX() + years.getWidth() + SwingUtils.MARGIN, years.getY(), 100, 30);
|
reloadButton
|
||||||
|
.setBounds(years.getX() + years.getWidth() + SwingUtils.MARGIN,
|
||||||
|
years.getY(), 100, 30);
|
||||||
|
|
||||||
JButton exitButton = new JButton("Exit");
|
JButton exitButton = new JButton("Exit");
|
||||||
exitButton.addActionListener(e -> {
|
exitButton.addActionListener(e -> {
|
||||||
this.setVisible(false);
|
this.setVisible(false);
|
||||||
});
|
});
|
||||||
add(exitButton);
|
add(exitButton);
|
||||||
exitButton.setBounds(reloadButton.getX() + reloadButton.getWidth() + SwingUtils.MARGIN, reloadButton.getY(), 100, 30);
|
exitButton.setBounds(reloadButton.getX() + reloadButton.getWidth()
|
||||||
|
+ SwingUtils.MARGIN, reloadButton.getY(), 100, 30);
|
||||||
|
|
||||||
TLabel deleteLabel = new TLabel("Delete:");
|
TLabel deleteLabel = new TLabel("Delete:");
|
||||||
add(deleteLabel);
|
add(deleteLabel);
|
||||||
deleteLabel.setBounds(exitButton.getX() + exitButton.getWidth() + SwingUtils.MARGIN, exitButton.getY(), 50, 30);
|
deleteLabel.setBounds(
|
||||||
|
exitButton.getX() + exitButton.getWidth() + SwingUtils.MARGIN,
|
||||||
|
exitButton.getY(), 50, 30);
|
||||||
TTextField deleteTextField = new TTextField();
|
TTextField deleteTextField = new TTextField();
|
||||||
add(deleteTextField);
|
add(deleteTextField);
|
||||||
deleteTextField.setBounds(deleteLabel.getX() + deleteLabel.getWidth() + SwingUtils.MARGIN, deleteLabel.getY(), 100, 30);
|
deleteTextField.setBounds(
|
||||||
|
deleteLabel.getX() + deleteLabel.getWidth() + SwingUtils.MARGIN,
|
||||||
|
deleteLabel.getY(), 100, 30);
|
||||||
deleteTextField.addActionListener(e -> {
|
deleteTextField.addActionListener(e -> {
|
||||||
if(deleteTextField.getText().isEmpty()) {
|
if (deleteTextField.getText().isEmpty()) {
|
||||||
//nothing to do
|
//nothing to do
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(!Utils.askYesNo(this, "Do you really want to delete this day: " + deleteTextField.getText(), "Day deletion")) {
|
if (!Utils.askYesNo(this,
|
||||||
|
"Do you really want to delete this day: " + deleteTextField
|
||||||
|
.getText(), "Day deletion")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
workingDayRepository.delete(deleteTextField.getText());
|
workingDayRepository.delete(deleteTextField.getText());
|
||||||
reloadButton.doClick();
|
reloadButton.doClick();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
TLabel startLabel = new TLabel("Start:");
|
TLabel startLabel = new TLabel("Start:");
|
||||||
add(startLabel);
|
add(startLabel);
|
||||||
startLabel.setBounds(deleteTextField.getX() + deleteTextField.getWidth() + 6 * SwingUtils.MARGIN, deleteTextField.getY(), 50, 30);
|
startLabel.setBounds(deleteTextField.getX() + deleteTextField.getWidth()
|
||||||
|
+ 6 * SwingUtils.MARGIN, deleteTextField.getY(),
|
||||||
|
50, 30);
|
||||||
this.startTextField = new TTextField();
|
this.startTextField = new TTextField();
|
||||||
add(startTextField);
|
add(startTextField);
|
||||||
startTextField.setBounds(startLabel.getX() + startLabel.getWidth() + SwingUtils.MARGIN, startLabel.getY(), 100, 30);
|
startTextField.setBounds(
|
||||||
|
startLabel.getX() + startLabel.getWidth() + SwingUtils.MARGIN,
|
||||||
|
startLabel.getY(), 100, 30);
|
||||||
startTextField.addActionListener(e -> {
|
startTextField.addActionListener(e -> {
|
||||||
reloadButton.doClick();
|
reloadButton.doClick();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
TLabel endLabel = new TLabel("End:");
|
TLabel endLabel = new TLabel("End:");
|
||||||
add(endLabel);
|
add(endLabel);
|
||||||
endLabel.setBounds(startTextField.getX() + startTextField.getWidth() + SwingUtils.MARGIN, startTextField.getY(), 50, 30);
|
endLabel.setBounds(startTextField.getX() + startTextField.getWidth()
|
||||||
|
+ SwingUtils.MARGIN, startTextField.getY(), 50, 30);
|
||||||
this.endTextField = new TTextField();
|
this.endTextField = new TTextField();
|
||||||
add(endTextField);
|
add(endTextField);
|
||||||
endTextField.setBounds(endLabel.getX() + endLabel.getWidth() + SwingUtils.MARGIN, endLabel.getY(), 100, 30);
|
endTextField.setBounds(
|
||||||
|
endLabel.getX() + endLabel.getWidth() + SwingUtils.MARGIN,
|
||||||
|
endLabel.getY(), 100, 30);
|
||||||
endTextField.addActionListener(e -> {
|
endTextField.addActionListener(e -> {
|
||||||
reloadButton.doClick();
|
reloadButton.doClick();
|
||||||
});
|
});
|
||||||
|
this.decreaseStart = new JButton("Decrease start");
|
||||||
|
this.decreaseEnd = new JButton("Decrease end");
|
||||||
|
add(decreaseStart);
|
||||||
|
add(decreaseEnd);
|
||||||
|
decreaseStart.addActionListener(e -> {
|
||||||
|
if (loadedYear == 0) {
|
||||||
|
//nothing to do
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String date = this.startTextField.getText();
|
||||||
|
if (date.isEmpty()) {
|
||||||
|
this.startTextField.setText(loadedYear + "-02-01");
|
||||||
|
reloadButton.doClick();
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
String[] array = date.split("-");
|
||||||
|
Calendar cal = Calendar.getInstance();
|
||||||
|
cal.set(Calendar.YEAR, loadedYear);
|
||||||
|
cal.set(Calendar.MONTH, Integer.valueOf(array[1]) - 1);
|
||||||
|
cal.set(Calendar.DAY_OF_MONTH, Integer.valueOf(array[2]));
|
||||||
|
cal.add(Calendar.DAY_OF_MONTH, 32);
|
||||||
|
if (cal.get(Calendar.YEAR) != loadedYear) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.startTextField.setText(
|
||||||
|
DateFormats.DATE_TIME_FORMATTER_YYYYMMDD
|
||||||
|
.format(cal.getTime()));
|
||||||
|
reloadButton.doClick();
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
decreaseEnd.addActionListener(e -> {
|
||||||
|
if (loadedYear == 0) {
|
||||||
|
//nothing to do
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String date = this.endTextField.getText();
|
||||||
|
if (date.isEmpty()) {
|
||||||
|
this.endTextField.setText(loadedYear + "-11-30");
|
||||||
|
reloadButton.doClick();
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
String[] array = date.split("-");
|
||||||
|
Calendar cal = Calendar.getInstance();
|
||||||
|
cal.set(Calendar.YEAR, loadedYear);
|
||||||
|
cal.set(Calendar.MONTH, Integer.valueOf(array[1]) - 1);
|
||||||
|
cal.set(Calendar.DAY_OF_MONTH, Integer.valueOf(array[2]));
|
||||||
|
cal.add(Calendar.DAY_OF_MONTH, -32);
|
||||||
|
if (cal.get(Calendar.YEAR) != loadedYear) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.endTextField.setText(
|
||||||
|
DateFormats.DATE_TIME_FORMATTER_YYYYMMDD
|
||||||
|
.format(cal.getTime()));
|
||||||
|
reloadButton.doClick();
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
decreaseStart.setBounds(endTextField.getX() + endTextField.getWidth()
|
||||||
|
+ SwingUtils.MARGIN, endTextField.getY(), 120,
|
||||||
|
30);
|
||||||
|
decreaseEnd.setBounds(decreaseStart.getX() + decreaseStart.getWidth()
|
||||||
|
+ SwingUtils.MARGIN, decreaseStart.getY(), 120,
|
||||||
|
30);
|
||||||
|
addKeyListener(new KeyListener() {
|
||||||
|
@Override
|
||||||
|
public void keyTyped(KeyEvent e) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void keyPressed(KeyEvent e) {
|
||||||
|
switch (e.getKeyCode()) {
|
||||||
|
case KeyEvent.VK_LEFT: decreaseStart.doClick();break;
|
||||||
|
case KeyEvent.VK_RIGHT: decreaseEnd.doClick();break;
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void keyReleased(KeyEvent e) {
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
//
|
//
|
||||||
ArrivalChartData acd = new ArrivalChartData(new String[]{}, new double[]{}, 7d, new double[]{}, new double[]{}, new double[]{}, new double[]{}, null, null);
|
ArrivalChartData acd =
|
||||||
|
new ArrivalChartData(new String[] {}, new double[] {}, 7d,
|
||||||
|
new double[] {}, new double[] {}, new double[] {},
|
||||||
|
new double[] {}, null, null, false, false, false);
|
||||||
this.arrivalChart = new ArrivalChart(acd, 1000);
|
this.arrivalChart = new ArrivalChart(acd, 1000);
|
||||||
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
|
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
|
||||||
this.chartWidth = (int) screen.getWidth() - 60;
|
this.chartWidth = (int) screen.getWidth() - 60;
|
||||||
arrivalChart.setBounds(SwingUtils.MARGIN, years.getY() + years.getHeight()+ SwingUtils.MARGIN,
|
arrivalChart.setBounds(SwingUtils.MARGIN,
|
||||||
|
years.getY() + years.getHeight() + SwingUtils.MARGIN,
|
||||||
(int) (screen.getWidth() - 50),
|
(int) (screen.getWidth() - 50),
|
||||||
400);
|
400);
|
||||||
add(arrivalChart);
|
add(arrivalChart);
|
||||||
//
|
//
|
||||||
this.scrollPane
|
this.scrollPane
|
||||||
= new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
|
= new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
|
||||||
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
|
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
|
||||||
scrollPane.setBounds(SwingUtils.MARGIN, arrivalChart.getY() + arrivalChart.getHeight()+ SwingUtils.MARGIN,
|
scrollPane.setBounds(SwingUtils.MARGIN,
|
||||||
|
arrivalChart.getY() + arrivalChart.getHeight()
|
||||||
|
+ SwingUtils.MARGIN,
|
||||||
(int) (screen.getWidth() - 50),
|
(int) (screen.getWidth() - 50),
|
||||||
300);
|
300);
|
||||||
add(scrollPane);
|
add(scrollPane);
|
||||||
@ -148,22 +263,29 @@ public class WorkingDaysWindow extends TWindow {
|
|||||||
|
|
||||||
loadYear(year, time);
|
loadYear(year, time);
|
||||||
|
|
||||||
setSize(scrollPane.getWidth() + 3 * SwingUtils.MARGIN, scrollPane.getY() + scrollPane.getHeight() + 4 * SwingUtils.MARGIN);
|
setSize(scrollPane.getWidth() + 3 * SwingUtils.MARGIN,
|
||||||
|
scrollPane.getY() + scrollPane.getHeight()
|
||||||
|
+ 4 * SwingUtils.MARGIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void doReloadButtonClick() {
|
public void doReloadButtonClick() {
|
||||||
this.reloadButton.doClick();
|
this.reloadButton.doClick();
|
||||||
}
|
}
|
||||||
public void loadYear(int year, Time time) {
|
|
||||||
|
|
||||||
|
public void loadYear(int year, Time time) {
|
||||||
|
if (this.loadedYear != year) {
|
||||||
|
this.startTextField.setText("");
|
||||||
|
this.endTextField.setText("");
|
||||||
|
}
|
||||||
|
this.loadedYear = year;
|
||||||
List<WorkingDay> workingDaysList = new ArrayList<>();
|
List<WorkingDay> workingDaysList = new ArrayList<>();
|
||||||
Calendar now = time.asCalendar();
|
Calendar now = time.asCalendar();
|
||||||
final int currentYear = now.get(Calendar.YEAR);
|
final int currentYear = now.get(Calendar.YEAR);
|
||||||
final int currentMonth = now.get(Calendar.MONTH) + 1;
|
final int currentMonth = now.get(Calendar.MONTH) + 1;
|
||||||
final int currentDay = now.get(Calendar.DAY_OF_MONTH);
|
final int currentDay = now.get(Calendar.DAY_OF_MONTH);
|
||||||
// System.out.println("currentYear=" + currentYear);
|
// System.out.println("currentYear=" + currentYear);
|
||||||
// System.out.println("currentMonth=" + currentMonth);
|
// System.out.println("currentMonth=" + currentMonth);
|
||||||
// System.out.println("currentDay=" + currentDay);
|
// System.out.println("currentDay=" + currentDay);
|
||||||
boolean endBeforeYearEnd = false;
|
boolean endBeforeYearEnd = false;
|
||||||
for (int month = 1; month <= 12; month++) {
|
for (int month = 1; month <= 12; month++) {
|
||||||
Calendar cal = Calendar.getInstance();
|
Calendar cal = Calendar.getInstance();
|
||||||
@ -174,14 +296,17 @@ public class WorkingDaysWindow extends TWindow {
|
|||||||
|
|
||||||
WorkingDay wd = workingDayRepository.read(year, month, day);
|
WorkingDay wd = workingDayRepository.read(year, month, day);
|
||||||
if (wd == null) {
|
if (wd == null) {
|
||||||
wd = new WorkingDay(WorkingDay.createId(year, month,day), year, month, day, -1, -1, -1, -1, -1, -1, "Fictive day", true);
|
wd = new WorkingDay(WorkingDay.createId(year, month, day),
|
||||||
|
year, month, day, -1, -1, -1, -1, -1, -1,
|
||||||
|
"Fictive day", true);
|
||||||
}
|
}
|
||||||
workingDaysList.add(wd);
|
workingDaysList.add(wd);
|
||||||
|
|
||||||
// System.out.println("year=" + year);
|
// System.out.println("year=" + year);
|
||||||
// System.out.println("month=" + month);
|
// System.out.println("month=" + month);
|
||||||
// System.out.println("day=" + day);
|
// System.out.println("day=" + day);
|
||||||
if (currentYear == year && currentMonth == month && currentDay == day) {
|
if (currentYear == year && currentMonth == month
|
||||||
|
&& currentDay == day) {
|
||||||
endBeforeYearEnd = true;
|
endBeforeYearEnd = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -192,7 +317,8 @@ public class WorkingDaysWindow extends TWindow {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
List<WorkingDayForStats> wdfsList = WorkingDayForStats.createList(workingDaysList);
|
List<WorkingDayForStats> wdfsList =
|
||||||
|
WorkingDayForStats.createList(workingDaysList);
|
||||||
WorkingDayForStats.fillStatisticsColumns(wdfsList);
|
WorkingDayForStats.fillStatisticsColumns(wdfsList);
|
||||||
|
|
||||||
List<List<String>> listForArray = new ArrayList<>();
|
List<List<String>> listForArray = new ArrayList<>();
|
||||||
@ -201,7 +327,8 @@ public class WorkingDaysWindow extends TWindow {
|
|||||||
listForArray.add(list2);
|
listForArray.add(list2);
|
||||||
if (wdfs.isThisDayTimeOff()) {
|
if (wdfs.isThisDayTimeOff()) {
|
||||||
list2.add(wdfs.getDayOfWeekAsString());
|
list2.add(wdfs.getDayOfWeekAsString());
|
||||||
list2.add(wdfs.getDayOfWeek() == 6 || wdfs.getDayOfWeek() == 7 ? YES : NO);
|
list2.add(wdfs.getDayOfWeek() == 6 || wdfs.getDayOfWeek() == 7 ?
|
||||||
|
YES : NO);
|
||||||
list2.add(wdfs.getId());
|
list2.add(wdfs.getId());
|
||||||
list2.add(THREE_DASHES);
|
list2.add(THREE_DASHES);
|
||||||
list2.add(THREE_DASHES);
|
list2.add(THREE_DASHES);
|
||||||
@ -211,27 +338,53 @@ public class WorkingDaysWindow extends TWindow {
|
|||||||
list2.add(wdfs.getNote());
|
list2.add(wdfs.getNote());
|
||||||
list2.add(wdfs.isTimeOff() ? YES : NO);
|
list2.add(wdfs.isTimeOff() ? YES : NO);
|
||||||
list2.add(QUESTION_MARK);
|
list2.add(QUESTION_MARK);
|
||||||
list2.add(NumberFormats.FORMATTER_FIVE_DECIMAL_PLACES.format(wdfs.getArrivalTimeMovingAverage7Days() - target));
|
list2.add(NumberFormats.FORMATTER_FIVE_DECIMAL_PLACES
|
||||||
list2.add(NumberFormats.FORMATTER_FIVE_DECIMAL_PLACES.format(wdfs.getArrivalTimeMovingAverage14Days() - target));
|
.format(wdfs.getArrivalTimeMovingAverage7Days()
|
||||||
list2.add(NumberFormats.FORMATTER_FIVE_DECIMAL_PLACES.format(wdfs.getArrivalTimeMovingAverage28Days() - target));
|
- target));
|
||||||
list2.add(NumberFormats.FORMATTER_FIVE_DECIMAL_PLACES.format(wdfs.getArrivalTimeMovingAverage56Days() - target));
|
list2.add(NumberFormats.FORMATTER_FIVE_DECIMAL_PLACES
|
||||||
|
.format(wdfs.getArrivalTimeMovingAverage14Days()
|
||||||
|
- target));
|
||||||
|
list2.add(NumberFormats.FORMATTER_FIVE_DECIMAL_PLACES
|
||||||
|
.format(wdfs.getArrivalTimeMovingAverage28Days()
|
||||||
|
- target));
|
||||||
|
list2.add(NumberFormats.FORMATTER_FIVE_DECIMAL_PLACES
|
||||||
|
.format(wdfs.getArrivalTimeMovingAverage56Days()
|
||||||
|
- target));
|
||||||
} else {
|
} else {
|
||||||
list2.add(wdfs.getDayOfWeekAsString());
|
list2.add(wdfs.getDayOfWeekAsString());
|
||||||
TTime overtime = new TTime(wdfs.getOvertimeHour(), wdfs.getOvertimeMinute());
|
TTime overtime = new TTime(wdfs.getOvertimeHour(),
|
||||||
list2.add(wdfs.getDayOfWeek() == 6 || wdfs.getDayOfWeek() == 7 ? YES : NO);
|
wdfs.getOvertimeMinute());
|
||||||
|
list2.add(wdfs.getDayOfWeek() == 6 || wdfs.getDayOfWeek() == 7 ?
|
||||||
|
YES : NO);
|
||||||
list2.add(wdfs.getId());
|
list2.add(wdfs.getId());
|
||||||
list2.add(new TTime(wdfs.getArrivalHour(), wdfs.getArrivalMinute()).toString().substring(0, 5) + " (" + NumberFormats.FORMATTER_FIVE_DECIMAL_PLACES.format(wdfs.getArrivalAsDouble())+ ")");
|
list2.add(new TTime(wdfs.getArrivalHour(),
|
||||||
list2.add(new TTime(wdfs.getDepartureHour(), wdfs.getDepartureMinute()).toString().substring(0, 5));
|
wdfs.getArrivalMinute()).toString().substring(0, 5)
|
||||||
list2.add(overtime.toString().substring(0, overtime.isNegative() ? 6 : 5));
|
+ " (" + NumberFormats.FORMATTER_FIVE_DECIMAL_PLACES
|
||||||
list2.add(TTime.ofMinutes(wdfs.getWorkingTimeInMinutes()).toString().substring(0, 5));
|
.format(wdfs.getArrivalAsDouble()) + ")");
|
||||||
list2.add(TTime.ofMinutes(wdfs.getPauseTimeInMinutes()).toString().substring(0, 5));
|
list2.add(new TTime(wdfs.getDepartureHour(),
|
||||||
|
wdfs.getDepartureMinute()).toString().substring(0, 5));
|
||||||
|
list2.add(overtime.toString()
|
||||||
|
.substring(0, overtime.isNegative() ? 6 : 5));
|
||||||
|
list2.add(TTime.ofMinutes(wdfs.getWorkingTimeInMinutes())
|
||||||
|
.toString().substring(0, 5));
|
||||||
|
list2.add(
|
||||||
|
TTime.ofMinutes(wdfs.getPauseTimeInMinutes()).toString()
|
||||||
|
.substring(0, 5));
|
||||||
list2.add(wdfs.getNote());
|
list2.add(wdfs.getNote());
|
||||||
list2.add(wdfs.isTimeOff() ? YES : NO);
|
list2.add(wdfs.isTimeOff() ? YES : NO);
|
||||||
list2.add(QUESTION_MARK);
|
list2.add(QUESTION_MARK);
|
||||||
list2.add(NumberFormats.FORMATTER_FIVE_DECIMAL_PLACES.format(wdfs.getArrivalTimeMovingAverage7Days() - target));
|
list2.add(NumberFormats.FORMATTER_FIVE_DECIMAL_PLACES
|
||||||
list2.add(NumberFormats.FORMATTER_FIVE_DECIMAL_PLACES.format(wdfs.getArrivalTimeMovingAverage14Days() - target));
|
.format(wdfs.getArrivalTimeMovingAverage7Days()
|
||||||
list2.add(NumberFormats.FORMATTER_FIVE_DECIMAL_PLACES.format(wdfs.getArrivalTimeMovingAverage28Days() - target));
|
- target));
|
||||||
list2.add(NumberFormats.FORMATTER_FIVE_DECIMAL_PLACES.format(wdfs.getArrivalTimeMovingAverage56Days() - target));
|
list2.add(NumberFormats.FORMATTER_FIVE_DECIMAL_PLACES
|
||||||
|
.format(wdfs.getArrivalTimeMovingAverage14Days()
|
||||||
|
- target));
|
||||||
|
list2.add(NumberFormats.FORMATTER_FIVE_DECIMAL_PLACES
|
||||||
|
.format(wdfs.getArrivalTimeMovingAverage28Days()
|
||||||
|
- target));
|
||||||
|
list2.add(NumberFormats.FORMATTER_FIVE_DECIMAL_PLACES
|
||||||
|
.format(wdfs.getArrivalTimeMovingAverage56Days()
|
||||||
|
- target));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -245,64 +398,76 @@ public class WorkingDaysWindow extends TWindow {
|
|||||||
data[index] = data2;
|
data[index] = data2;
|
||||||
index++;
|
index++;
|
||||||
}
|
}
|
||||||
String[] columns = new String[] {"Day of Week", "Weekend", "Date","Arrival","Departure","Overtime","Working time","Pause time","Note", "Time off", "Total overtime", "Arrival MA7", "Arrival MA14", "Arrival MA28", "Arrival MA56"};
|
String[] columns =
|
||||||
|
new String[] {"Day of Week", "Weekend", "Date", "Arrival",
|
||||||
if(table != null) {
|
"Departure", "Overtime", "Working time", "Pause time",
|
||||||
|
"Note", "Time off", "Total overtime", "Arrival MA7",
|
||||||
|
"Arrival MA14", "Arrival MA28", "Arrival MA56"};
|
||||||
|
|
||||||
|
if (table != null) {
|
||||||
scrollPane.remove(table);
|
scrollPane.remove(table);
|
||||||
}
|
}
|
||||||
|
|
||||||
DefaultTableModel model = new DefaultTableModel(data, columns) {
|
DefaultTableModel model = new DefaultTableModel(data, columns) {
|
||||||
public Class getColumnClass(int column) {
|
public Class getColumnClass(int column) {
|
||||||
return getValueAt(0, column).getClass();
|
return getValueAt(0, column).getClass();
|
||||||
};
|
}
|
||||||
|
|
||||||
|
;
|
||||||
};
|
};
|
||||||
// class ColorRenderer extends JLabel
|
// class ColorRenderer extends JLabel
|
||||||
// implements TableCellRenderer {
|
// implements TableCellRenderer {
|
||||||
//
|
//
|
||||||
// public ColorRenderer() {
|
// public ColorRenderer() {
|
||||||
// //super.setOpaque(true);
|
// //super.setOpaque(true);
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
// public Component getTableCellRendererComponent(
|
// public Component getTableCellRendererComponent(
|
||||||
// JTable table, Object value,
|
// JTable table, Object value,
|
||||||
// boolean isSelected, boolean hasFocus,
|
// boolean isSelected, boolean hasFocus,
|
||||||
// int row, int column) {
|
// int row, int column) {
|
||||||
//
|
//
|
||||||
// if (value.equals("SATURDAY")) {
|
// if (value.equals("SATURDAY")) {
|
||||||
// super.setForeground(Color.red);
|
// super.setForeground(Color.red);
|
||||||
// //super.setForeground(Color.black);
|
// //super.setForeground(Color.black);
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
// } else {
|
// } else {
|
||||||
// super.setForeground(Color.YELLOW);
|
// super.setForeground(Color.YELLOW);
|
||||||
// }
|
// }
|
||||||
// setFont(new Font("Dialog", Font.BOLD, 12));
|
// setFont(new Font("Dialog", Font.BOLD, 12));
|
||||||
// return this;
|
// return this;
|
||||||
//
|
//
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
this.table = new JTable(model) {
|
this.table = new JTable(model) {
|
||||||
//
|
//
|
||||||
// public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
|
// public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
|
||||||
//
|
//
|
||||||
// Component c = super.prepareRenderer(renderer, row, column);
|
// Component c = super.prepareRenderer(renderer, row, column);
|
||||||
//
|
//
|
||||||
// // Alternate row color
|
// // Alternate row color
|
||||||
// String value = data[row - 1][0];
|
// String value = data[row - 1][0];
|
||||||
// System.out.println("v=" + value);
|
// System.out.println("v=" + value);
|
||||||
//// if (value.equals("SATURDAY")) {
|
//// if (value.equals("SATURDAY")) {
|
||||||
//// c.setBackground(RED);
|
//// c.setBackground(RED);
|
||||||
//// } else c.setBackground(getBackground());
|
//// } else c.setBackground(getBackground());
|
||||||
// c.setBackground(getBackground());
|
// c.setBackground(getBackground());
|
||||||
// return c;
|
// return c;
|
||||||
// }
|
// }
|
||||||
};
|
};
|
||||||
|
|
||||||
scrollPane.setViewportView(table);
|
scrollPane.setViewportView(table);
|
||||||
table.setBounds(30, 30, 750, 600);
|
table.setBounds(30, 30, 750, 600);
|
||||||
//table.setDefaultRenderer(Object.class, new ColorRenderer());
|
//table.setDefaultRenderer(Object.class, new ColorRenderer());
|
||||||
reloadChart(WorkingDayForStats.toArrivalChartData(wdfsList, 7d, startTextField.getText(), endTextField.getText()));
|
ArrivalChartData acd = WorkingDayForStats
|
||||||
|
.toArrivalChartData(wdfsList, 7d, startTextField.getText(),
|
||||||
|
endTextField.getText());
|
||||||
|
acd.setMa14Enabled(acd.isMa14Enabled());
|
||||||
|
acd.setMa28Enabled(acd.isMa28Enabled());
|
||||||
|
acd.setMa56Enabled(acd.isMa56Enabled());
|
||||||
|
reloadChart(acd);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void reloadChart(ArrivalChartData newArrivalChartData) {
|
public void reloadChart(ArrivalChartData newArrivalChartData) {
|
||||||
|
@ -15,6 +15,9 @@ public class DateFormats {
|
|||||||
= DateTimeFormatter.ofPattern("HH:mm:ss:SSS");
|
= DateTimeFormatter.ofPattern("HH:mm:ss:SSS");
|
||||||
public static DateFormat DATE_TIME_FORMATTER_LONG
|
public static DateFormat DATE_TIME_FORMATTER_LONG
|
||||||
= new SimpleDateFormat("EEEE : yyyy-MM-dd", Locale.ENGLISH);
|
= new SimpleDateFormat("EEEE : yyyy-MM-dd", Locale.ENGLISH);
|
||||||
|
|
||||||
|
public static DateFormat DATE_TIME_FORMATTER_YYYYMMDD
|
||||||
|
= new SimpleDateFormat("yyyy-MM-dd");
|
||||||
//
|
//
|
||||||
public static DateFormat DATE_TIME_FORMATTER_TIME
|
public static DateFormat DATE_TIME_FORMATTER_TIME
|
||||||
= new SimpleDateFormat("HH:mm:ss:SSS", Locale.ENGLISH);
|
= new SimpleDateFormat("HH:mm:ss:SSS", Locale.ENGLISH);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user