Při přepnutí souboru obnovíme jen model, ne celou JTable.
1.1 --- a/java/rozsirene-atributy-jedit/src/cz/frantovo/rozsireneAtributy/jedit/DokovatelnyPanel.java Sun Oct 07 15:11:42 2012 +0200
1.2 +++ b/java/rozsirene-atributy-jedit/src/cz/frantovo/rozsireneAtributy/jedit/DokovatelnyPanel.java Sun Oct 07 16:15:00 2012 +0200
1.3 @@ -40,6 +40,7 @@
1.4
1.5 private static final Logger log = Logger.getLogger(DokovatelnyPanel.class.getName());
1.6 private View view;
1.7 + private Panel panel;
1.8
1.9 public DokovatelnyPanel(final View view, final String position) {
1.10 this.view = view;
1.11 @@ -95,9 +96,15 @@
1.12
1.13 if (s.isFile() && s.canRead()) {
1.14 Model m = new Model(s);
1.15 - Panel p = new Panel(m);
1.16 - removeAll();
1.17 - add(p, BorderLayout.CENTER);
1.18 +
1.19 + if (panel == null) {
1.20 + panel = new Panel(m);
1.21 + removeAll();
1.22 + add(panel, BorderLayout.CENTER);
1.23 + } else {
1.24 + panel.setModel(m);
1.25 + }
1.26 +
1.27 } else {
1.28 // TODO: zobrazit chybu
1.29 log.log(Level.WARNING, "Soubor neexistuje nebo nemáme práva na čtení: {0}", s);
2.1 --- a/java/rozsirene-atributy/src/cz/frantovo/rozsireneAtributy/gui/Panel.java Sun Oct 07 15:11:42 2012 +0200
2.2 +++ b/java/rozsirene-atributy/src/cz/frantovo/rozsireneAtributy/gui/Panel.java Sun Oct 07 16:15:00 2012 +0200
2.3 @@ -34,6 +34,7 @@
2.4 */
2.5 public class Panel extends javax.swing.JPanel {
2.6
2.7 + private static final int SLOUPEC_NÁZVU = 0;
2.8 private static final Logger log = Logger.getLogger(Panel.class.getSimpleName());
2.9 private static final ResourceBundle překlady = ResourceBundle.getBundle("cz.frantovo.rozsireneAtributy.Překlady");
2.10 private Model model;
2.11 @@ -45,7 +46,7 @@
2.12 initComponents();
2.13
2.14 tabulka = new JTable(model);
2.15 - tabulka.getColumnModel().getColumn(0).setCellEditor(new EditorNázvůAtributů());
2.16 + nastavEditor();
2.17 tabulka.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
2.18 posuvnýPanel.setViewportView(tabulka);
2.19
2.20 @@ -66,10 +67,20 @@
2.21 });
2.22 }
2.23
2.24 + private void nastavEditor() {
2.25 + tabulka.getColumnModel().getColumn(SLOUPEC_NÁZVU).setCellEditor(new EditorNázvůAtributů());
2.26 + }
2.27 +
2.28 private Model getModel() {
2.29 return model;
2.30 }
2.31
2.32 + public void setModel(Model model) {
2.33 + this.model = model;
2.34 + tabulka.setModel(model);
2.35 + nastavEditor();
2.36 + }
2.37 +
2.38 private void zobrazChybovouHlášku(String hláška, Throwable chyba) {
2.39 JOptionPane.showMessageDialog(this, hláška, překlady.getString("chyba"), JOptionPane.ERROR_MESSAGE);
2.40 log.log(Level.WARNING, hláška, chyba);