minesweeper/src/main/java/org/apidesign/demo/minesweeper/Main.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Thu, 24 Apr 2014 12:37:28 +0200
branchibrwsr
changeset 134 dad4f0d41b9f
parent 125 d7b40912b16d
child 140 6dfda3dedf1a
permissions -rw-r--r--
Version that works with latest ibrwsr
     1 /**
     2  * The MIT License (MIT)
     3  *
     4  * Copyright (C) 2013 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
     5  *
     6  * Permission is hereby granted, free of charge, to any person obtaining a copy
     7  * of this software and associated documentation files (the "Software"), to deal
     8  * in the Software without restriction, including without limitation the rights
     9  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    10  * copies of the Software, and to permit persons to whom the Software is
    11  * furnished to do so, subject to the following conditions:
    12  *
    13  * The above copyright notice and this permission notice shall be included in
    14  * all copies or substantial portions of the Software.
    15  *
    16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    21  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    22  * THE SOFTWARE.
    23  */
    24 package org.apidesign.demo.minesweeper;
    25 
    26 import java.io.File;
    27 import java.net.URL;
    28 import java.util.logging.ConsoleHandler;
    29 import java.util.logging.Level;
    30 import java.util.logging.Logger;
    31 import net.java.html.boot.BrowserBuilder;
    32 import org.netbeans.api.nbrwsr.OpenHTMLRegistration;
    33 import org.openide.awt.ActionID;
    34 import org.openide.awt.ActionReference;
    35 import org.openide.awt.ActionReferences;
    36 
    37 
    38 /** Bootstrap and initialization. */
    39 public final class Main {
    40     private Main() {
    41     }
    42 
    43     /** Launches the browser */
    44     public static void main(String... args) throws Exception {
    45         File h = new File(System.getProperty("user.home"));
    46         File m = new File(h, "MineSweeper.app");
    47         System.err.println("mwd : " + m.getPath());
    48         System.setProperty("browser.rootdir", m.getPath());
    49         
    50         BrowserBuilder.newBrowser().
    51             loadPage("pages/index.html").
    52             loadClass(MinesModel.class).
    53             invoke("main", args).
    54             showAndWait();
    55         System.exit(0);
    56     }
    57     
    58     //
    59     // the following annotations generate registration for NetBeans,
    60     // they are harmless in other packaging schemes
    61     //
    62     
    63     @ActionID(
    64             category = "Games",
    65             id = "org.apidesign.demo.minesweeper"
    66     )
    67     @OpenHTMLRegistration(
    68         url="index.html",
    69         displayName = "Play Minesweeper!",
    70         iconBase = "org/apidesign/demo/minesweeper/ko4j.png"
    71     )
    72     @ActionReferences({
    73         @ActionReference(path = "Menu/Window"),
    74         @ActionReference(path = "Toolbars/Games")
    75     })
    76     //
    77     // end of NetBeans actions registration
    78     //
    79     
    80     /** Called when page is ready */
    81     public static void onPageLoad() throws Exception {
    82         Mines m = new Mines();
    83         m.applyBindings();
    84     }
    85 }