Author: qmoriceau Date: 2013-04-26 17:26:52 +0200 (Fri, 26 Apr 2013) New Revision: 28 Url: http://chorem.org/projects/incubator/repository/revisions/28 Log: correction de quelques probl?\195?\168mes et d?\195?\169but des tests de comunication par url Added: jtimerhtml5/src/ jtimerhtml5/src/JTimer.java jtimerhtml5/src/cssJavaFX/ jtimerhtml5/src/cssJavaFX/alert_box.css jtimerhtml5/src/cssJavaFX/confirm_box.css jtimerhtml5/src/cssJavaFX/prompt_box.css jtimerhtml5/src/html/ jtimerhtml5/src/html/about.html jtimerhtml5/src/html/alerts.html jtimerhtml5/src/html/editionTask.html jtimerhtml5/src/html/index.html jtimerhtml5/src/html/report.html jtimerhtml5/src/html/resourcescss/ jtimerhtml5/src/html/resourcescss/about.css jtimerhtml5/src/html/resourcescss/alerts.css jtimerhtml5/src/html/resourcescss/editionT.css jtimerhtml5/src/html/resourcescss/jtimer.css jtimerhtml5/src/html/resourcescss/report.css jtimerhtml5/src/html/resourcescss/resourcesjs/ jtimerhtml5/src/html/resourcescss/resourcesjs/actionsMenus.js jtimerhtml5/src/html/resourcescss/resourcesjs/alerts.js jtimerhtml5/src/html/resourcescss/resourcesjs/menu.js jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/ jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/applications-system.png jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/bell.png jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/bookmark-new.png jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/date_current.png jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/date_previous.png jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/document-new.png jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/go-next.png jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/jtimer-logo-orange.jpg jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/mail-forward.png jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/notes.png jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/process-stop.png jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/running.gif jtimerhtml5/src/html/resourcescss/style.css Removed: jtimerhtml5/TestWebEngine.java jtimerhtml5/alertes.html jtimerhtml5/apropos.html jtimerhtml5/aspect/ jtimerhtml5/cssJavaFX/ jtimerhtml5/editionTache.html jtimerhtml5/index.html jtimerhtml5/javascript/ jtimerhtml5/rapport.html Deleted: jtimerhtml5/TestWebEngine.java =================================================================== --- jtimerhtml5/TestWebEngine.java 2013-04-25 16:03:02 UTC (rev 27) +++ jtimerhtml5/TestWebEngine.java 2013-04-26 15:26:52 UTC (rev 28) @@ -1,294 +0,0 @@ -import java.net.URL; - -import netscape.javascript.JSObject; - -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.beans.value.ChangeListener; -import javafx.beans.value.ObservableValue; -import javafx.event.ActionEvent; -import javafx.event.EventHandler; -import javafx.concurrent.Worker.State; -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 TestWebEngine extends Application { - - @Override - public void start(final Stage stage) { - stage.setTitle("jTimer"); - - Scene scene = new Scene(new Group(), 450, 500); - - 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()); - - // processus au chargement de la page, on crée le pont de Javascript vers javaFX - // Mais ne répond pas entièrement au problème. - /*webEngine.getLoadWorker().stateProperty().addListener( - new ChangeListener<State>() { - @Override - public void changed(ObservableValue<? extends State> ov, - State oldState, State newState) { - JSObject jsobj = (JSObject) webEngine.executeScript("window"); - jsobj.setMember("java", new Bridge()); - } - } - );*/ - - // 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(); - } - } - }); - - popupEngine.getLoadWorker().stateProperty().addListener( - new ChangeListener<State>() { - @Override - public void changed(ObservableValue<? extends State> ov, - State oldState, State newState) { - JSObject jsobj = (JSObject) webEngine.executeScript("window"); - jsobj.setMember("java", new Bridge()); - } - } - ); - - 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("index.html"); - webEngine.load(maPage.toExternalForm()); - - 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 buttonAnn = new Button("Annuler"); - - Scene scn = new Scene(HBoxBuilder.create().styleClass("modal-dialog").children(label,textField,buttonOk,buttonAnn).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(); - } - }); - - buttonAnn.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 buttonAnn = new Button("Annuler"); - - Scene scn = new Scene(HBoxBuilder.create().styleClass("modal-dialog").children(label,buttonOk,buttonAnn).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(); - } - }); - - buttonAnn.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. - 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) { - launch(args); - } -} Deleted: jtimerhtml5/alertes.html =================================================================== --- jtimerhtml5/alertes.html 2013-04-25 16:03:02 UTC (rev 27) +++ jtimerhtml5/alertes.html 2013-04-26 15:26:52 UTC (rev 28) @@ -1,22 +0,0 @@ -<!DOCTYPE html> -<html lang="fr"> - <head> - <meta charset="UTF-8"/> - <title>jTimer - Alertes</title> - <link rel="stylesheet" type="text/css" href="aspect/alertes.css"/> - <link rel="stylesheet" type="text/css" href="aspect/style.css"/> - <script type="text/javascript" src="javascript/alertes.js"></script> - </head> - <body> - <b>Listes des alertes :</b> - <span id="cadreHaut"> - <input type="button" id="alerteAnn" value="Annuler" OnClick="javascript:window.close()"> - <input type="button" id="alerteSave" value="Sauver"> - </span> - <br> - <br> - <div width=100% id="listeAlertes">Type & Durée<br><br> - </div> - <input type="button" id="alerteAj" value="Ajouter" onclick="ajout()"> - </body> -</html> Deleted: jtimerhtml5/apropos.html =================================================================== --- jtimerhtml5/apropos.html 2013-04-25 16:03:02 UTC (rev 27) +++ jtimerhtml5/apropos.html 2013-04-26 15:26:52 UTC (rev 28) @@ -1,32 +0,0 @@ -<!DOCTYPE html> -<html lang="fr"> - <head> - <meta charset="UTF-8"/> - <title>A propos de jTimer</title> - <link rel="stylesheet" type="text/css" href="aspect/style.css"/> - <link rel="stylesheet" type="text/css" href="aspect/apropos.css"/> - <script type="text/javascript"> - <!-- //choix entre les deux texte via les boutons - function action(i){ - if(i == 1){ - document.getElementById('dataText').innerHTML='<b>jTimer - 1.4.1</b><br><br>Copyright 2007 - 2012, Code Lutin.<br><br><a href="http://maven-site.chorem.org/jtimer">http://maven-site.chorem.org/jtimer</a><br><br>Merci de rapporter les bugs de jTimer.'; - document.getElementById('bt1').style.backgroundColor = "#339999"; - document.getElementById('bt2').style.backgroundColor = "#ffffff"; - } - if(i == 2){ - document.getElementById('dataText').innerHTML="Vous pouvez modifier et redistribuer ce programme sous les conditions énoncées par la licence GNU GPL (version 2 ou ultérieure). Une copie de la licence GPL est dans le fichier « LICENSE.txt » fourni avec jTimer. Tous droits réservés. Aucune garantie n'est fournie pour l'utilisation de ce programme."; - document.getElementById('bt1').style.backgroundColor = "#ffffff"; - document.getElementById('bt2').style.backgroundColor = "#339999"; - } - } - //--> - </script> - </head> - <body> - <img src="aspect/images/jtimer-logo-orange.jpg" /><br> - <span id="bt1" onclick="action(1)">A propos de jTimer</span> - <span id="bt2" onclick="action(2)">Licence</span><br> - <div id="cadre"><p id="dataText"><b>jTimer - 1.4.1</b><br><br>Copyright 2007 - 2013, Code Lutin.<br><br><a href="http://maven-site.chorem.org/jtimer">http://maven-site.chorem.org/jtimer</a><br / ><br / >Merci de rapporter les bugs de jTimer.</p></div> - <input style="margin-left:300px;margin-top:5px;width:100px;height:25px" type="submit" value="Fermer" OnClick="javascript:window.close()"> - </body> -</html> Deleted: jtimerhtml5/editionTache.html =================================================================== --- jtimerhtml5/editionTache.html 2013-04-25 16:03:02 UTC (rev 27) +++ jtimerhtml5/editionTache.html 2013-04-26 15:26:52 UTC (rev 28) @@ -1,23 +0,0 @@ -<!DOCTYPE html> -<html lang="fr"> - <head> - <meta charset="UTF-8"/> - <title>Edition de la tâche</title> - <link rel="stylesheet" type="text/css" href="aspect/style.css"/> - <link rel="stylesheet" type="text/css" href="aspect/editionT.css"/> - </head> - <body> - <input type="text" id="nomTache" name="newNomTache" value="x"> - <!-- Calendrier à date selectionnable --> - <footer width=100%> - Temps: - <input type="text" name="heures" value="00" size=2>: - <input type="text" name="minutes" value="00" size=2>: - <input type="text" name="secondes" value="00" size=2><br> - Note:<textarea rows="4" type="text" value="" id="noteTache"></textarea><br> - <input type="button" id="editionAppl" value="Ajouter"> - <input type="reset" id="editionAnnul" value="Annuler"> - <input type="button" id="editionQuit" value="Quitter" OnClick="javascript:window.close()"> - </footer> - </body> -</html> Deleted: jtimerhtml5/index.html =================================================================== --- jtimerhtml5/index.html 2013-04-25 16:03:02 UTC (rev 27) +++ jtimerhtml5/index.html 2013-04-26 15:26:52 UTC (rev 28) @@ -1,96 +0,0 @@ -<!DOCTYPE html> -<html lang="fr"> - <head> - <meta charset="UTF-8"/> - <title>jTimer</title> - <link rel="stylesheet" type="text/css" href="aspect/style.css"/> - <link rel="stylesheet" type="text/css" href="aspect/jtimer.css"/> - <script type="text/javascript" src="javascript/menu.js"></script> - <script type="text/javascript" src="javascript/actionsMenus.js"></script> - </head> - <body> - <!-- Menu --> - <div> - <span class="menu" id="mn1" onclick="menu(1)" onmouseover="over2(1)" onmouseout="out2(1)">Fichier</span> - <span class="menu" id="mn2" onclick="menu(2)" onmouseover="over2(2)" onmouseout="out2(2)">Projet</span> - <span class="menu" id="mn3" onclick="menu(3)" onmouseover="over2(3)" onmouseout="out2(3)">Tâche</span> - <span class="menu" id="mn4" onclick="menu(4)" onmouseover="over2(4)" onmouseout="out2(4)">Rapport</span> - <span class="menu" id="mn5" onclick="menu(5)" onmouseover="over2(5)" onmouseout="out2(5)">Options</span> - <span class="menu" id="mn6" onclick="menu(6)" onmouseover="over2(6)" onmouseout="out2(6)">Aide</span> - </div> - <div class="boutons"> - <!-- Les boutons d'actions - Réflechir à la possibilité de n'avoire qu'un bouton pour démarré et stoper une tache. --> - <span id="demarreTache" title="Démarre la tâche sélectionnée" onclick="demarTache()" onmouseover="over(this)" onmouseout="out(this)"></span> - <span id="arretTache" title="Arrête la tâche sélectionnée" onclick="stopTache()" onmouseover="over(this)" onmouseout="out(this)"></span> - <span id="nouveauProjet" title="Création d'un nouveau projet" onclick="newProjet()" onmouseover="over(this)" onmouseout="out(this)"></span> - <span id="nouvelleTache" title="Création d'une nouvelle tâche" onclick="newTache()" onmouseover="over(this)" onmouseout="out(this)"></span> - - <span id="note" title="Ajouter une annotation" onclick="addAnnotation()" onmouseover="over(this)" onmouseout="out(this)"></span> - <span id="alerte" title="Edition des alertes" onclick="edAlertes()" onmouseover="over(this)" onmouseout="out(this)"></span> - </div> - <div> - <!-- Arborescence des taches --> - <div width=100%> - <div id="entete"> - <span class="colone1">Projet et tâches</span> - <span class="colone2">Aujourd'hui</span> - <span class="colone3">Total</span><br><br> - </div> - <div id="arboTaches"> - <span class="colone1" id="cel1ligne1" onclick="selecTache(this, 1)" ondblclick="go(1)"><img src="aspect/images/running.gif" style="display:none" id="go1"/> jTimer html5</span> - <span class="colone2" id="cel2ligne1" onclick="selecTache(this, 1)" ondblclick="go(1)"> xx:xx:xx</span> - <span class="colone3" id="cel3ligne1" onclick="selecTache(this, 1)" ondblclick="go(1)"> xx:xx:xx</span><br> - <span class="colone1" id="cel1ligne2" onclick="selecTache(this, 2)" ondblclick="go(2)"><img src="aspect/images/running.gif" style="display:none" id="go2"/> jTimer test</span> - <span class="colone2" id="cel2ligne2" onclick="selecTache(this, 2)" ondblclick="go(2)"> xx:xx:xx</span> - <span class="colone3" id="cel3ligne2" onclick="selecTache(this, 2)" ondblclick="go(2)"> xx:xx:xx</span><br> - </div> - </div> - </div> - <footer class="piedpage"> - <!-- footer à garder tel quel --> - <div id="cadreBas"><span id="statutTaches">Inactif</span><span id="recapAuj">Aujourd'hui : xx:xx:xx</span></div> - </footer> - <!-- Les sous menus sont placé à la fin pour qu'il passe devant les autres blocks de texte --> - <div id="menu1"> - <span class="options" onclick="javascript:window.close()">Quitter</span> - </div> - <div id="menu2"> - <span class="options" onclick="newProjet()">Nouveau projet</span><br> - <span class="options" onclick="edProjet()">Édition du projet</span><br> - <span class="options" onclick="ofProjet()">Ouvrir/Fermer le projet</span><br> - <span class="options" onclick="supprProjet()">Suppression du projet</span> - </div> - <div id="menu3"> - <span class="options" onclick="newTache()">Nouvelle tâche</span><br> - <span class="options" onclick="edTache()">Édition de la tâche</span><br> - <span class="options" onclick="ofTache()">Ouvrir/Fermer la tâche</span><br> - <span class="options" onclick="supprTache()">Suppression de la tâche</span><br> - - <span style="padding-top:10px;" class="options" onclick="demarTache()">Démarrer</span><br> - <span class="options" onclick="stopTache()">Arrêter</span><br> - - <span style="padding-top:10px;" class="options" onclick="addAnnotation()">Ajouter une annotation</span><br> - <span class="options" onclick="edAlertes()">Édition des alertes</span><br> - <span class="options" onclick="add(1)">Ajouter 1 minute</span><br> - <span class="options" onclick="add(5)">Ajouter 5 minutes</span><br> - <span class="options" onclick="add(30)">Ajouter 30 minutes</span><br> - <span class="options" onclick="sou(1)">Enlever 1 minute</span><br> - <span class="options" onclick="sou(5)">Enlever 5 minutes</span><br> - <span class="options" onclick="sou(30)">Enlever 30 minutes</span><br> - <span class="options" onclick="zero()">Remettre à Zero</span><br> - <span class="options" onclick="fusion()">Fusionner</span> - </div> - <div id="menu4"> - <span class="options" onclick="rapport()">Rapport...</span> - </div> - <div id="menu5"> - <span class="options" onclick="affCachés()"><label><input type="checkbox">Afficher les cachés</label></span><br> - <span class="options" onclick="systray()"><label><input type="checkbox">Fermer vers le systray</label></span><br> - <span class="options" onclick="jSemaine()">Rapport - Premier jour de la semaine</span> - </div> - <div id="menu6"> - <span class="options" onclick="aPropos()">À propos...</span> - </div> - </body> -</html> Deleted: jtimerhtml5/rapport.html =================================================================== --- jtimerhtml5/rapport.html 2013-04-25 16:03:02 UTC (rev 27) +++ jtimerhtml5/rapport.html 2013-04-26 15:26:52 UTC (rev 28) @@ -1,61 +0,0 @@ -<!DOCTYPE html> -<html lang="fr" height=100%> - <head> - <meta charset="UTF-8"/> - <title>Rapport - jTimer</title> - <link rel="stylesheet" type="text/css" href="aspect/style.css"/> - <link rel="stylesheet" type="text/css" href="aspect/rapport.css"/> - <script language=JavaScript> - var check = false; - function checkHeure(){ - if (check==false){ - check=true; - (document.getElementById("avHeure")).style.display=""; - } - else - { - check=false; - (document.getElementById("avHeure")).style.display="none"; - } - } - </script> - </head> - <body height=100%> - <div id="divGauche"> - <div id="optionsRapport"> - Options :<br><br> - De : <input type="date" id="dateDeb"> - <input type="button" name="Semaine courante" id="selecSemAct"><br> - A : <input type="date" id="dateFin"> - <input type="button" name="Semaine précédente" id="selecSemPre"><br> - <form> - <label><input type="radio" name="choixFormat" value="jour">Par jour</label> - <label><input type="radio" name="choixFormat" value="mois" id="moisRapport">Par mois</label> - <br> - <label><input type="radio" name="choixFormat" value="semaine">Par semaine</label> - <label><input type="radio" name="choixFormat" value="annee" id="anneeRapport">Par année</label> - <br> - <label><input type="radio" name="choixFormat" value="projet">Par projet</label> - </form> - <label><input type="checkbox" id="incAnno" onchange="checkHeure()">Inclure les annotations</label> - <span id="avHeure" style="display:none;"><label><input type="checkbox">avec l'heure</label></span> - </div><br> - <div id="projetsRapport"> - Projets :<br><br> - <label><input type="checkbox" id="affichCachésRapport">Afficher les cachés</label> - <div id="arboRapport"> - </div> - </div> - </div> - - <div id="divDroite"> - Rapport :<br> - <span id="zoneTexteRapport"><textarea id="texteRapport"></textarea></span> - <footer> - <span id="generRapport"><img src="aspect/images/applications-system.png">Générer</span> - <span id="mailRapport"><img src="aspect/images/mail-forward.png">Envoyer par email</span> - <input type="button" value="Fermer" id="fermerRapport" onclick="javascript:window.close()"> - </footer> - </div> - </body> -</html> Added: jtimerhtml5/src/JTimer.java =================================================================== --- jtimerhtml5/src/JTimer.java (rev 0) +++ jtimerhtml5/src/JTimer.java 2013-04-26 15:26:52 UTC (rev 28) @@ -0,0 +1,329 @@ +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.net.URLConnection; +import java.net.URLStreamHandler; +import java.net.URLStreamHandlerFactory; + +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 JTimer extends Application { + + @Override + public void start(final Stage stage) { + stage.setTitle("jTimer"); + + Scene scene = new Scene(new Group(), 450, 500); + + 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("html/index.html"); + webEngine.load(maPage.toExternalForm()); + + 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) { + + // 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 query = url.getPath(); + System.out.println(url); + if (query != null && query.startsWith("/jtimer/")) { + return new URLConnection(url) { + @Override + public void connect() throws IOException { + // heu + } + + public InputStream getInputStream() throws IOException { + System.out.println(url.getQuery()); // permet de récupéré ce qui est passé en paramètre + InputStream is = null; + String content = new String(); + if (query.endsWith("newProject")){ + content = "Création d'un nouveau Projet"; + } + else if (query.endsWith("edProject")){ + content = "Edition du Projet"; + } + else if (query.endsWith("ofProject")){ + content = "Ouverture/Fermeture du projet"; + } + else if (query.endsWith("supprProject")){ + content = "Suppression du projet"; + } + else if (query.endsWith("startTask")){ + content = "Démarage de la tâche"; + } + else if (query.endsWith("stopTask")){ + content = "Arrêt de la tâche"; + } + is = new ByteArrayInputStream(content.getBytes()); + return is; + } + }; + } + else { + return super.openConnection(url); + } + } + }; + } + return null; // back to default handler + } + }); + + launch(args); + } +} \ No newline at end of file Added: jtimerhtml5/src/cssJavaFX/alert_box.css =================================================================== --- jtimerhtml5/src/cssJavaFX/alert_box.css (rev 0) +++ jtimerhtml5/src/cssJavaFX/alert_box.css 2013-04-26 15:26:52 UTC (rev 28) @@ -0,0 +1,37 @@ +/** +* modal-dialog.css +* place in same directory as WebViewConfirm.java +* ensure your build system copies the file to your build output directory +*/ + +.root { +-fx-glass-color: rgba(255, 102, 102, 0.9); +} + +.modal-dialog { +-fx-padding: 10; +-fx-spacing: 5; +-fx-alignment: center; +-fx-font-size: 18; +-fx-font-weight:bold; +-fx-background-color: linear-gradient(to bottom, derive(-fx-glass-color, 20%), -fx-glass-color); +-fx-border-color: derive(-fx-glass-color, -20%); +-fx-border-width: 3; +-fx-background-insets: 6; +-fx-border-insets: 5; +-fx-border-radius: 3; +-fx-background-radius: 3; +} + +.modal-dialog:pressed { +-fx-cursor: move; +} + +.modal-dialog .button:pressed { +-fx-cursor: default; +} + +.confirmation-results { +-fx-background-color: cornsilk; +-fx-padding: 3; +} Added: jtimerhtml5/src/cssJavaFX/confirm_box.css =================================================================== --- jtimerhtml5/src/cssJavaFX/confirm_box.css (rev 0) +++ jtimerhtml5/src/cssJavaFX/confirm_box.css 2013-04-26 15:26:52 UTC (rev 28) @@ -0,0 +1,37 @@ +/** +* modal-dialog.css +* place in same directory as WebViewConfirm.java +* ensure your build system copies the file to your build output directory +*/ + +.root { +-fx-glass-color: rgba(95, 158, 160, 0.9); +} + +.modal-dialog { +-fx-padding: 10; +-fx-spacing: 5; +-fx-alignment: center; +-fx-font-size: 15; +-fx-font-weight:bold; +-fx-background-color: linear-gradient(to bottom, derive(-fx-glass-color, 20%), -fx-glass-color); +-fx-border-color: derive(-fx-glass-color, -20%); +-fx-border-width: 3; +-fx-background-insets: 6; +-fx-border-insets: 5; +-fx-border-radius: 3; +-fx-background-radius: 3; +} + +.modal-dialog:pressed { +-fx-cursor: move; +} + +.modal-dialog .button:pressed { +-fx-cursor: default; +} + +.confirmation-results { +-fx-background-color: cornsilk; +-fx-padding: 3; +} Added: jtimerhtml5/src/cssJavaFX/prompt_box.css =================================================================== --- jtimerhtml5/src/cssJavaFX/prompt_box.css (rev 0) +++ jtimerhtml5/src/cssJavaFX/prompt_box.css 2013-04-26 15:26:52 UTC (rev 28) @@ -0,0 +1,37 @@ +/** +* modal-dialog.css +* place in same directory as WebViewConfirm.java +* ensure your build system copies the file to your build output directory +*/ + +.root { +-fx-glass-color: rgba(153, 255, 153, 0.9); +} + +.modal-dialog { +-fx-padding: 10; +-fx-spacing: 5; +-fx-alignment: center; +-fx-font-size: 15; +-fx-font-weight:bold; +-fx-background-color: linear-gradient(to bottom, derive(-fx-glass-color, 20%), -fx-glass-color); +-fx-border-color: derive(-fx-glass-color, -20%); +-fx-border-width: 3; +-fx-background-insets: 6; +-fx-border-insets: 5; +-fx-border-radius: 3; +-fx-background-radius: 3; +} + +.modal-dialog:pressed { +-fx-cursor: move; +} + +.modal-dialog .button:pressed { +-fx-cursor: default; +} + +.confirmation-results { +-fx-background-color: cornsilk; +-fx-padding: 3; +} Added: jtimerhtml5/src/html/about.html =================================================================== --- jtimerhtml5/src/html/about.html (rev 0) +++ jtimerhtml5/src/html/about.html 2013-04-26 15:26:52 UTC (rev 28) @@ -0,0 +1,32 @@ +<!DOCTYPE html> +<html lang="fr"> + <head> + <meta charset="UTF-8"/> + <title>A propos de jTimer</title> + <link rel="stylesheet" type="text/css" href="resourcescss/style.css"/> + <link rel="stylesheet" type="text/css" href="resourcescss/about.css"/> + <script type="text/javascript"> + <!-- //choix entre les deux texte via les boutons + function action(i){ + if(i == 1){ + document.getElementById('dataText').innerHTML='<b>jTimer - 1.4.1</b><br><br>Copyright 2007 - 2012, Code Lutin.<br><br><a href="http://maven-site.chorem.org/jtimer">http://maven-site.chorem.org/jtimer</a><br><br>Merci de rapporter les bugs de jTimer.'; + document.getElementById('bt1').style.backgroundColor = "#339999"; + document.getElementById('bt2').style.backgroundColor = "#ffffff"; + } + if(i == 2){ + document.getElementById('dataText').innerHTML="Vous pouvez modifier et redistribuer ce programme sous les conditions énoncées par la licence GNU GPL (version 2 ou ultérieure). Une copie de la licence GPL est dans le fichier « LICENSE.txt » fourni avec jTimer. Tous droits réservés. Aucune garantie n'est fournie pour l'utilisation de ce programme."; + document.getElementById('bt1').style.backgroundColor = "#ffffff"; + document.getElementById('bt2').style.backgroundColor = "#339999"; + } + } + //--> + </script> + </head> + <body> + <img src="resourcescss/resourcesjs/resourcesimg/jtimer-logo-orange.jpg" /><br> + <span id="bt1" onclick="action(1)">A propos de jTimer</span> + <span id="bt2" onclick="action(2)">Licence</span><br> + <div id="frame"><p id="dataText"><b>jTimer - 1.4.1</b><br><br>Copyright 2007 - 2013, Code Lutin.<br><br><a href="http://maven-site.chorem.org/jtimer">http://maven-site.chorem.org/jtimer</a><br / ><br / >Merci de rapporter les bugs de jTimer.</p></div> + <input id="close" type="submit" value="Fermer" OnClick="javascript:window.close()"> + </body> +</html> Added: jtimerhtml5/src/html/alerts.html =================================================================== --- jtimerhtml5/src/html/alerts.html (rev 0) +++ jtimerhtml5/src/html/alerts.html 2013-04-26 15:26:52 UTC (rev 28) @@ -0,0 +1,22 @@ +<!DOCTYPE html> +<html lang="fr"> + <head> + <meta charset="UTF-8"/> + <title>jTimer - Alertes</title> + <link rel="stylesheet" type="text/css" href="resourcescss/alerts.css"/> + <link rel="stylesheet" type="text/css" href="resourcescss/style.css"/> + <script type="text/javascript" src="resourcescss/resourcesjs/alerts.js"></script> + </head> + <body> + <b>Listes des alertes :</b> + <span id="head"> + <input type="button" id="alertCancel" value="Annuler" OnClick="javascript:window.close()"> + <input type="button" id="alertSave" value="Sauver"> + </span> + <br> + <br> + <div width=100% id="listAlerts">Type & Durée<br><br> + </div> + <input type="button" id="alertAdd" value="Ajouter" onclick="add()"> + </body> +</html> Added: jtimerhtml5/src/html/editionTask.html =================================================================== --- jtimerhtml5/src/html/editionTask.html (rev 0) +++ jtimerhtml5/src/html/editionTask.html 2013-04-26 15:26:52 UTC (rev 28) @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<html lang="fr"> + <head> + <meta charset="UTF-8"/> + <title>Edition de la tâche</title> + <link rel="stylesheet" type="text/css" href="resourcescss/style.css"/> + <link rel="stylesheet" type="text/css" href="resourcescss/editionT.css"/> + </head> + <body> + <input type="text" id="nameTask" name="newNameTask" value="x"> + <!-- Calendrier à date selectionnable --> + <footer width=100%> + Temps: + <input type="text" name="hour" value="00" size=2>: + <input type="text" name="minutes" value="00" size=2>: + <input type="text" name="seconds" value="00" size=2><br> + Note:<textarea rows="4" type="text" value="" id="noteTache"></textarea><br> + <input type="button" id="editionApply" value="Ajouter"> + <input type="reset" id="editionCancel" value="Annuler"> + <input type="button" id="editionClose" value="Quitter" OnClick="javascript:window.close()"> + </footer> + </body> +</html> Added: jtimerhtml5/src/html/index.html =================================================================== --- jtimerhtml5/src/html/index.html (rev 0) +++ jtimerhtml5/src/html/index.html 2013-04-26 15:26:52 UTC (rev 28) @@ -0,0 +1,96 @@ +<!DOCTYPE html> +<html lang="fr"> + <head> + <meta charset="UTF-8"/> + <title>jTimer</title> + <link rel="stylesheet" type="text/css" href="resourcescss/style.css"/> + <link rel="stylesheet" type="text/css" href="resourcescss/jtimer.css"/> + <script type="text/javascript" src="resourcescss/resourcesjs/menu.js"></script> + <script type="text/javascript" src="resourcescss/resourcesjs/actionsMenus.js"></script> + </head> + <body> + <!-- Menu --> + <div> + <span class="menu" id="mn1" onclick="menu(1)" onmouseover="over2(1)" onmouseout="out2(1)">Fichier</span> + <span class="menu" id="mn2" onclick="menu(2)" onmouseover="over2(2)" onmouseout="out2(2)">Project</span> + <span class="menu" id="mn3" onclick="menu(3)" onmouseover="over2(3)" onmouseout="out2(3)">Tâche</span> + <span class="menu" id="mn4" onclick="menu(4)" onmouseover="over2(4)" onmouseout="out2(4)">Rapport</span> + <span class="menu" id="mn5" onclick="menu(5)" onmouseover="over2(5)" onmouseout="out2(5)">Options</span> + <span class="menu" id="mn6" onclick="menu(6)" onmouseover="over2(6)" onmouseout="out2(6)">Aide</span> + </div> + <div class="buttons"> + <!-- Les boutons d'actions + Réflechir à la possibilité de n'avoire qu'un bouton pour démarré et stoper une Task. --> + <span id="startTask" title="Démarre la tâche sélectionnée" onclick="startTask()" onmouseover="over(this)" onmouseout="out(this)"></span> + <span id="stopTask" title="Arrête la tâche sélectionnée" onclick="stopTask()" onmouseover="over(this)" onmouseout="out(this)"></span> + <span id="newProject" title="Création d'un nouveau Projet" onclick="newProject()" onmouseover="over(this)" onmouseout="out(this)"></span> + <span id="newTask" title="Création d'une nouvelle tâche" onclick="newTask()" onmouseover="over(this)" onmouseout="out(this)"></span> + + <span id="note" title="Ajouter une annotation" onclick="addAnnotation()" onmouseover="over(this)" onmouseout="out(this)"></span> + <span id="alert" title="Edition des Alerts" onclick="edAlerts()" onmouseover="over(this)" onmouseout="out(this)"></span> + </div> + <div> + <!-- Arborescence des Tasks --> + <div width=100%> + <div id="head"> + <span class="col1">Projet et tâches</span> + <span class="col2">Aujourd'hui</span> + <span class="col3">Total</span><br><br> + </div> + <div id="treeTasks"> + <span class="col1" id="cel1row1" onclick="selecTask(this, 1)" ondblclick="go(1)"><img src="resourcescss/resourcesjs/resourcesimg/running.gif" style="display:none" id="go1"/> jTimer html5</span> + <span class="col2" id="cel2row1" onclick="selecTask(this, 1)" ondblclick="go(1)"> xx:xx:xx</span> + <span class="col3" id="cel3row1" onclick="selecTask(this, 1)" ondblclick="go(1)"> xx:xx:xx</span><br> + <span class="col1" id="cel1row2" onclick="selecTask(this, 2)" ondblclick="go(2)"><img src="resourcescss/resourcesjs/resourcesimg/running.gif" style="display:none" id="go2"/> jTimer test</span> + <span class="col2" id="cel2row2" onclick="selecTask(this, 2)" ondblclick="go(2)"> xx:xx:xx</span> + <span class="col3" id="cel3row2" onclick="selecTask(this, 2)" ondblclick="go(2)"> xx:xx:xx</span><br> + </div> + </div> + </div> + <footer class="footer"> + <!-- footer à garder tel quel --> + <div id="frame"><span id="statutTasks">Inactif</span><span id="recapToday">Aujourd'hui : xx:xx:xx</span></div> + </footer> + <!-- Les sous menus sont placé à la fin pour qu'il passe devant les autres blocks de texte --> + <div id="menu1"> + <span class="options" onclick="javascript:window.close()">Quitter</span> + </div> + <div id="menu2"> + <span class="options" onclick="newProject()">Nouveau Projet</span><br> + <span class="options" onclick="edProject()">Édition du Projet</span><br> + <span class="options" onclick="ofProject()">Ouvrir/Fermer le Projet</span><br> + <span class="options" onclick="supprProject()">Suppression du Projet</span> + </div> + <div id="menu3"> + <span class="options" onclick="newTask()">Nouvelle tâche</span><br> + <span class="options" onclick="edTask()">Édition de la tâche</span><br> + <span class="options" onclick="ofTask()">Ouvrir/Fermer la tâche</span><br> + <span class="options" onclick="supprTask()">Suppression de la tâche</span><br> + + <span class="options" onclick="startTask()">Démarrer</span><br> + <span class="options" onclick="stopTask()">Arrêter</span><br> + + <span class="options" onclick="addAnnotation()">Ajouter une annotation</span><br> + <span class="options" onclick="edAlerts()">Édition des Alertes</span><br> + <span class="options" onclick="add(1)">Ajouter 1 minute</span><br> + <span class="options" onclick="add(5)">Ajouter 5 minutes</span><br> + <span class="options" onclick="add(30)">Ajouter 30 minutes</span><br> + <span class="options" onclick="sou(1)">Enlever 1 minute</span><br> + <span class="options" onclick="sou(5)">Enlever 5 minutes</span><br> + <span class="options" onclick="sou(30)">Enlever 30 minutes</span><br> + <span class="options" onclick="zero()">Remettre à Zero</span><br> + <span class="options" onclick="fusion()">Fusionner</span> + </div> + <div id="menu4"> + <span class="options" onclick="report()">Rapport...</span> + </div> + <div id="menu5"> + <span class="options" onclick="displayHidden()"><label><input type="checkbox">Afficher les cachés</label></span><br> + <span class="options" onclick="systray()"><label><input type="checkbox">Fermer vers le systray</label></span><br> + <span class="options" onclick="dStartWeek()">Rapport - Premier jour de la semaine</span> + </div> + <div id="menu6"> + <span class="options" onclick="about()">À propos...</span> + </div> + </body> +</html> Added: jtimerhtml5/src/html/report.html =================================================================== --- jtimerhtml5/src/html/report.html (rev 0) +++ jtimerhtml5/src/html/report.html 2013-04-26 15:26:52 UTC (rev 28) @@ -0,0 +1,62 @@ +<!DOCTYPE html> +<html lang="fr" height=100%> + <head> + <meta charset="UTF-8"/> + <title>Rapport - jTimer</title> + <link rel="stylesheet" type="text/css" href="resourcescss/style.css"/> + <link rel="stylesheet" type="text/css" href="resourcescss/report.css"/> + <script language=JavaScript> + var check = false; + function checkTimeMark(){ + if (check==false){ + check=true; + (document.getElementById("withTimeMark")).style.display=""; + } + else + { + check=false; + (document.getElementById("withTimeMark")).style.display="none"; + } + } + </script> + </head> + <body height=100%> + <div id="divLeft"> + <div id="optionsReport"> + Options :<br><br> + De : <input type="date" id="startDate"> + <!-- transformer en span --> + <input type="button" name="Semaine courante" id="selectThisWeek"><br> + A : <input type="date" id="endDate"> + <input type="button" name="Semaine précédente" id="selectLastWeek"><br> + <form> + <label><input type="radio" name="formatChoice" value="day">Par jour</label> + <label><input type="radio" name="formatChoice" value="month" id="monthReport">Par mois</label> + <br> + <label><input type="radio" name="formatChoice" value="week">Par semaine</label> + <label><input type="radio" name="formatChoice" value="year" id="yearReport">Par année</label> + <br> + <label><input type="radio" name="formatChoice" value="project">Par projet</label> + </form> + <label><input type="checkbox" id="includeAnno" onchange="checkTimeMark()">Inclure les annotations</label> + <span id="withTimeMark" style="display:none;"><label><input type="checkbox">avec l'heure</label></span> + </div><br> + <div id="projectsReport"> + Projets :<br><br> + <label><input type="checkbox" id="displayHiddenReport">Afficher les cachés</label> + <div id="treeReport"> + </div> + </div> + </div> + + <div id="divRight"> + Report :<br> + <span id="zoneTexteReport"><textarea id="textReport"></textarea></span> + <footer> + <span id="generReport"><img src="resourcescss/resourcesjs/resourcesimg/applications-system.png">Générer</span> + <span id="mailReport"><img src="resourcescss/resourcesjs/resourcesimg/mail-forward.png">Envoyer par email</span> + <input type="button" value="Fermer" id="closeReport" onclick="javascript:window.close()"> + </footer> + </div> + </body> +</html> Added: jtimerhtml5/src/html/resourcescss/about.css =================================================================== --- jtimerhtml5/src/html/resourcescss/about.css (rev 0) +++ jtimerhtml5/src/html/resourcescss/about.css 2013-04-26 15:26:52 UTC (rev 28) @@ -0,0 +1,36 @@ +#dataText { + margin-left:5px; +} + +#frame { + width:400px; + height:155px; + border-style:solid; + border-width:2px; + border-color:#339999; + border-radius: 4px; +} + +#bt1{ + border-style:solid; + border-width:2px; + border-color:#339999; + border-radius: 4px; + cursor:pointer; + background-color:#339999; +} + +#bt2{ + border-style:solid; + border-width:2px; + border-color:#339999; + border-radius: 4px; + cursor:pointer; +} + +#close { + margin-left:300px; + margin-top:5px; + width:100px; + height:25px; +} Added: jtimerhtml5/src/html/resourcescss/alerts.css =================================================================== --- jtimerhtml5/src/html/resourcescss/alerts.css (rev 0) +++ jtimerhtml5/src/html/resourcescss/alerts.css 2013-04-26 15:26:52 UTC (rev 28) @@ -0,0 +1,15 @@ +#alertCancel{ + width:70px; + height:30px; +} + +#alertSave { + width:70px; + height:30px; +} + +#head{ + right:0px; + position:fixed; + margin-right:5px +} Added: jtimerhtml5/src/html/resourcescss/editionT.css =================================================================== --- jtimerhtml5/src/html/resourcescss/editionT.css (rev 0) +++ jtimerhtml5/src/html/resourcescss/editionT.css 2013-04-26 15:26:52 UTC (rev 28) @@ -0,0 +1,20 @@ +#editionApply { + width:32%; + height: 30px; +} +#editionCancel { + width:32%; + height: 30px; +} +#editionClose { + width:32%; + height: 30px; +} + +#nameTask { + width:98%; +} + +#noteTask { + width:96%; +} Added: jtimerhtml5/src/html/resourcescss/jtimer.css =================================================================== --- jtimerhtml5/src/html/resourcescss/jtimer.css (rev 0) +++ jtimerhtml5/src/html/resourcescss/jtimer.css 2013-04-26 15:26:52 UTC (rev 28) @@ -0,0 +1,188 @@ +/* Menus */ + +#menu1 { + display:none; + position:absolute; + margin-left:2px; + top:30px; + border-radius: 4px; + border:2px solid #339999; +} + +#menu2 { + display:none; + position:absolute; + margin-left:75px; + top:30px; + border-radius: 4px; + border:2px solid #339999; +} + +#menu3 { + display:none; + position:absolute; + margin-left:139px; + top:30px; + border-radius: 4px; + border:2px solid #339999; +} + +#menu4 { + display:none; + position:absolute; + margin-left:201px; + top:30px; + border-radius: 4px; + border:2px solid #339999; +} + +#menu5 { + display:none; + position:absolute; + margin-left:282px; + top:30px; + border-radius: 4px; + border:2px solid #339999; +} + +#menu6 { + display:none; + position:absolute; + margin-left:360px; + top:30px; + border-radius: 4px; + border:2px solid #339999; +} + +.menu{ + padding:3px 3px; + border-radius: 4px; + border:2px solid #339999; + cursor:pointer; +} + +.options{ + padding:3px 3px; + cursor:pointer; +} + +/* Boutons */ + +#startTask { + background: url(resourcesjs/resourcesimg/go-next.png); + background-repeat:no-repeat; + background-position:center center; + padding-right: 40px; + padding-bottom: 20px; + border-radius: 4px; + border:2px solid black; + cursor:pointer; +} + +#stopTask { + background: url(resourcesjs/resourcesimg/process-stop.png); + background-repeat:no-repeat; + background-position:center center; + padding-right: 40px; + padding-bottom: 20px; + border-radius: 4px; + border:2px solid black; + cursor:pointer; +} + +#newProject { + background: url(resourcesjs/resourcesimg/bookmark-new.png); + background-repeat:no-repeat; + background-position:center center; + padding-right: 40px; + padding-bottom: 20px; + border-radius: 4px; + border:2px solid black; + cursor:pointer; +} + +#newTask { + background: url(resourcesjs/resourcesimg/document-new.png); + background-repeat:no-repeat; + background-position:center center; + padding-right: 40px; + padding-bottom: 20px; + border-radius: 4px; + border:2px solid black; + cursor:pointer; +} + +#note { + background: url(resourcesjs/resourcesimg/notes.png); + background-repeat:no-repeat; + background-position:center center; + padding-right: 40px; + padding-bottom: 20px; + border-radius: 4px; + border:2px solid black; + cursor:pointer; +} + +#alert { + background: url(resourcesjs/resourcesimg/bell.png); + background-repeat:no-repeat; + background-position:center center; + padding-right: 40px; + padding-bottom: 20px; + border-radius: 4px; + border:2px solid black; + cursor:pointer; +} + +.buttons { + margin-top:10px; + margin-bottom:20px +} + +/* Arboresence des tâches */ + +.col1{ + width:33%; + margin-left:0; + position:absolute; + cursor:pointer; +} + +.col2{ + width:33%; + margin-left:32%; + position:absolute; + cursor:pointer; +} + +.col3{ + width:33%; + margin-left:65%; + position:absolute; + cursor:pointer; +} + +#head{ + margin-top:30px; +} + +#head span { + text-align:center; + border-bottom:2px solid #339999; + border-left:2px solid #339999; +} + + +#statutTasks{ + width:50%; +} + +#recapToday{ + width:49%; + margin-left:45%; + text-align:center; +} + +#frame{ + border:2px solid #339999; +} Added: jtimerhtml5/src/html/resourcescss/report.css =================================================================== --- jtimerhtml5/src/html/resourcescss/report.css (rev 0) +++ jtimerhtml5/src/html/resourcescss/report.css 2013-04-26 15:26:52 UTC (rev 28) @@ -0,0 +1,107 @@ +#divRight{ + width:50%; + height:100%; + float:right; + margin:0; + border-style:solid; + border-width:2px; + border-color:#339999; + border-radius: 4px; +} + +#divLeft{ + width:49%; + float:left; + margin:0; + height:100%; +} + +#selectThisWeek{ + background: url(resourcesjs/resourcesimg/date_current.png); + background-repeat:no-repeat; + background-position:center center; + width: 40px; + height: 22px; +} + +#selectLastWeek{ + background: url(resourcesjs/resourcesimg/date_previous.png); + background-repeat:no-repeat; + background-position:center center; + width: 40px; + height: 22px; +} + +#endDate{ + margin-left:7px; + width:70%; +} + +#startDate{ + width:70%; +} + +#textReport{ + width:97%; + height:700px; + margin-left:5px; + margin-top:10px; +} + +#generReport{ + width:15%; + height:30px; + border-style:solid; + border-width:2px; + border-color:#339999; + border-radius: 4px; + cursor:pointer; + position:fixed; + text-align:center; + bottom:5px; +} + +#mailReport{ + width:16%; + height:30px; + border-style:solid; + border-width:2px; + border-color:#339999; + border-radius: 4px; + cursor:pointer; + position:fixed; + margin-left:16%; + text-align:center; + bottom:5px; +} + +#closeReport{ + width:16%; + margin-left:33%; + position:fixed; + bottom:10px; +} + +#optionsReport{ + border-style:solid; + border-width:2px; + border-color:#339999; + height:100%; + border-radius: 4px; +} + +#projectsReport{ + border-style:solid; + border-width:2px; + border-color:#339999; + height:100%; + border-radius: 4px; +} + +#monthReport{ + margin-left:50px; +} + +#yearReport{ + margin-left:24px; +} Added: jtimerhtml5/src/html/resourcescss/resourcesjs/actionsMenus.js =================================================================== --- jtimerhtml5/src/html/resourcescss/resourcesjs/actionsMenus.js (rev 0) +++ jtimerhtml5/src/html/resourcescss/resourcesjs/actionsMenus.js 2013-04-26 15:26:52 UTC (rev 28) @@ -0,0 +1,174 @@ +/* Différente actions des menus et des boutons */ + +function newProject(){ + var nameNewProject = prompt("Nom du Projet à créer :", "" ) + if (nameNewProject=="") { + alert("Erreur : Le nom est vide !") + } + else { + var xhr = new XMLHttpRequest(); + xhr.open("GET", "http://whatever/jtimer/newProject", true); + + xhr.onreadystatechange = function() { + if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) { + alert(xhr.responseText); + } + }; + xhr.send(null); + } + // vérifier si un autre Project n'a pas déjà ce name +} + +function edProject(){ + var newnameProject = prompt("Nouveau nom du Projet :","x") + if (nameNewProject=="") { + alert("Erreur : Le nom est vide !") + } + else { + var xhr = new XMLHttpRequest(); + xhr.open("GET", "http://whatever/jtimer/edProject", true); + + xhr.onreadystatechange = function() { + if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) { + alert(xhr.responseText); + } + }; + xhr.send(null); + } + // vérifier si un autre Project n'a pas déjà ce name +} + +function ofProject(){ + var xhr = new XMLHttpRequest(); + xhr.open("GET", "http://whatever/jtimer/ofProject", true); + + xhr.onreadystatechange = function() { + if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) { + alert(xhr.responseText); + } + }; + xhr.send(null); +} + +function supprProject() { + var bool = confirm("Voulez-vous supprimer le Projet x ?") + if (bool){ + var xhr = new XMLHttpRequest(); + xhr.open("GET", "http://whatever/jtimer/supprProject", true); + + xhr.onreadystatechange = function() { + if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) { + alert(xhr.responseText); + } + }; + xhr.send(null); + } +} + +function newTask() { + var nameNewTask = prompt("Nom de la tâche à créer pour x :", "" ) + if (nameNewTask=="") { + alert("Erreur : Le nom est vide !") + } + else {} + // vérifier si une autre Task n'a pas déjà ce name +} + +function edTask(){ + window.open('editionTask.html','','height=450, width=350, toolbar=no, menubar=no, scrollbars=no, resizable=yes, location=no, status=no') +} + +function ofTask(){ + +} + +function supprTask(){ + var bool = confirm("Voulez-vous supprimer la tâche x ?") + if (bool){} +} + +function startTask(){ + var xhr = new XMLHttpRequest(); + xhr.open("GET", "http://whatever/jtimer/startTask?voilavoila", true); + + xhr.onreadystatechange = function() { + if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) { + alert(xhr.responseText); + } + }; + xhr.send(null); +} + +function stopTask(){ + var xhr = new XMLHttpRequest(); + xhr.open("GET", "http://whatever/jtimer/stopTask", true); + + xhr.onreadystatechange = function() { + if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) { + alert(xhr.responseText); + } + }; + xhr.send(null); +} + +function addAnnotation(){ + var newAnnot = prompt("Annotation pour la tâche x :","") + +} + +function edAlerts(){ + window.open('alerts.html','','height=400, width=600, toolbar=no, menubar=no, scrollbars=no, resizable=yes, location=no, status=no') +} + +function add(nb){ + +} + +function sou(nb){ + +} + +function zero(){ + +} + +function fusion(){ + +} + +function report(){ + window.open('report.html','','height=800, width=1100, toolbar=no, menubar=no, scrollbars=no, resizable=yes, location=no, status=no') +} + +function displayHidden(){ + // uniquement lié à l'interface ? +} + +function systray(){ + +} + +function dStartWeek(){ + +} + +function about(){ + window.open('about.html','','height=405, width=420, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no') +} + +/* Autres */ + +function selecTask(cel, numligne) { + // pour toute les lignes mettre en blanc + var nbLignes = 2; + for (var j=0; j<nbLignes; j++) { + for (var k=0; k<3; k++) + (document.getElementById('cel'+(k+1)+'row'+(j+1))).style.backgroundColor = "#ffffff"; + } + for (var i=0; i<3; i++) + (document.getElementById('cel'+(i+1)+'row'+numligne)).style.backgroundColor = "#00ccff"; + +} +function go(nb){ + (document.getElementById('go'+nb)).style.display = ""; +} Added: jtimerhtml5/src/html/resourcescss/resourcesjs/alerts.js =================================================================== --- jtimerhtml5/src/html/resourcescss/resourcesjs/alerts.js (rev 0) +++ jtimerhtml5/src/html/resourcescss/resourcesjs/alerts.js 2013-04-26 15:26:52 UTC (rev 28) @@ -0,0 +1,17 @@ +// trouver un moyen de supprimer les rows. +var rows = 0; + +function add(){ + rows++; + var thisOne = document.getElementById('listAlerts').innerHTML; + var newOne = "<div id='num"+rows+"'><select><option value='rdt'>REACH_DAILY_TIME</option><option value='rtt'>REACH_TOTAL_TIME</option></select><input type='text' size='2'>h<input type='text' size='2'>m<input type='text' size='2'>s <input type='button' value='X' onclick='suppr("+rows+")'></div>"; + document.getElementById('listAlerts').innerHTML = thisOne + newOne; +} + +function suppr(n){ + document.getElementById("num"+n).innerHTML = ""; +} + +function save(){ + +} Added: jtimerhtml5/src/html/resourcescss/resourcesjs/menu.js =================================================================== --- jtimerhtml5/src/html/resourcescss/resourcesjs/menu.js (rev 0) +++ jtimerhtml5/src/html/resourcescss/resourcesjs/menu.js 2013-04-26 15:26:52 UTC (rev 28) @@ -0,0 +1,43 @@ +var proceed = 0; + +function menu(i){ + if (i==proceed){ + for(var j=0; j<6; j++){ + document.getElementById('menu'+(j+1)).style.display='none'; + document.getElementById('mn'+(j+1)).style.backgroundColor='#ffffff'; + } + proceed = 0; + } + else{ + for(var j=0; j<6; j++){ + document.getElementById('menu'+(j+1)).style.display='none'; + document.getElementById('mn'+(j+1)).style.backgroundColor='#ffffff'; + } + document.getElementById('menu'+i).style.display='block'; + document.getElementById('menu'+i).style.backgroundColor='#00ccff'; + document.getElementById('mn'+i).style.backgroundColor='#00ccff'; + proceed = i; + } +} + +/* Boutons */ + +function over(elem){ + elem.style.backgroundColor = "#339999"; +} + +function out(elem){ + elem.style.backgroundColor = "#ffffff"; +} + +function out2(j){ + if (j!=proceed){ + document.getElementById('mn'+j).style.backgroundColor = "#ffffff"; + } +} + +function over2(k){ + if (k!=proceed){ + document.getElementById('mn'+k).style.backgroundColor = "#339999"; + } +} Added: jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/applications-system.png =================================================================== (Binary files differ) Property changes on: jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/applications-system.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/bell.png =================================================================== (Binary files differ) Property changes on: jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/bell.png ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/bookmark-new.png =================================================================== (Binary files differ) Property changes on: jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/bookmark-new.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/date_current.png =================================================================== (Binary files differ) Property changes on: jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/date_current.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/date_previous.png =================================================================== (Binary files differ) Property changes on: jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/date_previous.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/document-new.png =================================================================== (Binary files differ) Property changes on: jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/document-new.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/go-next.png =================================================================== (Binary files differ) Property changes on: jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/go-next.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/jtimer-logo-orange.jpg =================================================================== (Binary files differ) Property changes on: jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/jtimer-logo-orange.jpg ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/mail-forward.png =================================================================== (Binary files differ) Property changes on: jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/mail-forward.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/notes.png =================================================================== (Binary files differ) Property changes on: jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/notes.png ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + application/octet-stream Added: jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/process-stop.png =================================================================== (Binary files differ) Property changes on: jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/process-stop.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/running.gif =================================================================== (Binary files differ) Property changes on: jtimerhtml5/src/html/resourcescss/resourcesjs/resourcesimg/running.gif ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: jtimerhtml5/src/html/resourcescss/style.css =================================================================== --- jtimerhtml5/src/html/resourcescss/style.css (rev 0) +++ jtimerhtml5/src/html/resourcescss/style.css 2013-04-26 15:26:52 UTC (rev 28) @@ -0,0 +1,14 @@ + +/* Global */ + +/*body{ + margin:0; + padding:0; +}*/ + +footer { + width:100%; + position:fixed; + bottom:0px; + margin:0 +}