save windows size only if ther is 500ms no action
* if the window is resized, the new size is only saved if no resize action is done for 5000ms
This commit is contained in:
parent
109bcf6e03
commit
f09258190a
Binary file not shown.
|
@ -20,6 +20,9 @@ import java.net.URL;
|
||||||
import java.nio.channels.Channels;
|
import java.nio.channels.Channels;
|
||||||
import java.nio.channels.ReadableByteChannel;
|
import java.nio.channels.ReadableByteChannel;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
import java.util.Timer;
|
||||||
|
import java.util.TimerTask;
|
||||||
|
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
import javafx.application.Application;
|
import javafx.application.Application;
|
||||||
|
@ -190,6 +193,10 @@ public class Main extends Application {
|
||||||
private void initActions() {
|
private void initActions() {
|
||||||
final ChangeListener<Number> widthListener = new ChangeListener<Number>() {
|
final ChangeListener<Number> widthListener = new ChangeListener<Number>() {
|
||||||
|
|
||||||
|
final Timer timer = new Timer();
|
||||||
|
TimerTask saveTask = null; //task to execute save operation
|
||||||
|
final long delayTime = 500; //delay until the window size is saved, if the window is resized earlier it will be killed, default is 500ms
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void changed(ObservableValue<? extends Number> observable, Number oldValue, final Number newValue) {
|
public void changed(ObservableValue<? extends Number> observable, Number oldValue, final Number newValue) {
|
||||||
int xPosHelperMax = (int) Math.floor((mainWindowController.getMainAnchorPane().getWidth() - 36) / 217);
|
int xPosHelperMax = (int) Math.floor((mainWindowController.getMainAnchorPane().getWidth() - 36) / 217);
|
||||||
|
@ -201,18 +208,39 @@ public class Main extends Application {
|
||||||
mainWindowController.refreshUIData();
|
mainWindowController.refreshUIData();
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO saveSettings only on left mouseBtn release
|
//if saveTask is already running kill it
|
||||||
|
if (saveTask != null) saveTask.cancel();
|
||||||
|
|
||||||
|
saveTask = new TimerTask() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
mainWindowController.saveSettings();
|
mainWindowController.saveSettings();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
timer.schedule(saveTask, delayTime);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
final ChangeListener<Number> heightListener = new ChangeListener<Number>() {
|
final ChangeListener<Number> heightListener = new ChangeListener<Number>() {
|
||||||
|
|
||||||
|
final Timer timer = new Timer();
|
||||||
|
TimerTask saveTask = null; //task to execute save operation
|
||||||
|
final long delayTime = 500; //delay until the window size is saved, if the window is resized earlier it will be killed, default is 500ms
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void changed(ObservableValue<? extends Number> observable, Number oldValue, final Number newValue) {
|
public void changed(ObservableValue<? extends Number> observable, Number oldValue, final Number newValue) {
|
||||||
|
|
||||||
|
if (saveTask != null) saveTask.cancel();
|
||||||
|
|
||||||
|
saveTask = new TimerTask() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
mainWindowController.saveSettings();
|
mainWindowController.saveSettings();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
timer.schedule(saveTask, delayTime);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
final ChangeListener<Boolean> maximizeListener = new ChangeListener<Boolean>() {
|
final ChangeListener<Boolean> maximizeListener = new ChangeListener<Boolean>() {
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue