ko-archetype/src/main/resources/archetype-resources/src/main/resources/index.html
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Mon, 13 May 2013 16:31:21 +0200
changeset 1205 1901da93f3f2
parent 1202 5f04bdbc6ee1
child 1209 bf622f485775
permissions -rw-r--r--
Better description and use substitution to generate the correct package, artifactId and version
jaroslav@1201
     1
<?xml version="1.0" encoding="UTF-8"?>
jaroslav@1202
     2
jaroslav@1202
     3
<!--
jaroslav@1202
     4
    Copied from knockout.js Twitter example:
jaroslav@1202
     5
    http://knockoutjs.com/examples/twitter.html
jaroslav@1202
     6
-->
jaroslav@1202
     7
jaroslav@1201
     8
<!DOCTYPE html>
jaroslav@1201
     9
<html xmlns="http://www.w3.org/1999/xhtml">
jaroslav@1201
    10
    <head>
jaroslav@1202
    11
        <title>Bck2Brwsr's Twitter</title>
jaroslav@1201
    12
    </head>
jaroslav@1201
    13
    <body>
jaroslav@1202
    14
        <link href='twitterExample.css' rel='Stylesheet' ></link>
jaroslav@1202
    15
        
jaroslav@1202
    16
        <style type='text/css'>
jaroslav@1202
    17
           .liveExample select { height: 1.7em; }
jaroslav@1202
    18
           .liveExample button { height: 2em; }
jaroslav@1202
    19
        </style>
jaroslav@1202
    20
        
jaroslav@1202
    21
        
jaroslav@1202
    22
        <h2>Bck2Brwsr's Twitter</h2>
jaroslav@1202
    23
        
jaroslav@1201
    24
        <p>
jaroslav@1205
    25
        This code is based on original 
jaroslav@1205
    26
        <a href="http://knockoutjs.com/examples/twitter.html">knockout.js
jaroslav@1205
    27
        Twitter example</a> and
jaroslav@1205
    28
        uses almost unmodified HTML page. It just changes the model. The model
jaroslav@1205
    29
        is written in Java language.The Java source code has about 190 lines 
jaroslav@1202
    30
        - in fact it may even be more dense than the original JavaScript model.
jaroslav@1201
    31
        </p>
jaroslav@1205
    32
        <p>
jaroslav@1205
    33
        The project has two profiles. Either it executes in real Java virtual
jaroslav@1205
    34
        machine and renders using JavaFX's WebView (use <code>fxbrwsr</code> profile
jaroslav@1205
    35
        - the default). It can also run directly in a browser via
jaroslav@1205
    36
        <a href="http://bck2brwsr.apidesign.org">Bck2Brwsr</a> virtual machine
jaroslav@1205
    37
        (use <code>bck2brwsr</code> profile).
jaroslav@1205
    38
        </p>
jaroslav@1201
    39
        
jaroslav@1202
    40
        <div class='liveExample'>
jaroslav@1202
    41
            <div class='configuration'>
jaroslav@1202
    42
                <div class='listChooser'>
jaroslav@1202
    43
                    <button data-bind='click: deleteList, enable: activeTweetersName'>Delete</button>
jaroslav@1202
    44
                    <button data-bind='click: saveChanges, enable: hasUnsavedChanges'>Save</button> 
jaroslav@1202
    45
                    <select data-bind='options: savedLists, optionsValue: "name", value: activeTweetersName'> </select>
jaroslav@1202
    46
                </div>
jaroslav@1202
    47
jaroslav@1202
    48
                <p>Currently viewing <span data-bind='text: activeTweetersCount'> </span> user(s):</p>
jaroslav@1202
    49
                <div class='currentUsers' >
jaroslav@1202
    50
                    <ul data-bind='foreach: activeTweeters'>
jaroslav@1202
    51
                        <li>
jaroslav@1202
    52
                            <button data-bind='click: $root.removeUser'>Remove</button>
jaroslav@1202
    53
                            <div data-bind='text: $data'> </div>
jaroslav@1202
    54
                        </li>
jaroslav@1202
    55
                    </ul>
jaroslav@1202
    56
                </div>
jaroslav@1202
    57
jaroslav@1202
    58
                <form data-bind='submit: addUser'>
jaroslav@1202
    59
                    <label>Add user:</label>
jaroslav@1202
    60
                    <input data-bind='value: userNameToAdd, valueUpdate: "keyup", css: { invalid: !userNameToAddIsValid() }' />
jaroslav@1202
    61
                    <button data-bind='enable: userNameToAddIsValid' type='submit'>Add</button>
jaroslav@1202
    62
                </form>
jaroslav@1202
    63
            </div>
jaroslav@1202
    64
            <div class='tweets'>
jaroslav@1202
    65
                <div class='loadingIndicator'>Loading...</div>
jaroslav@1202
    66
                <table data-bind='foreach: currentTweets' width='100%'>
jaroslav@1202
    67
                    <tr>
jaroslav@1202
    68
                        <td><img data-bind='attr: { src: profile_image_url }' /></td>
jaroslav@1202
    69
                        <td>
jaroslav@1202
    70
                            <a class='twitterUser' data-bind='attr: { href: userUrl }, text: from_user'> </a>
jaroslav@1202
    71
                            <span data-bind='html: html'> </span>
jaroslav@1202
    72
                            <div class='tweetInfo' data-bind='text: created_at'> </div>
jaroslav@1202
    73
                        </td>
jaroslav@1202
    74
                    </tr>
jaroslav@1202
    75
                </table>
jaroslav@1202
    76
            </div>
jaroslav@1202
    77
        </div>
jaroslav@1201
    78
        
jaroslav@1201
    79
        <script src="bck2brwsr.js"></script>
jaroslav@1201
    80
        <script type="text/javascript">
jaroslav@1205
    81
            var vm = bck2brwsr('${artifactId}-${version}.jar');
jaroslav@1205
    82
            vm.loadClass('${package}.TwitterClient');
jaroslav@1201
    83
        </script>
jaroslav@1202
    84
jaroslav@1202
    85
jaroslav@1201
    86
    </body>
jaroslav@1201
    87
</html>