diff -r bdae9cab5797 -r 6864cc4e6027 java/rozsirene-atributy-jedit/src/cz/frantovo/rozsireneAtributy/jedit/DokovatelnyPanel.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/rozsirene-atributy-jedit/src/cz/frantovo/rozsireneAtributy/jedit/DokovatelnyPanel.java Sat Aug 18 13:22:45 2012 +0200 @@ -0,0 +1,74 @@ +package cz.frantovo.rozsireneAtributy.jedit; + +import java.util.logging.Level; +import java.util.logging.Logger; +import javax.swing.JPanel; +import javax.swing.JTextArea; +import org.gjt.sp.jedit.Buffer; +import org.gjt.sp.jedit.EBComponent; +import org.gjt.sp.jedit.EBMessage; +import org.gjt.sp.jedit.EditBus; +import org.gjt.sp.jedit.View; +import org.gjt.sp.jedit.msg.EditPaneUpdate; + +/** + * + * @author Ing. František Kučera (frantovo.cz) + */ +public class DokovatelnyPanel extends JPanel implements EBComponent { + + private static final Logger log = Logger.getLogger(DokovatelnyPanel.class.getName()); + private JTextArea pokus = new JTextArea("..."); + private View view; + + public DokovatelnyPanel(final View view, final String position) { + this.view = view; + add(pokus); + } + + /** + * Zaregistrujeme se, aby nám chodily události editoru. + */ + @Override + public void addNotify() { + super.addNotify(); + EditBus.addToBus(this); + } + + /** + * @see #addNotify() + */ + @Override + public void removeNotify() { + super.removeNotify(); + EditBus.removeFromBus(this); + } + + /** + * 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 + */ + @Override + public void handleMessage(EBMessage událost) { + try { + if (událost instanceof EditPaneUpdate) { + 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()); + } + } + // událost instanceof BufferUpdate + // událost instanceof PropertiesChanged + } catch (Exception e) { + log.log(Level.WARNING, "Chyba při zpracování události: " + událost, e); + } + + } + + private void změňSoubor(Buffer b) { + pokus.setText(b.getPath()); + } +}