Incubator-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
June 2013
- 1 participants
- 12 discussions
r38 - in jtimerhtml5/src/main: java/org/chorem/jtimer resources/html/js
by qmoriceau@users.chorem.org 04 Jun '13
by qmoriceau@users.chorem.org 04 Jun '13
04 Jun '13
Author: qmoriceau
Date: 2013-06-04 16:17:10 +0200 (Tue, 04 Jun 2013)
New Revision: 38
Url: http://chorem.org/projects/incubator/repository/revisions/38
Log:
Ajout de l'ouverture automatique du navigateur par d?\195?\169fault et r?\195?\169organisation des classes
Added:
jtimerhtml5/src/main/java/org/chorem/jtimer/WebViewJTimer.java
Modified:
jtimerhtml5/src/main/java/org/chorem/jtimer/JTimer.java
jtimerhtml5/src/main/resources/html/js/actionsMenus.js
Modified: jtimerhtml5/src/main/java/org/chorem/jtimer/JTimer.java
===================================================================
--- jtimerhtml5/src/main/java/org/chorem/jtimer/JTimer.java 2013-06-04 08:43:19 UTC (rev 37)
+++ jtimerhtml5/src/main/java/org/chorem/jtimer/JTimer.java 2013-06-04 14:17:10 UTC (rev 38)
@@ -1,356 +1,17 @@
package org.chorem.jtimer;
-import org.nuiton.util.ObjectUtil;
+import java.awt.Desktop;
+import java.net.URI;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.net.URL;
-import java.net.URLConnection;
-import java.net.URLStreamHandler;
-import java.net.URLStreamHandlerFactory;
-import java.util.List;
-
-import javafx.application.Application;
-import javafx.beans.property.BooleanProperty;
-import javafx.beans.property.SimpleBooleanProperty;
-import javafx.beans.property.SimpleStringProperty;
-import javafx.beans.property.StringProperty;
-import javafx.event.ActionEvent;
-import javafx.event.EventHandler;
-import javafx.scene.Group;
-import javafx.scene.Node;
-import javafx.scene.Scene;
-import javafx.scene.control.Button;
-import javafx.scene.control.Label;
-import javafx.scene.control.TextField;
-import javafx.scene.effect.BoxBlur;
-import javafx.scene.input.MouseEvent;
-import javafx.scene.layout.HBox;
-import javafx.scene.layout.HBoxBuilder;
-import javafx.scene.layout.VBox;
-import javafx.scene.paint.Color;
-import javafx.scene.web.PopupFeatures;
-import javafx.scene.web.PromptData;
-import javafx.scene.web.WebEngine;
-import javafx.scene.web.WebEvent;
-import javafx.scene.web.WebView;
-import javafx.stage.Modality;
-import javafx.stage.Stage;
-import javafx.stage.StageStyle;
-import javafx.util.Callback;
-
-import org.chorem.jtimer.storage.Storage;
-import org.chorem.jtimer.TaskExclusionStrategy;
-import org.chorem.jtimer.entities.TimerTask;
import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.server.handler.DefaultHandler;
import org.eclipse.jetty.server.handler.HandlerList;
import org.eclipse.jetty.server.handler.ResourceHandler;
-
-import com.google.gson.ExclusionStrategy;
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-public class JTimer extends Application {
+public class JTimer extends WebViewJTimer {
- @Override
- public void start(final Stage stage) {
- stage.setTitle("jTimer");
-
- Scene scene = new Scene(new Group(), 460, 510);
-
- VBox root = new VBox();
-
- final WebView browser = new WebView();
- final WebEngine webEngine = browser.getEngine();
-
- // les différentes initialisation nécéssaire aux boites de dialogue
- final VBox confirmationResults = new VBox();
- confirmationResults.getStyleClass().add("confirmation-results");
- confirmationResults.setMinWidth(100);
- HBox layout = new HBox();
- layout.getChildren().addAll(confirmationResults, browser);
- stage.setScene(new Scene(layout));
- stage.show();
- stage.getScene().getStylesheets().add(getClass().getResource("/cssJavaFX/alert_box.css").toExternalForm());
-
- // permet d'ouvrir des popup.
- webEngine.setCreatePopupHandler(new Callback<PopupFeatures, WebEngine>() {
- public WebEngine call(PopupFeatures popupFeatures) {
- final WebView popupWebView = new WebView();
- final Scene popupScene = new Scene(popupWebView);
- final Stage popupStage = new Stage();
- popupStage.setScene(popupScene);
- popupStage.setResizable(popupFeatures.isResizable());
- popupStage.show();
-
- WebEngine popupEngine = popupWebView.getEngine();
-
- popupEngine.setOnVisibilityChanged( new EventHandler<WebEvent<Boolean>>() {
- public void handle(WebEvent<Boolean> we) {
- if (!we.getData()){
- popupStage.close();
- }
- }
- });
-
- return popupEngine;
- }
- });
-
- // permet de fermer la fenêtre
- webEngine.setOnVisibilityChanged( new EventHandler<WebEvent<Boolean>>() {
- public void handle(WebEvent<Boolean> we) {
- if (!we.getData()){
- stage.close();
- }
- }
- });
-
- webEngine.setOnAlert(new EventHandler<WebEvent<String>>(){
- @Override
- public void handle(WebEvent<String> we) {
- alert(stage, we.getData());
- }
- });
-
- webEngine.setConfirmHandler(new Callback<String, Boolean>(){
- public Boolean call(String str){
- Boolean confirmed = confirm(stage, str);
- confirmationResults.getChildren().add(new Label("Confirmed? " + confirmed));
- return confirmed;
- }
- });
-
- webEngine.setPromptHandler(new Callback<PromptData, String>(){
- public String call(PromptData pdata){
- String result = prompt(stage, pdata.getMessage(), pdata.getDefaultValue());
- return result;
- }
- });
-
- URL maPage = getClass().getResource("http://localhost:8080");
-
- root.getChildren().addAll(browser);
- scene.setRoot(root);
-
- stage.setScene(scene);
- stage.show();
- }
-
- // JavaJX n'a pas d'outils prédéfini pour les boites de dialogue, on les construits donc "manuelement"
- // On retrouve donc a la suite des boîtes de dialogue personalisable.
-
- // boite de dialogue de question ouverte
- private String prompt(final Stage parent, String msg, String dft) {
-
- final StringProperty reponse = new SimpleStringProperty();
- final Stage dialog = new Stage(StageStyle.TRANSPARENT);
- dialog.initOwner(parent);
- dialog.initModality(Modality.WINDOW_MODAL);
-
- Label label = new Label(msg);
- final TextField textField = new TextField(dft);
- Button buttonOk = new Button("OK");
- Button buttonCancel = new Button("Annuler");
-
- Scene scn = new Scene(HBoxBuilder.create().styleClass("modal-dialog").children(label,textField,buttonOk,buttonCancel).build(), Color.TRANSPARENT);
- dialog.setScene(scn);
-
- buttonOk.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent arg0) {
- reponse.setValue(textField.getCharacters().toString());
- parent.getScene().getRoot().setEffect(null);
- dialog.close();
- }
- });
-
- buttonCancel.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent arg0) {
- reponse.setValue(null);
- parent.getScene().getRoot().setEffect(null);
- dialog.close();
- }
- });
-
- dragged(dialog);
-
- // style and show the dialog.
- dialog.getScene().getStylesheets().add(getClass().getResource("/cssJavaFX/prompt_box.css").toExternalForm());
- parent.getScene().getRoot().setEffect(new BoxBlur());
- dialog.showAndWait();
-
- return reponse.get();
- }
-
- // boite de dialogue d'alerte
- private void alert(final Stage parent, String msg) {
- // initialize the alert dialog
- final Stage dialog = new Stage(StageStyle.TRANSPARENT);
- dialog.initOwner(parent);
- dialog.initModality(Modality.WINDOW_MODAL);
-
- Label label = new Label(msg);
- Button buttonOk = new Button("OK");
-
- Scene scn = new Scene(HBoxBuilder.create().styleClass("modal-dialog").children(label,buttonOk).build(), Color.TRANSPARENT);
- dialog.setScene(scn);
-
- buttonOk.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent arg0) {
- parent.getScene().getRoot().setEffect(null);
- dialog.close();
- }
- });
-
- dragged(dialog);
-
- // style and show the dialog.
- dialog.getScene().getStylesheets().add(getClass().getResource("/cssJavaFX/alert_box.css").toExternalForm());
- parent.getScene().getRoot().setEffect(new BoxBlur());
- dialog.showAndWait();
- }
-
- // boite de dialogue de confirmation
- private Boolean confirm(final Stage parent, String msg) {
- final BooleanProperty confirmationResult = new SimpleBooleanProperty();
- // initialize the confirmation dialog
- final Stage dialog = new Stage(StageStyle.TRANSPARENT);
- dialog.initOwner(parent);
- dialog.initModality(Modality.WINDOW_MODAL);
-
- Label label = new Label(msg);
- Button buttonOk = new Button("OK");
- Button buttonCancel = new Button("Annuler");
-
- Scene scn = new Scene(HBoxBuilder.create().styleClass("modal-dialog").children(label,buttonOk,buttonCancel).build(), Color.TRANSPARENT);
- dialog.setScene(scn);
-
- buttonOk.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent arg0) {
- confirmationResult.set(true);
- parent.getScene().getRoot().setEffect(null);
- dialog.close();
- }
- });
-
- buttonCancel.setOnAction(new EventHandler<ActionEvent>() {
- @Override
- public void handle(ActionEvent arg0) {
- confirmationResult.set(false);
- parent.getScene().getRoot().setEffect(null);
- dialog.close();
- }
- });
-
- dragged(dialog);
-
-
- // style and show the dialog.
- dialog.getScene().getStylesheets().add(getClass().getResource("/cssJavaFX/confirm_box.css").toExternalForm());
- parent.getScene().getRoot().setEffect(new BoxBlur());
- dialog.showAndWait();
-
- return confirmationResult.get();
- }
-
- // permet de déplacer le Stage entrer en paramètre avec la sourie.
- private void dragged(final Stage dialog){
- final Node root = dialog.getScene().getRoot();
- final Delta dragDelta = new Delta();
- root.setOnMousePressed(new EventHandler<MouseEvent>() {
- @Override public void handle(MouseEvent mouseEvent) {
- // record a delta distance for the drag and drop operation.
- dragDelta.x = dialog.getX() - mouseEvent.getScreenX();
- dragDelta.y = dialog.getY() - mouseEvent.getScreenY();
- }
- });
- root.setOnMouseDragged(new EventHandler<MouseEvent>() {
- @Override public void handle(MouseEvent mouseEvent) {
- dialog.setX(mouseEvent.getScreenX() + dragDelta.x);
- dialog.setY(mouseEvent.getScreenY() + dragDelta.y);
- }
- });
- }
-
- // records relative x and y co-ordinates.
- class Delta { double x, y; }
-
public static void main(String[] args) throws Exception {
- /*final TaskService ts = new TaskService();
- // outil de comunication javascript/java par URL
- URL.setURLStreamHandlerFactory(new URLStreamHandlerFactory() {
- @Override
- public URLStreamHandler createURLStreamHandler(String protocol) {
-
- if ("http".equals(protocol)) {
- // TODO try to fix restricted api
- return new sun.net.www.protocol.http.Handler() {
-
- public URLConnection openConnection(URL url) throws IOException {
- final String[] path = url.getPath().split("/");
- if (path[1].equals("task")) {
- return new URLConnection(url) {
- @Override
- public void connect() throws IOException {
- // heu
- }
- public InputStream getInputStream() throws IOException {// /!\ passe deux fois ici dans l'execution de l'évenement.
- InputStream is = null;
- String content = new String();
- Object result;
- ExclusionStrategy excludeTasks = new TaskExclusionStrategy(TimerTask.class);
- Gson gson = new GsonBuilder().setExclusionStrategies(excludeTasks).create();
-
- String[] param = new String[path.length-3];
- for(int i=0;i<path.length-3;i++){
- param[i]=path[i+3];
- }
- List<Method> m = ObjectUtil.getMethod(TaskService.class,path[2],false);
- try {
- result = ObjectUtil.call(ts, m.get(0), param);
- content = gson.toJson(result);
- System.out.println(content);
- } catch (IllegalAccessException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IllegalArgumentException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (InvocationTargetException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (InstantiationException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- if (content==null){
- content="";
- }
- is = new ByteArrayInputStream(content.getBytes());
- return is;
- }
- };
- }
- else {
- return super.openConnection(url);
- }
- }
- };
- }
- return null; // back to default handler
- }
- }); */
-
Server server = new Server(8080);
ResourceHandler resource_handler = new ResourceHandler();
@@ -364,7 +25,9 @@
server.setHandler(handlers);
server.start();
+ //launch(args); // permet de lancé la webview, qui ne fonctionne pas d'aileur...
+ URI uri = new URI("http://localhost:8080");
+ Desktop.getDesktop().browse(uri);
server.join();
- launch(args);
}
}
Added: jtimerhtml5/src/main/java/org/chorem/jtimer/WebViewJTimer.java
===================================================================
--- jtimerhtml5/src/main/java/org/chorem/jtimer/WebViewJTimer.java (rev 0)
+++ jtimerhtml5/src/main/java/org/chorem/jtimer/WebViewJTimer.java 2013-06-04 14:17:10 UTC (rev 38)
@@ -0,0 +1,264 @@
+package org.chorem.jtimer;
+
+import java.net.URL;
+
+import javafx.application.Application;
+import javafx.beans.property.BooleanProperty;
+import javafx.beans.property.SimpleBooleanProperty;
+import javafx.beans.property.SimpleStringProperty;
+import javafx.beans.property.StringProperty;
+import javafx.event.ActionEvent;
+import javafx.event.EventHandler;
+import javafx.scene.Group;
+import javafx.scene.Node;
+import javafx.scene.Scene;
+import javafx.scene.control.Button;
+import javafx.scene.control.Label;
+import javafx.scene.control.TextField;
+import javafx.scene.effect.BoxBlur;
+import javafx.scene.input.MouseEvent;
+import javafx.scene.layout.HBox;
+import javafx.scene.layout.HBoxBuilder;
+import javafx.scene.layout.VBox;
+import javafx.scene.paint.Color;
+import javafx.scene.web.PopupFeatures;
+import javafx.scene.web.PromptData;
+import javafx.scene.web.WebEngine;
+import javafx.scene.web.WebEvent;
+import javafx.scene.web.WebView;
+import javafx.stage.Modality;
+import javafx.stage.Stage;
+import javafx.stage.StageStyle;
+import javafx.util.Callback;
+
+public class WebViewJTimer extends Application {
+
+ @Override
+ public void start(final Stage stage) {
+
+ stage.setTitle("jTimer");
+
+ Scene scene = new Scene(new Group(), 460, 510);
+
+ VBox root = new VBox();
+
+ final WebView browser = new WebView();
+ final WebEngine webEngine = browser.getEngine();
+
+ // les différentes initialisation nécéssaire aux boites de dialogue
+ final VBox confirmationResults = new VBox();
+ confirmationResults.getStyleClass().add("confirmation-results");
+ confirmationResults.setMinWidth(100);
+ HBox layout = new HBox();
+ layout.getChildren().addAll(confirmationResults, browser);
+ stage.setScene(new Scene(layout));
+ stage.show();
+ stage.getScene().getStylesheets().add(getClass().getResource("/cssJavaFX/alert_box.css").toExternalForm());
+
+ // permet d'ouvrir des popup.
+ webEngine.setCreatePopupHandler(new Callback<PopupFeatures, WebEngine>() {
+ public WebEngine call(PopupFeatures popupFeatures) {
+ final WebView popupWebView = new WebView();
+ final Scene popupScene = new Scene(popupWebView);
+ final Stage popupStage = new Stage();
+ popupStage.setScene(popupScene);
+ popupStage.setResizable(popupFeatures.isResizable());
+ popupStage.show();
+
+ WebEngine popupEngine = popupWebView.getEngine();
+
+ popupEngine.setOnVisibilityChanged( new EventHandler<WebEvent<Boolean>>() {
+ public void handle(WebEvent<Boolean> we) {
+ if (!we.getData()){
+ popupStage.close();
+ }
+ }
+ });
+
+ return popupEngine;
+ }
+ });
+
+ // permet de fermer la fenêtre
+ webEngine.setOnVisibilityChanged( new EventHandler<WebEvent<Boolean>>() {
+ public void handle(WebEvent<Boolean> we) {
+ if (!we.getData()){
+ stage.close();
+ }
+ }
+ });
+
+ webEngine.setOnAlert(new EventHandler<WebEvent<String>>(){
+ @Override
+ public void handle(WebEvent<String> we) {
+ alert(stage, we.getData());
+ }
+ });
+
+ webEngine.setConfirmHandler(new Callback<String, Boolean>(){
+ public Boolean call(String str){
+ Boolean confirmed = confirm(stage, str);
+ confirmationResults.getChildren().add(new Label("Confirmed? " + confirmed));
+ return confirmed;
+ }
+ });
+
+ webEngine.setPromptHandler(new Callback<PromptData, String>(){
+ public String call(PromptData pdata){
+ String result = prompt(stage, pdata.getMessage(), pdata.getDefaultValue());
+ return result;
+ }
+ });
+
+ URL maPage = getClass().getResource("http://localhost:8080");
+
+ root.getChildren().addAll(browser);
+ scene.setRoot(root);
+
+ stage.setScene(scene);
+ stage.show();
+ }
+
+ // JavaJX n'a pas d'outils prédéfini pour les boites de dialogue, on les construits donc "manuelement"
+ // On retrouve donc a la suite des boîtes de dialogue personalisable.
+
+ // boite de dialogue de question ouverte
+ private String prompt(final Stage parent, String msg, String dft) {
+
+ final StringProperty reponse = new SimpleStringProperty();
+ final Stage dialog = new Stage(StageStyle.TRANSPARENT);
+ dialog.initOwner(parent);
+ dialog.initModality(Modality.WINDOW_MODAL);
+
+ Label label = new Label(msg);
+ final TextField textField = new TextField(dft);
+ Button buttonOk = new Button("OK");
+ Button buttonCancel = new Button("Annuler");
+
+ Scene scn = new Scene(HBoxBuilder.create().styleClass("modal-dialog").children(label,textField,buttonOk,buttonCancel).build(), Color.TRANSPARENT);
+ dialog.setScene(scn);
+
+ buttonOk.setOnAction(new EventHandler<ActionEvent>() {
+ @Override
+ public void handle(ActionEvent arg0) {
+ reponse.setValue(textField.getCharacters().toString());
+ parent.getScene().getRoot().setEffect(null);
+ dialog.close();
+ }
+ });
+
+ buttonCancel.setOnAction(new EventHandler<ActionEvent>() {
+ @Override
+ public void handle(ActionEvent arg0) {
+ reponse.setValue(null);
+ parent.getScene().getRoot().setEffect(null);
+ dialog.close();
+ }
+ });
+
+ dragged(dialog);
+
+ // style and show the dialog.
+ dialog.getScene().getStylesheets().add(getClass().getResource("/cssJavaFX/prompt_box.css").toExternalForm());
+ parent.getScene().getRoot().setEffect(new BoxBlur());
+ dialog.showAndWait();
+
+ return reponse.get();
+ }
+
+ // boite de dialogue d'alerte
+ private void alert(final Stage parent, String msg) {
+ // initialize the alert dialog
+ final Stage dialog = new Stage(StageStyle.TRANSPARENT);
+ dialog.initOwner(parent);
+ dialog.initModality(Modality.WINDOW_MODAL);
+
+ Label label = new Label(msg);
+ Button buttonOk = new Button("OK");
+
+ Scene scn = new Scene(HBoxBuilder.create().styleClass("modal-dialog").children(label,buttonOk).build(), Color.TRANSPARENT);
+ dialog.setScene(scn);
+
+ buttonOk.setOnAction(new EventHandler<ActionEvent>() {
+ @Override
+ public void handle(ActionEvent arg0) {
+ parent.getScene().getRoot().setEffect(null);
+ dialog.close();
+ }
+ });
+
+ dragged(dialog);
+
+ // style and show the dialog.
+ dialog.getScene().getStylesheets().add(getClass().getResource("/cssJavaFX/alert_box.css").toExternalForm());
+ parent.getScene().getRoot().setEffect(new BoxBlur());
+ dialog.showAndWait();
+ }
+
+ // boite de dialogue de confirmation
+ private Boolean confirm(final Stage parent, String msg) {
+ final BooleanProperty confirmationResult = new SimpleBooleanProperty();
+ // initialize the confirmation dialog
+ final Stage dialog = new Stage(StageStyle.TRANSPARENT);
+ dialog.initOwner(parent);
+ dialog.initModality(Modality.WINDOW_MODAL);
+
+ Label label = new Label(msg);
+ Button buttonOk = new Button("OK");
+ Button buttonCancel = new Button("Annuler");
+
+ Scene scn = new Scene(HBoxBuilder.create().styleClass("modal-dialog").children(label,buttonOk,buttonCancel).build(), Color.TRANSPARENT);
+ dialog.setScene(scn);
+
+ buttonOk.setOnAction(new EventHandler<ActionEvent>() {
+ @Override
+ public void handle(ActionEvent arg0) {
+ confirmationResult.set(true);
+ parent.getScene().getRoot().setEffect(null);
+ dialog.close();
+ }
+ });
+
+ buttonCancel.setOnAction(new EventHandler<ActionEvent>() {
+ @Override
+ public void handle(ActionEvent arg0) {
+ confirmationResult.set(false);
+ parent.getScene().getRoot().setEffect(null);
+ dialog.close();
+ }
+ });
+
+ dragged(dialog);
+
+
+ // style and show the dialog.
+ dialog.getScene().getStylesheets().add(getClass().getResource("/cssJavaFX/confirm_box.css").toExternalForm());
+ parent.getScene().getRoot().setEffect(new BoxBlur());
+ dialog.showAndWait();
+
+ return confirmationResult.get();
+ }
+
+ // permet de déplacer le Stage entrer en paramètre avec la sourie.
+ private void dragged(final Stage dialog){
+ final Node root = dialog.getScene().getRoot();
+ final Delta dragDelta = new Delta();
+ root.setOnMousePressed(new EventHandler<MouseEvent>() {
+ @Override public void handle(MouseEvent mouseEvent) {
+ // record a delta distance for the drag and drop operation.
+ dragDelta.x = dialog.getX() - mouseEvent.getScreenX();
+ dragDelta.y = dialog.getY() - mouseEvent.getScreenY();
+ }
+ });
+ root.setOnMouseDragged(new EventHandler<MouseEvent>() {
+ @Override public void handle(MouseEvent mouseEvent) {
+ dialog.setX(mouseEvent.getScreenX() + dragDelta.x);
+ dialog.setY(mouseEvent.getScreenY() + dragDelta.y);
+ }
+ });
+ }
+
+ // records relative x and y co-ordinates.
+ class Delta { double x, y; }
+
+}
Modified: jtimerhtml5/src/main/resources/html/js/actionsMenus.js
===================================================================
--- jtimerhtml5/src/main/resources/html/js/actionsMenus.js 2013-06-04 08:43:19 UTC (rev 37)
+++ jtimerhtml5/src/main/resources/html/js/actionsMenus.js 2013-06-04 14:17:10 UTC (rev 38)
@@ -102,7 +102,7 @@
alert("Erreur : Le nom est vide !");
}
else {
- $.get('http://services/task/addProject/'+nameNewProject,function(data){
+ $.get('http://localhost:8080/task/addProject/'+nameNewProject,function(data){
alert(data);
});
}
@@ -115,7 +115,7 @@
alert("Erreur : Le nom est vide !");
}
else {
- $.get('http://services/task/modifyProject/'+elemSelec.substring(1,elemSelec.length)+'/'+newnameProject,function(data){
+ $.get('http://localhost:8080/task/modifyProject/'+elemSelec.substring(1,elemSelec.length)+'/'+newnameProject,function(data){
alert(data);
});
}
@@ -123,7 +123,7 @@
}
function ofProject(){
- $.get('http://services/task/ofProject/'+elemSelec.substring(1,elemSelec.length),function(data){
+ $.get('http://localhost:8080/task/ofProject/'+elemSelec.substring(1,elemSelec.length),function(data){
alert(data);
});
}
@@ -131,7 +131,7 @@
function supprProject() {
var bool = confirm("Voulez-vous supprimer le Projet x ?")
if (bool){
- $.get('http://services/task/deleteProject/'+elemSelec.substring(1,elemSelec.length),function(data){
+ $.get('http://localhost:8080/task/deleteProject/'+elemSelec.substring(1,elemSelec.length),function(data){
alert(data);
});
}
@@ -143,7 +143,7 @@
alert("Erreur : Le nom est vide !");
}
else {
- $.get('http://services/task/addTask/'+nameNewTask,function(data){
+ $.get('http://localhost:8080/task/addTask/'+nameNewTask,function(data){
alert(data);
});
}
@@ -155,7 +155,7 @@
}
function ofTask(){
- $.get('http://services/task/ofTask/'+elemSelec.substring(1,elemSelec.length),function(data){
+ $.get('http://localhost:8080/task/ofTask/'+elemSelec.substring(1,elemSelec.length),function(data){
alert(data);
});
}
@@ -163,14 +163,14 @@
function supprTask(){
var bool = confirm("Voulez-vous supprimer la tâche x ?");
if (bool){
- $.get('http://services/task/deleteTask/'+elemSelec.substring(1,elemSelec.length),function(data){
+ $.get('http://localhost:8080/task/deleteTask/'+elemSelec.substring(1,elemSelec.length),function(data){
alert(data);
});
}
}
function startTask(){
- $.getJSON('http://services/task/startTask/1',function(data){
+ $.getJSON('http://localhost:8080/task/startTask/1',function(data){
var bla = data.task[0].pre;
bla = bla + " " + data.task[0].suf;
alert(bla);
@@ -178,14 +178,14 @@
}
function stopTask(){
- $.get('http://services/task/stopTask/'+elemSelec.substring(1,elemSelec.length),function(data){
+ $.get('http://localhost:8080/task/stopTask/'+elemSelec.substring(1,elemSelec.length),function(data){
alert(data);
});
}
function addAnnotation(){
var newAnnot = prompt("Annotation pour la tâche x :","");
- $.get('http://services/task/setAnnotation/'+elemSelec.substring(1,elemSelec.length)+'/'+newAnnot,function(data){
+ $.get('http://localhost:8080/task/setAnnotation/'+elemSelec.substring(1,elemSelec.length)+'/'+newAnnot,function(data){
alert(data);
});
}
@@ -195,19 +195,19 @@
}
function addsou(nb){
- $.get('http://services/task/addsou/'+elemSelec.substring(1,elemSelec.length)+'/'+nb,function(data){
+ $.get('http://localhost:8080/task/addsou/'+elemSelec.substring(1,elemSelec.length)+'/'+nb,function(data){
alert(data);
});
}
function zero(){
- $.get('http://services/task/zero/'+elemSelec.substring(1,elemSelec.length),function(data){
+ $.get('http://localhost:8080/task/zero/'+elemSelec.substring(1,elemSelec.length),function(data){
alert(data);
});
}
function fusion(){
- $.get('http://services/task/fusion',function(data){
+ $.get('http://localhost:8080/task/fusion',function(data){
alert(data);
});
}
@@ -221,13 +221,13 @@
}
function systray(){
- $.get('http://services/task/systray',function(data){
+ $.get('http://localhost:8080/task/systray',function(data){
alert(data);
});
}
function dStartWeek(day){
- $.get('http://services/task/dStartWeek/'+day,function(data){
+ $.get('http://localhost:8080/task/dStartWeek/'+day,function(data){
alert(data);
});
}
1
0
r37 - in jtimerhtml5: . src/main/java/org/chorem/jtimer src/main/resources/html src/main/resources/html/css src/main/resources/html/js
by qmoriceau@users.chorem.org 04 Jun '13
by qmoriceau@users.chorem.org 04 Jun '13
04 Jun '13
Author: qmoriceau
Date: 2013-06-04 10:43:19 +0200 (Tue, 04 Jun 2013)
New Revision: 37
Url: http://chorem.org/projects/incubator/repository/revisions/37
Log:
D?\195?\169but des tests de communication via serveur local
Added:
jtimerhtml5/src/main/java/org/chorem/jtimer/JTimerHandler.java
Modified:
jtimerhtml5/pom.xml
jtimerhtml5/src/main/java/org/chorem/jtimer/JTimer.java
jtimerhtml5/src/main/resources/html/css/index.css
jtimerhtml5/src/main/resources/html/index.html
jtimerhtml5/src/main/resources/html/js/actionsMenus.js
jtimerhtml5/src/main/resources/html/test.html
Modified: jtimerhtml5/pom.xml
===================================================================
--- jtimerhtml5/pom.xml 2013-05-30 15:54:02 UTC (rev 36)
+++ jtimerhtml5/pom.xml 2013-06-04 08:43:19 UTC (rev 37)
@@ -146,6 +146,12 @@
<version>2.2.4</version>
</dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-server</artifactId>
+ <version>9.0.3.v20130506</version>
+ </dependency>
+
</dependencies>
<pluginRepositories>
<pluginRepository>
Modified: jtimerhtml5/src/main/java/org/chorem/jtimer/JTimer.java
===================================================================
--- jtimerhtml5/src/main/java/org/chorem/jtimer/JTimer.java 2013-05-30 15:54:02 UTC (rev 36)
+++ jtimerhtml5/src/main/java/org/chorem/jtimer/JTimer.java 2013-06-04 08:43:19 UTC (rev 37)
@@ -45,6 +45,11 @@
import org.chorem.jtimer.storage.Storage;
import org.chorem.jtimer.TaskExclusionStrategy;
import org.chorem.jtimer.entities.TimerTask;
+import org.eclipse.jetty.server.Handler;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.DefaultHandler;
+import org.eclipse.jetty.server.handler.HandlerList;
+import org.eclipse.jetty.server.handler.ResourceHandler;
import com.google.gson.ExclusionStrategy;
import com.google.gson.Gson;
@@ -128,8 +133,7 @@
}
});
- URL maPage = getClass().getResource("/html/index.html");
- webEngine.load(maPage.toExternalForm());
+ URL maPage = getClass().getResource("http://localhost:8080");
root.getChildren().addAll(browser);
scene.setRoot(root);
@@ -280,9 +284,9 @@
// records relative x and y co-ordinates.
class Delta { double x, y; }
- public static void main(String[] args) {
+ public static void main(String[] args) throws Exception {
- final TaskService ts = new TaskService();
+ /*final TaskService ts = new TaskService();
// outil de comunication javascript/java par URL
URL.setURLStreamHandlerFactory(new URLStreamHandlerFactory() {
@Override
@@ -345,7 +349,22 @@
}
return null; // back to default handler
}
- });
+ }); */
+
+ Server server = new Server(8080);
+
+ ResourceHandler resource_handler = new ResourceHandler();
+ resource_handler.setDirectoriesListed(true);
+ resource_handler.setWelcomeFiles(new String[]{ "index.html" });
+
+ resource_handler.setResourceBase("./target/classes/html/");
+
+ HandlerList handlers = new HandlerList();
+ handlers.setHandlers(new Handler[] { resource_handler , new JTimerHandler()});
+ server.setHandler(handlers);
+
+ server.start();
+ server.join();
launch(args);
}
}
Added: jtimerhtml5/src/main/java/org/chorem/jtimer/JTimerHandler.java
===================================================================
--- jtimerhtml5/src/main/java/org/chorem/jtimer/JTimerHandler.java (rev 0)
+++ jtimerhtml5/src/main/java/org/chorem/jtimer/JTimerHandler.java 2013-06-04 08:43:19 UTC (rev 37)
@@ -0,0 +1,61 @@
+package org.chorem.jtimer;
+
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.List;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.chorem.jtimer.entities.TimerTask;
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.handler.AbstractHandler;
+import org.nuiton.util.ObjectUtil;
+
+import com.google.gson.ExclusionStrategy;
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+
+public class JTimerHandler extends AbstractHandler {
+
+ @Override
+ public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
+
+ final TaskService ts = new TaskService();
+ String content = new String();
+ Object result;
+ ExclusionStrategy excludeTasks = new TaskExclusionStrategy(TimerTask.class);
+ Gson gson = new GsonBuilder().setExclusionStrategies(excludeTasks).create();
+ final String[] path = request.getRequestURI().split("/");
+
+ String[] param = new String[path.length-3];
+ for(int i=0;i<path.length-3;i++){
+ param[i]=path[i+3];
+ }
+ List<Method> m = ObjectUtil.getMethod(TaskService.class,path[2],false);
+ try {
+ result = ObjectUtil.call(ts, m.get(0), param);
+ content = gson.toJson(result);
+ System.out.println(content);
+ } catch (IllegalAccessException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IllegalArgumentException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (InvocationTargetException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (InstantiationException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ response.setContentType("text/JSON");
+ response.setStatus(HttpServletResponse.SC_OK);
+ response.getWriter().write(content);
+ }
+
+}
Modified: jtimerhtml5/src/main/resources/html/css/index.css
===================================================================
--- jtimerhtml5/src/main/resources/html/css/index.css 2013-05-30 15:54:02 UTC (rev 36)
+++ jtimerhtml5/src/main/resources/html/css/index.css 2013-06-04 08:43:19 UTC (rev 37)
@@ -126,12 +126,12 @@
display:inline-block;
}
-#head{
+#headTasks{
width: 100%;
margin-top:30px;
}
-#head span {
+#headTasks span {
text-align:center;
border-bottom:2px solid #009999;
border-left:2px solid #339999;
Modified: jtimerhtml5/src/main/resources/html/index.html
===================================================================
--- jtimerhtml5/src/main/resources/html/index.html 2013-05-30 15:54:02 UTC (rev 36)
+++ jtimerhtml5/src/main/resources/html/index.html 2013-06-04 08:43:19 UTC (rev 37)
@@ -85,7 +85,7 @@
</div>
<div id="tabTask">
<!-- Arborescence des Tasks -->
- <div id="head">
+ <div id="headTasks">
<span class="col">Projet et tâches</span>
<span class="col">Aujourd'hui</span>
<span class="col">Total</span><br><br>
Modified: jtimerhtml5/src/main/resources/html/js/actionsMenus.js
===================================================================
--- jtimerhtml5/src/main/resources/html/js/actionsMenus.js 2013-05-30 15:54:02 UTC (rev 36)
+++ jtimerhtml5/src/main/resources/html/js/actionsMenus.js 2013-06-04 08:43:19 UTC (rev 37)
@@ -2,7 +2,7 @@
var elemSelec = "";
function getTasks(){
- $.getJSON('http://services/task/getProjects',function(data) {
+ $.getJSON('http://localhost:8080/task/getProjects',function(data) {
for (var i = 0; i<3; i++){
tabProjects[data[i].number] = data[i];
}
Modified: jtimerhtml5/src/main/resources/html/test.html
===================================================================
--- jtimerhtml5/src/main/resources/html/test.html 2013-05-30 15:54:02 UTC (rev 36)
+++ jtimerhtml5/src/main/resources/html/test.html 2013-06-04 08:43:19 UTC (rev 37)
@@ -85,7 +85,7 @@
</div>
<div id="tabTask">
<!-- Arborescence des Tasks -->
- <div id="head">
+ <div id="headTasks">
<span class="col">Projet et tâches</span>
<span class="col">Aujourd'hui</span>
<span class="col">Total</span><br><br>
1
0