Archive

Archives pour la catégorie ‘Java’

[DnD] LabelSelection class

28/01/2009
Commentaires fermés
  1. package com.pingus.dnd.transferables.handlers;  
  2.   
  3. import java.awt.Image;  
  4. import java.awt.datatransfer.DataFlavor;  
  5. import java.awt.datatransfer.Transferable;  
  6. import java.awt.datatransfer.UnsupportedFlavorException;  
  7. import java.io.IOException;  
  8.   
  9. import javax.swing.ImageIcon;  
  10. import javax.swing.JComponent;  
  11. import javax.swing.JLabel;  
  12. import javax.swing.TransferHandler;  
  13.   
  14. import com.pingus.dnd.transferables.TransferableLabel;  
  15. import com.pingus.dnd.transferables.TransferableObject;  
  16.   
  17. public class LabelSelection extends TransferHandler {  
  18.     private static final DataFlavor[] STANDARD_FLAVORS = new DataFlavor[] {  
  19.         DataFlavor.imageFlavor,  
  20.         DataFlavor.stringFlavor,  
  21.         DataFlavor.getTextPlainUnicodeFlavor()  
  22.     };  
  23.   
  24.     /** 
  25.      * Creates a new instance of TreeTransferHandler 
  26.      */  
  27.     public LabelSelection() {  
  28.         super();  
  29.     }  
  30.   
  31.     public int getSourceActions(JComponent c) {  
  32.         return TransferHandler.COPY_OR_MOVE;  
  33.     }  
  34.   
  35.     protected Transferable createTransferable(final JComponent component) {  
  36.         System.out.println("[LabelTransferHandler] <createTransferable>");  
  37.         if (component instanceof JLabel) {  
  38.             return new TransferableLabel((JLabel)component, STANDARD_FLAVORS, super.createTransferable(component));  
  39.             /* 
  40.             return new TransferableObject(component, STANDARD_FLAVORS, super.createTransferable(component)) { 
  41.                 public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { 
  42.                     if(flavor.equals(getPreferredFlavor())) { 
  43.                         System.out.println("[LabelTransferHandler] <createTransferable> [TransferableObject] <getTransferData> returning label"); 
  44.                         // Return JLabel 
  45.                         return component; 
  46.                     } else if(flavor.equals(DataFlavor.imageFlavor)) { 
  47.                         System.out.println("[LabelTransferHandler] <createTransferable> [TransferableObject] <getTransferData> returning ..."); 
  48.                         // Return Image 
  49.                         Icon icon = ((JLabel)component).getIcon(); 
  50.                         if (icon instanceof ImageIcon) { 
  51.                             System.out.println("[LabelTransferHandler] <createTransferable> [TransferableObject] <getTransferData> Image."); 
  52.                             return ((ImageIcon) icon).getImage(); 
  53.                         } 
  54.                     } else if(flavor.equals(DataFlavor.stringFlavor)) { 
  55.                         System.out.println("[LabelTransferHandler] <createTransferable> [TransferableObject] <getTransferData> returning label text"); 
  56.                         // Return label text 
  57.                         return ((JLabel)component).getText(); 
  58.                     } else if(flavor.equals(DataFlavor.getTextPlainUnicodeFlavor())) { 
  59.                         return this.exportAsInputStream(((JLabel)component).getText(), flavor); 
  60.                     } 
  61.                     System.out.println("[LabelTransferHandler] <createTransferable> [TransferableObject] <getTransferData> returning nothing"); 
  62.                     System.out.println("[LabelTransferHandler] <createTransferable> [TransferableObject] <getTransferData> for flavor "+flavor); 
  63.                     return super.getTransferData(flavor); 
  64.                 } 
  65.             }; 
  66.             /**/  
  67.         }  
  68.         return new TransferableObject(component, STANDARD_FLAVORS, super.createTransferable(component));  
  69.     }  
  70.   
  71.     public boolean importData(JComponent comp, Transferable t) {  
  72.         System.out.println("[LabelTransferHandler] <inportData>");  
  73.         if (comp instanceof JLabel) {  
  74.             JLabel label = (JLabel) comp;  
  75.             DataFlavor labelFlavor = new DataFlavor(comp.getClass(), comp.getClass().getName());  
  76.             try {  
  77.                 if (t.isDataFlavorSupported(labelFlavor)) {  
  78.                     System.out.println("[LabelTransferHandler] Importing Label");  
  79.                     JLabel dropedObject = (JLabel) t.getTransferData(labelFlavor);  
  80.                     System.out.println("[LabelTransferHandler] Setting icon");  
  81.                     label.setIcon(dropedObject.getIcon());  
  82.                     System.out.println("[LabelTransferHandler] Setting text to " + dropedObject.getText());  
  83.                     label.setText(dropedObject.getText());  
  84.                     System.out.println("[LabelTransferHandler] Setting tool tip text to " + dropedObject.getToolTipText());  
  85.                     label.setToolTipText(dropedObject.getToolTipText());  
  86.                     System.out.println("[LabelTransferHandler] Repaint label");  
  87.                     label.repaint();  
  88.                     return true;  
  89.                 } else if (t.isDataFlavorSupported(DataFlavor.imageFlavor)) {  
  90.                     System.out.println("[LabelTransferHandler] Importing Image ...");  
  91.                     Image image = (Image) t.getTransferData(DataFlavor.imageFlavor);  
  92.                     ImageIcon icon = new ImageIcon(image);  
  93.                     label.setIcon(icon);  
  94.                     return true;  
  95.                 } else if (t.isDataFlavorSupported(DataFlavor.stringFlavor)) {  
  96.                     System.out.println("[LabelTransferHandler] Importing text ...");  
  97.                     String text = (String)t.getTransferData(DataFlavor.stringFlavor);  
  98.                     label.setText(text);  
  99.                     return true;  
  100.                 } else if (t.isDataFlavorSupported(DataFlavor.getTextPlainUnicodeFlavor())) {  
  101.                     label.setText(TransferableObject.importAsInputStream(t));  
  102.                     return true;  
  103.                 }  
  104.             } catch (RuntimeException ex) {  
  105.                 ex.printStackTrace();  
  106.             } catch (UnsupportedFlavorException ex) {  
  107.                 ex.printStackTrace();  
  108.             } catch (IOException ex) {  
  109.                 ex.printStackTrace();  
  110.             }  
  111.         }  
  112.         return super.importData(comp, t);  
  113.     }  
  114.   
  115.     public boolean canImport(JComponent comp, DataFlavor flavor[]) {  
  116.         if (!(comp instanceof JLabel)) {  
  117.             return false;  
  118.         }  
  119.         for (int i=0; i<flavor.length; ++i) {  
  120.             for (int j=0; j<STANDARD_FLAVORS.length; ++j) {  
  121.                 if (flavor[i].equals(STANDARD_FLAVORS[j])) {  
  122.                     return true;  
  123.                 }  
  124.             }  
  125.         }  
  126.         System.out.println("[LabelSelection] <canImport> returning false");  
  127.         return false;  
  128.     }  
  129. }  

Java

[DnD] TransferableObject class

28/01/2009
Commentaires fermés
  1. package com.pingus.dnd.transferables;  
  2.   
  3. import java.awt.datatransfer.DataFlavor;  
  4. import java.awt.datatransfer.Transferable;  
  5. import java.awt.datatransfer.UnsupportedFlavorException;  
  6. import java.io.BufferedReader;  
  7. import java.io.ByteArrayInputStream;  
  8. import java.io.IOException;  
  9. import java.io.InputStream;  
  10. import java.io.UnsupportedEncodingException;  
  11. import java.util.ArrayList;  
  12.   
  13. public class TransferableObject implements Transferable {  
  14.     private Object obj;  
  15.     private DataFlavor thisFlavor;  
  16.     private ArrayList acceptedFlavors;  
  17.     private Transferable defaultTransferableObject;  
  18.   
  19.     /** 
  20.      * Creates a new instance of TransferableObject 
  21.      */  
  22.     public TransferableObject(Object obj, DataFlavor[] acceptedFlavors, Transferable defaultTransferableObject) {  
  23.         super();  
  24.         this.obj = obj;  
  25.         this.acceptedFlavors = toArrayList(acceptedFlavors);  
  26.         this.thisFlavor = new DataFlavor(obj.getClass(), obj.getClass().getName());  
  27.         if(!this.acceptedFlavors.contains(thisFlavor)) this.acceptedFlavors.add(thisFlavor);  
  28.         this.defaultTransferableObject = defaultTransferableObject;  
  29.     }  
  30.   
  31.     /** 
  32.      * Creates a new instance of TransferableObject 
  33.      */  
  34.     public TransferableObject(Object obj, ArrayList acceptedFlavors, Transferable defaultTransferableObject) {  
  35.         super();  
  36.         this.obj = obj;  
  37.         this.acceptedFlavors = acceptedFlavors;  
  38.         this.thisFlavor = new DataFlavor(obj.getClass(), obj.getClass().getName());  
  39.         if(!this.acceptedFlavors.contains(thisFlavor)) this.acceptedFlavors.add(thisFlavor);  
  40.         this.defaultTransferableObject = defaultTransferableObject;  
  41.     }  
  42.   
  43.     public static ArrayList toArrayList(Object[] objects) {  
  44.         ArrayList list = new ArrayList(objects.length);  
  45.         for(int i=0; i<objects.length; ++i) {  
  46.             list.add(objects[i]);  
  47.         }  
  48.         return list;  
  49.     }  
  50.   
  51.     public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException {  
  52.         System.out.println("[TransferableObject] <getTransferData> flavor: "+flavor);  
  53.         System.out.println("[TransferableObject] <getTransferData> thisFlavor: "+thisFlavor);  
  54.         if (flavor.equals(thisFlavor)) {  
  55.             return obj;  
  56.         }  
  57.         return this.defaultTransferableObject.getTransferData(flavor);  
  58.     }  
  59.   
  60.     /** 
  61.      * @return Returns the object. 
  62.      */  
  63.     public Object getObject() {  
  64.         return this.obj;  
  65.     }  
  66.   
  67.     public DataFlavor[] getTransferDataFlavors() {  
  68.         DataFlavor[] fl = new DataFlavor[acceptedFlavors.size()];  
  69.         for(int i=0; i<fl.length; ++i) {  
  70.             fl[i] = (DataFlavor)acceptedFlavors.get(i);  
  71.         }  
  72.         return fl;  
  73.     }  
  74.   
  75.     public boolean isDataFlavorSupported(DataFlavor flavor) {  
  76.         return acceptedFlavors.contains(flavor);  
  77.     }  
  78.   
  79.     /** 
  80.      * @return Returns the defaultTransferableObject. 
  81.      */  
  82.     public Transferable getDefaultTransferableObject() {  
  83.         return this.defaultTransferableObject;  
  84.     }  
  85.   
  86.     /** 
  87.      * @return Returns the best Flavor of the transferable object. 
  88.      */  
  89.     public DataFlavor getPreferredFlavor() {  
  90.         return this.thisFlavor;  
  91.     }  
  92.   
  93.     /** 
  94.      * Util method that transform text into InputStream using a given DataFlavor. 
  95.      * @param text   The String to be exported 
  96.      * @param flavor The DataFlavor that request the export. 
  97.      * @return An InputStream containing the <code>text</code> 
  98.      * @throws UnsupportedEncodingException ... 
  99.      */  
  100.     public static InputStream exportAsInputStream(String text, DataFlavor flavor) throws UnsupportedEncodingException {  
  101.         String charset = flavor.getMimeType().replaceFirst(".*charset=""");  
  102.         System.out.println("[TransferableObject] <exportAsInputStream>  Charset: "+charset);  
  103.         return new ByteArrayInputStream(text.getBytes(charset));  
  104.     }  
  105.   
  106.     /** 
  107.      * Util method that transform the transferable object from TextPlainUnicode to String. 
  108.      * @param transferable The transferable object to be imported. 
  109.      * @return The String representation of the transferable as TextPlainUnicode. 
  110.      * @throws UnsupportedFlavorException ... 
  111.      * @throws IOException ... 
  112.      */  
  113.     public static String importAsInputStream(Transferable transferable) throws UnsupportedFlavorException, IOException {  
  114.         BufferedReader sr = new BufferedReader(DataFlavor.getTextPlainUnicodeFlavor().getReaderForText(transferable));  
  115.         String line = null;  
  116.         String plainText = "";  
  117.         while((line = sr.readLine()) != null) {  
  118.             plainText += line;  
  119.         }  
  120.         return plainText;  
  121.     }  
  122. }  

Java

Run a Groovy script from a java class

28/01/2009
Commentaires fermés
  1. import java.io.File;  
  2.   
  3. import groovy.lang.Binding;  
  4. import groovy.util.GroovyScriptEngine;  
  5.   
  6. public class GroovyRunner {  
  7.     /** 
  8.      * Usage: GroovyRunner [groovy file] 
  9.      * @param args 
  10.      * @throws Exception 
  11.      */  
  12.     public static void main(String[] args) throws Exception {  
  13.         if(args.length == 1) {  
  14.             File groovyFile = new File(args[0]);  
  15.             String[] roots = new String[] {groovyFile.getParentFile().getAbsolutePath()};  
  16.             GroovyScriptEngine gse = new GroovyScriptEngine(roots);  
  17.             Binding binding = new Binding();  
  18.             binding.setVariable("args", roots);  
  19.             gse.run(groovyFile.getName(), binding);  
  20.         } else {  
  21.             System.out.println("usage: "+GroovyRunner.class.getName()+" [groovy file]");  
  22.         }  
  23.     }  
  24. }  

Java

TCPMon: TCP proxy watcher … (axis.jar form apache foundation)

28/01/2009
Commentaires fermés
  1. java -classpath axis.jar org.apache.axis.utils.tcpmon  

Java

Serialize an object in Java

28/01/2009
Commentaires fermés
  1.  // Lecture de l'objet  
  2.  try {  
  3.      FileInputStream istream = new FileInputStream("fic.data");  
  4.      ObjectInputStream p = new ObjectInputStream(istream);  
  5.   
  6.      my_object = (ClassDeMyObject)p.readObject();  
  7.   
  8.      istream.close();  
  9.  } catch(Exception e) {  
  10.     e.printStackTrace();  
  11.  }  
  12.   
  13. // Ecriture de l'objet  
  14. try {  
  15.     FileOutputStream ostream = new FileOutputStream("fic.data");  
  16.     ObjectOutputStream p = new ObjectOutputStream(ostream);  
  17.   
  18.     p.writeObject(OptionsFrame.pertAttributes);  
  19.     p.flush();  
  20.   
  21.     ostream.close();  
  22. catch (Exception e) {  
  23.     e.printStackTrace();  
  24. }  

Java

Implement an Unix cat command in Java

28/01/2009
Commentaires fermés
  1. import org.apache.regexp.*;  
  2. import java.util.*;  
  3. import java.io.*;  
  4.   
  5. /** 
  6.  * 
  7.  * So as to test it run %JAVA_HOME%binjava -classpath .;jakarta-regexp.jar StringTool 2 
  8.  * 
  9.  */  
  10. public class cat {  
  11.   
  12.     public static void main(String[] argv) {  
  13.         try {  
  14.             for(int i=0; i<argv.length; ++i) {  
  15.                 FileReader in = new FileReader(new File(argv[i]));  
  16.                 BufferedReader r = new BufferedReader(in);  
  17.                 String line = r.readLine();  
  18.                 while(line != null) {  
  19.                     System.out.println(line);  
  20.                     line = r.readLine();  
  21.                 }  
  22.                 r.close();  
  23.   
  24.             }  
  25.         } catch(Exception e) {  
  26.             e.printStackTrace();  
  27.         }  
  28.     }  
  29. }  

Java

Implement an Unix grep in Java

28/01/2009
Commentaires fermés
  1. import org.apache.regexp.*;  
  2. import java.util.*;  
  3. import java.io.*;  
  4.   
  5. /** 
  6.  * So as to test it run %JAVA_HOME%\bin\java -classpath .;jakarta-regexp.jar StringTool 2 
  7.  */  
  8. public class grep {  
  9.     public static String[] split(String source, String regexp) {  
  10.         RE re = new RE(regexp);  
  11.         return re.split(source);  
  12.     }  
  13.   
  14.     public static String[] grep(Object[] sources, String regexp) {  
  15.         RE re = new RE(regexp);  
  16.         return re.grep(sources);  
  17.     }  
  18.   
  19.     public static boolean match(String source, String regexp) {  
  20.         RE re = new RE(regexp);  
  21.         return re.match(source);  
  22.     }  
  23.   
  24.     public static void main(String[] argv) {  
  25.         try {  
  26.             if(argv.length == 2) {  
  27.                 //File f = new File(argv[1]);  
  28.                 //FileReader r = new FileReader(new File(argv[1]));  
  29.                 FileReader in = new FileReader(new File(argv[1]));  
  30.                 BufferedReader r = new BufferedReader(in);  
  31.                 String line = r.readLine();  
  32.                 while(line != null) {  
  33.                     if(match(line, argv[0])) System.out.println(line);  
  34.                     line = r.readLine();  
  35.                 }  
  36.                 r.close();  
  37.   
  38.             } else {  
  39.                 System.out.println("Usage: grep regexp file");  
  40.             }  
  41.         } catch(Exception e) {  
  42.             e.printStackTrace();  
  43.         }  
  44.     }  
  45. }  

Java

HTML Browser (DocumentViewer)

28/01/2009
Commentaires fermés
  1. /* 
  2.  * DocumentViewer.java  1.0 
  3.  * 
  4.  * Gabriel Dromard 
  5.  */  
  6. import javax.swing.*;  
  7. import javax.swing.event.*;  
  8. import javax.swing.text.*;  
  9. import javax.swing.text.html.*;  
  10.    
  11.   
  12. import java.awt.*;  
  13. import java.awt.event.*;  
  14. import java.net.URL;  
  15. import java.io.IOException;  
  16.   
  17. // Classe de fen??tre Swing permettant de visualiser un  
  18. // document (HTML ou texte)  
  19. public class DocumentViewer extends JFrame implements HyperlinkListener, ActionListener {  
  20.   // Composant Swing permettant de visualiser un document  
  21.   JEditorPane viewer       = new JEditorPane ();  
  22.   // Champ de saisie de l'URL ?  visualiser  
  23.   JTextField  urlTextField = new JTextField ();  
  24.   
  25.   public DocumentViewer () {  
  26.     // Construction de l'Interface Graphique  
  27.     // Panel en haut avec un label et le champ de saisie  
  28.     JPanel inputPanel = new JPanel (new BorderLayout ());  
  29.     JLabel label = new JLabel ("URL : ");  
  30.     inputPanel.add (label, BorderLayout.WEST);  
  31.     inputPanel.add (urlTextField, BorderLayout.CENTER);  
  32.     // Zone scroll??e au centre avec le document  
  33.     JScrollPane scrollPane = new JScrollPane (viewer);  
  34.     // Ajout des composants ?  la fen??tre  
  35.     getContentPane ().add (inputPanel, BorderLayout.NORTH);  
  36.     getContentPane ().add (scrollPane, BorderLayout.CENTER);  
  37.   
  38.     // Mode non editable pour recevoir les clics sur les  
  39.     // liens hypertexte  
  40.     viewer.setEditable (false);  
  41.     // Ajout du listener de clic sur lien  
  42.     viewer.addHyperlinkListener (this);  
  43.     // Ajout du listener de modification de la saisie  
  44.     urlTextField.addActionListener (this);  
  45.   }  
  46.   
  47.   // M??thode appel??e apr?¨s un clic sur un lien hyper texte  
  48.   public void hyperlinkUpdate (HyperlinkEvent event) {  
  49.     if (event.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {  
  50.       // Modification du champ de saisie  
  51.       urlTextField.setText (event.getURL ().toString ());  
  52.       if (event instanceof HTMLFrameHyperlinkEvent) {  
  53.         // Evenement sp??cial en cas d'utilisation de Frame HTML  
  54.         HTMLDocument doc = (HTMLDocument)viewer.getDocument ();  
  55.         doc.processHTMLFrameHyperlinkEvent (  
  56.                        (HTMLFrameHyperlinkEvent)event);  
  57.       } else {  
  58.         // Chargement de la page  
  59.         loadPage (urlTextField.getText ());  
  60.       }  
  61.     }  
  62.   }  
  63.   
  64.   // M??thode appel??e apr?¨s une modification de la saisie  
  65.   public void actionPerformed (ActionEvent event) {  
  66.     loadPage (urlTextField.getText ());  
  67.   }  
  68.   
  69.   public void loadPage (String urlText) {  
  70.     try {  
  71.       // Modification du document visualise  
  72.       viewer.setPage (new URL (urlText));  
  73.     } catch (IOException ex) {  
  74.       System.err.println ("Acces impossible a " + urlText);  
  75.     }  
  76.   }  
  77.   
  78.   // M??thode main () d'exemple de mise en oeuvre.  
  79.   // Utilisation : java DocumentViewer  
  80.   public static void main (String [] args) {  
  81.     JFrame viewerFrame = new DocumentViewer ();  
  82.     viewerFrame.setSize (400300);  
  83.     viewerFrame.show ();  
  84.   }  
  85. }  

Java