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