java/rozsirene-atributy/src/cz/frantovo/rozsireneAtributy/gui/Panel.java
author František Kučera <franta-hg@frantovo.cz>
Tue Dec 28 17:24:05 2010 +0100 (2010-12-28)
changeset 16 c39a2d3cb6d2
parent 15 8854e172a18f
child 19 c20edbed09c3
permissions -rw-r--r--
JTable: zjednodušení.
     1 package cz.frantovo.rozsireneAtributy.gui;
     2 
     3 import cz.frantovo.rozsireneAtributy.Atribut;
     4 import java.io.IOException;
     5 import java.util.ResourceBundle;
     6 import java.util.logging.Level;
     7 import java.util.logging.Logger;
     8 import javax.swing.JOptionPane;
     9 import javax.swing.JTable;
    10 import javax.swing.ListSelectionModel;
    11 import javax.swing.event.ListSelectionEvent;
    12 import javax.swing.event.ListSelectionListener;
    13 
    14 /**
    15  *
    16  * @author fiki
    17  */
    18 public class Panel extends javax.swing.JPanel {
    19 
    20 	private static final Logger log = Logger.getLogger(Panel.class.getSimpleName());
    21 	private static final ResourceBundle překlady = ResourceBundle.getBundle("cz.frantovo.rozsireneAtributy.Překlady");
    22 	private Model model;
    23 	private Atribut vybranýAtribut;
    24 	private JTable tabulka;
    25 
    26 	public Panel(Model model) {
    27 		this.model = model;
    28 		initComponents();
    29 
    30 		tabulka = new JTable(model);
    31 		tabulka.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    32 		posuvnýPanel.setViewportView(tabulka);
    33 
    34 		/** Výběr aktuálního atributu v tabulce */
    35 		tabulka.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
    36 
    37 			public void valueChanged(ListSelectionEvent e) {
    38 				int řádek = tabulka.getSelectedRow();
    39 				if (řádek < 0) {
    40 					vybranýAtribut = null;
    41 					tlačítkoSmazat.setEnabled(false);
    42 				} else {
    43 					vybranýAtribut = getModel().getAtribut(řádek);
    44 					tlačítkoSmazat.setEnabled(true);
    45 				}
    46 			}
    47 		});
    48 	}
    49 
    50 	private Model getModel() {
    51 		return model;
    52 	}
    53 
    54 	private void zobrazChybovouHlášku(String hláška, Throwable chyba) {
    55 		JOptionPane.showMessageDialog(this, hláška, překlady.getString("chyba"), JOptionPane.ERROR_MESSAGE);
    56 		log.log(Level.WARNING, hláška, chyba);
    57 	}
    58 
    59 	@SuppressWarnings("unchecked")
    60     // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    61     private void initComponents() {
    62 
    63         posuvnýPanel = new javax.swing.JScrollPane();
    64         tlačítkoPřidat = new javax.swing.JButton();
    65         tlačítkoSmazat = new javax.swing.JButton();
    66         tlačítkoZnovuNačíst = new javax.swing.JButton();
    67 
    68         tlačítkoPřidat.setMnemonic('p');
    69         java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("cz/frantovo/rozsireneAtributy/Překlady"); // NOI18N
    70         tlačítkoPřidat.setText(bundle.getString("přidatAtribut")); // NOI18N
    71         tlačítkoPřidat.addActionListener(new java.awt.event.ActionListener() {
    72             public void actionPerformed(java.awt.event.ActionEvent evt) {
    73                 tlačítkoPřidatActionPerformed(evt);
    74             }
    75         });
    76 
    77         tlačítkoSmazat.setMnemonic('s');
    78         tlačítkoSmazat.setText(bundle.getString("smazatAtribut")); // NOI18N
    79         tlačítkoSmazat.setEnabled(false);
    80         tlačítkoSmazat.addActionListener(new java.awt.event.ActionListener() {
    81             public void actionPerformed(java.awt.event.ActionEvent evt) {
    82                 tlačítkoSmazatActionPerformed(evt);
    83             }
    84         });
    85 
    86         tlačítkoZnovuNačíst.setMnemonic('z');
    87         tlačítkoZnovuNačíst.setText(bundle.getString("znovuNačíst")); // NOI18N
    88         tlačítkoZnovuNačíst.addActionListener(new java.awt.event.ActionListener() {
    89             public void actionPerformed(java.awt.event.ActionEvent evt) {
    90                 tlačítkoZnovuNačístActionPerformed(evt);
    91             }
    92         });
    93 
    94         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
    95         this.setLayout(layout);
    96         layout.setHorizontalGroup(
    97             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    98             .addGroup(layout.createSequentialGroup()
    99                 .addContainerGap()
   100                 .addComponent(tlačítkoPřidat)
   101                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
   102                 .addComponent(tlačítkoSmazat)
   103                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
   104                 .addComponent(tlačítkoZnovuNačíst)
   105                 .addContainerGap(186, Short.MAX_VALUE))
   106             .addComponent(posuvnýPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 543, Short.MAX_VALUE)
   107         );
   108         layout.setVerticalGroup(
   109             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
   110             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
   111                 .addComponent(posuvnýPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 277, Short.MAX_VALUE)
   112                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
   113                 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
   114                     .addComponent(tlačítkoPřidat)
   115                     .addComponent(tlačítkoSmazat)
   116                     .addComponent(tlačítkoZnovuNačíst))
   117                 .addContainerGap())
   118         );
   119     }// </editor-fold>//GEN-END:initComponents
   120 
   121 	private void tlačítkoPřidatActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tlačítkoPřidatActionPerformed
   122 		model.přidejAtribut(new Atribut());
   123 	}//GEN-LAST:event_tlačítkoPřidatActionPerformed
   124 
   125 	private void tlačítkoSmazatActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tlačítkoSmazatActionPerformed
   126 		try {
   127 			model.odeberAtribut(vybranýAtribut);
   128 		} catch (IOException e) {
   129 			zobrazChybovouHlášku(překlady.getString("chyba.nepodařiloSeSmazat"), e);
   130 		}
   131 	}//GEN-LAST:event_tlačítkoSmazatActionPerformed
   132 
   133 	private void tlačítkoZnovuNačístActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tlačítkoZnovuNačístActionPerformed
   134 		try {
   135 			model.načtiAtributy();
   136 		} catch (IOException e) {
   137 			zobrazChybovouHlášku(překlady.getString("chyba.nepodařiloSeNačíst"), e);
   138 		}
   139 	}//GEN-LAST:event_tlačítkoZnovuNačístActionPerformed
   140     // Variables declaration - do not modify//GEN-BEGIN:variables
   141     private javax.swing.JScrollPane posuvnýPanel;
   142     private javax.swing.JButton tlačítkoPřidat;
   143     private javax.swing.JButton tlačítkoSmazat;
   144     private javax.swing.JButton tlačítkoZnovuNačíst;
   145     // End of variables declaration//GEN-END:variables
   146 }