Finished implementing new config.

This commit is contained in:
StevenLawson 2014-08-27 22:06:27 -04:00
parent ab27c3e1d1
commit 2c8785e9dc
7 changed files with 184 additions and 74 deletions

View file

@ -36,6 +36,7 @@ public class BTC_ConfigLoader
private final ServerEntry.ServerEntryList servers = new ServerEntry.ServerEntryList(); private final ServerEntry.ServerEntryList servers = new ServerEntry.ServerEntryList();
private final PlayerCommandEntry.PlayerCommandEntryList playerCommands = new PlayerCommandEntry.PlayerCommandEntryList(); private final PlayerCommandEntry.PlayerCommandEntryList playerCommands = new PlayerCommandEntry.PlayerCommandEntryList();
private final FavoriteButtonEntry.FavoriteButtonEntryList favoriteButtons = new FavoriteButtonEntry.FavoriteButtonEntryList();
public BTC_ConfigLoader() public BTC_ConfigLoader()
{ {
@ -102,6 +103,11 @@ public class BTC_ConfigLoader
return this.servers.getList(); return this.servers.getList();
} }
public Collection<FavoriteButtonEntry> getFavoriteButtons()
{
return favoriteButtons.getList();
}
private boolean generateXML(final File file) private boolean generateXML(final File file)
{ {
try try
@ -111,8 +117,9 @@ public class BTC_ConfigLoader
final Element rootElement = doc.createElement("configuration"); final Element rootElement = doc.createElement("configuration");
doc.appendChild(rootElement); doc.appendChild(rootElement);
rootElement.appendChild(this.playerCommands.toXML(doc));
rootElement.appendChild(this.servers.toXML(doc)); rootElement.appendChild(this.servers.toXML(doc));
rootElement.appendChild(this.playerCommands.toXML(doc));
rootElement.appendChild(this.favoriteButtons.toXML(doc));
final Transformer transformer = TransformerFactory.newInstance().newTransformer(); final Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
@ -139,15 +146,21 @@ public class BTC_ConfigLoader
final Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(file); final Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(file);
doc.getDocumentElement().normalize(); doc.getDocumentElement().normalize();
if (!this.servers.fromXML(doc))
{
System.out.println("Error loading servers.");
hadErrors = true;
}
if (!this.playerCommands.fromXML(doc)) if (!this.playerCommands.fromXML(doc))
{ {
System.out.println("Error loading playerCommands."); System.out.println("Error loading playerCommands.");
hadErrors = true; hadErrors = true;
} }
if (!this.servers.fromXML(doc)) if (!this.favoriteButtons.fromXML(doc))
{ {
System.out.println("Error loading servers."); System.out.println("Error favorite buttons.");
hadErrors = true; hadErrors = true;
} }
} }

View file

@ -21,13 +21,13 @@ package me.StevenLawson.BukkitTelnetClient;
import java.awt.*; import java.awt.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.util.List; import java.util.Collection;
import javax.swing.JButton; import javax.swing.JButton;
import javax.swing.JPanel; import javax.swing.JPanel;
public class BTC_FavoriteButtonsPanel extends JPanel public class BTC_FavoriteButtonsPanel extends JPanel
{ {
public BTC_FavoriteButtonsPanel(final List<FavoriteButtonData> buttonList) public BTC_FavoriteButtonsPanel(final Collection<FavoriteButtonEntry> buttonList)
{ {
super.setLayout(new GridLayout(0, 2, 1, 1)); super.setLayout(new GridLayout(0, 2, 1, 1));
@ -43,7 +43,7 @@ public class BTC_FavoriteButtonsPanel extends JPanel
} }
}; };
for (final FavoriteButtonData buttonData : buttonList) for (final FavoriteButtonEntry buttonData : buttonList)
{ {
final JButton button = new JButton(); final JButton button = new JButton();
button.setText(buttonData.getLabel()); button.setText(buttonData.getLabel());

View file

@ -37,31 +37,10 @@ public class BTC_MainPanel extends javax.swing.JFrame
private final BTC_ConnectionManager connectionManager = new BTC_ConnectionManager(); private final BTC_ConnectionManager connectionManager = new BTC_ConnectionManager();
private final List<PlayerInfo> playerList = new ArrayList<>(); private final List<PlayerInfo> playerList = new ArrayList<>();
private final PlayerListTableModel playerListTableModel = new PlayerListTableModel(playerList); private final PlayerListTableModel playerListTableModel = new PlayerListTableModel(playerList);
private final Collection<FavoriteButtonEntry> favButtonList = BukkitTelnetClient.config.getFavoriteButtons();
private final List<FavoriteButtonData> favButtonList = new ArrayList<>();
public BTC_MainPanel() public BTC_MainPanel()
{ {
favButtonList.add(new FavoriteButtonData("Op All", "opall"));
favButtonList.add(new FavoriteButtonData("Deop All", "deopall"));
favButtonList.add(new FavoriteButtonData("Nick Clean", "nickclean"));
favButtonList.add(new FavoriteButtonData("Adminmode ON", "adminmode on"));
favButtonList.add(new FavoriteButtonData("Adminmode OFF", "adminmode off"));
favButtonList.add(new FavoriteButtonData("Cake", "cake"));
favButtonList.add(new FavoriteButtonData("Mob Purge", "mp"));
favButtonList.add(new FavoriteButtonData("Remove Drops", "rd"));
favButtonList.add(new FavoriteButtonData("Purge All", "purgeall"));
favButtonList.add(new FavoriteButtonData("Set Limit = 500", "setl"));
favButtonList.add(new FavoriteButtonData("Stop Server", "stop"));
favButtonList.add(new FavoriteButtonData("Toggle Water Placement", "toggle waterplace"));
favButtonList.add(new FavoriteButtonData("Toggle Fire Placement", "toggle fireplace"));
favButtonList.add(new FavoriteButtonData("Toggle Lava Placement", "toggle lavaplace"));
favButtonList.add(new FavoriteButtonData("Toggle Fluid Spread", "toggle fluidspread"));
favButtonList.add(new FavoriteButtonData("Toggle Lava Damage", "toggle lavadmg"));
favButtonList.add(new FavoriteButtonData("Toggle Fire Spread", "toggle firespread"));
favButtonList.add(new FavoriteButtonData("Toggle Lockdown", "toggle lockdown"));
favButtonList.add(new FavoriteButtonData("Toggle Explosives", "toggle explosives"));
initComponents(); initComponents();
} }
@ -521,7 +500,7 @@ public class BTC_MainPanel extends javax.swing.JFrame
mainOutput = new javax.swing.JTextPane(); mainOutput = new javax.swing.JTextPane();
btnDisconnect = new javax.swing.JButton(); btnDisconnect = new javax.swing.JButton();
btnSend = new javax.swing.JButton(); btnSend = new javax.swing.JButton();
txtServer = new javax.swing.JComboBox<ServerEntry>(); txtServer = new javax.swing.JComboBox<me.StevenLawson.BukkitTelnetClient.ServerEntry>();
chkAutoScroll = new javax.swing.JCheckBox(); chkAutoScroll = new javax.swing.JCheckBox();
txtCommand = new javax.swing.JTextField(); txtCommand = new javax.swing.JTextField();
btnConnect = new javax.swing.JButton(); btnConnect = new javax.swing.JButton();
@ -853,7 +832,7 @@ public class BTC_MainPanel extends javax.swing.JFrame
private javax.swing.JTable tblPlayers; private javax.swing.JTable tblPlayers;
private javax.swing.JTextField txtCommand; private javax.swing.JTextField txtCommand;
private javax.swing.JTextField txtNumPlayers; private javax.swing.JTextField txtNumPlayers;
private javax.swing.JComboBox<ServerEntry> txtServer; private javax.swing.JComboBox<me.StevenLawson.BukkitTelnetClient.ServerEntry> txtServer;
// End of variables declaration//GEN-END:variables // End of variables declaration//GEN-END:variables
public javax.swing.JButton getBtnConnect() public javax.swing.JButton getBtnConnect()

View file

@ -1,41 +0,0 @@
/*
* Copyright (C) 2012-2014 Steven Lawson
*
* This file is part of BukkitTelnetClient.
*
* BukkitTelnetClient is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.StevenLawson.BukkitTelnetClient;
public class FavoriteButtonData
{
private final String label;
private final String command;
public FavoriteButtonData(String label, String command)
{
this.label = label;
this.command = command;
}
public String getLabel()
{
return label;
}
public String getCommand()
{
return command;
}
}

View file

@ -0,0 +1,81 @@
/*
* Copyright (C) 2012-2014 Steven Lawson
*
* This file is part of BukkitTelnetClient.
*
* BukkitTelnetClient is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package me.StevenLawson.BukkitTelnetClient;
import java.util.ArrayList;
public class FavoriteButtonEntry implements ConfigEntry
{
private String label;
private String command;
public FavoriteButtonEntry()
{
}
public FavoriteButtonEntry(final String label, final String command)
{
this.label = label;
this.command = command;
}
@ConfigEntryList.ParameterGetter(name = "label")
public String getLabel()
{
return label;
}
@ConfigEntryList.ParameterSetter(name = "label")
public void setLabel(String label)
{
this.label = label;
}
@ConfigEntryList.ParameterGetter(name = "command")
public String getCommand()
{
return command;
}
@ConfigEntryList.ParameterSetter(name = "command")
public void setCommand(String command)
{
this.command = command;
}
public static class FavoriteButtonEntryList extends ConfigEntryList<FavoriteButtonEntry>
{
public FavoriteButtonEntryList()
{
super(new ArrayList<FavoriteButtonEntry>(), FavoriteButtonEntry.class);
}
@Override
public String getParentElementName()
{
return "favoriteButtons";
}
@Override
public String getItemElementName()
{
return "favoriteButton";
}
}
}

View file

@ -18,7 +18,7 @@
*/ */
package me.StevenLawson.BukkitTelnetClient; package me.StevenLawson.BukkitTelnetClient;
import java.util.HashSet; import java.util.ArrayList;
public class PlayerCommandEntry implements ConfigEntry public class PlayerCommandEntry implements ConfigEntry
{ {
@ -63,7 +63,7 @@ public class PlayerCommandEntry implements ConfigEntry
{ {
public PlayerCommandEntryList() public PlayerCommandEntryList()
{ {
super(new HashSet<PlayerCommandEntry>(), PlayerCommandEntry.class); super(new ArrayList<PlayerCommandEntry>(), PlayerCommandEntry.class);
} }
@Override @Override

View file

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<configuration> <configuration>
<servers/>
<playerCommands> <playerCommands>
<playerCommand> <playerCommand>
<name>Ban</name> <name>Ban</name>
@ -58,5 +59,82 @@
<format>survival %s</format> <format>survival %s</format>
</playerCommand> </playerCommand>
</playerCommands> </playerCommands>
<servers/> <favoriteButtons>
<favoriteButton>
<label>Op All</label>
<command>opall</command>
</favoriteButton>
<favoriteButton>
<label>Deop All</label>
<command>deopall</command>
</favoriteButton>
<favoriteButton>
<label>Nick Clean</label>
<command>nickclean</command>
</favoriteButton>
<favoriteButton>
<label>Adminmode ON</label>
<command>adminmode on</command>
</favoriteButton>
<favoriteButton>
<label>Adminmode OFF</label>
<command>adminmode off</command>
</favoriteButton>
<favoriteButton>
<label>Cake</label>
<command>cake</command>
</favoriteButton>
<favoriteButton>
<label>Mob Purge</label>
<command>mp</command>
</favoriteButton>
<favoriteButton>
<label>Remove Drops</label>
<command>rd</command>
</favoriteButton>
<favoriteButton>
<label>Purge All</label>
<command>purgeall</command>
</favoriteButton>
<favoriteButton>
<label>Set Limit = 500</label>
<command>setl</command>
</favoriteButton>
<favoriteButton>
<label>Stop Server</label>
<command>stop</command>
</favoriteButton>
<favoriteButton>
<label>Toggle Water Placement</label>
<command>toggle waterplace</command>
</favoriteButton>
<favoriteButton>
<label>Toggle Fire Placement</label>
<command>toggle fireplace</command>
</favoriteButton>
<favoriteButton>
<label>Toggle Lava Placement</label>
<command>toggle lavaplace</command>
</favoriteButton>
<favoriteButton>
<label>Toggle Fluid Spread</label>
<command>toggle fluidspread</command>
</favoriteButton>
<favoriteButton>
<label>Toggle Lava Damage</label>
<command>toggle lavadmg</command>
</favoriteButton>
<favoriteButton>
<label>Toggle Fire Spread</label>
<command>toggle firespread</command>
</favoriteButton>
<favoriteButton>
<label>Toggle Lockdown</label>
<command>toggle lockdown</command>
</favoriteButton>
<favoriteButton>
<label>Toggle Explosives</label>
<command>toggle explosives</command>
</favoriteButton>
</favoriteButtons>
</configuration> </configuration>