/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package org.pepsoft.worldpainter.layers.bo2; import java.awt.BorderLayout; import java.awt.Dimension; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.File; import javax.swing.JFileChooser; import javax.swing.JPanel; import javax.swing.border.BevelBorder; import org.pepsoft.worldpainter.dynmap.DynMapPreviewer; import org.pepsoft.worldpainter.objects.WPObject; /** * * @author pepijn */ public class WPObjectPreviewer extends JPanel implements PropertyChangeListener { public WPObjectPreviewer() { previewer = new DynMapPreviewer(); setLayout(new BorderLayout()); add(previewer, BorderLayout.CENTER); setPreferredSize(new Dimension(200, -1)); setBorder(new BevelBorder(BevelBorder.LOWERED)); } public void setObject(WPObject object) { previewer.setObject(object); } @Override public void propertyChange(PropertyChangeEvent evt) { if (evt.getPropertyName().equals(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY)) { File file = (File) evt.getNewValue(); if (file == null) { return; } WPObject object = null; try { String filename = file.getName().toLowerCase(); if (filename.toLowerCase().endsWith(".bo2")) { object = Bo2Object.load(file); } else if (filename.toLowerCase().endsWith(".bo3")) { object = Bo3Object.load(file); } else if (filename.toLowerCase().endsWith(".schematic")) { object = Schematic.load(file); } setObject(object); } catch (Throwable t) { logger.error("Exception while trying to generate preview for " + file, t); } } } private final DynMapPreviewer previewer; private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(WPObjectPreviewer.class); private static final long serialVersionUID = 1L; }