示例#1
0
  /** @param aLauncher Launcher being used in background */
  public NuxeoLauncherGUI(NuxeoLauncher aLauncher) {
    launcher = aLauncher;
    // Set OS-specific decorations
    if (PlatformUtils.isMac()) {
      System.setProperty("apple.laf.useScreenMenuBar", "true");
      System.setProperty("com.apple.mrj.application.growbox.intrudes", "false");
      System.setProperty("com.apple.mrj.application.live-resize", "true");
      System.setProperty("com.apple.macos.smallTabs", "true");
    }
    initFrame();
    dumpedConfigMonitor =
        new DefaultFileMonitor(
            new FileListener() {
              @Override
              public void fileDeleted(FileChangeEvent event) {
                // Ignore
              }

              @Override
              public void fileCreated(FileChangeEvent event) {
                updateNuxeoFrame();
              }

              @Override
              public void fileChanged(FileChangeEvent event) {
                updateNuxeoFrame();
              }

              private synchronized void updateNuxeoFrame() {
                waitForFrameLoaded();
                log.debug("Configuration changed. Reloading frame...");
                launcher.init();
                updateServerStatus();
                try {
                  Properties props = new Properties();
                  props.load(new FileReader(getConfigurationGenerator().getDumpedConfig()));
                  nuxeoFrame.updateLogsTab(props.getProperty("log.id"));
                } catch (IOException e) {
                  log.error(e);
                }
              }
            });
    try {
      dumpedConfigMonitor.setRecursive(false);
      FileObject dumpedConfig =
          VFS.getManager().resolveFile(getConfigurationGenerator().getDumpedConfig().getPath());
      dumpedConfigMonitor.addFile(dumpedConfig);
      dumpedConfigMonitor.start();
    } catch (FileSystemException e) {
      throw new RuntimeException("Couldn't find " + getConfigurationGenerator().getNuxeoConf(), e);
    }
  }