public void requestStop() { PreferenceManager.getInstance().save(); try { WeaponOrderHandler.saveWeaponOrderFile(); } catch (IOException e) { System.out.println("Error saving custom weapon orders!"); e.printStackTrace(); } try { QuirksHandler.saveCustomQuirksList(); } catch (IOException e) { System.out.println("Error saving quirks override!"); e.printStackTrace(); } stop = true; }
/** Creates new MapSettings */ private MapSettings() { this(megamek.common.preference.PreferenceManager.getClientPreferences().getBoardWidth(), megamek.common.preference.PreferenceManager.getClientPreferences().getBoardHeight(), megamek.common.preference.PreferenceManager.getClientPreferences().getMapWidth(), megamek.common.preference.PreferenceManager.getClientPreferences().getMapHeight()); }
protected void load(String fileName) { InputStream is = null; try { is = new FileInputStream(new File(fileName)); } catch (FileNotFoundException e) { return; } try { JAXBContext jc = JAXBContext.newInstance(Settings.class); Unmarshaller um = jc.createUnmarshaller(); Settings opts = (Settings) um.unmarshal(MegaMekXmlUtil.createSafeXmlSource(is)); for (Store store : opts.stores) { if (CLIENT_SETTINGS_STORE_NAME.equals(store.name)) { for (XmlProperty prop : store.preferences) { clientPreferenceStore.putValue(prop.key, prop.value); } } else { IPreferenceStore ips = getPreferenceStore(store.name); for (XmlProperty prop : store.preferences) { ips.putValue(prop.key, prop.value); } } } } catch (JAXBException | SAXException | ParserConfigurationException ex) { System.err.println("Error loading XML for client settings: " + ex.getMessage()); //$NON-NLS-1$ ex.printStackTrace(); } }
@Test public void testSaveAndLoad() throws IOException { File f = tmpFolder.newFile("test-client-settings.xml"); testMe.getPreferenceStore(PreferenceManager.CLIENT_SETTINGS_STORE_NAME).setValue(LOCALE_KEY, Locale.GERMAN.getLanguage()); testMe.getPreferenceStore(GUI_PREFERENCES_STORE).setValue(DAMAGE_LEVEL_KEY, true); testMe.save(f); assertTrue(f.exists()); assertTrue(f.length() > 0); testMe.load(f.toString()); assertEquals(Locale.GERMAN.getLanguage(), testMe.getPreferenceStore(PreferenceManager.CLIENT_SETTINGS_STORE_NAME).getString(LOCALE_KEY)); assertTrue(testMe.getPreferenceStore(GUI_PREFERENCES_STORE).getBoolean(DAMAGE_LEVEL_KEY)); }
protected ButtonOrderPreferences() { store = PreferenceManager.getInstance().getPreferenceStore( getClass().getName()); for (MovementDisplay.MoveCommand cmd : MovementDisplay.MoveCommand.values()) { store.setDefault(cmd.getCmd(), cmd.ordinal()); } for (FiringDisplay.FiringCommand cmd : FiringDisplay.FiringCommand.values()) { store.setDefault(cmd.getCmd(), cmd.ordinal()); } for (PhysicalDisplay.PhysicalCommand cmd : PhysicalDisplay.PhysicalCommand.values()) { store.setDefault(cmd.getCmd(), cmd.ordinal()); } for (TargetingPhaseDisplay.TargetingCommand cmd : TargetingPhaseDisplay.TargetingCommand.values()) { store.setDefault(cmd.getCmd(), cmd.ordinal()); } for (DeploymentDisplay.DeployCommand cmd : DeploymentDisplay.DeployCommand.values()) { store.setDefault(cmd.getCmd(), cmd.ordinal()); } }
public void save() { save(new MegaMekFile(Configuration.configDir(), DEFAULT_CFG_FILE_NAME).getFile()); }
protected PreferenceManager() { stores = new Hashtable<String, IPreferenceStore>(); clientPreferenceStore = new PreferenceStore(); load(); clientPreferences = new ClientPreferences(clientPreferenceStore); }
public static IClientPreferences getClientPreferences() { return getInstance().clientPreferences; }
@Before public void setUp() { testMe = new PreferenceManager(); }
protected GUIPreferences() { store = PreferenceManager.getInstance().getPreferenceStore( getClass().getName());
protected void load() { stores = new Hashtable<String, IPreferenceStore>(); clientPreferenceStore = new PreferenceStore(); String cfgName = System.getProperty( CFG_FILE_OPTION_NAME, new MegaMekFile(Configuration.configDir(), DEFAULT_CFG_FILE_NAME).toString() ); load(cfgName); clientPreferences = new ClientPreferences(clientPreferenceStore); }
/** * Called to determine whether the game log should be kept. * <p> * Default implementation delegates to {@code PreferenceManager.getClientPreferences()}. */ protected boolean keepGameLog() { return PreferenceManager.getClientPreferences().keepGameLog(); }
/** * Called when the quit buttons is pressed or the main menu is closed. */ static void quit() { PreferenceManager.getInstance().save(); try { WeaponOrderHandler.saveWeaponOrderFile(); } catch (IOException e) { System.out.println("Error saving custom weapon orders!"); e.printStackTrace(); } try { QuirksHandler.saveCustomQuirksList(); } catch (IOException e) { System.out.println("Error saving quirks override!"); e.printStackTrace(); } System.exit(0); }
public void actionPerformed(ActionEvent e) { if (!"cancel".equals(e.getActionCommand())) { //$NON-NLS-1$ try { playerName = yourNameF.getText(); serverAddr = serverAddrF.getText(); port = Integer.decode(portF.getText().trim()).intValue(); } catch (NumberFormatException ex) { System.err.println(ex.getMessage()); } // update settings PreferenceManager.getClientPreferences().setLastPlayerName( playerName); PreferenceManager.getClientPreferences().setLastConnectAddr( serverAddr); PreferenceManager.getClientPreferences().setLastConnectPort(port); } setVisible(false); } }
/** * Inserts a date/time stamp into the given filename string just before the * last period. If there is no period in the filename, the stamp is added to * the end. The format of the stamp is dictated by the client option * "StampFormat", which must use the same formatting as Java's * SimpleDateFormat class. * * @param filename the String containing the filename (with extension) * @return the filname with date/time stamp added */ public static String addDateTimeStamp(String filename) { SimpleDateFormat formatter = new SimpleDateFormat(PreferenceManager .getClientPreferences().getStampFormat()); Date current = new Date(); if (filename.lastIndexOf(".") == -1) { return filename + formatter.format(current); } return filename.substring(0, filename.lastIndexOf(".")) + formatter.format(current) + filename.substring(filename.lastIndexOf(".")); }
/** * Perform a dump of the current memory usage. * <p/> * This method is useful in tracking performance issues on various player's * systems. You can activate it by changing the "memorydumpon" setting to * "true" in the clientsettings.xml file. * * @param where * - a <code>String</code> indicating which part of the game is * making this call. */ private void memDump(String where) { if (PreferenceManager.getClientPreferences().memoryDumpOn()) { StringBuffer buf = new StringBuffer(); final long total = Runtime.getRuntime().totalMemory(); final long free = Runtime.getRuntime().freeMemory(); final long used = total - free; buf.append("Memory dump ").append(where); //$NON-NLS-1$ for (int loop = where.length(); loop < 25; loop++) { buf.append(' '); } buf.append(": used (").append(used).append(") + free (").append(free).append(") = ").append(total); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ System.out.println(buf.toString()); } }
/** * Generate the short name for a unit * <p/> * Sub-classes are allowed to override this method. The display name is in * the format [Chassis] [Model]. */ public void generateShortName() { StringBuffer nbuf = new StringBuffer(); nbuf.append(chassis); if ((model != null) && (model.length() > 0)) { nbuf.append(" ").append(model); } // if show unit id is on, append the id if (PreferenceManager.getClientPreferences().getShowUnitId()) { nbuf.append(" ID:").append(getId()); } else if (duplicateMarker > 1) { // if not, and a player has more than one unit with the same name, // append "#N" after the model to differentiate. nbuf.append(" #" + duplicateMarker); } shortName = nbuf.toString(); }
/** * Saves server entity status data to a local file */ private void saveEntityStatus(String sStatus) { try { String sLogDir = PreferenceManager.getClientPreferences().getLogDirectory(); File logDir = new File(sLogDir); if (!logDir.exists()) { logDir.mkdir(); } String fileName = "entitystatus.txt"; if (PreferenceManager.getClientPreferences().stampFilenames()) { fileName = StringUtil.addDateTimeStamp(fileName); } FileWriter fw = new FileWriter(sLogDir + File.separator + fileName); fw.write(sStatus); fw.flush(); fw.close(); } catch (Exception e) { e.printStackTrace(); } }
/** * Creates GameLog named * * @filename */ public GameLog(String filename) { try { File logDir = new File(LOG_DIR); if (!logDir.exists()) { logDir.mkdir(); } // maxFilesize = maxSize; if (PreferenceManager.getClientPreferences().stampFilenames()) { filename = StringUtil.addDateTimeStamp(filename); } logfile = new File(LOG_DIR + File.separator + filename); // writer = new BufferedWriter(new FileWriter(LOG_DIR + // File.separator + filename, append)); writer = new BufferedWriter(new FileWriter(logfile)); append("Log file opened " + new Date().toString()); //$NON-NLS-1$ } catch (IOException ex) { writer = null; System.err.println("GameLog:" + ex.getMessage()); } }
public void actionPerformed(ActionEvent e) { if (!"cancel".equals(e.getActionCommand())) { //$NON-NLS-1$ try { playerName = yourNameF.getText(); serverPass = serverPassF.getText(); register = registerC.isSelected(); metaserver = metaserverF.getText(); port = Integer.parseInt(portF.getText()); } catch (NumberFormatException ex) { System.err.println(ex.getMessage()); port = 2346; } // update settings PreferenceManager.getClientPreferences().setLastPlayerName( playerName); PreferenceManager.getClientPreferences().setLastServerPass( serverPass); PreferenceManager.getClientPreferences().setLastServerPort(port); PreferenceManager.getClientPreferences().setValue( "megamek.megamek.metaservername", //$NON-NLS-1$ metaserver); } setVisible(false); } }