Beispiel #1
0
  public boolean restartApplicationWithScript() {
    String command = null;
    try {
      if (Spark.isWindows()) {
        String sparkExe =
            getCommandPath() + File.separator + Default.getString(Default.SHORT_NAME) + ".exe";
        if (!new File(sparkExe).exists()) {
          Log.warning("Client EXE file does not exist");
          return false;
        }
        String starterExe = getCommandPath() + File.separator + "starter.exe";
        if (!new File(starterExe).exists()) {
          Log.warning("Starter EXE file does not exist");
          return false;
        }
        command = starterExe + " \"" + sparkExe + "\"";
      } else if (Spark.isLinux()) {
        command = getCommandPath() + File.separator + Default.getString(Default.SHORT_NAME);
        if (!new File(command).exists()) {
          Log.warning("Client startup script does not exist");
          return false;
        }
      } else if (Spark.isMac()) {
        command = "open -a " + Default.getString(Default.SHORT_NAME);
      }

      Runtime.getRuntime().exec(command);
      System.exit(0);
      return true;
    } catch (IOException e) {
      Log.error("Error trying to restart application with script", e);
      return false;
    }
  }
  @BeforeClass
  public static void setup() {
    Spark.setPort(PORT);

    Spark.before(
        new Filter() {
          @Override
          public void handle(Request request, Response response) {
            response.header("FOZ", "BAZ");
          }
        });

    Books.main(null);

    Spark.after(
        new Filter() {
          @Override
          public void handle(Request request, Response response) {
            response.header("FOO", "BAR");
          }
        });
    try {
      Thread.sleep(500);
    } catch (Exception e) {
    }
  }
Beispiel #3
0
  /** Displays the Spark error log. */
  private void showErrorLog() {
    final File logDir = new File(Spark.getLogDirectory(), "errors.log");

    // Read file and show
    final String errorLogs = URLFileSystem.getContents(logDir);

    final JFrame frame = new JFrame(Res.getString("title.client.logs"));
    frame.setLayout(new BorderLayout());
    frame.setIconImage(SparkManager.getApplicationImage().getImage());

    final JTextPane pane = new JTextPane();
    pane.setBackground(Color.white);
    pane.setFont(new Font("Dialog", Font.PLAIN, 12));
    pane.setEditable(false);
    pane.setText(errorLogs);

    frame.add(new JScrollPane(pane), BorderLayout.CENTER);

    final JButton copyButton = new JButton(Res.getString("button.copy.to.clipboard"));
    frame.add(copyButton, BorderLayout.SOUTH);

    copyButton.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            SparkManager.setClipboard(errorLogs);
            copyButton.setEnabled(false);
          }
        });

    frame.pack();
    frame.setSize(600, 400);

    GraphicUtils.centerWindowOnScreen(frame);
    frame.setVisible(true);
  }
  public static void main(String[] args) throws UnknownHostException {
    MongoClient client = new MongoClient(new ServerAddress("localhost", 27017));
    final DB db = client.getDB("course");

    Spark.get(
        new Route("/") {
          @Override
          public Object handle(Request request, Response response) {
            DBCollection users = db.getCollection("user");
            DBObject user = users.findOne();
            StringWriter writer = new StringWriter();
            Configuration configuration = new Configuration();
            configuration.setClassForTemplateLoading(
                HelloWorldMongoDBSparkFreemarkerStyle.class, "/");

            try {
              Template template = configuration.getTemplate("hello.ftl");
              template.process(user, writer);
            } catch (Exception e) {
              halt(100);
              e.printStackTrace();
            }

            return writer;
          }
        });
  }
Beispiel #5
0
  /**
   * Notifies all {@link MainWindowListener}s that the <code>MainWindow</code> has been activated.
   */
  private void fireWindowActivated() {
    for (MainWindowListener listener : listeners) {
      listener.mainWindowActivated();
    }

    if (Spark.isMac()) {
      setJMenuBar(mainWindowBar);
    }
  }
Beispiel #6
0
  /** Setup the Main Toolbar with File, Tools and Help. */
  private void buildMenu() {

    // setup file menu
    final JMenuItem exitMenuItem = new JMenuItem();

    // Setup ResourceUtils
    ResourceUtils.resButton(connectMenu, "&" + Default.getString(Default.APPLICATION_NAME));
    ResourceUtils.resButton(contactsMenu, Res.getString("menuitem.contacts"));
    ResourceUtils.resButton(actionsMenu, Res.getString("menuitem.actions"));
    ResourceUtils.resButton(exitMenuItem, Res.getString("menuitem.exit"));
    ResourceUtils.resButton(pluginsMenu, Res.getString("menuitem.plugins"));

    exitMenuItem.setIcon(null);

    mainWindowBar.add(connectMenu);
    mainWindowBar.add(contactsMenu);
    mainWindowBar.add(actionsMenu);
    // mainWindowBar.add(pluginsMenu);
    mainWindowBar.add(helpMenu);

    preferenceMenuItem = new JMenuItem(SparkRes.getImageIcon(SparkRes.PREFERENCES_IMAGE));
    preferenceMenuItem.setText(Res.getString("title.spark.preferences"));
    preferenceMenuItem.addActionListener(this);
    connectMenu.add(preferenceMenuItem);

    alwaysOnTopItem = new JCheckBoxMenuItem();
    ResourceUtils.resButton(alwaysOnTopItem, Res.getString("menuitem.always.on.top"));
    alwaysOnTopItem.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent actionEvent) {
            if (alwaysOnTopItem.isSelected()) {
              SettingsManager.getLocalPreferences().setMainWindowAlwaysOnTop(true);
              MainWindow.getInstance().setAlwaysOnTop(true);
            } else {
              SettingsManager.getLocalPreferences().setMainWindowAlwaysOnTop(false);
              MainWindow.getInstance().setAlwaysOnTop(false);
            }
          }
        });

    if (SettingsManager.getLocalPreferences().isMainWindowAlwaysOnTop()) {
      alwaysOnTopItem.setSelected(true);
      this.setAlwaysOnTop(true);
    }
    connectMenu.add(alwaysOnTopItem);

    if (!Default.getBoolean("DISABLE_EXIT")) connectMenu.addSeparator();

    // EventQueue.invokeLater(new Runnable() {
    //	public void run() {

    JMenuItem logoutMenuItem = new JMenuItem();
    ResourceUtils.resButton(logoutMenuItem, Res.getString("menuitem.logout.no.status"));
    logoutMenuItem.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            logout(false);
          }
        });

    JMenuItem logoutWithStatus = new JMenuItem();
    ResourceUtils.resButton(logoutWithStatus, Res.getString("menuitem.logout.with.status"));
    logoutWithStatus.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            logout(true);
          }
        });

    if ((Spark.isWindows() || Spark.isLinux() || Spark.isMac())
        && !Default.getBoolean("DISABLE_EXIT")) {
      connectMenu.add(logoutMenuItem);
      connectMenu.add(logoutWithStatus);
      connectMenu.addSeparator();
    }

    if (!Default.getBoolean("DISABLE_EXIT")) {
      connectMenu.add(exitMenuItem);
    }

    JMenuItem updateMenu = new JMenuItem("", SparkRes.getImageIcon(SparkRes.DOWNLOAD_16x16));
    ResourceUtils.resButton(updateMenu, Res.getString("menuitem.check.for.updates"));
    updateMenu.addActionListener(
        new ActionListener() {
          @Override
          public void actionPerformed(ActionEvent e) {
            checkForUpdates(true);
          }
        });

    // Add Error Dialog Viewer
    final Action viewErrors =
        new AbstractAction() {
          private static final long serialVersionUID = -420926784631340112L;

          public void actionPerformed(ActionEvent e) {
            File logDir = new File(Spark.getLogDirectory(), "errors.log");
            if (!logDir.exists()) {
              JOptionPane.showMessageDialog(
                  SparkManager.getMainWindow(),
                  "No error logs found.",
                  "Error Log",
                  JOptionPane.INFORMATION_MESSAGE);
            } else {
              showErrorLog();
            }
          }
        };

    viewErrors.putValue(Action.NAME, Res.getString("menuitem.view.logs"));

    final Action viewHelpGuideAction =
        new AbstractAction() {

          final String url = Default.getString(Default.HELP_USER_GUIDE);
          private static final long serialVersionUID = 2680369963282231348L;

          public void actionPerformed(ActionEvent actionEvent) {
            try {

              BrowserLauncher.openURL(url);
            } catch (Exception e) {
              Log.error("Unable to load online help.", e);
            }
          }
        };

    if (!Default.getBoolean("HELP_USER_GUIDE_DISABLED")) {
      viewHelpGuideAction.putValue(Action.NAME, Res.getString("menuitem.user.guide"));
      viewHelpGuideAction.putValue(
          Action.SMALL_ICON, SparkRes.getImageIcon(SparkRes.SMALL_QUESTION));
      helpMenu.add(viewHelpGuideAction);
    }
    if (!Default.getBoolean("HELP_FORUM_DISABLED")) {
      helpMenu.add(sparkforumItem);
    }

    // Build Help Menu
    if (!Default.getBoolean(Default.DISABLE_UPDATES)) {
      helpMenu.add(updateMenu);
    }
    helpMenu.addSeparator();
    helpMenu.add(viewErrors);
    helpMenu.add(menuAbout);

    // ResourceUtils - Adds mnemonics
    ResourceUtils.resButton(preferenceMenuItem, Res.getString("menuitem.preferences"));
    ResourceUtils.resButton(helpMenu, Res.getString("menuitem.help"));
    ResourceUtils.resButton(menuAbout, Res.getString("menuitem.about"));

    if (Default.getString("HELP_FORUM_TEXT").length() > 0) {
      ResourceUtils.resButton(sparkforumItem, Default.getString("HELP_FORUM_TEXT"));
    } else {
      ResourceUtils.resButton(sparkforumItem, Res.getString("menuitem.online.help"));
    }
    // Register shutdown with the exit menu.
    exitMenuItem.addActionListener(
        new AbstractAction() {
          private static final long serialVersionUID = -2301236575241532698L;

          public void actionPerformed(ActionEvent e) {
            shutdown();
          }
        });

    sparkforumItem.addActionListener(
        new AbstractAction() {
          private static final long serialVersionUID = -1423433460333010339L;

          final String url = Default.getString("HELP_FORUM");

          public void actionPerformed(ActionEvent e) {
            try {
              BrowserLauncher.openURL(url);
            } catch (Exception browserException) {
              Log.error("Error launching browser:", browserException);
            }
          }
        });

    // Show About Box
    menuAbout.addActionListener(
        new AbstractAction() {
          private static final long serialVersionUID = -7173666373051354502L;

          public void actionPerformed(ActionEvent e) {
            showAboutBox();
          }
        });

    if (!Default.getBoolean("DISABLE_UPDATES")) {
      // Execute spark update checker after one minute.
      final TimerTask task =
          new SwingTimerTask() {
            public void doRun() {
              checkForUpdates(false);
            }
          };

      TaskEngine.getInstance().schedule(task, 60000);
    }

    if (SettingsManager.getLocalPreferences().isDebuggerEnabled()) {
      JMenuItem rawPackets = new JMenuItem(SparkRes.getImageIcon(SparkRes.TRAY_IMAGE));
      rawPackets.setText("Send Packets");
      rawPackets.addActionListener(
          new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
              new RawPacketSender();
            }
          });

      connectMenu.add(rawPackets, 2);
    }
  }