Advertisement
jbjares2

Untitled

Jul 28th, 2015
345
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ========================================================================
  2. idex.html
  3. ====================================================
  4. <!DOCTYPE html>
  5. <html>
  6. <head>
  7. <meta charset="utf-8">
  8. <title>Directed Graph Editor</title>
  9. <!-- Latest compiled and minified CSS -->
  10. <link rel="stylesheet"
  11.     href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
  12.  
  13. <!-- Optional theme -->
  14. <link rel="stylesheet"
  15.     href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css">
  16.  
  17.  
  18. <script src="static/jquery/jquery-2.1.4.js"></script>
  19. </head>
  20.  
  21. <body>
  22. <div class="well well-lg">
  23.     <nav class="navbar navbar-default">
  24.       <div class="container-fluid">
  25.         <!-- Brand and toggle get grouped for better mobile display -->
  26.         <div class="navbar-header">
  27.           <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
  28.             <span class="sr-only">Toggle navigation</span>
  29.             <span class="icon-bar"></span>
  30.             <span class="icon-bar"></span>
  31.             <span class="icon-bar"></span>
  32.           </button>
  33.           <a class="navbar-brand" href="#">Linkedit (beta)</a>
  34.         </div>
  35.         <div></div>
  36.         <!-- Collect the nav links, forms, and other content for toggling -->
  37.         <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
  38.           <ul class="nav navbar-nav">
  39.             <li class="dropdown">
  40.               <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Add Data Set<span class="caret"></span></a>
  41.               <ul class="dropdown-menu">
  42.                 <li><a href="#">Action</a></li>
  43.                 <li><a href="#">Another action</a></li>
  44.                 <li><a href="#">Something else here</a></li>
  45.                 <li><a href="#">Separated link</a></li>
  46.                 <li role="separator" class="divider"></li>
  47.                 <li><a href="#">Add more...</a></li>
  48.               </ul>
  49.             </li>
  50.            
  51.           </ul>
  52. <!-- action="/JVisualRDFApp/RdfToJsonServlet" -->
  53.         <div class="navbar-form navbar-left">
  54.             <button onclick="test()" class="btn btn-default">Test</button>
  55.         </div>
  56.        
  57.          <!--  
  58.          <ul class="nav navbar-nav">
  59.             <li class="active"><a href="#">Edit Mode <span class="sr-only">(current)</span></a></li>
  60.           </ul>
  61.           <ul class="nav navbar-nav navbar-right">
  62.             <ul class="nav nav-pills">
  63.               <li id="helpmeButton" class="inactive">
  64.                 <a href="#" onclick="showHelpMe()" >Help</a>
  65.               </li>
  66.             </ul>
  67.           </ul>
  68.            
  69.         </div><!-- /.navbar-collapse -->
  70.       </div><!-- /.container-fluid -->
  71.     </nav>
  72.    
  73.         <div class="container">
  74.             <link rel="import" href="grapheditcontainer.html">
  75.         </div>
  76.    
  77.     <div id="helpmeMessage" class="alert alert-info alert-dismissible hide" role="alert">
  78.         <strong>Help!</strong>
  79.         <p>Click in the open space to add a node, drag from one node to another to add an edge.</p>
  80.         <p>Ctrl-drag a node to move the graph layout.</p>
  81.         <p>Click a node or an edge to select it.</p></BR>
  82.         <p>When a node is selected: R toggles reflexivity, Delete removes the node.</p>
  83.         <p>When an edge is selected: L(eft), R(ight), B(oth) change direction, Delete removes the edge.</p>
  84.     </div>
  85.    
  86.    
  87. </div>
  88.  
  89.  
  90.  
  91. </body>
  92. </html>
  93. <!-- Latest compiled and minified JavaScript -->
  94. <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
  95. <script type="text/javascript">
  96.  
  97. function test(){
  98.     postData = { nodes: nodes, links: links };
  99.     jsonPostdata = JSON.stringify(postData);
  100.     graphAsJson = "graphAsJson=" + jsonPostdata;
  101.  
  102.     $.ajax({
  103.         type: "POST",
  104.         url: "http://localhost:8080/JVisualRDFApp/RdfToJsonServlet",
  105.         dataType: "json",
  106.         data: graphAsJson,
  107.         success: function (msg) {
  108.             if (msg) {
  109.                 alert("Somebody" + name + " was added in list !");
  110.                 location.reload(true);
  111.             } else {
  112.                 alert("Cannot add to list !");
  113.             }
  114.         },
  115.  
  116.        
  117.     });
  118.    
  119. }
  120.  
  121. function showHelpMe(){
  122.     $(function(){
  123.         helpmeMessageHasHideClass = $('#helpmeMessage').hasClass('hide');
  124.         helpmeButtonHasActiveClass = $("#helpmeButton").hasClass('inactive');
  125.        
  126.         console.log("helpmeMessageHasHideClass: "+helpmeMessageHasHideClass);
  127.         console.log("helpmeButtonHasActiveClass: "+helpmeButtonHasActiveClass);
  128.        
  129.         if(helpmeMessageHasHideClass && helpmeButtonHasActiveClass){
  130.               $("#helpmeMessage").removeClass('hide');
  131.               $("#helpmeButton").removeClass('inactive');
  132.               $("#helpmeButton").addClass('active');
  133.         }
  134.        
  135.         if(!helpmeMessageHasHideClass && !helpmeButtonHasActiveClass){
  136.               $("#helpmeMessage").addClass('hide');
  137.               $("#helpmeButton").removeClass('active');
  138.               $("#helpmeButton").addClass('inactive');
  139.         }
  140.  
  141.     });
  142. }
  143.  
  144. </script>
  145.    
  146. ========================================================================
  147. Java Servlet:
  148. ========================================================================
  149. package com.jbjares.jvisualrdf.servlet;
  150.  
  151. import java.io.IOException;
  152. import java.io.Writer;
  153. import java.util.List;
  154.  
  155. import javax.servlet.ServletException;
  156. import javax.servlet.annotation.WebServlet;
  157. import javax.servlet.http.HttpServlet;
  158. import javax.servlet.http.HttpServletRequest;
  159. import javax.servlet.http.HttpServletResponse;
  160.  
  161. import com.google.gson.Gson;
  162. import com.google.gson.GsonBuilder;
  163. import com.jbjares.jvisualrdf.graph.json.in.GraphJsonIn;
  164. import com.jbjares.jvisualrdf.graph.json.in.Link;
  165. import com.jbjares.jvisualrdf.graph.json.out.GraphJsonOut;
  166.  
  167. /**
  168.  * Servlet implementation class RdfToJsonServlet
  169.  */
  170. @WebServlet("/RdfToJsonServlet")
  171. public class RdfToJsonServlet extends HttpServlet {
  172.     private static final long serialVersionUID = 1L;
  173.    
  174.     private static final String resultJson = "{\"nodes\": [{\"name\": \"g: visualRDF\", "+
  175.             "\"uri\": \"http: \\\\graves.cl\\/visualRDF\", "+
  176.             "\"type\": \"uri\", "+
  177.             "\"reflexive\": true, "+
  178.             "\"id\": 0 "+
  179.         "}, "+
  180.         "{ "+
  181.             "\"name\": \"http: \\\\alvaro.graves.cl\", "+
  182.             "\"uri\": \"http: \\\\alvaro.graves.cl\", "+
  183.             "\"type\": \"uri\", "+
  184.             "\"reflexive\": false, "+
  185.             "\"id\": 1 "+
  186.         "}, "+
  187.         "{ "+
  188.             "\"name\": \"http: \\\\github.com\\/alangrafu\\/visualRDF\", "+
  189.             "\"uri\": \"http: \\\\github.com\\/alangrafu\\/visualRDF\", "+
  190.             "\"type\": \"uri\", "+
  191.             "\"reflexive\": false, "+
  192.             "\"id\": 2 "+
  193.         "}, "+
  194.         "{ "+
  195.             "\"name\": \"g:visualRDF\\/css\\/bootstrap-responsive.min.css\", "+
  196.             "\"uri\": \"http: \\\\graves.cl\\/visualRDF\\/css\\/bootstrap-responsive.min.css\", "+
  197.             "\"type\": \"uri\", "+
  198.             "\"reflexive\": false, "+
  199.             "\"id\": 3 "+
  200.         "}, "+
  201.         "{ "+
  202.             "\"name\": \"g:visualRDF\\/css\\/bootstrap.min.css\", "+
  203.             "\"uri\": \"http:\\\\graves.cl\\/visualRDF\\/css\\/bootstrap.min.css\", "+
  204.             "\"type\": \"uri\", "+
  205.             "\"reflexive\": false, "+
  206.             "\"id\": 4 "+
  207.             "}, "+
  208.             "{ "+
  209.                 "\"name\": \"jbjares\", "+
  210.                 "\"uri\": \"http:\\\\jbjares\", "+
  211.                 "\"type\": \"uri\", "+
  212.                 "\"reflexive\": true, "+
  213.                 "\"id\": 5 "+
  214.             "} "+
  215.     "], "+
  216.     "\"links\": [ "+
  217.     "{ "+
  218.             "\"source\": 0, "+
  219.             "\"target\": 1, "+
  220.             "\"name\": \"dc: creator\", "+
  221.             "\"right\": true, "+
  222.             "\"felt\": false, "+
  223.             "\"value\": 10 "+
  224.         "}, "+
  225.         "{ "+
  226.             "\"source\": 0, "+
  227.             "\"target\": 2, "+
  228.             "\"name\": \"dc:source\", "+
  229.             "\"right\": true, "+
  230.             "\"felt\": false, "+
  231.             "\"value\": 10 "+
  232.         "}, "+
  233.         "{ "+
  234.             "\"source\": 0, "+
  235.             "\"target\": 3, "+
  236.             "\"name\": \"xhtml:stylesheet\", "+
  237.             "\"right\": true, "+
  238.             "\"felt\": false, "+
  239.             "\"value\": 10 "+
  240.         "}, "+
  241.         "{ "+
  242.             "\"source\": 0, "+
  243.             "\"target\": 4, "+
  244.             "\"name\": \"xhtml:stylesheet\", "+
  245.             "\"right\": true, "+
  246.             "\"felt\": false, "+
  247.             "\"value\": 10 "+
  248.         "} "+
  249.     "] "+
  250.     "} ";
  251.    
  252.    
  253.     /**
  254.      * @see HttpServlet#HttpServlet()
  255.      */
  256.     public RdfToJsonServlet() {
  257.         super();
  258.     }
  259.  
  260.     /**
  261.      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  262.      */
  263.     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  264.         doExecute(request, response);
  265.     }
  266.  
  267.     /**
  268.      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  269.      */
  270.     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  271.         doExecute(request, response);
  272.     }
  273.    
  274.     /**
  275.      * @see HttpServlet#doExecute(HttpServletRequest request, HttpServletResponse response)
  276.      */
  277.     protected void doExecute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  278.         Writer writer = response.getWriter();
  279.         String graphAsJson = request.getParameter("graphAsJson")==null?null:request.getParameter("graphAsJson");
  280.         if(graphAsJson!=null){
  281.             request.getSession().setAttribute("grapAsJson", graphAsJson);
  282.         }else{
  283.             graphAsJson = request.getSession().getAttribute("grapAsJson")==null?null:request.getSession().getAttribute("grapAsJson").toString();
  284.             request.getSession().invalidate();
  285.         }
  286.        
  287.         if(graphAsJson==null){
  288.             writer.write(resultJson);          
  289.         }else{
  290.             Gson gson = new GsonBuilder().create();
  291.             GraphJsonIn graphIn = null;
  292.             GraphJsonOut graphOut = null;
  293.             graphIn = gson.fromJson(graphAsJson, GraphJsonIn.class);
  294.             graphOut = new GraphJsonOut(graphIn.getNodes(),graphIn.getLinks());
  295.            
  296.             String graphOutJsonStr = gson.toJson(graphOut);
  297.             writer.write(graphOutJsonStr);
  298.             request.getSession().setAttribute("grapAsJson", graphAsJson);
  299.         }
  300.         writer.flush();
  301.         writer.close();
  302.  
  303.     }
  304.  
  305. }
  306.  
  307. ========================================================================
  308. Dependencies:
  309. ========================================================================
  310.  
  311.         <dependency>
  312.             <groupId>com.google.code.gson</groupId>
  313.             <artifactId>gson</artifactId>
  314.             <version>2.2.4</version>
  315.         </dependency>
  316.  
  317.  
  318. ========================================================================
  319. More Details
  320. ========================================================================
  321. Send an email to: jbjares@gmail.com
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement