From: <bur...@us...> - 2009-02-24 17:18:17
|
Revision: 5111 http://freecol.svn.sourceforge.net/freecol/?rev=5111&view=rev Author: burschik Date: 2009-02-24 17:18:07 +0000 (Tue, 24 Feb 2009) Log Message: ----------- Save build queue. Modified Paths: -------------- freecol/trunk/src/net/sf/freecol/client/control/InGameController.java freecol/trunk/src/net/sf/freecol/client/gui/panel/BuildQueuePanel.java freecol/trunk/src/net/sf/freecol/common/model/BuildableType.java freecol/trunk/src/net/sf/freecol/common/model/Colony.java freecol/trunk/src/net/sf/freecol/server/control/InGameInputHandler.java Modified: freecol/trunk/src/net/sf/freecol/client/control/InGameController.java =================================================================== --- freecol/trunk/src/net/sf/freecol/client/control/InGameController.java 2009-02-23 17:31:25 UTC (rev 5110) +++ freecol/trunk/src/net/sf/freecol/client/control/InGameController.java 2009-02-24 17:18:07 UTC (rev 5111) @@ -2929,16 +2929,15 @@ return; } - Client client = freeColClient.getClient(); - colony.setBuildQueue(buildQueue); Element setBuildQueueElement = Message.createNewRootElement("setBuildQueue"); setBuildQueueElement.setAttribute("colony", colony.getId()); - for (BuildableType buildableType : buildQueue) { - setBuildQueueElement.appendChild(buildableType.toXMLElement(null, setBuildQueueElement.getOwnerDocument())); + setBuildQueueElement.setAttribute("size", Integer.toString(buildQueue.size())); + for (int x = 0; x < buildQueue.size(); x++) { + setBuildQueueElement.setAttribute("x" + Integer.toString(x), buildQueue.get(x).getId()); } - client.sendAndWait(setBuildQueueElement); + freeColClient.getClient().sendAndWait(setBuildQueueElement); } /** Modified: freecol/trunk/src/net/sf/freecol/client/gui/panel/BuildQueuePanel.java =================================================================== --- freecol/trunk/src/net/sf/freecol/client/gui/panel/BuildQueuePanel.java 2009-02-23 17:31:25 UTC (rev 5110) +++ freecol/trunk/src/net/sf/freecol/client/gui/panel/BuildQueuePanel.java 2009-02-24 17:18:07 UTC (rev 5111) @@ -46,6 +46,7 @@ import javax.swing.SwingConstants; import javax.swing.TransferHandler; +import net.sf.freecol.client.control.InGameController; import net.sf.freecol.client.gui.i18n.Messages; import net.sf.freecol.client.gui.Canvas; import net.sf.freecol.client.gui.ImageLibrary; @@ -218,12 +219,13 @@ */ public void actionPerformed(ActionEvent event) { String command = event.getActionCommand(); + InGameController controller = getCanvas().getClient().getInGameController(); if (OK.equals(command)) { - colony.setBuildQueue(getBuildableTypes(buildQueueList)); + controller.setBuildQueue(colony, getBuildableTypes(buildQueueList)); getCanvas().remove(this); } else if (BUY.equals(command)) { - colony.setBuildQueue(getBuildableTypes(buildQueueList)); - getCanvas().getClient().getInGameController().payForBuilding(colony); + controller.setBuildQueue(colony, getBuildableTypes(buildQueueList)); + controller.payForBuilding(colony); getCanvas().updateGoldLabel(); } else { logger.warning("Invalid ActionCommand: " + command); Modified: freecol/trunk/src/net/sf/freecol/common/model/BuildableType.java =================================================================== --- freecol/trunk/src/net/sf/freecol/common/model/BuildableType.java 2009-02-23 17:31:25 UTC (rev 5110) +++ freecol/trunk/src/net/sf/freecol/common/model/BuildableType.java 2009-02-24 17:18:07 UTC (rev 5111) @@ -130,14 +130,6 @@ super.readFromXML(in, specification); } - protected void toXMLImpl(XMLStreamWriter out, Player player, boolean showAll, boolean toSavedGame) - throws XMLStreamException { - out.writeStartElement(getXMLElementTagName()); - out.writeAttribute("ID", getId()); - out.writeEndElement(); - } - - protected FreeColObject readChild(XMLStreamReader in, Specification specification) throws XMLStreamException { String childName = in.getLocalName(); Modified: freecol/trunk/src/net/sf/freecol/common/model/Colony.java =================================================================== --- freecol/trunk/src/net/sf/freecol/common/model/Colony.java 2009-02-23 17:31:25 UTC (rev 5110) +++ freecol/trunk/src/net/sf/freecol/common/model/Colony.java 2009-02-24 17:18:07 UTC (rev 5111) @@ -2070,7 +2070,17 @@ featureContainer.addModifier(modifier); } } else if ("buildQueue".equals(in.getLocalName())) { - buildQueue = readFromListElement("buildQueue", in, BuildableType.class); + System.out.println("found build Queue for colony " + getName()); + buildQueue.clear(); + int size = getAttribute(in, ARRAY_SIZE, 0); + if (size > 0) { + for (int x = 0; x < size; x++) { + String typeId = in.getAttributeValue(null, "x" + Integer.toString(x)); + System.out.println(typeId); + buildQueue.add((BuildableType) Specification.getSpecification().getType(typeId)); + } + } + in.nextTag(); } else { logger.warning("Unknown tag: " + in.getLocalName() + " loading colony " + name); in.nextTag(); Modified: freecol/trunk/src/net/sf/freecol/server/control/InGameInputHandler.java =================================================================== --- freecol/trunk/src/net/sf/freecol/server/control/InGameInputHandler.java 2009-02-23 17:31:25 UTC (rev 5110) +++ freecol/trunk/src/net/sf/freecol/server/control/InGameInputHandler.java 2009-02-24 17:18:07 UTC (rev 5111) @@ -2223,10 +2223,10 @@ throw new IllegalStateException("Not your colony!"); } List<BuildableType> buildQueue = new ArrayList<BuildableType>(); - NodeList children = setBuildQueueElement.getChildNodes(); - for (int index = 0; index < children.getLength(); index++) { - String id = ((Element) children.item(index)).getAttribute("ID"); - buildQueue.add((BuildableType) Specification.getSpecification().getType(id)); + int size = Integer.parseInt(setBuildQueueElement.getAttribute("size")); + for (int x = 0; x < size; x++) { + String typeId = setBuildQueueElement.getAttribute("x" + Integer.toString(x)); + buildQueue.add((BuildableType) Specification.getSpecification().getType(typeId)); } colony.setBuildQueue(buildQueue); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |