/* * Copyright (c) 1998-2017 by Richard A. Wilkes. All rights reserved. * * This Source Code Form is subject to the terms of the Mozilla Public * License, version 2.0. If a copy of the MPL was not distributed with * this file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This Source Code Form is "Incompatible With Secondary Licenses", as * defined by the Mozilla Public License, version 2.0. */ package com.trollworks.gcs.modifier; import com.trollworks.gcs.common.ListFile; import com.trollworks.gcs.common.LoadState; import com.trollworks.toolkit.io.xml.XMLNodeType; import com.trollworks.toolkit.io.xml.XMLReader; import com.trollworks.toolkit.ui.image.StdImageSet; import com.trollworks.toolkit.ui.widget.outline.OutlineModel; import com.trollworks.toolkit.ui.widget.outline.Row; import com.trollworks.toolkit.utility.FileType; import java.io.IOException; /** Data Object to hold several {@link Modifier} */ public class ModifierList extends ListFile { private static final int CURRENT_VERSION = 1; /** The XML tag for advantage lists. */ public static final String TAG_ROOT = "modifier_list"; //$NON-NLS-1$ /** Creates new {@link ModifierList}. */ public ModifierList() { super(); } /** * Creates a new {@link ModifierList}. * * @param modifiers The {@link ModifierList} to clone. */ public ModifierList(ModifierList modifiers) { this(); for (Row Row : modifiers.getModel().getRows()) { getModel().getRows().add(Row); } } @Override protected void loadList(XMLReader reader, LoadState state) throws IOException { OutlineModel model = getModel(); String marker = reader.getMarker(); do { if (reader.next() == XMLNodeType.START_TAG) { String name = reader.getName(); if (Modifier.TAG_MODIFIER.equals(name)) { model.addRow(new Modifier(this, reader, state), true); } else { reader.skipTag(name); } } } while (reader.withinMarker(marker)); } @Override // Not used public FileType getFileType() { return null; } @Override // Not used public StdImageSet getFileIcons() { return null; } @Override public int getXMLTagVersion() { return CURRENT_VERSION; } @Override public String getXMLTagName() { return TAG_ROOT; } }