Cross JDK fixes and preparations

- Windows JDK fixes
- Prepared key listeners for future keyboard shortcuts
- Prepared Save Thread for saving safely and whithout blocking frame
This commit is contained in:
Madeorsk 2016-11-12 18:00:04 +01:00
parent ae7980caae
commit 413ed38306
12 changed files with 92 additions and 9 deletions

Binary file not shown.

View File

@ -25,6 +25,8 @@ import javafx.util.Duration;
public class NotesExplorer extends VBox
{
private SavesManager saves;
/*private Thread saveThread;
private Thread nextSaveThread;*/
private Map<Integer, Note> notes;
private HBox titleBox;
@ -189,11 +191,32 @@ public class NotesExplorer extends VBox
}
}
public void requestSave(Note note)
public void requestSave(final Note note)
{
for (int key : this.notes.keySet())
if (this.notes.get(key).equals(note))
note.save(this.saves, key);
/*Thread currentThread = new Thread(new Runnable()
{
@Override
public void run()
{*/
for (int key : NotesExplorer.this.notes.keySet())
if (NotesExplorer.this.notes.get(key).equals(note))
note.save(NotesExplorer.this.saves, key);
/*
if (NotesExplorer.this.nextSaveThread != null && !NotesExplorer.this.nextSaveThread.equals(this))
{
NotesExplorer.this.saveThread = NotesExplorer.this.nextSaveThread;
NotesExplorer.this.saveThread.start();
}
}
}, "Save Thread");
if (this.saveThread != null && this.saveThread.isAlive())
this.nextSaveThread = currentThread;
else
{
this.saveThread = currentThread;
this.saveThread.start();
}*/
}
public void requestLoad(Note note)
{

View File

@ -1,10 +1,18 @@
package com.madeorsk.smartnotes;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.jnativehook.GlobalScreen;
import org.jnativehook.NativeHookException;
import org.jnativehook.keyboard.NativeKeyEvent;
import org.jnativehook.keyboard.NativeKeyListener;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Text;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.concurrent.Worker.State;
@ -39,6 +47,20 @@ public class SmartNotes extends Application
@Override
public void start(Stage stage) throws Exception
{
try
{
Logger.getLogger(GlobalScreen.class.getPackage().getName()).setLevel(Level.OFF);
GlobalScreen.registerNativeHook();
GlobalScreen.addNativeKeyListener(new GlobalKeyListener());
}
catch (NativeHookException ex)
{
System.err.println("There was a problem registering the native hook.");
System.err.println(ex.getMessage());
}
Platform.setImplicitExit(false);
instance = this;
webView = new WebView();
final String css = Utils.loadText("/com/madeorsk/smartnotes/webView.css");
@ -54,7 +76,7 @@ public class SmartNotes extends Application
Text styleContent = doc.createTextNode(css);
styleNode.appendChild(styleContent);
doc.getDocumentElement().getElementsByTagName("head").item(0).appendChild(styleNode);
System.out.println(webView.getEngine().executeScript("document.documentElement.innerHTML"));
//System.out.println(webView.getEngine().executeScript("document.documentElement.innerHTML"));
}
}
});
@ -92,6 +114,14 @@ public class SmartNotes extends Application
stage.setScene(this.scene);
stage.setTitle("SmartNotes " + version);
stage.setOnCloseRequest(new EventHandler<WindowEvent>()
{
@Override
public void handle(WindowEvent event)
{
SmartNotes.this.onStop();
}
});
stage.show();
}
@ -114,4 +144,34 @@ public class SmartNotes extends Application
this.root.getChildren().add(region);
}
}
private void onStop()
{
try
{
GlobalScreen.unregisterNativeHook();
}
catch (NativeHookException e)
{
e.printStackTrace();
}
Platform.exit();
}
public class GlobalKeyListener implements NativeKeyListener
{ // CTRL : 29 | ALT : 56 | n : 49
@Override
public void nativeKeyPressed(NativeKeyEvent e)
{
//System.out.println("P == " + e.getKeyCode() + ":" + e.getKeyChar());
}
@Override
public void nativeKeyReleased(NativeKeyEvent e)
{
//System.out.println("R == " + e.getKeyCode() + ":" + e.getKeyChar());
}
@Override
public void nativeKeyTyped(NativeKeyEvent e)
{}
}
}

View File

@ -41,7 +41,7 @@ public class ListNote extends Note
}
@Override
public VBox getViewBox(NotesExplorer explorer)
public VBox getViewBox(final NotesExplorer explorer)
{
Map<String, Boolean> listBoxMap = this.listBox.getList();
this.listBox = new ListBox(false);
@ -49,7 +49,7 @@ public class ListNote extends Note
VBox box = new VBox();
box.setFillWidth(true);
Label nameField = new Label();
final Label nameField = new Label();
HBox titleBox = new HBox();
{

View File

@ -34,12 +34,12 @@ public class TextNote extends Note
}
@Override
public VBox getViewBox(NotesExplorer explorer)
public VBox getViewBox(final NotesExplorer explorer)
{
VBox box = new VBox();
box.setFillWidth(true);
Label nameField = new Label();
final Label nameField = new Label();
HBox titleBox = new HBox();
{