/** * @brief Load auctions from a save file, with a pretty splash screen and everything, if * necessary. * <p>I'd like to abstract this, and make it work with arbitrary streams, so that we could * send an XML file of auctions over a network to sync between JBidwatcher instances. */ public void loadAuctions() { XMLElement xmlFile = new XMLElement(true); String loadFile = JConfig.queryConfiguration("savefile", "auctions.xml"); String oldLoad = loadFile; loadFile = JConfig.getCanonicalFile(loadFile, "jbidwatcher", true); if (!loadFile.equals(oldLoad)) { JConfig.setConfiguration("savefile", loadFile); } File toLoad = new File(loadFile); if (toLoad.exists() && toLoad.length() != 0) { try { loadXMLFromFile(loadFile, xmlFile); } catch (IOException ioe) { JConfig.log() .handleException("A serious problem occurred trying to load from auctions.xml.", ioe); MQFactory.getConcrete("Swing") .enqueue( "ERROR Failure to load your saved auctions. Some or all items may be missing."); } catch (XMLParseException xme) { JConfig.log().handleException("Trying to load from auctions.xml.", xme); MQFactory.getConcrete("Swing") .enqueue( "ERROR Failure to load your saved auctions. Some or all items may be missing."); } } else { // This is a common thing, and we don't want to frighten new // users, who are most likely to see it. JConfig.log() .logDebug( "JBW: Failed to load saved auctions, the auctions file is probably not there yet."); JConfig.log().logDebug("JBW: This is not an error, unless you're constantly getting it."); } }
public int loadAuctionsFromDatabase() { int totalCount = AuctionInfo.count(); int activeCount = AuctionEntry.activeCount(); MQFactory.getConcrete("splash").enqueue("WIDTH " + activeCount); MQFactory.getConcrete("splash").enqueue("SET 0"); AuctionServer newServer = AuctionServerManager.getInstance().getServer(); AuctionServerManager.setEntryManager(this); if (totalCount == 0) { if (JConfig.queryConfiguration("stats.auctions") == null) JConfig.setConfiguration("stats.auctions", "0"); return totalCount; } AuctionServerManager.getInstance().loadAuctionsFromDB(newServer); AuctionStats as = AuctionServerManager.getInstance().getStats(); // TODO -- Do something more valuable than just notify, when the auction counts are off. int savedCount = Integer.parseInt(JConfig.queryConfiguration("last.auctioncount", "-1")); if (as != null) { if (as.getCount() != activeCount || (savedCount != -1 && as.getCount() != savedCount)) { MQFactory.getConcrete("Swing").enqueue("NOTIFY Failed to load all auctions."); } } return activeCount; }
public void loadAuctionsFromDB() { int auctionTotal = AuctionServerManager.getInstance().getServer().getCount(); MQFactory.getConcrete("splash").enqueue("SET 0"); MQFactory.getConcrete("splash").enqueue("WIDTH " + auctionTotal); MQFactory.getConcrete("splash").enqueue("SET 100"); }
private void loadXMLFromFile(String loadFile, XMLElement xmlFile) throws IOException { InputStreamReader isr = new InputStreamReader(new FileInputStream(loadFile)); MQFactory.getConcrete("splash").enqueue("WIDTH " + MAX_PERCENT); MQFactory.getConcrete("splash").enqueue("SET " + MAX_PERCENT / 2); xmlFile.parseFromReader(isr); MQFactory.getConcrete("splash").enqueue("SET " + MAX_PERCENT); String formatVersion = xmlFile.getProperty("FORMAT", "0101"); XMLElement auctionsXML = xmlFile.getChild("auctions"); JConfig.setConfiguration("savefile.format", formatVersion); // set the width of the splash progress bar based on the number // of auctions that will be loaded! if (auctionsXML == null) { throw new XMLParseException( xmlFile.getTagName(), "AuctionsManager requires an <auctions> tag!"); } String auctionQuantity = auctionsXML.getProperty("COUNT", null); int auctionTotal = 0; if (auctionQuantity != null) { auctionTotal = Integer.parseInt(auctionQuantity); MQFactory.getConcrete("splash").enqueue("SET 0"); MQFactory.getConcrete("splash").enqueue("WIDTH " + auctionTotal); } AuctionServerManager.setEntryManager(this); AuctionServerManager.getInstance().fromXML(auctionsXML); AuctionStats as = AuctionServerManager.getInstance().getStats(); // TODO -- Do something more valuable than just notify, when the auction counts are off. int savedCount = Integer.parseInt(JConfig.queryConfiguration("last.auctioncount", "-1")); if (as != null) { if (as.getCount() != auctionTotal || (savedCount != -1 && as.getCount() != savedCount)) { MQFactory.getConcrete("Swing").enqueue("NOTIFY Failed to load all auctions."); } } }