java/rozsirene-atributy-jedit/src/cz/frantovo/rozsireneAtributy/jedit/DokovatelnyPanel.java
branchv_0
changeset 26 706d4c013bf1
parent 23 279604933063
child 27 dc5786f3482b
     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  }