From: Holger Z. <hz...@us...> - 2004-09-26 19:59:24
|
Update of /cvsroot/jake2/jake2/src/jake2/qcommon In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21778/src/jake2/qcommon Modified Files: Q2DataDialog.java Log Message: load download mirrors from resource file Index: Q2DataDialog.java =================================================================== RCS file: /cvsroot/jake2/jake2/src/jake2/qcommon/Q2DataDialog.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Q2DataDialog.java 26 Sep 2004 18:31:14 -0000 1.10 --- Q2DataDialog.java 26 Sep 2004 19:58:56 -0000 1.11 *************** *** 1,10 **** /* * Q2DataDialog.java ! * ! * Created on 17. September 2004, 20:13 */ package jake2.qcommon; import java.awt.*; import java.awt.event.ActionEvent; --- 1,13 ---- /* * Q2DataDialog.java ! * Copyright (C) 2003 ! * ! * $Id$ */ package jake2.qcommon; + import jake2.Globals; + import java.awt.*; import java.awt.event.ActionEvent; *************** *** 14,17 **** --- 17,21 ---- import java.net.URLConnection; import java.util.Enumeration; + import java.util.Vector; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; *************** *** 20,28 **** import javax.swing.*; ! /** ! * ! * @author hoz ! */ public class Q2DataDialog extends javax.swing.JDialog { public Q2DataDialog() { --- 24,32 ---- import javax.swing.*; ! public class Q2DataDialog extends javax.swing.JDialog { + + static final String home = System.getProperty("user.home"); + static final String sep = System.getProperty("file.separator"); public Q2DataDialog() { *************** *** 34,38 **** int y = (mode.getHeight() - getHeight()) / 2; setLocation(x, y); ! dir = System.getProperty("user.home") + "/jake2"; jTextField1.setText(dir); } --- 38,42 ---- int y = (mode.getHeight() - getHeight()) / 2; setLocation(x, y); ! dir = home + sep + "jake2" + sep + "baseq2"; jTextField1.setText(dir); } *************** *** 414,423 **** static class InstallPanel extends JPanel { ! private static final String[][] mirrors = { ! //{"LOC gate", "ftp://gate/q2-314-demo-x86.exe"}, // local test @home ! {"DE ftp.fu-berlin.de", "ftp://ftp.fu-berlin.de/pc/msdos/games/idgames/idstuff/quake2/q2-314-demo-x86.exe"}, ! {"UK ftp.demon.co.uk", "ftp://ftp.demon.co.uk/pub/mirrors/idsoftware/quake2/q2-314-demo-x86.exe"}, ! {"SE ftp.fragzone.se", "ftp://ftp.fragzone.se/pub/spel/quake2/q2-314-demo-x86.exe"}, ! {"US ftp.idsoftware.com", "ftp://ftp.idsoftware.com/idstuff/quake2/q2-314-demo-x86.exe"} }; private Q2DataDialog parent; private JComboBox mirrorBox; --- 418,423 ---- static class InstallPanel extends JPanel { ! private Vector mirrorNames = new Vector(); ! private Vector mirrorLinks = new Vector(); private Q2DataDialog parent; private JComboBox mirrorBox; *************** *** 430,433 **** --- 430,435 ---- public InstallPanel(Q2DataDialog d) { initComponents(); + String dir = Q2DataDialog.home + Q2DataDialog.sep + "jake2"; + destDir.setText(dir); initMirrors(); parent = d; *************** *** 518,528 **** private void readMirrors() { } private void initMirrors() { readMirrors(); ! for (int i = 0; i < mirrors.length; i++) { ! mirrorBox.addItem(mirrors[i][0]); } } --- 520,552 ---- private void readMirrors() { + InputStream in = getClass().getResourceAsStream("/mirrors"); + BufferedReader r = new BufferedReader(new InputStreamReader(in)); + try { + int i = 0; + while (true) { + String name = r.readLine(); + String value = r.readLine(); + if (name == null || value == null) break; + mirrorNames.add(name); + mirrorLinks.add(value); + } + } catch (Exception e) {} + finally { + try { + r.close(); + } catch (Exception e1) {} + try { + in.close(); + } catch (Exception e1) {} + } } private void initMirrors() { readMirrors(); ! for (int i = 0; i < mirrorNames.size(); i++) { ! mirrorBox.addItem(mirrorNames.get(i)); } + int i = Globals.rnd.nextInt(mirrorNames.size()); + mirrorBox.setSelectedIndex(i); } *************** *** 533,537 **** private void install() { parent.progressPanel.destDir = destDir.getText(); ! parent.progressPanel.mirror = mirrors[mirrorBox.getSelectedIndex()][1]; parent.showProgressPanel(); new Thread(parent.progressPanel).start(); --- 557,561 ---- private void install() { parent.progressPanel.destDir = destDir.getText(); ! parent.progressPanel.mirror = (String)mirrorLinks.get(mirrorBox.getSelectedIndex()); parent.showProgressPanel(); new Thread(parent.progressPanel).start(); *************** *** 565,570 **** JProgressBar progress = new JProgressBar(); ! JLabel label = new JLabel("test"); Q2DataDialog parent; public ProgressPanel(Q2DataDialog d) { --- 589,596 ---- JProgressBar progress = new JProgressBar(); ! JLabel label = new JLabel(""); ! JButton cancel = new JButton("Cancel"); Q2DataDialog parent; + boolean running; public ProgressPanel(Q2DataDialog d) { *************** *** 576,594 **** progress.setMinimum(0); progress.setMaximum(100); setLayout(new GridBagLayout()); GridBagConstraints gridBagConstraints = new GridBagConstraints(); ! gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.gridwidth = 1; ! gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; ! gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10); gridBagConstraints.weightx = 1.0; gridBagConstraints.anchor = GridBagConstraints.SOUTH; add(label, gridBagConstraints); gridBagConstraints.gridy = 1; gridBagConstraints.anchor = GridBagConstraints.NORTH; add(progress, gridBagConstraints); Dimension d = new Dimension(400, 100); setMinimumSize(d); --- 602,634 ---- progress.setMinimum(0); progress.setMaximum(100); + progress.setStringPainted(true); setLayout(new GridBagLayout()); GridBagConstraints gridBagConstraints = new GridBagConstraints(); ! gridBagConstraints = new GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.gridwidth = 1; ! gridBagConstraints.fill = GridBagConstraints.HORIZONTAL; ! gridBagConstraints.insets = new Insets(5, 10, 5, 10); gridBagConstraints.weightx = 1.0; gridBagConstraints.anchor = GridBagConstraints.SOUTH; add(label, gridBagConstraints); + gridBagConstraints.gridy = 1; gridBagConstraints.anchor = GridBagConstraints.NORTH; add(progress, gridBagConstraints); + + gridBagConstraints.gridy = 1; + gridBagConstraints.anchor = GridBagConstraints.SOUTH; + gridBagConstraints.fill = GridBagConstraints.NONE; + gridBagConstraints.weighty = 1; + gridBagConstraints.weightx = 0; + cancel.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + cancel(); + }}); + add(cancel, gridBagConstraints); + Dimension d = new Dimension(400, 100); setMinimumSize(d); *************** *** 596,602 **** setPreferredSize(d); } public void run() { ! InputStream in = null; OutputStream out = null; --- 636,651 ---- setPreferredSize(d); } + + void cancel() { + synchronized(this) { + running = false; + } + } public void run() { ! synchronized(this) { ! running = true; ! } ! InputStream in = null; OutputStream out = null; *************** *** 710,713 **** --- 759,763 ---- int l; while ((l = in.read(buf)) > 0) { + if (!running) throw new Exception("installation canceled"); out.write(buf, 0, l); c += l; |