/* Jaxe - Editeur XML en Java Copyright (C) 2004 Observatoire de Paris Ce programme est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier conformément aux dispositions de la Licence Publique Générale GNU, telle que publiée par la Free Software Foundation ; version 2 de la licence, ou encore (à votre choix) toute version ultérieure. Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ; sans même la garantie implicite de COMMERCIALISATION ou D'ADAPTATION A UN OBJET PARTICULIER. Pour plus de détail, voir la Licence Publique Générale GNU . Vous devez avoir reçu un exemplaire de la Licence Publique Générale GNU en même temps que ce programme ; si ce n'est pas le cas, écrivez à la Free Software Foundation Inc., 675 Mass Ave, Cambridge, MA 02139, Etats-Unis. */ package jaxe; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.File; import java.util.ResourceBundle; import java.util.Vector; import javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.ListSelectionModel; /** * Dialogue de création d'un nouveau document */ public class DialogueNouveau extends JDialog implements ActionListener { private static ResourceBundle rb = JaxeResourceBundle.getRB(); JList liste; Vector configs; // de String JaxeFrame frame; boolean bannulation = false; public DialogueNouveau(JaxeFrame frame) { super(frame, true); this.frame = frame; setTitle(rb.getString("nouveau.Titre")); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { annuler(); } }); Vector v = new Vector(); // de String configs = new Vector(); File configdir = new File("config"); String[] lfichiers = configdir.list(); if (lfichiers == null && Jaxe.nomFichierCfg != null) lfichiers = new String[] {Jaxe.nomFichierCfg}; // fall back to default if (lfichiers == null) { System.err.println(rb.getString("erreur.DossierConfig")); return; } for (int i=0; i 0) liste.setSelectedIndex(0); liste.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); MouseListener mouseListener = new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) nouveau(); } }; liste.addMouseListener(mouseListener); liste.setBorder(BorderFactory.createLoweredBevelBorder()); cpane.add(liste, BorderLayout.CENTER); JPanel bpane = new JPanel(); JButton bannuler = new JButton(rb.getString("nouveau.Annuler")); bannuler.setActionCommand("annuler"); bannuler.addActionListener(this); bpane.add(bannuler); JButton bnouveau = new JButton(rb.getString("nouveau.Nouveau")); bnouveau.setActionCommand("nouveau"); bnouveau.addActionListener(this); bpane.add(bnouveau); cpane.add(bpane, BorderLayout.SOUTH); getRootPane().setDefaultButton(bnouveau); pack(); Dimension dim = getSize(); Dimension ecran = getToolkit().getScreenSize(); setLocation((ecran.width - dim.width)/2, (ecran.height - dim.height)/2); } public void actionPerformed(ActionEvent e) { String cmd = e.getActionCommand(); if ("nouveau".equals(cmd)) nouveau(); else if ("annuler".equals(cmd)) annuler(); } protected void nouveau() { int ind = liste.getSelectedIndex(); JaxeFrame jframe; if (frame != null && !(frame.doc.modif || frame.doc.fsave != null)) jframe = frame; else { jframe = new JaxeFrame(); Jaxe.allFrames.add(jframe); } jframe.initNew((String)configs.get(ind)); setVisible(false); } protected void annuler() { bannulation = true; setVisible(false); } /** * Renvoit true si le dialogue a été annulé */ public boolean annulation() { return(bannulation); } }