mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +00:00
moved card prefrences to gui
This commit is contained in:
@@ -17,8 +17,8 @@
|
||||
*/
|
||||
package forge;
|
||||
|
||||
import forge.card.CardPreferences;
|
||||
import forge.control.FControl;
|
||||
import forge.gui.CardPreferences;
|
||||
import forge.gui.toolbox.FProgressBar;
|
||||
import forge.gui.workshop.CardScriptInfo;
|
||||
import forge.model.FModel;
|
||||
|
||||
129
forge-gui/src/main/java/forge/gui/CardPreferences.java
Normal file
129
forge-gui/src/main/java/forge/gui/CardPreferences.java
Normal file
@@ -0,0 +1,129 @@
|
||||
package forge.gui;
|
||||
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.HashMap;
|
||||
|
||||
import javax.xml.stream.XMLEventFactory;
|
||||
import javax.xml.stream.XMLEventReader;
|
||||
import javax.xml.stream.XMLEventWriter;
|
||||
import javax.xml.stream.XMLInputFactory;
|
||||
import javax.xml.stream.XMLOutputFactory;
|
||||
import javax.xml.stream.events.Attribute;
|
||||
import javax.xml.stream.events.StartElement;
|
||||
import javax.xml.stream.events.XMLEvent;
|
||||
|
||||
/**
|
||||
* Preferences associated with individual cards
|
||||
*
|
||||
*/
|
||||
public class CardPreferences {
|
||||
private static final XMLEventFactory EVENT_FACTORY = XMLEventFactory.newInstance();
|
||||
private static final XMLEvent NEWLINE = EVENT_FACTORY.createDTD("\n");
|
||||
private static final XMLEvent TAB = EVENT_FACTORY.createDTD("\t");
|
||||
private static Map<String, CardPreferences> allPrefs = new HashMap<String, CardPreferences>();
|
||||
|
||||
public static CardPreferences getPrefs(String name) {
|
||||
CardPreferences prefs = allPrefs.get(name);
|
||||
if (prefs == null) {
|
||||
prefs = new CardPreferences();
|
||||
allPrefs.put(name, prefs);
|
||||
}
|
||||
return prefs;
|
||||
}
|
||||
|
||||
public static void load(String filename) {
|
||||
allPrefs.clear();
|
||||
|
||||
try {
|
||||
final XMLInputFactory in = XMLInputFactory.newInstance();
|
||||
final XMLEventReader reader = in.createXMLEventReader(new FileInputStream(filename));
|
||||
|
||||
XMLEvent event;
|
||||
StartElement element;
|
||||
Iterator<?> attributes;
|
||||
Attribute attribute;
|
||||
String tagname;
|
||||
CardPreferences prefs;
|
||||
|
||||
while (reader.hasNext()) {
|
||||
event = reader.nextEvent();
|
||||
|
||||
if (event.isStartElement()) {
|
||||
element = event.asStartElement();
|
||||
tagname = element.getName().getLocalPart();
|
||||
|
||||
if (tagname.equals("card")) {
|
||||
prefs = new CardPreferences();
|
||||
attributes = element.getAttributes();
|
||||
|
||||
while (attributes.hasNext()) {
|
||||
attribute = (Attribute) attributes.next();
|
||||
switch (attribute.getName().toString()) {
|
||||
case "name":
|
||||
allPrefs.put(attribute.getValue(), prefs);
|
||||
break;
|
||||
case "stars":
|
||||
prefs.starCount = Integer.parseInt(attribute.getValue());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (final FileNotFoundException e) {
|
||||
/* ignore; it's ok if this file doesn't exist */
|
||||
}
|
||||
catch (final Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public static void save(String filename) {
|
||||
try {
|
||||
final XMLOutputFactory out = XMLOutputFactory.newInstance();
|
||||
final XMLEventWriter writer = out.createXMLEventWriter(new FileOutputStream(filename));
|
||||
|
||||
writer.add(EVENT_FACTORY.createStartDocument());
|
||||
writer.add(NEWLINE);
|
||||
writer.add(EVENT_FACTORY.createStartElement("", "", "preferences"));
|
||||
writer.add(EVENT_FACTORY.createAttribute("type", "cards"));
|
||||
writer.add(NEWLINE);
|
||||
|
||||
for (Map.Entry<String, CardPreferences> entry : allPrefs.entrySet()) {
|
||||
if (entry.getValue().starCount > 0) {
|
||||
writer.add(TAB);
|
||||
writer.add(EVENT_FACTORY.createStartElement("", "", "card"));
|
||||
writer.add(EVENT_FACTORY.createAttribute("name", entry.getKey()));
|
||||
writer.add(EVENT_FACTORY.createAttribute("stars", String.valueOf(entry.getValue().starCount)));
|
||||
writer.add(EVENT_FACTORY.createEndElement("", "", "card"));
|
||||
writer.add(NEWLINE);
|
||||
}
|
||||
}
|
||||
|
||||
writer.add(EVENT_FACTORY.createEndDocument());
|
||||
writer.flush();
|
||||
writer.close();
|
||||
}
|
||||
catch (final Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private int starCount;
|
||||
|
||||
private CardPreferences() {
|
||||
}
|
||||
|
||||
public int getStarCount() {
|
||||
return this.starCount;
|
||||
}
|
||||
|
||||
public void setStarCount(int starCount0) {
|
||||
this.starCount = starCount0;
|
||||
}
|
||||
}
|
||||
@@ -23,7 +23,7 @@ import java.awt.event.MouseEvent;
|
||||
|
||||
import javax.swing.JTable;
|
||||
|
||||
import forge.card.CardPreferences;
|
||||
import forge.gui.CardPreferences;
|
||||
import forge.gui.toolbox.FSkin;
|
||||
import forge.gui.toolbox.FSkin.SkinImage;
|
||||
import forge.item.IPaperCard;
|
||||
|
||||
Reference in New Issue
Block a user