java/rozsirene-atributy/src/cz/frantovo/rozsireneatributy/gui/Panel.java
branchv_0
changeset 35 72ea1c6d836c
parent 33 4805f1eef561
     1.1 --- a/java/rozsirene-atributy/src/cz/frantovo/rozsireneatributy/gui/Panel.java	Fri Dec 15 20:41:41 2023 +0100
     1.2 +++ b/java/rozsirene-atributy/src/cz/frantovo/rozsireneatributy/gui/Panel.java	Sat Dec 16 14:09:00 2023 +0100
     1.3 @@ -17,8 +17,11 @@
     1.4  package cz.frantovo.rozsireneatributy.gui;
     1.5  
     1.6  import cz.frantovo.rozsireneatributy.Atribut;
     1.7 -import java.awt.Dimension;
     1.8 +import cz.frantovo.rozsireneatributy.CSV;
     1.9 +import java.awt.Toolkit;
    1.10 +import java.awt.datatransfer.StringSelection;
    1.11  import java.io.IOException;
    1.12 +import java.io.StringWriter;
    1.13  import java.util.ResourceBundle;
    1.14  import java.util.logging.Level;
    1.15  import java.util.logging.Logger;
    1.16 @@ -56,7 +59,7 @@
    1.17  		nastavEditor();
    1.18  		tabulka.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    1.19  		posuvnýPanel.setViewportView(tabulka);
    1.20 -		
    1.21 +
    1.22  		tabulka.setRowHeight((int) (tabulka.getRowHeight() * 1.3));
    1.23  
    1.24  		/** Výběr aktuálního atributu v tabulce */
    1.25 @@ -100,6 +103,31 @@
    1.26  			překlady.getString("chyba.titulek"), JOptionPane.ERROR_MESSAGE);
    1.27  		log.log(Level.WARNING, hláška, chyba);
    1.28  	}
    1.29 +	
    1.30 +	private void kopírujDoSchránky() {
    1.31 +		try {
    1.32 +			StringWriter výstup = new StringWriter();
    1.33 +			CSV csv = new CSV(výstup);
    1.34 +
    1.35 +			csv.hodnota(překlady.getString("tabulka.název").toLowerCase());
    1.36 +			csv.hodnota(překlady.getString("tabulka.hodnota").toLowerCase());
    1.37 +			csv.konecŘádku();
    1.38 +
    1.39 +			for (int i = 0; i < model.getRowCount(); i++) {
    1.40 +				csv.hodnota(String.valueOf(model.getValueAt(i, 0)));
    1.41 +				csv.hodnota(String.valueOf(model.getValueAt(i, 1)));
    1.42 +				csv.konecŘádku();
    1.43 +			}
    1.44 +
    1.45 +			Toolkit.getDefaultToolkit().getSystemClipboard().setContents(
    1.46 +				new StringSelection(výstup.toString()),
    1.47 +				null
    1.48 +			);
    1.49 +		} catch (Exception e) {
    1.50 +			zobrazChybovouHlášku(překlady
    1.51 +				.getString("chyba.nepodařiloSeZkopírovat"), e);
    1.52 +		}
    1.53 +	}
    1.54  
    1.55  	@SuppressWarnings("unchecked")
    1.56      // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    1.57 @@ -110,6 +138,7 @@
    1.58          tlačítkoSmazat = new javax.swing.JButton();
    1.59          tlačítkoZnovuNačíst = new javax.swing.JButton();
    1.60          tlačítkoZamknout = new javax.swing.JToggleButton();
    1.61 +        tlačítkoKopírovat = new javax.swing.JButton();
    1.62  
    1.63          tlačítkoPřidat.setMnemonic('p');
    1.64          java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("cz/frantovo/rozsireneatributy/Překlady"); // NOI18N
    1.65 @@ -144,6 +173,13 @@
    1.66              }
    1.67          });
    1.68  
    1.69 +        tlačítkoKopírovat.setText(bundle.getString("schránka.kopírovat")); // NOI18N
    1.70 +        tlačítkoKopírovat.addActionListener(new java.awt.event.ActionListener() {
    1.71 +            public void actionPerformed(java.awt.event.ActionEvent evt) {
    1.72 +                tlačítkoKopírovatActionPerformed(evt);
    1.73 +            }
    1.74 +        });
    1.75 +
    1.76          javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
    1.77          this.setLayout(layout);
    1.78          layout.setHorizontalGroup(
    1.79 @@ -157,7 +193,9 @@
    1.80                  .addComponent(tlačítkoZnovuNačíst)
    1.81                  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    1.82                  .addComponent(tlačítkoZamknout)
    1.83 -                .addContainerGap(122, Short.MAX_VALUE))
    1.84 +                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    1.85 +                .addComponent(tlačítkoKopírovat)
    1.86 +                .addContainerGap(25, Short.MAX_VALUE))
    1.87              .addComponent(posuvnýPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 543, Short.MAX_VALUE)
    1.88          );
    1.89          layout.setVerticalGroup(
    1.90 @@ -169,7 +207,8 @@
    1.91                      .addComponent(tlačítkoPřidat)
    1.92                      .addComponent(tlačítkoSmazat)
    1.93                      .addComponent(tlačítkoZnovuNačíst)
    1.94 -                    .addComponent(tlačítkoZamknout))
    1.95 +                    .addComponent(tlačítkoZamknout)
    1.96 +                    .addComponent(tlačítkoKopírovat))
    1.97                  .addContainerGap())
    1.98          );
    1.99      }// </editor-fold>//GEN-END:initComponents
   1.100 @@ -197,7 +236,7 @@
   1.101  	}//GEN-LAST:event_tlačítkoZnovuNačístActionPerformed
   1.102  
   1.103      private void tlačítkoZamknoutActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tlačítkoZamknoutActionPerformed
   1.104 -        try {
   1.105 +		try {
   1.106  			model.nastavZámek(tlačítkoZamknout.isSelected());
   1.107  		} catch (Exception e) {
   1.108  			zobrazChybovouHlášku(překlady
   1.109 @@ -205,8 +244,13 @@
   1.110  		}
   1.111      }//GEN-LAST:event_tlačítkoZamknoutActionPerformed
   1.112  
   1.113 +    private void tlačítkoKopírovatActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tlačítkoKopírovatActionPerformed
   1.114 +		kopírujDoSchránky();
   1.115 +    }//GEN-LAST:event_tlačítkoKopírovatActionPerformed
   1.116 +
   1.117      // Variables declaration - do not modify//GEN-BEGIN:variables
   1.118      private javax.swing.JScrollPane posuvnýPanel;
   1.119 +    private javax.swing.JButton tlačítkoKopírovat;
   1.120      private javax.swing.JButton tlačítkoPřidat;
   1.121      private javax.swing.JButton tlačítkoSmazat;
   1.122      private javax.swing.JToggleButton tlačítkoZamknout;