/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.start.gui; import de.rcenvironment.core.configuration.PersistentSettingsService; import de.rcenvironment.core.utils.incubator.ServiceRegistry; /** * Encapsulates the data stored for the custom workspace chooser dialog. * * @author Robert Mischke */ public final class WorkspaceSettings { private static final String PERSISTENT_SETTINGS_KEY_LAST_WORKSPACE = "rce.workspace.lastLocation"; private static final String PERSISTENT_SETTINGS_KEY_RECENT_WORKSPACES = "rce.workspace.recentLocations"; private static final String PERSISTENT_SETTINGS_KEY_DONT_ASK_AGAIN = "rce.workspace.dontAskAgain"; private static final String DONT_ASK_AGAIN_TRUE_VALUE = "true"; private static final WorkspaceSettings INSTANCE = new WorkspaceSettings(); private PersistentSettingsService pss; private WorkspaceSettings() { pss = ServiceRegistry.createAccessFor(this).getService(PersistentSettingsService.class); } public static WorkspaceSettings getInstance() { return INSTANCE; } public boolean getDontAskAgainSetting() { return DONT_ASK_AGAIN_TRUE_VALUE.equals(pss.readStringValue(PERSISTENT_SETTINGS_KEY_DONT_ASK_AGAIN)); } /** * Sets the new value for the setting to suppress the workspace chooser dialog and use the last location. * * @param dontAskValue the new value */ public void setDontAskAgainSetting(boolean dontAskValue) { if (dontAskValue) { pss.saveStringValue(PERSISTENT_SETTINGS_KEY_DONT_ASK_AGAIN, DONT_ASK_AGAIN_TRUE_VALUE); } else { pss.delete(PERSISTENT_SETTINGS_KEY_DONT_ASK_AGAIN); } } public String getLastLocation() { return pss.readStringValue(PERSISTENT_SETTINGS_KEY_LAST_WORKSPACE); } String getRecentLocationData() { return pss.readStringValue(PERSISTENT_SETTINGS_KEY_RECENT_WORKSPACES); } void updateLocationHistory(String currentWorkspace, String recentLocationData) { pss.saveStringValue(PERSISTENT_SETTINGS_KEY_LAST_WORKSPACE, currentWorkspace); pss.saveStringValue(PERSISTENT_SETTINGS_KEY_RECENT_WORKSPACES, recentLocationData); } }