Při přepnutí souboru obnovíme jen model, ne celou JTable.
authorFrantišek Kučera <franta-hg@frantovo.cz>
Sun Oct 07 16:15:00 2012 +0200 (2012-10-07)
changeset 2369f49b79342e
parent 22 bf06eb899671
child 24 55e1b42b81f9
Při přepnutí souboru obnovíme jen model, ne celou JTable.
java/rozsirene-atributy-jedit/src/cz/frantovo/rozsireneAtributy/jedit/DokovatelnyPanel.java
java/rozsirene-atributy/src/cz/frantovo/rozsireneAtributy/gui/Panel.java
     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);