mirror of
https://github.com/robertvokac/time-calc.git
synced 2025-03-25 07:27:49 +01:00
Added close button for widgets I
This commit is contained in:
parent
a12df0214a
commit
416fdf1ae2
@ -49,6 +49,8 @@ public class TimeCalcConfiguration {
|
|||||||
.getKey());
|
.getKey());
|
||||||
public final BooleanProperty smileysColoredProperty =
|
public final BooleanProperty smileysColoredProperty =
|
||||||
new BooleanProperty(TimeCalcProperty.SMILEYS_COLORED.getKey());
|
new BooleanProperty(TimeCalcProperty.SMILEYS_COLORED.getKey());
|
||||||
|
public final BooleanProperty squareVisibleProperty =
|
||||||
|
new BooleanProperty(TimeCalcProperty.SQUARE_VISIBLE.getKey());
|
||||||
|
|
||||||
private final Map<TimeCalcProperty, Property> mapOfProperties = new HashMap<>();
|
private final Map<TimeCalcProperty, Property> mapOfProperties = new HashMap<>();
|
||||||
private List<Property> allProperties = new ArrayList<>();
|
private List<Property> allProperties = new ArrayList<>();
|
||||||
@ -67,6 +69,7 @@ public class TimeCalcConfiguration {
|
|||||||
commandsVisibleProperty,
|
commandsVisibleProperty,
|
||||||
notificationsVisibleProperty,
|
notificationsVisibleProperty,
|
||||||
smileysColoredProperty,
|
smileysColoredProperty,
|
||||||
|
squareVisibleProperty,
|
||||||
}) {
|
}) {
|
||||||
allProperties.add(p);
|
allProperties.add(p);
|
||||||
}
|
}
|
||||||
@ -81,6 +84,7 @@ public class TimeCalcConfiguration {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void saveToTimeCalcProperties() {
|
public void saveToTimeCalcProperties() {
|
||||||
|
System.out.println("Going to save properties.");
|
||||||
if(timeCalcProperties == null) {
|
if(timeCalcProperties == null) {
|
||||||
throw new TimeCalcException("Cannot save properties, because timeCalcProperties is null.");
|
throw new TimeCalcException("Cannot save properties, because timeCalcProperties is null.");
|
||||||
}
|
}
|
||||||
|
@ -24,10 +24,6 @@ public class TimeCalcProperties {
|
|||||||
private final Map<String, String> defaultProperties = new HashMap<>();
|
private final Map<String, String> defaultProperties = new HashMap<>();
|
||||||
|
|
||||||
private TimeCalcProperties() {
|
private TimeCalcProperties() {
|
||||||
if (!FILE.exists()) {
|
|
||||||
//nothing to do;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
try {
|
try {
|
||||||
this.properties.load(new FileInputStream("timecalc.conf"));
|
this.properties.load(new FileInputStream("timecalc.conf"));
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
@ -36,6 +32,7 @@ public class TimeCalcProperties {
|
|||||||
try {
|
try {
|
||||||
String defaultConfiguration = Utils.readTextFromTextResourceInJar(
|
String defaultConfiguration = Utils.readTextFromTextResourceInJar(
|
||||||
"timecalc-default.conf");
|
"timecalc-default.conf");
|
||||||
|
System.out.println("defaultConfiguration=" + defaultConfiguration);
|
||||||
Arrays.stream(defaultConfiguration.split("\n"))
|
Arrays.stream(defaultConfiguration.split("\n"))
|
||||||
.filter(l -> !l.trim().isEmpty())
|
.filter(l -> !l.trim().isEmpty())
|
||||||
.filter(l -> !l.trim().startsWith("#"))
|
.filter(l -> !l.trim().startsWith("#"))
|
||||||
@ -64,8 +61,8 @@ public class TimeCalcProperties {
|
|||||||
getDefaultStringValue(timeCalcProperty)));
|
getDefaultStringValue(timeCalcProperty)));
|
||||||
}
|
}
|
||||||
private String getDefaultStringValue(TimeCalcProperty timeCalcProperty) {
|
private String getDefaultStringValue(TimeCalcProperty timeCalcProperty) {
|
||||||
if(!defaultProperties.containsKey(timeCalcProperty.getKey())) {
|
if(!defaultProperties.containsKey((String)timeCalcProperty.getKey())) {
|
||||||
throw new TimeCalcException("timecalc-default.conf is missing key: " + timeCalcProperty.getKey());
|
throw new TimeCalcException("timecalc-default.conf is missing key: \"" + timeCalcProperty.getKey() + "\"");
|
||||||
}
|
}
|
||||||
return defaultProperties.get(timeCalcProperty.getKey());
|
return defaultProperties.get(timeCalcProperty.getKey());
|
||||||
}
|
}
|
||||||
@ -113,7 +110,17 @@ public class TimeCalcProperties {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void save(Properties properties) {
|
public void save(Properties properties) {
|
||||||
properties.entrySet().stream().forEach(e-> this.properties.replace(e.getKey(), e.getValue().toString()));
|
properties.entrySet().stream().forEach(e ->
|
||||||
|
{
|
||||||
|
if (this.properties.containsKey(e.getKey())) {
|
||||||
|
this.properties
|
||||||
|
.replace(e.getKey(), e.getValue().toString());
|
||||||
|
} else {
|
||||||
|
this.properties
|
||||||
|
.put(e.getKey(), e.getValue().toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
try {
|
try {
|
||||||
this.properties.store(new FileOutputStream(FILE), null);
|
this.properties.store(new FileOutputStream(FILE), null);
|
||||||
System.out.println("Saving to " + FILE + " was successful");
|
System.out.println("Saving to " + FILE + " was successful");
|
||||||
|
@ -27,7 +27,9 @@ public enum TimeCalcProperty {
|
|||||||
JOKES_VISIBLE("jokes.visible", "Jokes"),
|
JOKES_VISIBLE("jokes.visible", "Jokes"),
|
||||||
COMMANDS_VISIBLE("commands.visible", "Commands"),
|
COMMANDS_VISIBLE("commands.visible", "Commands"),
|
||||||
NOTIFICATIONS_VISIBLE("notifications.visible", "Notifications"),
|
NOTIFICATIONS_VISIBLE("notifications.visible", "Notifications"),
|
||||||
SMILEYS_COLORED("smileys.colored", "Smileys : Colored");
|
SMILEYS_COLORED("smileys.colored", "Smileys : Colored"),
|
||||||
|
SQUARE_VISIBLE("square.visible", "Square");
|
||||||
|
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private final String key;
|
private final String key;
|
||||||
|
@ -56,6 +56,8 @@ public class ConfigWindow extends TWindow {
|
|||||||
new JCheckBox("notifications.visible");
|
new JCheckBox("notifications.visible");
|
||||||
private JCheckBox smileysColoredProperty =
|
private JCheckBox smileysColoredProperty =
|
||||||
new JCheckBox("smileys.colored");
|
new JCheckBox("smileys.colored");
|
||||||
|
private JCheckBox squareVisibleProperty =
|
||||||
|
new JCheckBox("square.visible");
|
||||||
|
|
||||||
public ConfigWindow(TimeCalcConfiguration timeCalcConfiguration) {
|
public ConfigWindow(TimeCalcConfiguration timeCalcConfiguration) {
|
||||||
this.timeCalcConfiguration = timeCalcConfiguration;
|
this.timeCalcConfiguration = timeCalcConfiguration;
|
||||||
@ -73,7 +75,8 @@ public class ConfigWindow extends TWindow {
|
|||||||
jokesVisibleProperty,
|
jokesVisibleProperty,
|
||||||
commandsVisibleProperty,
|
commandsVisibleProperty,
|
||||||
notificationsVisibleProperty,
|
notificationsVisibleProperty,
|
||||||
smileysColoredProperty));
|
smileysColoredProperty,
|
||||||
|
squareVisibleProperty));
|
||||||
//
|
//
|
||||||
propertiesList.stream().forEach(p -> {
|
propertiesList.stream().forEach(p -> {
|
||||||
if(p == visibilityDefaultProperty) {
|
if(p == visibilityDefaultProperty) {
|
||||||
|
@ -133,6 +133,7 @@ public class MainWindow extends TWindow {
|
|||||||
.setBounds(analogClock.getX() + analogClock.getWidth() + SwingUtils.MARGIN, analogClock.getY(),
|
.setBounds(analogClock.getX() + analogClock.getWidth() + SwingUtils.MARGIN, analogClock.getY(),
|
||||||
200);
|
200);
|
||||||
add(progressSquare);
|
add(progressSquare);
|
||||||
|
progressSquare.visibleProperty.bindTo(timeCalcConfiguration.squareVisibleProperty);
|
||||||
|
|
||||||
ProgressCircle progressCircle = new ProgressCircle();
|
ProgressCircle progressCircle = new ProgressCircle();
|
||||||
progressCircle
|
progressCircle
|
||||||
@ -340,7 +341,7 @@ public class MainWindow extends TWindow {
|
|||||||
if(activitiesWindow != null) {activitiesWindow.setVisible(false);activitiesWindow.dispose();}
|
if(activitiesWindow != null) {activitiesWindow.setVisible(false);activitiesWindow.dispose();}
|
||||||
if(helpWindow != null) {helpWindow.setVisible(false);helpWindow.dispose();}
|
if(helpWindow != null) {helpWindow.setVisible(false);helpWindow.dispose();}
|
||||||
|
|
||||||
//timeCalcConfiguration.saveToTimeCalcProperties();
|
timeCalcConfiguration.saveToTimeCalcProperties();
|
||||||
setVisible(false);
|
setVisible(false);
|
||||||
dispose();
|
dispose();
|
||||||
|
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package org.nanoboot.utils.timecalc.swing.common;
|
package org.nanoboot.utils.timecalc.swing.common;
|
||||||
|
|
||||||
|
import java.awt.Color;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert
|
* @author Robert
|
||||||
* @since 26.02.2024
|
* @since 26.02.2024
|
||||||
@ -9,4 +11,6 @@ public class SwingUtils {
|
|||||||
//Not meant to be instantiated.
|
//Not meant to be instantiated.
|
||||||
}
|
}
|
||||||
public static final int MARGIN = 10;
|
public static final int MARGIN = 10;
|
||||||
|
public static final Color
|
||||||
|
CLOSE_BUTTON_BACKGROUND_COLOR = new Color(127,127,127);
|
||||||
}
|
}
|
||||||
|
@ -12,10 +12,12 @@ import javax.swing.ImageIcon;
|
|||||||
import javax.swing.JLabel;
|
import javax.swing.JLabel;
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
import javax.swing.Timer;
|
import javax.swing.Timer;
|
||||||
|
import java.awt.BasicStroke;
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.Font;
|
import java.awt.Font;
|
||||||
import java.awt.Graphics;
|
import java.awt.Graphics;
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
|
import java.awt.Image;
|
||||||
import java.awt.event.MouseEvent;
|
import java.awt.event.MouseEvent;
|
||||||
import java.awt.event.MouseListener;
|
import java.awt.event.MouseListener;
|
||||||
|
|
||||||
@ -30,6 +32,7 @@ public class Widget extends JPanel implements
|
|||||||
protected static final Color BACKGROUND_COLOR = new Color(238, 238, 238);
|
protected static final Color BACKGROUND_COLOR = new Color(238, 238, 238);
|
||||||
protected static final Font BIG_FONT = new Font("sans", Font.BOLD, 24);
|
protected static final Font BIG_FONT = new Font("sans", Font.BOLD, 24);
|
||||||
protected static final Font MEDIUM_FONT = new Font("sans", Font.BOLD, 16);
|
protected static final Font MEDIUM_FONT = new Font("sans", Font.BOLD, 16);
|
||||||
|
|
||||||
public StringProperty visibilityProperty =
|
public StringProperty visibilityProperty =
|
||||||
new StringProperty("widget.visibilityProperty",
|
new StringProperty("widget.visibilityProperty",
|
||||||
Visibility.STRONGLY_COLORED.name());
|
Visibility.STRONGLY_COLORED.name());
|
||||||
@ -37,6 +40,8 @@ public class Widget extends JPanel implements
|
|||||||
new BooleanProperty("smileysColoredProperty", true);
|
new BooleanProperty("smileysColoredProperty", true);
|
||||||
public final BooleanProperty visibilitySupportedColoredProperty =
|
public final BooleanProperty visibilitySupportedColoredProperty =
|
||||||
new BooleanProperty("visibilitySupportedColoredProperty", true);
|
new BooleanProperty("visibilitySupportedColoredProperty", true);
|
||||||
|
public final BooleanProperty visibleProperty =
|
||||||
|
new BooleanProperty("visibleProperty", true);
|
||||||
|
|
||||||
protected int side = 0;
|
protected int side = 0;
|
||||||
protected double donePercent = 0;
|
protected double donePercent = 0;
|
||||||
@ -49,6 +54,13 @@ public class Widget extends JPanel implements
|
|||||||
addMouseListener(new MouseListener() {
|
addMouseListener(new MouseListener() {
|
||||||
@Override
|
@Override
|
||||||
public void mouseClicked(MouseEvent e) {
|
public void mouseClicked(MouseEvent e) {
|
||||||
|
int x=e.getX();
|
||||||
|
int y=e.getY();
|
||||||
|
if(x >= getWidth() - 15 && y <= 15) {
|
||||||
|
visibleProperty.setValue(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if(visibilitySupportedColoredProperty.isDisabled()) {
|
if(visibilitySupportedColoredProperty.isDisabled()) {
|
||||||
//nothing to do
|
//nothing to do
|
||||||
return;
|
return;
|
||||||
@ -105,13 +117,23 @@ public class Widget extends JPanel implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public final void paintComponent(Graphics g) {
|
public final void paintComponent(Graphics brush) {
|
||||||
super.paintComponent(g);
|
super.paintComponent(brush);
|
||||||
|
setVisible(visibleProperty.isEnabled());
|
||||||
|
|
||||||
Visibility visibility =
|
Visibility visibility =
|
||||||
Visibility.valueOf(visibilityProperty.getValue());
|
Visibility.valueOf(visibilityProperty.getValue());
|
||||||
this.setVisible(visibility != Visibility.NONE);
|
this.setVisible(visibility != Visibility.NONE);
|
||||||
paintWidget(g);
|
paintWidget(brush);
|
||||||
|
if (mouseOver) {
|
||||||
|
brush.setColor(SwingUtils.CLOSE_BUTTON_BACKGROUND_COLOR);
|
||||||
|
brush.fillOval(getWidth() - 15 - 1 ,0 + 1,15,15);
|
||||||
|
brush.setColor(Color.LIGHT_GRAY);
|
||||||
|
Graphics2D brush2d = (Graphics2D) brush;
|
||||||
|
brush2d.setStroke(new BasicStroke(2f));
|
||||||
|
brush.drawLine(getWidth() - 15 - 1 + 2 ,0 + 1 + 2, getWidth() - 0 * 15 - 1 - 2 ,0 + 15 + 1 - 2);
|
||||||
|
brush.drawLine(getWidth() - 15 - 1 + 2, 0 + 15 + 1 - 2, getWidth() - 0 * 15 - 1 - 2 ,0 + 1 + 2);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,6 +12,7 @@ jokes.visible=true
|
|||||||
commands.visible=true
|
commands.visible=true
|
||||||
notifications.visible=true
|
notifications.visible=true
|
||||||
smileys.colored=true
|
smileys.colored=true
|
||||||
|
square.visible=true
|
||||||
|
|
||||||
#todo
|
#todo
|
||||||
logs.detailed=false
|
logs.detailed=false
|
||||||
@ -23,7 +24,6 @@ battery.charging-unicode-character.visible=true
|
|||||||
battery.percent-precision.count-of-decimal-points=5
|
battery.percent-precision.count-of-decimal-points=5
|
||||||
battery.label.finished-from-total.visible=true
|
battery.label.finished-from-total.visible=true
|
||||||
widgets.clock.visible=true
|
widgets.clock.visible=true
|
||||||
square.visible=true
|
|
||||||
circle.visible=true
|
circle.visible=true
|
||||||
walking-human.visible=true
|
walking-human.visible=true
|
||||||
battery.visible=true
|
battery.visible=true
|
||||||
|
@ -1,29 +1,12 @@
|
|||||||
#Thu Feb 29 07:17:51 CET 2024
|
#Thu Feb 29 09:38:02 CET 2024
|
||||||
battery.charging-unicode-character.visible=true
|
|
||||||
battery.week.visible=true
|
|
||||||
smileys.colored=true
|
|
||||||
circle.smileys.visible=true
|
|
||||||
notifications.visible=false
|
|
||||||
clock.hands.second.visible=true
|
|
||||||
battery.hour.visible=true
|
|
||||||
widgets.clock.visible=true
|
|
||||||
battery.visible=true
|
|
||||||
clock.hands.millisecond.visible=false
|
|
||||||
commands.visible=true
|
commands.visible=true
|
||||||
battery.percent-precision.count-of-decimal-points=5
|
smileys.colored=true
|
||||||
|
visibility.default=STRONGLY_COLORED
|
||||||
|
clock.hands.millisecond.visible=false
|
||||||
visibility.supported.colored=true
|
visibility.supported.colored=true
|
||||||
jokes.visible=true
|
jokes.visible=true
|
||||||
visibility.default=STRONGLY_COLORED
|
clock.hands.second.visible=true
|
||||||
square.smileys.visible=true
|
notifications.visible=true
|
||||||
battery.month.visible=true
|
|
||||||
battery.waves.visible=true
|
battery.waves.visible=true
|
||||||
battery.day.visible=true
|
|
||||||
battery.smileys.visible=true
|
|
||||||
clock.hands.minute.visible=true
|
clock.hands.minute.visible=true
|
||||||
circle.visible=true
|
|
||||||
logs.detailed=false
|
|
||||||
clock.hands.long.visible=true
|
clock.hands.long.visible=true
|
||||||
square.visible=true
|
|
||||||
walking-human.visible=true
|
|
||||||
battery.label.finished-from-total.visible=true
|
|
||||||
smileys.visible=true
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user