Added hourly forecast

This commit is contained in:
Flare Microsystems
2024-03-08 21:31:49 -08:00
parent 107f83084e
commit 5628a5b76e
11 changed files with 358 additions and 57 deletions

View File

@@ -2,6 +2,8 @@ package com.flaremicro.visualforecast;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowEvent;
@@ -9,6 +11,7 @@ import java.awt.event.WindowListener;
import java.io.File;
import javax.swing.JFrame;
import javax.swing.Timer;
import com.flaremicro.visualforecast.api.ForecastProvider;
import com.flaremicro.visualforecast.api.ForecastProviderManager;
@@ -23,6 +26,8 @@ public class VisualForecastFrame extends JFrame implements WindowListener, KeyLi
private ForecastProviderManager forecastProviderManager;
private Executor executor;
private PropertyManager propertyManager = new PropertyManager();
private Timer timer;
private Timer timer2;
private boolean isFullscreen = false;
/**
@@ -37,7 +42,7 @@ public class VisualForecastFrame extends JFrame implements WindowListener, KeyLi
frame.setVisible(true);
frame.init();
//GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()[1].setFullScreenWindow(frame);
frame.createBufferStrategy(2);
//frame.createBufferStrategy(2);
}
catch (Exception e)
{
@@ -50,6 +55,10 @@ public class VisualForecastFrame extends JFrame implements WindowListener, KeyLi
public void end() {
if (executor != null)
executor.end();
if (timer != null)
{
timer.stop();
}
if (forecastProviderManager != null)
forecastProviderManager.end();
propertyManager.store();
@@ -58,6 +67,14 @@ public class VisualForecastFrame extends JFrame implements WindowListener, KeyLi
public void init() {
executor = new Executor(this.renderPane, 30);
executor.begin();
timer = new Timer(33, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
renderPane.performPaintIfNeeded();
}
});
timer.start();
new Thread() {
public void run() {
@@ -67,6 +84,7 @@ public class VisualForecastFrame extends JFrame implements WindowListener, KeyLi
propertyManager.store();
ForecastProvider provider = forecastProviderManager.loadProvider(new File(forecastProvider));
renderPane.setForecastProvider(provider);
}
}.start();
@@ -79,9 +97,9 @@ public class VisualForecastFrame extends JFrame implements WindowListener, KeyLi
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setBounds(100, 100, 640 * 2, 480 * 2);
renderPane = new RenderPanel(propertyManager);
renderPane.setBorder(null);
renderPane.setLayout(new BorderLayout(0, 0));
setContentPane(renderPane);
//renderPane.setBorder(null);
//renderPane.setLayout(new BorderLayout(0, 0));
add(renderPane);
setUndecorated(true);
addWindowListener(this);
addKeyListener(this);