java/rozsirene-atributy/src/cz/frantovo/rozsireneAtributy/Startér.java
author František Kučera <franta-hg@frantovo.cz>
Thu Dec 16 01:16:55 2010 +0100 (2010-12-16)
changeset 13 6c633be53dd6
parent 11 9b399cde6a3b
child 15 8854e172a18f
permissions -rw-r--r--
Přesun TableModelu do GUI balíčku.
franta-hg@4
     1
package cz.frantovo.rozsireneAtributy;
franta-hg@4
     2
franta-hg@13
     3
import cz.frantovo.rozsireneAtributy.gui.Model;
franta-hg@6
     4
import cz.frantovo.rozsireneAtributy.gui.Panel;
franta-hg@6
     5
import java.awt.BorderLayout;
franta-hg@11
     6
import java.awt.event.ActionEvent;
franta-hg@11
     7
import java.awt.event.ActionListener;
franta-hg@11
     8
import java.awt.event.KeyEvent;
franta-hg@6
     9
import java.io.File;
franta-hg@6
    10
import java.io.IOException;
franta-hg@6
    11
import java.util.logging.Level;
franta-hg@6
    12
import java.util.logging.Logger;
franta-hg@11
    13
import javax.swing.JComponent;
franta-hg@6
    14
import javax.swing.JFrame;
franta-hg@7
    15
import javax.swing.JOptionPane;
franta-hg@11
    16
import javax.swing.KeyStroke;
franta-hg@6
    17
franta-hg@4
    18
/**
franta-hg@4
    19
 * Spouštěč programu
franta-hg@6
    20
 *
franta-hg@6
    21
 * http://freedesktop.org/wiki/CommonExtendedAttributes
franta-hg@6
    22
 * http://download.oracle.com/javase/tutorial/essential/io/fileAttr.html#user
franta-hg@6
    23
 * http://today.java.net/pub/a/today/2008/07/03/jsr-203-new-file-apis.html#so-what-is-a-path-really
franta-hg@6
    24
 *
franta-hg@6
    25
 * $ setfattr -n "user.fiki.pozdrav" -v 'Dobrý den!' pokus.txt
franta-hg@6
    26
 * (v javě pak pracujeme s klíči bez předpony „user.“)
franta-hg@6
    27
 *
franta-hg@4
    28
 * @author fiki
franta-hg@4
    29
 */
franta-hg@5
    30
public class Startér {
franta-hg@4
    31
franta-hg@6
    32
	private static final Logger log = Logger.getLogger(Startér.class.getSimpleName());
franta-hg@6
    33
franta-hg@8
    34
	/**
franta-hg@8
    35
	 * @param args název souboru
franta-hg@8
    36
	 * @throws IOException TODO: ošetřit výjimku
franta-hg@8
    37
	 */
franta-hg@6
    38
	public static void main(String[] args) throws IOException {
franta-hg@6
    39
franta-hg@7
    40
		if (args.length == 1 && args[0].length() > 0) {
franta-hg@6
    41
			File soubor = new File(args[0]);
franta-hg@6
    42
franta-hg@7
    43
			if (soubor.exists()) {
franta-hg@7
    44
				log.log(Level.INFO, "Pracuji se souborem: {0}", soubor);
franta-hg@6
    45
franta-hg@7
    46
				Model model = new Model(soubor);
franta-hg@6
    47
franta-hg@11
    48
				final JFrame f = new JFrame();
franta-hg@7
    49
				Panel p = new Panel(model);
franta-hg@6
    50
franta-hg@7
    51
				f.setLayout(new BorderLayout());
franta-hg@7
    52
				f.add(p, BorderLayout.CENTER);
franta-hg@6
    53
franta-hg@11
    54
				/** Ukončení programu klávesou Escape */
franta-hg@11
    55
				f.getRootPane().registerKeyboardAction(new ActionListener() {
franta-hg@11
    56
franta-hg@11
    57
					public void actionPerformed(ActionEvent ae) {
franta-hg@11
    58
						f.dispose();
franta-hg@11
    59
					}
franta-hg@11
    60
				}, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_IN_FOCUSED_WINDOW);
franta-hg@11
    61
franta-hg@8
    62
				f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
franta-hg@8
    63
				f.setTitle("Rozšířené stributy souboru: " + soubor);
franta-hg@7
    64
				f.setSize(640, 240);
franta-hg@7
    65
				f.setLocationRelativeTo(null);
franta-hg@7
    66
				f.setVisible(true);
franta-hg@7
    67
			} else {
franta-hg@7
    68
				ukončiChybou("Soubor neexistuje: " + soubor);
franta-hg@7
    69
			}
franta-hg@6
    70
		} else {
franta-hg@7
    71
			ukončiChybou("Očekávám právě jeden parametr – název souboru.");
franta-hg@6
    72
		}
franta-hg@4
    73
	}
franta-hg@7
    74
franta-hg@7
    75
	private static void ukončiChybou(String hláška) {
franta-hg@7
    76
		log.log(Level.SEVERE, hláška);
franta-hg@7
    77
		JOptionPane.showMessageDialog(null, hláška, "Chyba", JOptionPane.ERROR_MESSAGE);
franta-hg@7
    78
		System.exit(1);
franta-hg@7
    79
	}
franta-hg@4
    80
}