From 410458e54ab953ea3e05f1af9431cc907c12a71c Mon Sep 17 00:00:00 2001 From: Juergen Steinhilber Date: Wed, 7 Oct 2015 11:09:21 +0000 Subject: [PATCH] *** empty log message *** --- Reha/src/dialoge/EmailDialog.java | 101 +++++++++++++++++++++++++++++++------- Reha/src/roogle/SuchenSeite.java | 5 ++ 2 files changed, 88 insertions(+), 18 deletions(-) diff --git a/Reha/src/dialoge/EmailDialog.java b/Reha/src/dialoge/EmailDialog.java index 4b8f012a..cf9c8189 100644 --- a/Reha/src/dialoge/EmailDialog.java +++ b/Reha/src/dialoge/EmailDialog.java @@ -15,17 +15,22 @@ import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; import java.io.BufferedReader; +import java.io.File; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; +import javax.swing.DefaultListModel; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JComponent; +import javax.swing.JFileChooser; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JOptionPane; @@ -131,20 +136,26 @@ public class EmailDialog extends JXDialog implements WindowListener, KeyListen regleJList(0); } private void regleJList(int selection){ - if(attachments.size() > 0){ - Object[] result = new Object[attachments.size()]; - Map icons = new HashMap(); - for(int i = 0; i < attachments.size(); i++){ - icons.put(attachments.get(i)[1], (ImageIcon)findIcon(attachments.get(i)[1])); - } - for(int i = 0; i < attachments.size(); i++){ - result[i] = attachments.get(i)[1]; + try{ + if(attachments.size() > 0){ + Object[] result = new Object[attachments.size()]; + Map icons = new HashMap(); + for(int i = 0; i < attachments.size(); i++){ + icons.put(attachments.get(i)[1], (ImageIcon)findIcon(attachments.get(i)[1])); + } + for(int i = 0; i < attachments.size(); i++){ + result[i] = attachments.get(i)[1]; + } + jList.setCellRenderer(new IconListRenderer(icons)); + jList.setListData(result); + jList.setSelectedIndex(selection); + }else{ + jList.setModel(new DefaultListModel()); + jList.repaint(); } - jList.setCellRenderer(new IconListRenderer(icons)); - jList.setListData(result); - jList.setSelectedIndex(selection); - }else{ + }catch(Exception ex){ + ex.printStackTrace(); } } private ImageIcon findIcon(String datei){ @@ -371,6 +382,7 @@ public class EmailDialog extends JXDialog implements WindowListener, KeyListen public void actionPerformed(ActionEvent arg0) { String cmd = arg0.getActionCommand(); if(cmd.equals("senden")){ + /* new SwingWorker(){ @Override protected Void doInBackground() throws Exception { @@ -382,20 +394,73 @@ public class EmailDialog extends JXDialog implements WindowListener, KeyListen return null; } }.execute(); + */ senden(); }else if(cmd.equals("abbrechen")){ FensterSchliessen("dieses"); return; }else if(cmd.equals("attachneu")){ - JOptionPane.showMessageDialog(null, "Funktion noch nicht aktiv"); + //JOptionPane.showMessageDialog(null, "Funktion noch nicht aktiv"); + regleAttachNeu(); }else if(cmd.equals("attachdelete")){ - JOptionPane.showMessageDialog(null, "Funktion noch nicht aktiv"); + //JOptionPane.showMessageDialog(null, "Funktion noch nicht aktiv"); + regleAttachDelete(); } } }; } + private void regleAttachDelete(){ + try{ + int selected = jList.getSelectedIndex(); + if(selected >= 0){ + attachments.remove(selected); + attachments.trimToSize(); + if(attachments.size() > 0){ + regleJList(attachments.size()-1); + }else{ + regleJList(-1); + } + } + }catch(Exception ex){ + ex.printStackTrace(); + } + } + private void regleAttachNeu(){ + String[] sret = {null,null}; + final JFileChooser chooser = new JFileChooser("Dateianhang wählen"); + chooser.setDialogType(JFileChooser.OPEN_DIALOG); + chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); + final File file = new File(Reha.proghome); + chooser.setCurrentDirectory(file); + chooser.addPropertyChangeListener(new PropertyChangeListener() { + public void propertyChange(PropertyChangeEvent e) { + if (e.getPropertyName().equals(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY) + || e.getPropertyName().equals(JFileChooser.DIRECTORY_CHANGED_PROPERTY)) { + final File f = (File) e.getNewValue(); + } + } + }); + chooser.setVisible(true); + setCursor(Reha.thisClass.normalCursor); + final int result = chooser.showOpenDialog(null); + + if (result == JFileChooser.APPROVE_OPTION) { + File inputVerzFile = chooser.getSelectedFile(); + if(inputVerzFile.getName().trim().equals("")){ + //sret = ""; + }else{ + sret[1] = inputVerzFile.getName().trim(); + sret[0] = inputVerzFile.getPath(); + attachments.add(sret.clone()); + regleJList(attachments.size()-1); + } + }else{ + //sret = ""; + } + chooser.setVisible(false); + } public void FensterSchliessen(String welches){ @@ -507,10 +572,10 @@ public class EmailDialog extends JXDialog implements WindowListener, KeyListen } }.execute(); - }else if(test.endsWith(".odt")){ - OOTools.starteStandardFormular(attachments.get(wahl)[0].replace("\\", "/"), null); - }else if(test.endsWith(".ods")){ - OOTools.starteStandardFormular(attachments.get(wahl)[0].replace("\\", "/"), null); + }else if(test.endsWith(".odt") || test.endsWith(".ott")){ + new OOTools().starteWriterMitDatei(attachments.get(wahl)[0].replace("\\", "/")); + }else if(test.endsWith(".ods") || test.endsWith(".ots") ){ + new OOTools().starteCalcMitDatei(attachments.get(wahl)[0].replace("\\", "/")); }else{ Runtime.getRuntime().exec("C:/Windows/notepad.exe "+attachments.get(wahl)[0].replace("\\", "/")); } diff --git a/Reha/src/roogle/SuchenSeite.java b/Reha/src/roogle/SuchenSeite.java index 7f0f4a27..e0d74399 100644 --- a/Reha/src/roogle/SuchenSeite.java +++ b/Reha/src/roogle/SuchenSeite.java @@ -1385,6 +1385,7 @@ public class SuchenSeite extends JXPanel implements TableModelListener,FocusList if((Boolean) SystemConfig.hmIcalSettings.get("direktsenden")){ Reha.thisFrame.setCursor(Reha.thisClass.wartenCursor); + /* new SwingWorker(){ @Override protected Void doInBackground() throws Exception { @@ -1396,15 +1397,19 @@ public class SuchenSeite extends JXPanel implements TableModelListener,FocusList } }.execute(); + */ + SwingUtilities.invokeLater(new Runnable(){ public void run(){ try{ femlDlg.senden(); + /* if(abrDlg != null){ abrDlg.setVisible(false); abrDlg.dispose(); abrDlg = null; } + */ Reha.thisFrame.setCursor(Reha.thisClass.normalCursor); JOptionPane.showMessageDialog(null, "Daten für Reha-iCal wurden exportiert und per Email versendet"); }catch(Exception ex){ -- 2.11.4.GIT