package gzz.potion.potions; import gzz.client.*; import gzz.potion.*; import gzz.view.*; import java.util.*; import gzz.zzutil.*; import gzz.vob.linebreaking.HChain; import gzz.*; import gzz.potion.Expression.*; import gzz.errors.*; import java.io.*; public class Quit extends AbstractHead implements Command { public static final String rcsid = "$Id: Quit.java,v 1.1 2003/01/04 17:22:29 benja Exp $"; public static boolean dbg = false; private static void pa(String s) { System.err.println(s); } public Quit() { super(new Object[] {"Save & Quit "}); } public void execute(List[] params, Map context) { Fallback.Win win = (Fallback.Win)context.get(ViewContext.class); Fallback fallback = win.getFallback(); if(save(fallback)){ System.exit (0); } } boolean save(Fallback fallback) { try { gzz.slices.SliceSpace sp = (gzz.slices.SliceSpace)fallback.space; fallback.filers.saveAll(sp.getSlicer().exportAll()); sp = (gzz.slices.SliceSpace)fallback.linkSpace; fallback.filers.saveAll(sp.getSlicer().exportAll()); pa("Saved."); // I guess this is worth letting through return true; } catch(IOException e) { pa("Exception while saving: "+e); e.printStackTrace(); return false; } } }