package net.sf.latexdraw.installer; import net.sf.latexdraw.util.InstallerLog; import javax.swing.*; import java.awt.*; import java.util.logging.Level; abstract class Slide extends JPanel { private static final long serialVersionUID = 1L; /** The dimension of a slide. */ protected static final Dimension PANEL_SIZE = new Dimension(650, 350); protected Slide next; protected Slide prev; private boolean init; protected Installer installer; protected Slide(final Slide prev, final Slide next, final Installer installer) { super(); this.installer = installer; this.prev = prev; this.next = next; init = false; } protected Slide next() { if(next!=null) { uninstall(); next.install(); } return next; } protected Slide prev() { if(prev!=null) { uninstall(); prev.install(); } return prev; } protected void install() { InstallerLog.getLogger().log(Level.INFO, "Slide: " + getClass().getSimpleName()); if(!init) init(); installer.getContentPane().add(this, BorderLayout.CENTER); installer.previousB.setEnabled(prev!=null); installer.nextB.setVisible(next!=null); installer.endB.setVisible(next==null); installer.pack(); } protected void uninstall() { installer.getContentPane().remove(this); installer.pack(); } protected void init() { init = true; } protected void setPanelDimension() { setPreferredSize(PANEL_SIZE); setMinimumSize(PANEL_SIZE); setMaximumSize(PANEL_SIZE); } }