Klávesové zkratky, kontroly, čeština.
1 package cz.frantovo.rozsireneAtributy.gui;
3 import cz.frantovo.rozsireneAtributy.Atribut;
4 import cz.frantovo.rozsireneAtributy.Model;
5 import java.io.IOException;
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;
16 public class Panel extends javax.swing.JPanel {
18 private static final Logger log = Logger.getLogger(Panel.class.getSimpleName());
20 private Atribut vybranýAtribut;
22 public Panel(Model model) {
25 tabulka.setModel(model);
27 /** Výběr aktuálního atributu v tabulce */
28 tabulka.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
30 public void valueChanged(ListSelectionEvent e) {
31 int řádek = tabulka.getSelectedRow();
33 vybranýAtribut = null;
34 tlačítkoSmazat.setEnabled(false);
36 vybranýAtribut = getModel().getAtribut(řádek);
37 tlačítkoSmazat.setEnabled(true);
43 private Model getModel() {
47 private void zobrazChybovouHlášku(String hláška, Throwable chyba) {
48 JOptionPane.showMessageDialog(this, hláška, "Chyba", JOptionPane.ERROR_MESSAGE);
49 log.log(Level.WARNING, hláška, chyba);
52 @SuppressWarnings("unchecked")
53 // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
54 private void initComponents() {
56 posuvnýPanel = new javax.swing.JScrollPane();
57 tabulka = new javax.swing.JTable();
58 tlačítkoPřidat = new javax.swing.JButton();
59 tlačítkoSmazat = new javax.swing.JButton();
60 tlačítkoZnovuNačíst = new javax.swing.JButton();
62 tabulka.setModel(new javax.swing.table.DefaultTableModel(
64 {null, null, null, null},
65 {null, null, null, null},
66 {null, null, null, null},
67 {null, null, null, null}
70 "Title 1", "Title 2", "Title 3", "Title 4"
73 tabulka.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
74 posuvnýPanel.setViewportView(tabulka);
76 tlačítkoPřidat.setMnemonic('p');
77 tlačítkoPřidat.setText("Přidat atribut");
78 tlačítkoPřidat.addActionListener(new java.awt.event.ActionListener() {
79 public void actionPerformed(java.awt.event.ActionEvent evt) {
80 tlačítkoPřidatActionPerformed(evt);
84 tlačítkoSmazat.setMnemonic('s');
85 tlačítkoSmazat.setText("Smazat atribut");
86 tlačítkoSmazat.setEnabled(false);
87 tlačítkoSmazat.addActionListener(new java.awt.event.ActionListener() {
88 public void actionPerformed(java.awt.event.ActionEvent evt) {
89 tlačítkoSmazatActionPerformed(evt);
93 tlačítkoZnovuNačíst.setMnemonic('z');
94 tlačítkoZnovuNačíst.setText("Znovu načíst");
95 tlačítkoZnovuNačíst.addActionListener(new java.awt.event.ActionListener() {
96 public void actionPerformed(java.awt.event.ActionEvent evt) {
97 tlačítkoZnovuNačístActionPerformed(evt);
101 javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
102 this.setLayout(layout);
103 layout.setHorizontalGroup(
104 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
105 .addGroup(layout.createSequentialGroup()
107 .addComponent(tlačítkoPřidat)
108 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
109 .addComponent(tlačítkoSmazat)
110 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
111 .addComponent(tlačítkoZnovuNačíst)
112 .addContainerGap(186, Short.MAX_VALUE))
113 .addComponent(posuvnýPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 543, Short.MAX_VALUE)
115 layout.setVerticalGroup(
116 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
117 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
118 .addComponent(posuvnýPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 277, Short.MAX_VALUE)
119 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
120 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
121 .addComponent(tlačítkoPřidat)
122 .addComponent(tlačítkoSmazat)
123 .addComponent(tlačítkoZnovuNačíst))
126 }// </editor-fold>//GEN-END:initComponents
128 private void tlačítkoPřidatActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tlačítkoPřidatActionPerformed
129 model.přidejAtribut(new Atribut());
130 }//GEN-LAST:event_tlačítkoPřidatActionPerformed
132 private void tlačítkoSmazatActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tlačítkoSmazatActionPerformed
134 model.odeberAtribut(vybranýAtribut);
135 } catch (IOException e) {
136 zobrazChybovouHlášku("Nepodařilo se smazat atribut.", e);
138 }//GEN-LAST:event_tlačítkoSmazatActionPerformed
140 private void tlačítkoZnovuNačístActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tlačítkoZnovuNačístActionPerformed
142 model.načtiAtributy();
143 } catch (IOException e) {
144 zobrazChybovouHlášku("Nepodařilo se načíst atributy", e);
146 }//GEN-LAST:event_tlačítkoZnovuNačístActionPerformed
147 // Variables declaration - do not modify//GEN-BEGIN:variables
148 private javax.swing.JScrollPane posuvnýPanel;
149 private javax.swing.JTable tabulka;
150 private javax.swing.JButton tlačítkoPřidat;
151 private javax.swing.JButton tlačítkoSmazat;
152 private javax.swing.JButton tlačítkoZnovuNačíst;
153 // End of variables declaration//GEN-END:variables