diff -r 80527aaef611 -r 706d4c013bf1 java/rozsirene-atributy-jedit/src/cz/frantovo/rozsireneAtributy/jedit/DokovatelnyPanel.java --- a/java/rozsirene-atributy-jedit/src/cz/frantovo/rozsireneAtributy/jedit/DokovatelnyPanel.java Sun Dec 10 23:59:24 2023 +0100 +++ b/java/rozsirene-atributy-jedit/src/cz/frantovo/rozsireneAtributy/jedit/DokovatelnyPanel.java Mon Dec 11 00:08:35 2023 +0100 @@ -24,6 +24,7 @@ import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; +import javax.swing.JOptionPane; import javax.swing.JPanel; import org.gjt.sp.jedit.Buffer; import org.gjt.sp.jedit.EBComponent; @@ -45,7 +46,7 @@ public DokovatelnyPanel(final View view, final String position) { this.view = view; setLayout(new BorderLayout()); - změňSoubor(view.getBuffer()); + změňSoubor(view.getBuffer(), false); } /** @@ -67,8 +68,8 @@ } /** - * Zpracujeme události editoru. - * Zajímá nás přepnutí na jiný soubor – abychom pro něj zobrazili atributy. + * Zpracujeme události editoru. Zajímá nás přepnutí na jiný soubor – abychom + * pro něj zobrazili atributy. * * @param událost událost editoru */ @@ -79,7 +80,13 @@ EditPaneUpdate epu = (EditPaneUpdate) událost; // Chodí nám všechny události – potřebujeme filtrovat jen ty pro naše okno. if (view == epu.getEditPane().getView()) { - změňSoubor(view.getBuffer()); + // zajímá nás jen přepnutí souboru + if (epu.getWhat() == EditPaneUpdate.BUFFER_CHANGED) { + /** + * TODO: je soubor nově otevřený? + */ + změňSoubor(view.getBuffer(), epu.getWhat() == EditPaneUpdate.CREATED); + } } } // událost instanceof BufferUpdate @@ -90,7 +97,7 @@ } - private void změňSoubor(Buffer b) { + private void změňSoubor(Buffer b, boolean využijAtributy) { try { File s = new File(b.getPath()); @@ -105,6 +112,10 @@ panel.setModel(m); } + if (využijAtributy) { + využijAtributy(m, b); + } + } else { // TODO: zobrazit chybu log.log(Level.WARNING, "Soubor neexistuje nebo nemáme práva na čtení: {0}", s); @@ -113,4 +124,14 @@ log.log(Level.WARNING, "Chyba při změně souboru.", e); } } + + /** + * Nastaví jEdit podle atributů daného souboru: - odsazování - kódování + * + * @param m model obsahující atributy + * @param b soubor otevřený v editoru + */ + private void využijAtributy(Model m, Buffer b) { + JOptionPane.showMessageDialog(panel, "Nový soubor!"); + } }