java/rozsirene-atributy-jedit/src/cz/frantovo/rozsireneAtributy/jedit/DokovatelnyPanel.java
1.1 --- a/java/rozsirene-atributy-jedit/src/cz/frantovo/rozsireneAtributy/jedit/DokovatelnyPanel.java Sun Dec 10 23:59:24 2023 +0100
1.2 +++ b/java/rozsirene-atributy-jedit/src/cz/frantovo/rozsireneAtributy/jedit/DokovatelnyPanel.java Mon Dec 11 00:08:35 2023 +0100
1.3 @@ -24,6 +24,7 @@
1.4 import java.io.IOException;
1.5 import java.util.logging.Level;
1.6 import java.util.logging.Logger;
1.7 +import javax.swing.JOptionPane;
1.8 import javax.swing.JPanel;
1.9 import org.gjt.sp.jedit.Buffer;
1.10 import org.gjt.sp.jedit.EBComponent;
1.11 @@ -45,7 +46,7 @@
1.12 public DokovatelnyPanel(final View view, final String position) {
1.13 this.view = view;
1.14 setLayout(new BorderLayout());
1.15 - změňSoubor(view.getBuffer());
1.16 + změňSoubor(view.getBuffer(), false);
1.17 }
1.18
1.19 /**
1.20 @@ -67,8 +68,8 @@
1.21 }
1.22
1.23 /**
1.24 - * Zpracujeme události editoru.
1.25 - * Zajímá nás přepnutí na jiný soubor – abychom pro něj zobrazili atributy.
1.26 + * Zpracujeme události editoru. Zajímá nás přepnutí na jiný soubor – abychom
1.27 + * pro něj zobrazili atributy.
1.28 *
1.29 * @param událost událost editoru
1.30 */
1.31 @@ -79,7 +80,13 @@
1.32 EditPaneUpdate epu = (EditPaneUpdate) událost;
1.33 // Chodí nám všechny události – potřebujeme filtrovat jen ty pro naše okno.
1.34 if (view == epu.getEditPane().getView()) {
1.35 - změňSoubor(view.getBuffer());
1.36 + // zajímá nás jen přepnutí souboru
1.37 + if (epu.getWhat() == EditPaneUpdate.BUFFER_CHANGED) {
1.38 + /**
1.39 + * TODO: je soubor nově otevřený?
1.40 + */
1.41 + změňSoubor(view.getBuffer(), epu.getWhat() == EditPaneUpdate.CREATED);
1.42 + }
1.43 }
1.44 }
1.45 // událost instanceof BufferUpdate
1.46 @@ -90,7 +97,7 @@
1.47
1.48 }
1.49
1.50 - private void změňSoubor(Buffer b) {
1.51 + private void změňSoubor(Buffer b, boolean využijAtributy) {
1.52 try {
1.53 File s = new File(b.getPath());
1.54
1.55 @@ -105,6 +112,10 @@
1.56 panel.setModel(m);
1.57 }
1.58
1.59 + if (využijAtributy) {
1.60 + využijAtributy(m, b);
1.61 + }
1.62 +
1.63 } else {
1.64 // TODO: zobrazit chybu
1.65 log.log(Level.WARNING, "Soubor neexistuje nebo nemáme práva na čtení: {0}", s);
1.66 @@ -113,4 +124,14 @@
1.67 log.log(Level.WARNING, "Chyba při změně souboru.", e);
1.68 }
1.69 }
1.70 +
1.71 + /**
1.72 + * Nastaví jEdit podle atributů daného souboru: - odsazování - kódování
1.73 + *
1.74 + * @param m model obsahující atributy
1.75 + * @param b soubor otevřený v editoru
1.76 + */
1.77 + private void využijAtributy(Model m, Buffer b) {
1.78 + JOptionPane.showMessageDialog(panel, "Nový soubor!");
1.79 + }
1.80 }