/**
* Copyright (C) 2002-2012 The FreeCol Team
*
* This file is part of FreeCol.
*
* FreeCol 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 2 of the License, or
* (at your option) any later version.
*
* FreeCol 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 FreeCol. If not, see <http://www.gnu.org/licenses/>.
*/
package net.sf.freecol.client.gui.panel;
import java.util.logging.Logger;
import org.freecolandroid.repackaged.javax.swing.ImageIcon;
import org.freecolandroid.repackaged.javax.swing.JLabel;
import net.miginfocom.swing.MigLayout;
import net.sf.freecol.client.FreeColClient;
import net.sf.freecol.client.gui.Canvas.EventType;
import net.sf.freecol.client.gui.GUI;
import net.sf.freecol.client.gui.i18n.Messages;
import net.sf.freecol.common.model.StringTemplate;
import net.sf.freecol.common.resources.ResourceManager;
/**
* This panel is displayed when an imporantant event in the game has happened.
*/
public final class EventPanel extends FreeColDialog<Boolean> {
private static final Logger logger = Logger.getLogger(EventPanel.class.getName());
/**
* The constructor that will add the items to this panel.
* @param freeColClient
*
* @param parent The parent of this panel.
* @param type The type of this panel.
*/
public EventPanel(FreeColClient freeColClient, GUI gui, EventType type) {
super(freeColClient, gui);
setLayout(new MigLayout("wrap 1", "[center]", "[]20"));
// TODO: simplify this -- event should contain the necessary
// information; add it to enum or upgrade to class
String text = null;
String image = null;
switch(type) {
case FIRST_LANDING:
image = "EventImage.firstLanding";
text = Messages.message(StringTemplate.template("event.firstLanding")
.addName("%name%", Messages.getNewLandName(getMyPlayer())));
break;
case MEETING_EUROPEANS:
image = "EventImage.meetingEuropeans";
text = Messages.message("event.meetingEuropeans");
break;
case MEETING_NATIVES:
image = "EventImage.meetingNatives";
text = Messages.message("event.meetingNatives");
break;
case MEETING_AZTEC:
image = "EventImage.meetingAztec";
text = Messages.message("event.meetingAztec");
break;
case MEETING_INCA:
image = "EventImage.meetingInca";
text = Messages.message("event.meetingInca");
break;
case DISCOVER_PACIFIC:
image = "EventImage.discoverPacific";
text = Messages.message("model.region.pacific.discover");
break;
default:
setResponse(Boolean.FALSE);
}
JLabel header = new JLabel(text);
header.setFont(mediumHeaderFont);
JLabel imageLabel = new JLabel(new ImageIcon(ResourceManager.getImage(image)));
add(header);
add(imageLabel);
add(okButton, "tag ok");
setSize(getPreferredSize());
}
}