Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 21 additions & 17 deletions jabgui/src/main/java/org/jabref/Launcher.java
Original file line number Diff line number Diff line change
Expand Up @@ -55,29 +55,32 @@ public static void main(String[] args) {
Injector.setModelOrService(BuildInfo.class, new BuildInfo());

final JabRefGuiPreferences preferences = JabRefGuiPreferences.getInstance();
Injector.setModelOrService(CliPreferences.class, preferences);
Injector.setModelOrService(GuiPreferences.class, preferences);

// Early exit in case another instance is already running
MultipleInstanceAction instanceAction = handleMultipleAppInstances(args, preferences.getRemotePreferences());
if (instanceAction == MultipleInstanceAction.SHUTDOWN) {
systemExit();
} else if (instanceAction == MultipleInstanceAction.FOCUS) {
// Send focus command to running instance
RemotePreferences remotePreferences = preferences.getRemotePreferences();
RemoteClient remoteClient = new RemoteClient(remotePreferences.getPort());
remoteClient.sendFocus();
systemExit();
}

configureProxy(preferences.getProxyPreferences());
configureSSL(preferences.getSSLPreferences());

ArgumentProcessor argumentProcessor = new ArgumentProcessor(
args,
ArgumentProcessor.Mode.INITIAL_START,
preferences);

if (!argumentProcessor.getGuiCli().usageHelpRequested) {
Injector.setModelOrService(CliPreferences.class, preferences);
Injector.setModelOrService(GuiPreferences.class, preferences);

// Early exit in case another instance is already running
MultipleInstanceAction instanceAction = handleMultipleAppInstances(args, preferences.getRemotePreferences());
if (instanceAction == MultipleInstanceAction.SHUTDOWN) {
systemExit();
} else if (instanceAction == MultipleInstanceAction.FOCUS) {
// Send focus command to running instance
RemotePreferences remotePreferences = preferences.getRemotePreferences();
RemoteClient remoteClient = new RemoteClient(remotePreferences.getPort());
remoteClient.sendFocus();
systemExit();
}

configureProxy(preferences.getProxyPreferences());
configureSSL(preferences.getSSLPreferences());
}

List<UiCommand> uiCommands = argumentProcessor.processArguments();
if (argumentProcessor.shouldShutDown()) {
systemExit();
Expand Down Expand Up @@ -146,6 +149,7 @@ private static void systemExit() {
*/
private static MultipleInstanceAction handleMultipleAppInstances(String[] args, RemotePreferences remotePreferences) {
LOGGER.trace("Checking for remote handling...");

if (remotePreferences.useRemoteServer()) {
// Try to contact already running JabRef
RemoteClient remoteClient = new RemoteClient(remotePreferences.getPort());
Expand Down
4 changes: 4 additions & 0 deletions jabgui/src/main/java/org/jabref/cli/ArgumentProcessor.java
Original file line number Diff line number Diff line change
Expand Up @@ -102,4 +102,8 @@ private void resetPreferences() {
public boolean shouldShutDown() {
return !guiNeeded;
}

public GuiCommandLine getGuiCli() {
return guiCli;
}
}