[Comsuite-svn] SF.net SVN: comsuite: [109] trunk/code/CSRemoteClient/src
Brought to you by:
zduniak
|
From: <ma...@us...> - 2006-08-02 22:41:24
|
Revision: 109 Author: marasm Date: 2006-08-02 14:43:23 -0700 (Wed, 02 Aug 2006) ViewCVS: http://svn.sourceforge.net/comsuite/?rev=109&view=rev Log Message: ----------- Mimetypes can be detected now Modified Paths: -------------- trunk/code/CSRemoteClient/src/org/commsuite/client/GUI.java trunk/code/CSRemoteClient/src/org/commsuite/client/MessagePanel.java trunk/code/CSRemoteClient/src/org/commsuite/client/RemoteClientAppContext.java trunk/code/CSRemoteClient/src/remoteClientContext.xml Added Paths: ----------- trunk/code/CSRemoteClient/src/org/commsuite/utils/CSMimeTypesMap.java Modified: trunk/code/CSRemoteClient/src/org/commsuite/client/GUI.java =================================================================== --- trunk/code/CSRemoteClient/src/org/commsuite/client/GUI.java 2006-08-01 12:34:28 UTC (rev 108) +++ trunk/code/CSRemoteClient/src/org/commsuite/client/GUI.java 2006-08-02 21:43:23 UTC (rev 109) @@ -39,7 +39,6 @@ import java.util.prefs.BackingStoreException; import java.util.prefs.Preferences; -import javax.activation.MimetypesFileTypeMap; import javax.swing.BorderFactory; import javax.swing.BoxLayout; import javax.swing.JButton; @@ -95,16 +94,16 @@ private JCheckBox addFile; private JScrollPane scroll; - + private JLabel sizeLabel; private JTextField serverAddress; private JTextField login; - private JPasswordField password; + private JPasswordField password; - private JTextField receiverAddress; + private JTextField receiverAddress; private JTextArea path; @@ -114,7 +113,7 @@ private JComboBox typeList, serverList; - private JProgressBar progress; + private JProgressBar progress; private String mimeType; @@ -123,33 +122,33 @@ private ArrayList serverStrings = new ArrayList(); private int isFrame = 0; - + private JFrame frame; - + private String valueServer; - - private String valueReceiver; - - private String valueLogin; - + + private String valueReceiver; + + private String valueLogin; + private String valuePassword; - + private String key; - + private JMenuItem messagesMenu; byte[] serverTextCombo; - + private boolean isRunning = false; private String fileName; - + public MessageFrame messagesFrame = null; - + Preferences prefs; - + List messages; - + public GUI(JFrame owner) { this.owner = owner; owner.setPreferredSize(new Dimension(400, 400)); @@ -164,6 +163,7 @@ /** * Initialize graphic interface + * * @throws Exception */ private void init() throws Exception { @@ -281,7 +281,7 @@ c.gridx = 0; c.gridy = 0; smsPanel.add(scroll, c); - + addFile = new JCheckBox("add file"); c.ipady = 1; c.gridx = 0; @@ -291,13 +291,13 @@ JPanel openPanel = new JPanel(); openPanel.setPreferredSize(new Dimension(400, 20)); openPanel.setLayout(new GridBagLayout()); - + openButton = new JButton("Open file"); c.weightx = 0.5; c.gridx = 0; c.gridy = 0; openPanel.add(openButton, c); - + path = new JTextArea(); path.setEditable(false); path.setLineWrap(true); @@ -306,7 +306,7 @@ c.gridx = 1; c.gridy = 0; openPanel.add(path, c); - + if (typeList.getSelectedItem().equals("SMS")) { smsText.setVisible(true); scroll.setVisible(true); @@ -326,29 +326,30 @@ JPanel progressPanel = new JPanel(); progressPanel.setPreferredSize(new Dimension(400, 20)); progressPanel.setLayout(new BoxLayout(progressPanel, BoxLayout.X_AXIS)); - + progress = new JProgressBar(); - progress.setPreferredSize( new Dimension( 300, 20 ) ); - progress.setMinimum( 0 ); - progress.setMaximum( 20 ); - progress.setValue( 0 ); - progress.setBounds( 20, 35, 260, 20 ); + progress.setPreferredSize(new Dimension(300, 20)); + progress.setMinimum(0); + progress.setMaximum(20); + progress.setValue(0); + progress.setBounds(20, 35, 260, 20); progress.setIndeterminate(true); progress.setVisible(false); - progressPanel.add( progress ); - + progressPanel.add(progress); + JMenuBar menuBar = new JMenuBar(); JMenu menu = new JMenu("Configuration"); menu.setMnemonic(KeyEvent.VK_C); menuBar.add(menu); - - JMenuItem menuItem = new JMenuItem("Add new configuration", KeyEvent.VK_A); + + JMenuItem menuItem = new JMenuItem("Add new configuration", + KeyEvent.VK_A); menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, ActionEvent.ALT_MASK)); menuItem.addActionListener(log); menu.add(menuItem); - - // clear + + // clear menuItem = new JMenuItem("Delete configuration"); menuItem.setMnemonic(KeyEvent.VK_T); menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D, @@ -356,7 +357,7 @@ menuItem.addActionListener(clear); menu.add(menuItem); - //quit + // quit menuItem = new JMenuItem("Quit"); menuItem.setMnemonic(KeyEvent.VK_Q); menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q, @@ -364,11 +365,11 @@ menuItem.addActionListener(quit); menu.addSeparator(); menu.add(menuItem); - + menu = new JMenu("Messages"); menu.setMnemonic(KeyEvent.VK_M); menuBar.add(menu); - + messagesMenu = new JMenuItem("Show messages", KeyEvent.VK_S); messagesMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.ALT_MASK)); @@ -404,37 +405,44 @@ message = "Port out of range"; } else if (t instanceof ConnectException) { message = "Problem with connection"; - } + } } else { if (t instanceof WebServiceException) { - message = ((WebServiceException)t).getFaultString(); - } + message = ((WebServiceException) t).getFaultString(); + } } - } else if (t instanceof DatabaseException || t instanceof UnsupportedEncodingException) { + } else if (t instanceof DatabaseException + || t instanceof UnsupportedEncodingException) { message = "Error with database occured"; } else if (t instanceof ServiceException) { message = "Unknown protocol"; } + if (t.getMessage() != null && t.getMessage().indexOf("RC:") == 0) { + message = t.getMessage().substring(3); + } + if (message.equals("Unknown error")) { logger.fatal("CAN'T RECOGNIZE THIS EXCEPTION: ", t); } - JOptionPane.showMessageDialog(owner, message, "Error", JOptionPane.ERROR_MESSAGE); + + JOptionPane.showMessageDialog(owner, message, "Error", + JOptionPane.ERROR_MESSAGE); } /** * Creates new window depending on value of isFrame - * + * */ public JFrame makeNewWindow() { Point lastLocation = null; int maxX = 500; int maxY = 500; - + if (isFrame == 0) { frame = new LoginFrame(this); } else { - if (isFrame == 1){ - frame = new MessageFrame(this,messages); + if (isFrame == 1) { + frame = new MessageFrame(this, messages); } else { frame = new ClearFrame(this); } @@ -455,7 +463,7 @@ /** * Updates ComboBox in main frame and adds new configuration - * + * */ public void configure() { prefs = Preferences.userNodeForPackage(getClass()); @@ -474,16 +482,16 @@ if (-1 != index) { key = keys[i].substring(0, index); int indexPlus = keys[i].indexOf("+"); - if (-1 != indexPlus){ - comboKey = keys[i].substring(0,indexPlus); - if (comboKey.equals(key+"/serverText")){ + if (-1 != indexPlus) { + comboKey = keys[i].substring(0, indexPlus); + if (comboKey.equals(key + "/serverText")) { serverStrings.add(key); } } } } serverList.removeAllItems(); - for(int i = 0; i < serverStrings.size(); i++) { + for (int i = 0; i < serverStrings.size(); i++) { serverList.addItem(serverStrings.get(i)); } } catch (BackingStoreException e1) { @@ -492,8 +500,6 @@ } } - - ActionListener log = new ActionListener() { public void actionPerformed(ActionEvent e) { isFrame = 0; @@ -514,18 +520,20 @@ owner.dispose(); } }; - + ActionListener clear = new ActionListener() { public void actionPerformed(ActionEvent e) { try { - if (prefs.keys().length == 0){ - JOptionPane.showMessageDialog(null, "You didn't save any configuration", "Info", JOptionPane.INFORMATION_MESSAGE); + if (prefs.keys().length == 0) { + JOptionPane.showMessageDialog(null, + "You didn't save any configuration", "Info", + JOptionPane.INFORMATION_MESSAGE); } else { isFrame = 2; frameRun(); if (!isRunning) { makeNewWindow(); - } + } } } catch (BackingStoreException e1) { // TODO Auto-generated catch block @@ -547,10 +555,13 @@ if (-1 != index) { key = keys[i].substring(0, index); if (selected != null && selected.equals(key)) { - valueServer = prefs.get(key + "/serverText+", "value"); + valueServer = prefs.get(key + "/serverText+", + "value"); valueLogin = prefs.get(key + "/loginText", "value"); - valuePassword = prefs.get(key + "/passwordText", "value"); - valueReceiver = prefs.get(key + "/receiverText", "value"); + valuePassword = prefs.get(key + "/passwordText", + "value"); + valueReceiver = prefs.get(key + "/receiverText", + "value"); } } } @@ -583,7 +594,6 @@ } }; - ItemListener newFile = new ItemListener() { public void itemStateChanged(ItemEvent e) { if (typeList.getSelectedItem().equals("SMS")) { @@ -611,7 +621,6 @@ } } }; - ItemListener format = new ItemListener() { public void itemStateChanged(ItemEvent e) { @@ -639,24 +648,54 @@ ActionListener open = new ActionListener() { public void actionPerformed(ActionEvent e) { + fileName = null; + path.setText(""); + data = null; + mimeType = null; JFileChooser fc = new JFileChooser(); fc.showOpenDialog(owner); if (fc.getSelectedFile() != null) { + String tempFileName = fc.getSelectedFile().getName(); + + mimeType = RemoteClientAppContext.getMimetypesMap() + .getContentType(fc.getSelectedFile()); + + if (mimeType.equals("application/octet-stream")) { + showException(new Exception("RC:Format of file \"" + + tempFileName + "\" is not supported")); + fc.setSelectedFile(null); + mimeType = null; + return; + } + + if (typeList.getSelectedIndex() == 1 + && !mimeType.equals("text/plain")) { + showException(new Exception("RC:Format of file \"" + + tempFileName + + "\" is not supported for sending SMS")); + fc.setSelectedFile(null); + return; + } + data = IOUtil.readFile(fc.getSelectedFile().getPath()); path.setText(fc.getSelectedFile().getPath()); - fileName = fc.getSelectedFile().getName(); + fileName = tempFileName; long sizeOfFile = fc.getSelectedFile().length(); NumberFormat formater = new DecimalFormat("0.##"); if (sizeOfFile < 1024) { size.setText(String.valueOf(sizeOfFile) + " B"); } else { if (sizeOfFile < 1048576) { - size.setText(String.valueOf(formater.format(sizeOfFile / 1024.0)) + " KB"); + size.setText(String.valueOf(formater + .format(sizeOfFile / 1024.0)) + + " KB"); } else { - size.setText(String.valueOf(formater.format(sizeOfFile / 1048576.0)) + " MB"); + size.setText(String.valueOf(formater + .format(sizeOfFile / 1048576.0)) + + " MB"); } } - mimeType = new MimetypesFileTypeMap().getContentType(fc.getSelectedFile()); + } } @@ -674,7 +713,9 @@ if (!addFile.isSelected()) { data = smsText.getText().getBytes(); if (data == null || data.length == 0) { - JOptionPane.showMessageDialog(null, "You can't send empty messages", "Info", JOptionPane.INFORMATION_MESSAGE); + JOptionPane.showMessageDialog(null, + "You can't send empty messages", "Info", + JOptionPane.INFORMATION_MESSAGE); return; } mimeType = "text/plain"; @@ -684,40 +725,61 @@ } if ((serverText.equals("")) || (loginText.equals("")) || (passwordText.equals("")) || (receiverText.equals(""))) { - JOptionPane.showMessageDialog(owner, "You haven't filled all required fields", "Error", + JOptionPane.showMessageDialog(owner, + "You haven't filled all required fields", "Error", JOptionPane.ERROR_MESSAGE); } else { - if (!mimeType.equals("text/plain") && (formatType == FormatType.SMS)) { - JOptionPane.showMessageDialog(owner, "You can't send this file in SMS message", "Error", + if (null == mimeType) { + JOptionPane.showMessageDialog(owner, + "Please select file to send", "Error", JOptionPane.ERROR_MESSAGE); + } else if (!mimeType.equals("text/plain") + && (formatType == FormatType.SMS)) { + JOptionPane.showMessageDialog(owner, + "You can't send this file in SMS message", "Error", + JOptionPane.ERROR_MESSAGE); } else { new Thread(new Runnable() { public void run() { progress.setVisible(true); sendButton.setEnabled(false); messagesMenu.setEnabled(false); - RemoteClientMessage rcMessage = new RemoteClientMessage(serverText, loginText, passwordText, receiverText, data, mimeType); + RemoteClientMessage rcMessage = new RemoteClientMessage( + serverText, loginText, passwordText, + receiverText, data, mimeType); rcMessage.setFileName(fileName); logger.info("New thread sending message started"); logger.info("Message: " + rcMessage.toString()); try { - String messageServerId = CommunicateUtil.sendMessage(rcMessage, formatType); - logger.info("MESSAGE SENT! ID RECEIVED: " + messageServerId); + String messageServerId = CommunicateUtil + .sendMessage(rcMessage, formatType); + logger.info("MESSAGE SENT! ID RECEIVED: " + + messageServerId); rcMessage.setMessageServerId(messageServerId); - rcMessage = MessageSavingUtil.saveMessage(rcMessage); - logger.info("Message saved to db after sending successfully"); + rcMessage = MessageSavingUtil + .saveMessage(rcMessage); + logger + .info("Message saved to db after sending successfully"); logger.info("Message: " + rcMessage.toString()); progress.setVisible(false); sendButton.setEnabled(true); messagesMenu.setEnabled(true); - JOptionPane.showMessageDialog(null, "Message processed successfully", "Info", JOptionPane.INFORMATION_MESSAGE); - } catch (Throwable e){ - logger.error("Error while sending message - connection error", e); + JOptionPane + .showMessageDialog( + null, + "Message processed successfully", + "Info", + JOptionPane.INFORMATION_MESSAGE); + } catch (Throwable e) { + logger + .error( + "Error while sending message - connection error", + e); progress.setVisible(false); sendButton.setEnabled(true); messagesMenu.setEnabled(true); showException(e); - } + } } }).start(); @@ -726,15 +788,16 @@ } }; - + /** * Checks if any frame is visible + * * @return isRunning true if frame is visible */ - + public boolean frameRun() { - if (frame instanceof JFrame){ - if (frame.isShowing()){ + if (frame instanceof JFrame) { + if (frame.isShowing()) { isRunning = true; } else { isRunning = false; @@ -742,7 +805,7 @@ } return isRunning; } - + public void reloadMessagesFrame() { try { messages = MessageSavingUtil.loadMessages(); @@ -754,17 +817,18 @@ if (null != messagesFrame) { messagesFrame.setVisible(false); messagesFrame.dispose(); - } + } if (messages.size() == 0) { - JOptionPane.showMessageDialog(null, "No messages saved", "Info", JOptionPane.INFORMATION_MESSAGE); + JOptionPane.showMessageDialog(null, "No messages saved", "Info", + JOptionPane.INFORMATION_MESSAGE); return; } isFrame = 1; frameRun(); - messagesFrame = (MessageFrame)makeNewWindow(); - + messagesFrame = (MessageFrame) makeNewWindow(); + } - + final ActionListener check = new ActionListener() { public void actionPerformed(ActionEvent e) { reloadMessagesFrame(); Modified: trunk/code/CSRemoteClient/src/org/commsuite/client/MessagePanel.java =================================================================== --- trunk/code/CSRemoteClient/src/org/commsuite/client/MessagePanel.java 2006-08-01 12:34:28 UTC (rev 108) +++ trunk/code/CSRemoteClient/src/org/commsuite/client/MessagePanel.java 2006-08-02 21:43:23 UTC (rev 109) @@ -142,7 +142,7 @@ } private String dateToString(Date date) { - SimpleDateFormat formatter = new SimpleDateFormat("d MMM yyyy H:mm:ss"); + SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy H:mm:ss"); return formatter.format(date); } Modified: trunk/code/CSRemoteClient/src/org/commsuite/client/RemoteClientAppContext.java =================================================================== --- trunk/code/CSRemoteClient/src/org/commsuite/client/RemoteClientAppContext.java 2006-08-01 12:34:28 UTC (rev 108) +++ trunk/code/CSRemoteClient/src/org/commsuite/client/RemoteClientAppContext.java 2006-08-02 21:43:23 UTC (rev 109) @@ -20,6 +20,8 @@ */ package org.commsuite.client; +import javax.activation.MimetypesFileTypeMap; + import org.commsuite.model.RemoteClientMessageDao; import org.commsuite.remotews.IMessagingWSLocator; import org.springframework.context.support.ClassPathXmlApplicationContext; @@ -47,5 +49,9 @@ public static RemoteClientMessageDao getMessageDao() { return (RemoteClientMessageDao) appCtx.getBean("messageDao"); } + + public static MimetypesFileTypeMap getMimetypesMap() { + return (MimetypesFileTypeMap) appCtx.getBean("mimetypeMap"); + } } Added: trunk/code/CSRemoteClient/src/org/commsuite/utils/CSMimeTypesMap.java =================================================================== --- trunk/code/CSRemoteClient/src/org/commsuite/utils/CSMimeTypesMap.java (rev 0) +++ trunk/code/CSRemoteClient/src/org/commsuite/utils/CSMimeTypesMap.java 2006-08-02 21:43:23 UTC (rev 109) @@ -0,0 +1,15 @@ +package org.commsuite.utils; + +import java.util.List; + +import javax.activation.MimetypesFileTypeMap; + +public class CSMimeTypesMap extends MimetypesFileTypeMap { + + public CSMimeTypesMap(List mimetypes) { + super(); + for (int i = 0; i < mimetypes.size(); i++) { + addMimeTypes((String)mimetypes.get(i)); + } + } +} Modified: trunk/code/CSRemoteClient/src/remoteClientContext.xml =================================================================== --- trunk/code/CSRemoteClient/src/remoteClientContext.xml 2006-08-01 12:34:28 UTC (rev 108) +++ trunk/code/CSRemoteClient/src/remoteClientContext.xml 2006-08-02 21:43:23 UTC (rev 109) @@ -3,8 +3,45 @@ <beans> - <bean id="messageDao" class="org.commsuite.model.RemoteClientMessageDaoImpl" /> - + <bean id="messageDao" + class="org.commsuite.model.RemoteClientMessageDaoImpl" /> + <bean id="messaging" class="org.commsuite.remotews.IMessagingWSLocator" /> - + + <bean id="mimetypeMap" class="org.commsuite.utils.CSMimeTypesMap" singleton="true"> + <constructor-arg> + <list> + <value>application/pdf pdf PDF</value> + <value>application/postscript ai AI</value> + <value>application/postscript eps EPS</value> + <value>application/postscript ps PS</value> + <value>application/rtf rtf RTF</value> + <value>text/plain c C</value> + <value>text/plain h H</value> + <value>text/plain txt TXT</value> + <value>image/tiff tif TIF</value> + <value>image/tiff tiff TIFF</value> + <value>image/jpeg jpe JPE</value> + <value>image/jpeg jpeg JPEG</value> + <value>image/jpeg jpg JPG</value> + <value>image/gif gif GIF</value> + <value>image/png png PNG</value> + <value>image/bmp bmp BMP</value> + <value>application/msword doc DOC</value> + <value>application/msword dot DOT</value> + <value>text/html htm HTM</value> + <value>text/html html HTML</value> + <value>text/html stm STM</value> + <value>application/vnd.oasis.opendocument.text odt ODT</value> + <value>application/vnd.oasis.opendocument.presentation odp ODP</value> + <value>application/vnd.oasis.opendocument.spreadsheet ods ODS</value> + <value>application/mspowerpoint ppt PPT</value> + <value>application/vnd.sun.xml.calc sxc SXC</value> + <value>application/vnd.sun.xml.draw sxd SXD</value> + <value>application/vnd.sun.xml.impress sxi SXI</value> + <value>application/vnd.sun.xml.writer sxw SXW</value> + <value>application.excel xls XLS</value> + </list> + </constructor-arg> + </bean> </beans> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |