diff -r 41e91ea94acb -r ec0e970e0830 java/rozsirene-atributy/src/cz/frantovo/rozsireneatributy/gui/Panel.java --- a/java/rozsirene-atributy/src/cz/frantovo/rozsireneatributy/gui/Panel.java Sat Dec 16 19:09:35 2023 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,259 +0,0 @@ -/** - * Rozšířené atributy – program na správu rozšířených atributů souborů - * Copyright © 2012 František Kučera (frantovo.cz) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package cz.frantovo.rozsireneatributy.gui; - -import cz.frantovo.rozsireneatributy.Atribut; -import cz.frantovo.rozsireneatributy.CSV; -import java.awt.Toolkit; -import java.awt.datatransfer.StringSelection; -import java.io.IOException; -import java.io.StringWriter; -import java.util.ResourceBundle; -import java.util.logging.Level; -import java.util.logging.Logger; -import javax.swing.JOptionPane; -import javax.swing.JTable; -import javax.swing.ListSelectionModel; -import javax.swing.event.ListSelectionEvent; -import javax.swing.event.ListSelectionListener; - -/** - * @author Ing. František Kučera (frantovo.cz) - */ -public class Panel extends javax.swing.JPanel { - - public static final int SLOUPEC_NÁZVU = 0; - public static final int SLOUPEC_HODNOTY = 1; - private static final Logger log = Logger - .getLogger(Panel.class.getSimpleName()); - private static final ResourceBundle překlady = ResourceBundle - .getBundle(Atribut.class.getPackageName() + ".Překlady"); - private Model model; - private Atribut vybranýAtribut; - private JTable tabulka; - - public Panel(Model model) { - this.model = model; - initComponents(); - - tlačítkoZamknout.setEnabled(model.isZámekPodporovaný()); - tlačítkoZamknout.setToolTipText(model.isZámekPodporovaný() - ? překlady.getString("zamknout.popis") - : překlady.getString("chyba.lzeZamknoutJenSoubor")); - - tabulka = new JTable(model); - nastavEditor(); - tabulka.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - posuvnýPanel.setViewportView(tabulka); - - tabulka.setRowHeight((int) (tabulka.getRowHeight() * 1.3)); - - /** Výběr aktuálního atributu v tabulce */ - tabulka.getSelectionModel().addListSelectionListener( - new ListSelectionListener() { - - @Override - public void valueChanged(ListSelectionEvent e) { - int řádek = tabulka.getSelectedRow(); - if (řádek < 0) { - vybranýAtribut = null; - tlačítkoSmazat.setEnabled(false); - } else { - vybranýAtribut = getModel().getAtribut(řádek); - tlačítkoSmazat.setEnabled(true); - } - } - }); - } - - private void nastavEditor() { - tabulka.getColumnModel().getColumn(SLOUPEC_NÁZVU) - .setCellEditor(new EditorNázvůAtributů(model.getKonfigurace())); - tabulka.getColumnModel().getColumn(SLOUPEC_HODNOTY) - .setCellEditor(new EditorHodnotAtributů(model.getKonfigurace())); - } - - private Model getModel() { - return model; - } - - public void setModel(Model model) { - this.model = model; - tabulka.setModel(model); - nastavEditor(); - } - - private void zobrazChybovouHlášku(String hláška, Throwable chyba) { - JOptionPane.showMessageDialog(this, hláška + "\n" - + chyba.getLocalizedMessage(), - překlady.getString("chyba.titulek"), JOptionPane.ERROR_MESSAGE); - log.log(Level.WARNING, hláška, chyba); - } - - private void kopírujDoSchránky() { - try { - StringWriter výstup = new StringWriter(); - CSV csv = new CSV(výstup); - - csv.hodnota(překlady.getString("tabulka.název").toLowerCase()); - csv.hodnota(překlady.getString("tabulka.hodnota").toLowerCase()); - csv.konecŘádku(); - - for (int i = 0; i < model.getRowCount(); i++) { - csv.hodnota(String.valueOf(model.getValueAt(i, 0))); - csv.hodnota(String.valueOf(model.getValueAt(i, 1))); - csv.konecŘádku(); - } - - Toolkit.getDefaultToolkit().getSystemClipboard().setContents( - new StringSelection(výstup.toString()), - null - ); - } catch (Exception e) { - zobrazChybovouHlášku(překlady - .getString("chyba.nepodařiloSeZkopírovat"), e); - } - } - - @SuppressWarnings("unchecked") - // //GEN-BEGIN:initComponents - private void initComponents() { - - posuvnýPanel = new javax.swing.JScrollPane(); - tlačítkoPřidat = new javax.swing.JButton(); - tlačítkoSmazat = new javax.swing.JButton(); - tlačítkoZnovuNačíst = new javax.swing.JButton(); - tlačítkoZamknout = new javax.swing.JToggleButton(); - tlačítkoKopírovat = new javax.swing.JButton(); - - tlačítkoPřidat.setMnemonic('p'); - java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("cz/frantovo/rozsireneatributy/Překlady"); // NOI18N - tlačítkoPřidat.setText(bundle.getString("přidatAtribut")); // NOI18N - tlačítkoPřidat.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - tlačítkoPřidatActionPerformed(evt); - } - }); - - tlačítkoSmazat.setMnemonic('s'); - tlačítkoSmazat.setText(bundle.getString("smazatAtribut")); // NOI18N - tlačítkoSmazat.setEnabled(false); - tlačítkoSmazat.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - tlačítkoSmazatActionPerformed(evt); - } - }); - - tlačítkoZnovuNačíst.setMnemonic('z'); - tlačítkoZnovuNačíst.setText(bundle.getString("znovuNačíst")); // NOI18N - tlačítkoZnovuNačíst.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - tlačítkoZnovuNačístActionPerformed(evt); - } - }); - - tlačítkoZamknout.setText(bundle.getString("zamknout")); // NOI18N - tlačítkoZamknout.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - tlačítkoZamknoutActionPerformed(evt); - } - }); - - tlačítkoKopírovat.setText(bundle.getString("schránka.kopírovat")); // NOI18N - tlačítkoKopírovat.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - tlačítkoKopírovatActionPerformed(evt); - } - }); - - javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); - this.setLayout(layout); - layout.setHorizontalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addComponent(tlačítkoPřidat) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(tlačítkoSmazat) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(tlačítkoZnovuNačíst) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(tlačítkoZamknout) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(tlačítkoKopírovat) - .addContainerGap(25, Short.MAX_VALUE)) - .addComponent(posuvnýPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 543, Short.MAX_VALUE) - ); - layout.setVerticalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addComponent(posuvnýPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 277, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(tlačítkoPřidat) - .addComponent(tlačítkoSmazat) - .addComponent(tlačítkoZnovuNačíst) - .addComponent(tlačítkoZamknout) - .addComponent(tlačítkoKopírovat)) - .addContainerGap()) - ); - }// //GEN-END:initComponents - - private void tlačítkoPřidatActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tlačítkoPřidatActionPerformed - model.přidejAtribut(new Atribut()); - }//GEN-LAST:event_tlačítkoPřidatActionPerformed - - private void tlačítkoSmazatActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tlačítkoSmazatActionPerformed - try { - model.odeberAtribut(vybranýAtribut); - } catch (IOException e) { - zobrazChybovouHlášku(překlady - .getString("chyba.nepodařiloSeSmazat"), e); - } - }//GEN-LAST:event_tlačítkoSmazatActionPerformed - - private void tlačítkoZnovuNačístActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tlačítkoZnovuNačístActionPerformed - try { - model.načtiAtributy(); - } catch (IOException e) { - zobrazChybovouHlášku(překlady - .getString("chyba.nepodařiloSeNačíst"), e); - } - }//GEN-LAST:event_tlačítkoZnovuNačístActionPerformed - - private void tlačítkoZamknoutActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tlačítkoZamknoutActionPerformed - try { - model.nastavZámek(tlačítkoZamknout.isSelected()); - } catch (Exception e) { - zobrazChybovouHlášku(překlady - .getString("chyba.nepodařiloSeNastavitZámek"), e); - } - }//GEN-LAST:event_tlačítkoZamknoutActionPerformed - - private void tlačítkoKopírovatActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tlačítkoKopírovatActionPerformed - kopírujDoSchránky(); - }//GEN-LAST:event_tlačítkoKopírovatActionPerformed - - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JScrollPane posuvnýPanel; - private javax.swing.JButton tlačítkoKopírovat; - private javax.swing.JButton tlačítkoPřidat; - private javax.swing.JButton tlačítkoSmazat; - private javax.swing.JToggleButton tlačítkoZamknout; - private javax.swing.JButton tlačítkoZnovuNačíst; - // End of variables declaration//GEN-END:variables -}