1 19 20 package com.izforge.izpack.panels; 21 22 import java.awt.event.ActionEvent ; 23 import java.awt.event.ActionListener ; 24 import java.io.BufferedOutputStream ; 25 import java.io.File ; 26 import java.io.FileOutputStream ; 27 28 import javax.swing.JButton ; 29 import javax.swing.JFileChooser ; 30 import javax.swing.JOptionPane ; 31 32 import com.izforge.izpack.gui.ButtonFactory; 33 import com.izforge.izpack.gui.IzPanelLayout; 34 import com.izforge.izpack.gui.LabelFactory; 35 import com.izforge.izpack.installer.InstallData; 36 import com.izforge.izpack.installer.InstallerFrame; 37 import com.izforge.izpack.installer.IzPanel; 38 import com.izforge.izpack.util.VariableSubstitutor; 39 40 45 public class FinishPanel extends IzPanel implements ActionListener 46 { 47 48 private static final long serialVersionUID = 3257282535107998009L; 49 50 51 protected JButton autoButton; 52 53 54 protected VariableSubstitutor vs; 55 56 62 public FinishPanel(InstallerFrame parent, InstallData idata) 63 { 64 super(parent, idata, new IzPanelLayout()); 65 66 vs = new VariableSubstitutor(idata.getVariables()); 67 } 68 69 74 public boolean isValidated() 75 { 76 return true; 77 } 78 79 80 public void panelActivate() 81 { 82 parent.lockNextButton(); 83 parent.lockPrevButton(); 84 parent.setQuitButtonText(parent.langpack.getString("FinishPanel.done")); 85 parent.setQuitButtonIcon("done"); 86 if (idata.installSuccess) 87 { 88 add(LabelFactory.create(parent.langpack.getString("FinishPanel.success"), 90 parent.icons.getImageIcon("information"), LEADING), NEXT_LINE); 91 add(IzPanelLayout.createParagraphGap()); 92 if (idata.uninstallOutJar != null) 93 { 94 String path = translatePath("$INSTALL_PATH") + File.separator + "Uninstaller"; 96 97 add(LabelFactory.create(parent.langpack 98 .getString("FinishPanel.uninst.info"), parent.icons 99 .getImageIcon("information"), LEADING), NEXT_LINE); 100 add(LabelFactory.create(path, parent.icons.getImageIcon("empty"), 101 LEADING), NEXT_LINE); 102 } 103 104 add(IzPanelLayout.createParagraphGap()); 106 autoButton = ButtonFactory.createButton(parent.langpack.getString("FinishPanel.auto"), 107 parent.icons.getImageIcon("edit"), idata.buttonsHColor); 108 autoButton.setToolTipText(parent.langpack.getString("FinishPanel.auto.tip")); 109 autoButton.addActionListener(this); 110 add(autoButton, NEXT_LINE); 111 } 112 else 113 add(LabelFactory.create(parent.langpack.getString("FinishPanel.fail"), 114 parent.icons.getImageIcon("information"), LEADING), NEXT_LINE); 115 getLayoutHelper().completeLayout(); } 117 118 123 public void actionPerformed(ActionEvent e) 124 { 125 JFileChooser fc = new JFileChooser (); 127 fc.setCurrentDirectory(new File (idata.getInstallPath())); 128 fc.setMultiSelectionEnabled(false); 129 fc.addChoosableFileFilter(fc.getAcceptAllFileFilter()); 130 132 try 134 { 135 if (fc.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) 136 { 137 File file = fc.getSelectedFile(); 139 FileOutputStream out = new FileOutputStream (file); 140 BufferedOutputStream outBuff = new BufferedOutputStream (out, 5120); 141 parent.writeXMLTree(idata.xmlData, outBuff); 142 outBuff.flush(); 143 outBuff.close(); 144 145 autoButton.setEnabled(false); 146 } 147 } 148 catch (Exception err) 149 { 150 err.printStackTrace(); 151 JOptionPane.showMessageDialog(this, err.toString(), parent.langpack 152 .getString("installer.error"), JOptionPane.ERROR_MESSAGE); 153 } 154 } 155 156 162 protected String translatePath(String destination) 163 { 164 destination = vs.substitute(destination, null); 166 167 return destination.replace('/', File.separatorChar); 169 } 170 } 171 | Popular Tags |