1 19 20 package com.izforge.izpack.panels; 21 22 import java.awt.Dimension ; 23 24 import javax.swing.JLabel ; 25 import javax.swing.JOptionPane ; 26 import javax.swing.JProgressBar ; 27 import javax.swing.SwingUtilities ; 28 29 import com.izforge.izpack.gui.IzPanelLayout; 30 import com.izforge.izpack.gui.LabelFactory; 31 import com.izforge.izpack.installer.InstallData; 32 import com.izforge.izpack.installer.InstallerFrame; 33 import com.izforge.izpack.installer.IzPanel; 34 import com.izforge.izpack.util.AbstractUIProgressHandler; 35 36 41 public class InstallPanel extends IzPanel implements AbstractUIProgressHandler 42 { 43 44 private static final long serialVersionUID = 3257282547959410992L; 45 46 47 protected JLabel tipLabel; 48 49 50 protected JLabel packOpLabel; 51 52 53 protected JLabel overallOpLabel; 54 55 56 protected JProgressBar packProgressBar; 57 58 59 protected JProgressBar overallProgressBar; 60 61 62 private volatile boolean validated = false; 63 64 65 private int noOfPacks = 0; 66 67 73 public InstallPanel(InstallerFrame parent, InstallData idata) 74 { 75 super(parent, idata, new IzPanelLayout()); 76 this.tipLabel = LabelFactory.create(parent.langpack.getString("InstallPanel.tip"), 77 parent.icons.getImageIcon("information"), LEADING); 78 add(this.tipLabel, IzPanelLayout.getDefaultConstraint(FULL_LINE_CONTROL_CONSTRAINT)); 79 packOpLabel = LabelFactory.create(" ", LEADING); 80 add(packOpLabel, IzPanelLayout.getDefaultConstraint(FULL_LINE_CONTROL_CONSTRAINT)); 81 82 packProgressBar = new JProgressBar (); 83 packProgressBar.setStringPainted(true); 84 packProgressBar.setString(parent.langpack.getString("InstallPanel.begin")); 85 packProgressBar.setValue(0); 86 add(packProgressBar, IzPanelLayout.getDefaultConstraint(FULL_LINE_CONTROL_CONSTRAINT)); 87 add(IzPanelLayout.createParagraphGap()); 89 90 overallOpLabel = LabelFactory.create(parent.langpack.getString("InstallPanel.progress"), 91 parent.icons.getImageIcon("information"), LEADING); 92 add(this.overallOpLabel, IzPanelLayout.getDefaultConstraint(FULL_LINE_CONTROL_CONSTRAINT)); 93 94 overallProgressBar = new JProgressBar (); 95 overallProgressBar.setStringPainted(true); 96 overallProgressBar.setString(""); 97 overallProgressBar.setValue(0); 98 add(this.overallProgressBar, IzPanelLayout.getDefaultConstraint(FULL_LINE_CONTROL_CONSTRAINT)); 99 getLayoutHelper().completeLayout(); 100 101 } 102 103 108 public boolean isValidated() 109 { 110 return this.validated; 111 } 112 113 114 public void startAction(String name, int noOfJobs) 115 { 116 this.noOfPacks = noOfJobs; 117 SwingUtilities.invokeLater(new Runnable () { 118 public void run() 119 { 120 parent.blockGUI(); 121 122 overallProgressBar.setMinimum(0); 124 overallProgressBar.setMaximum(noOfPacks); 125 overallProgressBar.setString("0 / " + Integer.toString(noOfPacks)); 126 } 127 }); 128 } 129 130 135 public void emitError(String title, String error) 136 { 137 this.packOpLabel.setText(error); 138 idata.installSuccess = false; 139 JOptionPane.showMessageDialog(this, error, parent.langpack.getString("installer.error"), 140 JOptionPane.ERROR_MESSAGE); 141 } 142 143 144 public void stopAction() 145 { 146 SwingUtilities.invokeLater(new Runnable () { 147 public void run() 148 { 149 parent.releaseGUI(); 150 parent.lockPrevButton(); 151 152 overallProgressBar.setValue(overallProgressBar.getMaximum()); 156 int ppbMax = packProgressBar.getMaximum(); 157 if (ppbMax < 1) 158 { 159 ppbMax = 1; 160 packProgressBar.setMaximum(ppbMax); 161 } 162 packProgressBar.setValue(ppbMax); 163 164 packProgressBar.setString(parent.langpack.getString("InstallPanel.finished")); 165 packProgressBar.setEnabled(false); 166 String no_of_packs = Integer.toString(noOfPacks); 167 overallProgressBar.setString(no_of_packs + " / " + no_of_packs); 168 overallProgressBar.setEnabled(false); 169 packOpLabel.setText(" "); 170 packOpLabel.setEnabled(false); 171 idata.canClose = true; 172 validated = true; 173 if (idata.panels.indexOf(this) != (idata.panels.size() - 1)) parent.unlockNextButton(); 174 } 175 }); 176 } 177 178 184 public void progress(final int val, final String msg) 185 { 186 SwingUtilities.invokeLater(new Runnable () { 187 public void run() 188 { 189 packProgressBar.setValue(val + 1); 190 packOpLabel.setText(msg); 191 } 192 }); 193 } 194 195 202 public void nextStep(final String packName, final int stepno, final int max) 203 { 204 SwingUtilities.invokeLater(new Runnable () { 205 public void run() 206 { 207 packProgressBar.setValue(0); 208 packProgressBar.setMinimum(0); 209 packProgressBar.setMaximum(max); 210 packProgressBar.setString(packName); 211 overallProgressBar.setValue(stepno - 1); 212 overallProgressBar.setString(Integer.toString(stepno) + " / " 213 + Integer.toString(noOfPacks)); 214 } 215 }); 216 } 217 218 219 public void panelActivate() 220 { 221 Dimension dim = parent.getPanelsContainerSize(); 223 dim.width -= (dim.width / 4); 224 dim.height = 150; 225 setMinimumSize(dim); 226 setMaximumSize(dim); 227 setPreferredSize(dim); 228 parent.lockNextButton(); 229 230 parent.install(this); 231 } 232 233 } 234 | Popular Tags |