ConfigWindow I

This commit is contained in:
Robert Vokac 2024-02-11 14:46:01 +00:00
parent 58f1238123
commit ad8b49ee2d
No known key found for this signature in database
GPG Key ID: 693D30BEE3329055
5 changed files with 76 additions and 44 deletions

View File

@ -3,6 +3,7 @@ package org.nanoboot.utils.timecalc.app;
import org.nanoboot.utils.timecalc.entity.Visibility;
import org.nanoboot.utils.timecalc.swing.common.AboutButton;
import org.nanoboot.utils.timecalc.swing.common.ComponentRegistry;
import org.nanoboot.utils.timecalc.swing.common.ConfigWindow;
import org.nanoboot.utils.timecalc.swing.common.SwingUtils;
import org.nanoboot.utils.timecalc.swing.common.TimeCalcButton;
import org.nanoboot.utils.timecalc.swing.common.TimeCalcWindow;
@ -46,6 +47,7 @@ import java.util.logging.Logger;
public class TimeCalcManager {
public static final Color BACKGROUND_COLOR = new Color(238, 238, 238);
public static final Color FOREGROUND_COLOR = new Color(210, 210, 210);
private ConfigWindow configWindow = null;
private boolean stopBeforeEnd = false;
private final TimeCalcConfiguration timeCalcConfiguration =
@ -146,6 +148,12 @@ public class TimeCalcManager {
stopBeforeEnd = true;
});
configButton.addActionListener(e -> {
if(configWindow == null) {
this.configWindow = new ConfigWindow(timeCalcConfiguration);
}
configWindow.setVisible(true);
});
Calendar calNow = Calendar.getInstance();
calNow.setTime(new Date());
@ -266,14 +274,17 @@ public class TimeCalcManager {
window.setSize(dayBattery.getX() + dayBattery.getWidth() + 3 * SwingUtils.MARGIN,
exitButton.getY() + 3 * exitButton.getHeight() + SwingUtils.MARGIN);
while (true) {
//System.out.println("timeCalcConfiguration.handsLongProperty=" + timeCalcConfiguration.clockHandLongProperty.isEnabled());
Visibility currentVisibility = Visibility
.valueOf(timeCalcApp.visibilityProperty.getValue());
if(timeCalcConfiguration.visibilityOnlyGreyOrNoneEnabledProperty.isEnabled() && currentVisibility.isColored() ){
timeCalcApp.visibilityProperty.setValue(Visibility.GRAY.name());
}
if (stopBeforeEnd) {
if(configWindow != null) {configWindow.setVisible(false);configWindow.dispose();}
window.setVisible(false);
window.dispose();
break;
}
@ -380,6 +391,7 @@ public class TimeCalcManager {
}
}
if(configWindow != null) {configWindow.setVisible(false);configWindow.dispose();}
window.setVisible(false);
window.dispose();
}

View File

@ -42,28 +42,7 @@ public class TimeCalcProperties {
} catch (IOException e) {
System.err.println(e);
}
if (!isSecondEnabled() && isMillisecondEnabled()) {
System.out.println(
"Sorry, seconds are disabled, millisecond must be disabled too.");
this.properties.setProperty(
TimeCalcProperties.CLOCK_HANDS_MILLISECOND_ENABLED,
"false");
}
if (!isMinuteEnabled() && isSecondEnabled()) {
System.out.println(
"Sorry, minutes are disabled, second must be disabled too.");
this.properties.setProperty(
TimeCalcProperties.CLOCK_HANDS_SECOND_ENABLED,
"false");
}
if (!isMinuteEnabled() && isMillisecondEnabled()) {
System.out.println(
"Sorry, minutes are disabled, millisecond must be disabled too.");
this.properties.setProperty(
TimeCalcProperties.CLOCK_HANDS_MILLISECOND_ENABLED,
"false");
}
}
public static TimeCalcProperties getInstance() {

View File

@ -1,32 +1,71 @@
package org.nanoboot.utils.timecalc.swing.common;
import org.nanoboot.utils.timecalc.utils.common.Utils;
import org.nanoboot.utils.timecalc.app.TimeCalcConfiguration;
import org.nanoboot.utils.timecalc.entity.Visibility;
import javax.swing.JEditorPane;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.io.StringWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.swing.JLabel;
import javax.swing.JTextField;
import java.awt.FlowLayout;
import java.awt.LayoutManager;
/**
* @author Robert Vokac
* @since 16.02.2024
*/
public class ConfigWindow extends JFrame {
public ConfigWindow() {
this.setSize(800, 600);
private final TimeCalcConfiguration timeCalcConfiguration;
private JCheckBox clockHandLongProperty = new JCheckBox("Visibility : Clock : Hands are long", true);
private JCheckBox clockHandMinuteEnabledProperty = new JCheckBox("Visibility : Clock : Minute hand", true);
private JCheckBox clockHandSecondEnabledProperty = new JCheckBox("Visibility : Clock : Second hand", true);
private JCheckBox clockHandMillisecondEnabledProperty = new JCheckBox("Visibility : Clock : Millisecond hand", false);
private JCheckBox batteryWavesEnabledProperty = new JCheckBox("Visibility : Battery : Waves", true);
public final JTextField defaultVisibilityProperty = new JTextField(Visibility.STRONGLY_COLORED.name());
}
private JCheckBox visibilityOnlyGreyOrNoneEnabledProperty = new JCheckBox("Visibility : Only GREY or NONE",
false);
private JCheckBox jokesEnabledProperty = new JCheckBox("Visibility : Jokes", true);
private JCheckBox commandsEnabledProperty = new JCheckBox("Visibility : Commands", true);
private JCheckBox toastsEnabledProperty = new JCheckBox("Visibility : Toasts", true);
private JCheckBox smileysColoredProperty = new JCheckBox("Visibility : Smileys", true);
public ConfigWindow(TimeCalcConfiguration timeCalcConfiguration) {
this.timeCalcConfiguration = timeCalcConfiguration;
setTitle("Configuration");
this.setSize(800, 600);
LayoutManager flowLayout = new FlowLayout(FlowLayout.LEFT);
setLayout(flowLayout);
add(clockHandLongProperty);
add(clockHandMinuteEnabledProperty);
add(clockHandSecondEnabledProperty);
add(clockHandMillisecondEnabledProperty);
add(batteryWavesEnabledProperty);
add(new JLabel("Visibility : Default"));
add(defaultVisibilityProperty);
clockHandLongProperty.addActionListener(e -> {
timeCalcConfiguration.clockHandLongProperty.setValue(clockHandLongProperty.isSelected());
});
clockHandMinuteEnabledProperty.addActionListener(e -> {
timeCalcConfiguration.clockHandMinuteEnabledProperty.setValue(clockHandMinuteEnabledProperty.isSelected());
});
clockHandSecondEnabledProperty.addActionListener(e -> {
timeCalcConfiguration.clockHandSecondEnabledProperty.setValue(clockHandSecondEnabledProperty.isSelected());
});
clockHandMillisecondEnabledProperty.addActionListener(e -> {
timeCalcConfiguration.clockHandMillisecondEnabledProperty.setValue(clockHandMillisecondEnabledProperty.isSelected());
});
batteryWavesEnabledProperty.addActionListener(e -> {
timeCalcConfiguration.batteryWavesEnabledProperty.setValue(batteryWavesEnabledProperty.isSelected());
});
defaultVisibilityProperty.addActionListener(e -> {
timeCalcConfiguration.defaultVisibilityProperty.setValue(defaultVisibilityProperty.getText());
});
}
}

View File

@ -1,5 +1,6 @@
package org.nanoboot.utils.timecalc.swing.progress;
import org.nanoboot.utils.timecalc.app.TimeCalcProperties;
import org.nanoboot.utils.timecalc.entity.Visibility;
import org.nanoboot.utils.timecalc.swing.common.Widget;
import org.nanoboot.utils.timecalc.utils.common.DateFormats;
@ -107,6 +108,7 @@ public class AnalogClock extends Widget {
@Override
public void paintWidget(Graphics g) {
//System.out.println("clock.handsLongProperty=" + handsLongProperty.isEnabled());
Visibility visibility =
Visibility.valueOf(visibilityProperty.getValue());
Graphics2D g2d = (Graphics2D) g;
@ -142,7 +144,7 @@ public class AnalogClock extends Widget {
drawClockFace(g2d, centerX, centerY, side / 2 - 40, visibility);
//
if (millisecondEnabledProperty.isEnabled()) {
if (millisecondEnabledProperty.isEnabled() && secondEnabledProperty.isEnabled() && minuteEnabledProperty.isEnabled()) {
drawHand(g2d, side / 2 - 10, millisecond / 1000.0, 1.0f,
COLOR_FOR_MILLISECOND_HAND_STRONGLY_COLORED, visibility);
@ -155,7 +157,7 @@ public class AnalogClock extends Widget {
}
}
if (secondEnabledProperty.isEnabled()) {
if (secondEnabledProperty.isEnabled() && minuteEnabledProperty.isEnabled()) {
drawHand(g2d, side / 2 - 10, second / 60.0, 0.5f, Color.RED,
visibility);

View File

@ -4,7 +4,7 @@ clock.hands.second.enabled=true
clock.hands.millisecond.enabled=false
battery.waves.enabled=true
default-visibility=STRONGLY_COLORED
visibility.only-grey-or-none.enabled=false
visibility.only-grey-or-none.enabled=true
jokes.enabled=true
commands.enabled=true
toasts.enabled=true