package org.f2o.absurdum.puck.gui.templates; import java.awt.event.ActionEvent; import java.io.File; import java.io.InputStream; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.JEditorPane; import javax.swing.JOptionPane; import javax.swing.text.BadLocationException; import javax.xml.transform.TransformerException; import org.f2o.absurdum.puck.gui.PuckFrame; import org.f2o.absurdum.puck.gui.panels.WorldPanel; import org.jedit.syntax.JEditTextArea; public class WorldFromTemplateActionBuilder { private PuckFrame pf; public WorldFromTemplateActionBuilder ( PuckFrame pf ) { this.pf = pf; } public Action getWorldFromTemplateAction ( final String path ) { return new AbstractAction() { public void actionPerformed ( ActionEvent evt ) { InputStream is = this.getClass().getClassLoader().getResourceAsStream("org/f2o/absurdum/puck/staticconf/worldtemplates/"+path); if ( is == null ) { JOptionPane.showMessageDialog(pf,"Internal error loading template: " + "org/f2o/absurdum/puck/staticconf/worldtemplates/"+path,"Whoops!",JOptionPane.ERROR_MESSAGE); return; } boolean success = pf.openStreamOrShowError(is); if ( success ) { ((WorldPanel)pf.getGraphEditingPanel().getWorldNode().getAssociatedPanel()).setDefaultWorldVersion(); pf.resetCurrentlyEditingFile(); pf.refreshTitle(); } } }; } }