Added the possibility to view only activities window
This commit is contained in:
parent
a9333194c7
commit
eab2a69bc4
@ -1,27 +0,0 @@
|
||||
package org.nanoboot.utils.timecalc.app;
|
||||
|
||||
import org.nanoboot.utils.timecalc.persistence.impl.sqlite.ActivityRepositorySQLiteImpl;
|
||||
import org.nanoboot.utils.timecalc.persistence.impl.sqlite.SqliteConnectionFactory;
|
||||
import org.nanoboot.utils.timecalc.swing.progress.Time;
|
||||
import org.nanoboot.utils.timecalc.swing.windows.ActivitiesWindow;
|
||||
|
||||
/**
|
||||
* @author pc00289
|
||||
* @since 05.04.2024
|
||||
*/
|
||||
public class ActivitiesMain {
|
||||
|
||||
public static void main(String[] args) {
|
||||
TimeCalcConfiguration timeCalcConfiguration =
|
||||
new TimeCalcConfiguration();
|
||||
timeCalcConfiguration
|
||||
.loadFromTimeCalcProperties(TimeCalcProperties.getInstance());
|
||||
ActivitiesWindow activitiesWindow = new ActivitiesWindow(
|
||||
new ActivityRepositorySQLiteImpl(new SqliteConnectionFactory()),
|
||||
new Time(),
|
||||
timeCalcConfiguration
|
||||
);
|
||||
activitiesWindow.setVisible(true);
|
||||
;
|
||||
}
|
||||
}
|
@ -3,13 +3,29 @@ package org.nanoboot.utils.timecalc.app;
|
||||
import com.formdev.flatlaf.FlatLightLaf;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URISyntaxException;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
/**
|
||||
* @author Robert Vokac
|
||||
* @since 31.01.2024
|
||||
*/
|
||||
public class Main {
|
||||
private static final boolean ONLY_ACTIVITIES_WINDOW_IS_ALLOWED = false;
|
||||
public static final boolean ONLY_ACTIVITIES_WINDOW_IS_ALLOWED = ((Supplier<Boolean>) () -> {
|
||||
|
||||
try {
|
||||
return !Main.class
|
||||
.getProtectionDomain()
|
||||
.getCodeSource()
|
||||
.getLocation()
|
||||
.toURI()
|
||||
.getPath().contains("time-calc");
|
||||
} catch (URISyntaxException e) {
|
||||
return true;
|
||||
}
|
||||
}).get();
|
||||
|
||||
public static final boolean ACTIVITIES_WINDOW_SHOW_SORTKEY = false;
|
||||
public static void main(String[] args) throws IOException {
|
||||
// for(File f:FileConstants.CLIMATE_TXT.getParentFile().listFiles()) {
|
||||
// if(f.getName().contains("weather")) {
|
||||
@ -18,11 +34,7 @@ public class Main {
|
||||
// }
|
||||
// }
|
||||
FlatLightLaf.setup();
|
||||
if(ONLY_ACTIVITIES_WINDOW_IS_ALLOWED) {
|
||||
ActivitiesMain.main(args);
|
||||
} else {
|
||||
TimeCalcApp timeCalcApp = new TimeCalcApp();
|
||||
timeCalcApp.start(args);
|
||||
}
|
||||
TimeCalcApp timeCalcApp = new TimeCalcApp();
|
||||
timeCalcApp.start(args);
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,8 @@ import org.nanoboot.utils.timecalc.persistence.api.VersionRepositoryApi;
|
||||
import org.nanoboot.utils.timecalc.persistence.impl.sqlite.SqliteConnectionFactory;
|
||||
import org.nanoboot.utils.timecalc.persistence.impl.sqlite.VersionRepositorySQLiteImpl;
|
||||
|
||||
import static org.nanoboot.utils.timecalc.app.Main.ONLY_ACTIVITIES_WINDOW_IS_ALLOWED;
|
||||
|
||||
/**
|
||||
* @author Robert Vokac
|
||||
* @since 31.01.2024
|
||||
@ -80,6 +82,9 @@ public class TimeCalcApp {
|
||||
timeCalcMainWindow.setVisible(false);
|
||||
timeCalcMainWindow.dispose();
|
||||
}
|
||||
if(ONLY_ACTIVITIES_WINDOW_IS_ALLOWED) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package org.nanoboot.utils.timecalc.persistence.impl.sqlite;
|
||||
|
||||
import org.nanoboot.utils.timecalc.app.Main;
|
||||
import org.nanoboot.utils.timecalc.app.TimeCalcException;
|
||||
import org.nanoboot.utils.timecalc.entity.WorkingDay;
|
||||
import org.nanoboot.utils.timecalc.persistence.api.WorkingDayRepositoryApi;
|
||||
@ -28,7 +29,7 @@ public class WorkingDayRepositorySQLiteImpl implements WorkingDayRepositoryApi {
|
||||
public void create(WorkingDay workingDay) {
|
||||
System.out.println("Going to create: " + workingDay.toString());
|
||||
|
||||
if(!Utils.askYesNo(null, "Do you want to create new Working Day? " + workingDay, "Creation of new Working Day")) {
|
||||
if(Main.ONLY_ACTIVITIES_WINDOW_IS_ALLOWED || !Utils.askYesNo(null, "Do you want to create new Working Day? " + workingDay, "Creation of new Working Day")) {
|
||||
return;
|
||||
}
|
||||
StringBuilder sb = new StringBuilder();
|
||||
@ -140,7 +141,7 @@ public class WorkingDayRepositorySQLiteImpl implements WorkingDayRepositoryApi {
|
||||
System.out.println("Nothing to update.");
|
||||
return;
|
||||
}
|
||||
if(!Utils.askYesNo(null, "Do you want to update this Working Day? " + workingDay, "Update of Working Day")) {
|
||||
if(Main.ONLY_ACTIVITIES_WINDOW_IS_ALLOWED || !Utils.askYesNo(null, "Do you want to update this Working Day? " + workingDay, "Update of Working Day")) {
|
||||
return;
|
||||
}
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
@ -1,5 +1,6 @@
|
||||
package org.nanoboot.utils.timecalc.swing.common;
|
||||
|
||||
import org.nanoboot.utils.timecalc.app.Main;
|
||||
import org.nanoboot.utils.timecalc.swing.controls.TTextField;
|
||||
import javax.swing.BorderFactory;
|
||||
import javax.swing.JPanel;
|
||||
@ -21,7 +22,7 @@ public class ActivityHeader extends JPanel {
|
||||
public static final Dimension PREFERRED_SIZE4 = new Dimension(40, 40);
|
||||
public static final Dimension PREFERRED_SIZE2 = new Dimension(100, 40);
|
||||
|
||||
//private TTextField sortkey = new TTextField("Sortkey");
|
||||
private TTextField sortkey = new TTextField("Sortkey");
|
||||
private TTextField name = new TTextField("Name");
|
||||
private TTextField comment = new TTextField("Comment");
|
||||
private TTextField ticket = new TTextField("Ticket");
|
||||
@ -36,7 +37,7 @@ public class ActivityHeader extends JPanel {
|
||||
public ActivityHeader() {
|
||||
this.setLayout(new FlowLayout(FlowLayout.LEFT, 0, 0));
|
||||
|
||||
//add(sortkey);
|
||||
if(Main.ACTIVITIES_WINDOW_SHOW_SORTKEY) add(sortkey);
|
||||
add(name);
|
||||
add(comment);
|
||||
add(ticket);
|
||||
@ -48,7 +49,7 @@ public class ActivityHeader extends JPanel {
|
||||
add(done);
|
||||
add(todo);
|
||||
|
||||
//sortkey.setPreferredSize(PREFERRED_SIZE1);
|
||||
sortkey.setPreferredSize(PREFERRED_SIZE1);
|
||||
name.setPreferredSize(PREFERRED_SIZE);
|
||||
comment.setPreferredSize(PREFERRED_SIZE);
|
||||
ticket.setPreferredSize(PREFERRED_SIZE1);
|
||||
@ -60,7 +61,7 @@ public class ActivityHeader extends JPanel {
|
||||
done.setPreferredSize(PREFERRED_SIZE3);
|
||||
todo.setPreferredSize(PREFERRED_SIZE3);
|
||||
|
||||
//sortkey.setEditable(false);
|
||||
sortkey.setEditable(false);
|
||||
name.setEditable(false);
|
||||
comment.setEditable(false);
|
||||
ticket.setEditable(false);
|
||||
@ -72,7 +73,7 @@ public class ActivityHeader extends JPanel {
|
||||
done.setEditable(false);
|
||||
todo.setEditable(false);
|
||||
|
||||
//sortkey.setFont(FONT);
|
||||
sortkey.setFont(FONT);
|
||||
name.setFont(FONT);
|
||||
comment.setFont(FONT);
|
||||
ticket.setFont(FONT);
|
||||
@ -84,7 +85,7 @@ public class ActivityHeader extends JPanel {
|
||||
done.setFont(FONT);
|
||||
todo.setFont(FONT);
|
||||
|
||||
//sortkey.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));
|
||||
sortkey.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));
|
||||
name.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));
|
||||
comment.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));
|
||||
ticket.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));
|
||||
@ -96,9 +97,9 @@ public class ActivityHeader extends JPanel {
|
||||
done.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));
|
||||
todo.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));
|
||||
|
||||
//this.setBorder(BorderFactory.createLineBorder(Color.ORANGE, 1));
|
||||
this.setBorder(BorderFactory.createLineBorder(Color.ORANGE, 1));
|
||||
setAlignmentX(LEFT_ALIGNMENT);
|
||||
|
||||
//sortkey.setVisible(false);
|
||||
sortkey.setVisible(false);
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package org.nanoboot.utils.timecalc.swing.common;
|
||||
|
||||
import org.nanoboot.utils.timecalc.app.Main;
|
||||
import org.nanoboot.utils.timecalc.swing.controls.MouseClickedListener;
|
||||
import org.nanoboot.utils.timecalc.swing.controls.SmallTButton;
|
||||
import org.nanoboot.utils.timecalc.swing.controls.TTextField;
|
||||
@ -97,7 +98,7 @@ public class ActivityPanel extends JPanel implements Comparable<ActivityPanel> {
|
||||
@Getter
|
||||
private final Activity activity;
|
||||
|
||||
//private final TTextField sortkey;
|
||||
private final TTextField sortkey;
|
||||
private final TTextField name;
|
||||
private final TTextField comment;
|
||||
private final TTextField ticket;
|
||||
@ -125,7 +126,7 @@ public class ActivityPanel extends JPanel implements Comparable<ActivityPanel> {
|
||||
{
|
||||
this.subject = new TTextFieldForActivityPanel("", "subject");
|
||||
this.totalComment = new TTextFieldForActivityPanel("", "totalComment");
|
||||
//this.sortkey = new TTextFieldForActivityPanel("1", "sortkey", (a, r)->a.setSortkey(Integer.parseInt(r)), true);
|
||||
this.sortkey = new TTextFieldForActivityPanel("1", "sortkey", (a, r)->a.setSortkey(Integer.parseInt(r)), true);
|
||||
this.name = new TTextFieldForActivityPanel("", "name", (a, r)->{a.setName(r);getSubject().setText(a.createSubject());}, false);
|
||||
this.comment = new TTextFieldForActivityPanel("", "comment", (a, r)->{a.setComment(r);getTotalComment().setText(a.createTotalComment());}, false);
|
||||
this.ticket = new TTextFieldForActivityPanel("", "ticket",
|
||||
@ -147,7 +148,7 @@ public class ActivityPanel extends JPanel implements Comparable<ActivityPanel> {
|
||||
}
|
||||
|
||||
this.dayPanel = dayPanel;
|
||||
//add(sortkey);
|
||||
if(Main.ACTIVITIES_WINDOW_SHOW_SORTKEY) add(sortkey);
|
||||
add(name);
|
||||
add(comment);
|
||||
add(ticket);
|
||||
@ -158,7 +159,7 @@ public class ActivityPanel extends JPanel implements Comparable<ActivityPanel> {
|
||||
add(totalComment);
|
||||
add(today);
|
||||
add(remains);
|
||||
//sortkey.setVisible(false);
|
||||
sortkey.setVisible(false);
|
||||
name.setHorizontalAlignment(JTextField.LEFT);
|
||||
comment.setHorizontalAlignment(JTextField.LEFT);
|
||||
ticket.setHorizontalAlignment(JTextField.LEFT);
|
||||
@ -178,7 +179,7 @@ public class ActivityPanel extends JPanel implements Comparable<ActivityPanel> {
|
||||
moveThisButton.setFont(SwingUtils.SMALL_FONT);
|
||||
moveBeforeButton.setFont(SwingUtils.SMALL_FONT);
|
||||
|
||||
//sortkey.setPreferredSize(PREFERRED_SIZE1);
|
||||
sortkey.setPreferredSize(PREFERRED_SIZE1);
|
||||
name.setPreferredSize(PREFERRED_SIZE);
|
||||
comment.setPreferredSize(PREFERRED_SIZE);
|
||||
ticket.setPreferredSize(PREFERRED_SIZE1);
|
||||
@ -196,7 +197,7 @@ public class ActivityPanel extends JPanel implements Comparable<ActivityPanel> {
|
||||
moveBeforeButton.setPreferredSize(PREFERRED_SIZE1);
|
||||
this.setPreferredSize(new Dimension(getWidth(), 40));
|
||||
|
||||
//sortkey.setText(String.valueOf(activity.getSortkey()));
|
||||
sortkey.setText(String.valueOf(activity.getSortkey()));
|
||||
name.setText(activity.getName());
|
||||
comment.setText(activity.getComment());
|
||||
ticket.setText(activity.getTicket());
|
||||
@ -284,8 +285,8 @@ public class ActivityPanel extends JPanel implements Comparable<ActivityPanel> {
|
||||
ActivityPanel activityPanelForActivity =
|
||||
dayPanel.getActivityPanelForActivity(activityToBeMoved);
|
||||
activityPanelForActivity.getActivity().setSortkey(newSortKey);
|
||||
// activityPanelForActivity.getSortkeyTTextField().setText(
|
||||
// String.valueOf(newSortKey));
|
||||
activityPanelForActivity.getSortkeyTTextField().setText(
|
||||
String.valueOf(newSortKey));
|
||||
activityRepository.update(activityToBeMoved);
|
||||
dayPanel.sortActivityPanels();
|
||||
|
||||
@ -297,7 +298,7 @@ public class ActivityPanel extends JPanel implements Comparable<ActivityPanel> {
|
||||
public int compareTo(ActivityPanel o) {
|
||||
return this.getActivity().compareTo(o.getActivity());
|
||||
}
|
||||
// public TTextField getSortkeyTTextField() {
|
||||
// return sortkey;
|
||||
// }
|
||||
public TTextField getSortkeyTTextField() {
|
||||
return sortkey;
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package org.nanoboot.utils.timecalc.swing.common;
|
||||
|
||||
import lombok.Getter;
|
||||
import org.nanoboot.utils.timecalc.app.Main;
|
||||
import org.nanoboot.utils.timecalc.app.TimeCalcConfiguration;
|
||||
import org.nanoboot.utils.timecalc.entity.Activity;
|
||||
import org.nanoboot.utils.timecalc.persistence.api.ActivityRepositoryApi;
|
||||
@ -301,7 +302,7 @@ public class DayPanel extends JPanel {
|
||||
sortkey = sortkey + sortkeySpace;
|
||||
ap.getActivity().setSortkey(sortkey);
|
||||
activityRepository.update(ap.getActivity());
|
||||
// ap.getSortkeyTTextField().setText(String.valueOf(sortkey));
|
||||
if(Main.ACTIVITIES_WINDOW_SHOW_SORTKEY) ap.getSortkeyTTextField().setText(String.valueOf(sortkey));
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package org.nanoboot.utils.timecalc.swing.windows;
|
||||
|
||||
import org.nanoboot.utils.timecalc.app.Main;
|
||||
import org.nanoboot.utils.timecalc.app.TimeCalcConfiguration;
|
||||
import org.nanoboot.utils.timecalc.swing.controls.TWindow;
|
||||
import org.nanoboot.utils.timecalc.swing.controls.TTabbedPane;
|
||||
@ -19,6 +20,8 @@ import org.nanoboot.utils.timecalc.swing.common.SwingUtils;
|
||||
import org.nanoboot.utils.timecalc.swing.common.YearPanel;
|
||||
import org.nanoboot.utils.timecalc.swing.progress.Time;
|
||||
|
||||
import static org.nanoboot.utils.timecalc.app.Main.ONLY_ACTIVITIES_WINDOW_IS_ALLOWED;
|
||||
|
||||
/**
|
||||
* @author Robert Vokac
|
||||
* @since 16.02.2024
|
||||
@ -30,7 +33,7 @@ public class ActivitiesWindow extends TWindow {
|
||||
|
||||
public ActivitiesWindow(ActivityRepositoryApi activityRepositoryApiIn, Time time, TimeCalcConfiguration timeCalcConfiguration) {
|
||||
setSize(1600, 800);
|
||||
setTitle("Activities");
|
||||
setTitle(ONLY_ACTIVITIES_WINDOW_IS_ALLOWED ? "Activity Report" : "Activities");
|
||||
this.activityRepository = activityRepositoryApiIn;
|
||||
|
||||
this.years = new HashMap<>();
|
||||
@ -54,7 +57,20 @@ public class ActivitiesWindow extends TWindow {
|
||||
JButton exitButton = new JButton("Exit");
|
||||
exitButton.setBounds(SwingUtils.MARGIN + addYearButton.getWidth() + SwingUtils.MARGIN, addYearButton.getY(), 150, 30);
|
||||
add(exitButton);
|
||||
exitButton.addActionListener(e -> activitiesWindow.setVisible(false));
|
||||
exitButton.addActionListener(e -> {
|
||||
activitiesWindow.setVisible(false);
|
||||
activitiesWindow.dispose();
|
||||
if(ONLY_ACTIVITIES_WINDOW_IS_ALLOWED) {
|
||||
System.exit(0);
|
||||
}
|
||||
});
|
||||
|
||||
addWindowListener(new java.awt.event.WindowAdapter() {
|
||||
@Override
|
||||
public void windowClosing(java.awt.event.WindowEvent e) {
|
||||
exitButton.doClick();
|
||||
}
|
||||
});
|
||||
|
||||
tp.setBounds(addYearButton.getX(), addYearButton.getY() + addYearButton.getHeight() + SwingUtils.MARGIN, 1500, 750);
|
||||
yearsList.forEach(y -> {
|
||||
|
@ -82,6 +82,8 @@ import javax.swing.Timer;
|
||||
import org.nanoboot.utils.timecalc.swing.progress.ProgressDot;
|
||||
import org.nanoboot.utils.timecalc.utils.property.ReadOnlyProperty;
|
||||
|
||||
import static org.nanoboot.utils.timecalc.app.Main.ONLY_ACTIVITIES_WINDOW_IS_ALLOWED;
|
||||
|
||||
/**
|
||||
* @author Robert Vokac
|
||||
* @since 08.02.2024
|
||||
@ -688,7 +690,7 @@ public class MainWindow extends TWindow {
|
||||
exitButton.getY() + exitButton.getHeight() + SwingUtils.MARGIN);
|
||||
|
||||
setLayout(null);
|
||||
setVisible(true);
|
||||
setVisible(ONLY_ACTIVITIES_WINDOW_IS_ALLOWED ? false : true);
|
||||
|
||||
setTitle(getWindowTitle());
|
||||
|
||||
@ -1105,6 +1107,9 @@ public class MainWindow extends TWindow {
|
||||
}
|
||||
|
||||
while (true) {
|
||||
if(ONLY_ACTIVITIES_WINDOW_IS_ALLOWED) {
|
||||
break;
|
||||
}
|
||||
|
||||
if(allowOnlyBasicFeaturesProperty.getValue()) {
|
||||
if(timeCalcConfiguration.batteryDayVisibleProperty.isDisabled()) {
|
||||
@ -1169,7 +1174,7 @@ public class MainWindow extends TWindow {
|
||||
workingDaysWindow.setVisible(false);
|
||||
workingDaysWindow.dispose();
|
||||
}
|
||||
if (activitiesWindow != null) {
|
||||
if (!ONLY_ACTIVITIES_WINDOW_IS_ALLOWED && activitiesWindow != null) {
|
||||
activitiesWindow.setVisible(false);
|
||||
activitiesWindow.dispose();
|
||||
}
|
||||
@ -1181,6 +1186,10 @@ public class MainWindow extends TWindow {
|
||||
//timeCalcConfiguration.saveToTimeCalcProperties();
|
||||
setVisible(false);
|
||||
dispose();
|
||||
|
||||
if(ONLY_ACTIVITIES_WINDOW_IS_ALLOWED) {
|
||||
openActivitiesWindow();
|
||||
}
|
||||
}
|
||||
|
||||
private final Set<Integer> alreadyShownPercents = new HashSet<>();
|
||||
|
Loading…
x
Reference in New Issue
Block a user