Lokalizace + anglický překlad.
1 package cz.frantovo.rozsireneAtributy;
3 import cz.frantovo.rozsireneAtributy.gui.Model;
4 import cz.frantovo.rozsireneAtributy.gui.Panel;
5 import java.awt.BorderLayout;
6 import java.awt.event.ActionEvent;
7 import java.awt.event.ActionListener;
8 import java.awt.event.KeyEvent;
10 import java.io.IOException;
11 import java.text.MessageFormat;
12 import java.util.ResourceBundle;
13 import java.util.logging.Level;
14 import java.util.logging.Logger;
15 import javax.swing.JComponent;
16 import javax.swing.JFrame;
17 import javax.swing.JOptionPane;
18 import javax.swing.KeyStroke;
23 * http://freedesktop.org/wiki/CommonExtendedAttributes
24 * http://download.oracle.com/javase/tutorial/essential/io/fileAttr.html#user
25 * http://today.java.net/pub/a/today/2008/07/03/jsr-203-new-file-apis.html#so-what-is-a-path-really
27 * $ setfattr -n "user.fiki.pozdrav" -v 'Dobrý den!' pokus.txt
28 * (v javě pak pracujeme s klíči bez předpony „user.“)
32 public class Startér {
34 private static final Logger log = Logger.getLogger(Startér.class.getSimpleName());
35 private static final ResourceBundle překlady = ResourceBundle.getBundle("cz.frantovo.rozsireneAtributy.Překlady");
38 * @param args název souboru
39 * @throws IOException TODO: ošetřit výjimku
41 public static void main(String[] args) throws IOException {
44 if (args.length == 1 && args[0].length() > 0) {
45 File soubor = new File(args[0]);
47 if (soubor.exists()) {
48 log.log(Level.INFO, "Pracuji se souborem: {0}", soubor);
50 Model model = new Model(soubor);
52 final JFrame f = new JFrame();
53 Panel p = new Panel(model);
55 f.setLayout(new BorderLayout());
56 f.add(p, BorderLayout.CENTER);
58 /** Ukončení programu klávesou Escape */
59 f.getRootPane().registerKeyboardAction(new ActionListener() {
61 public void actionPerformed(ActionEvent ae) {
64 }, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_IN_FOCUSED_WINDOW);
66 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
67 f.setTitle(MessageFormat.format(překlady.getString("titulek"), soubor));
69 f.setLocationRelativeTo(null);
72 ukončiChybou(MessageFormat.format(překlady.getString("chyba.souborNeexistuje"), soubor));
75 ukončiChybou(překlady.getString("chyba.chybíParametr"));
79 private static void ukončiChybou(String hláška) {
80 log.log(Level.SEVERE, hláška);
81 JOptionPane.showMessageDialog(null, hláška, překlady.getString("chyba.titulek"), JOptionPane.ERROR_MESSAGE);