Changeset 166


Ignore:
Timestamp:
07/28/08 16:51:26 (16 years ago)
Author:
bjn8
Message:

Improvements for widgets and popups

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/expeditee/FrameDNDTransferHandler.java

    r139 r166  
    3636       
    3737        // GNOME and KDE desktops have a specialized way of DNDing files
    38         private DataFlavor _URIListDataflavor;
     38        private DataFlavor _URIListDataflavorString;
     39        private DataFlavor _URIListDataflavorCharArray;
    3940       
    4041        private static FrameDNDTransferHandler _instance = new FrameDNDTransferHandler();
     
    5152       
    5253                try {
    53                         _URIListDataflavor = new DataFlavor("text/uri-list;class=java.lang.String");
     54                        _URIListDataflavorString = new DataFlavor("text/uri-list;class=java.lang.String");
     55                        _URIListDataflavorCharArray = new DataFlavor("text/uri-list;class=\"[C\"");
    5456                } catch (ClassNotFoundException e) { // This would never happen, java.lang.String is always present
    5557                        e.printStackTrace();
    56                         _URIListDataflavor = null;
    57                 }
    58                 assert(_URIListDataflavor != null);
     58                        _URIListDataflavorString = null;
     59                }
     60                assert(_URIListDataflavorString != null);
     61                assert(_URIListDataflavorCharArray != null);
     62               
    5963        }
    6064       
     
    7478                if (!_customFileImporters.contains(importer))
    7579                        _customFileImporters.add(importer);
     80
    7681        }
    7782       
     
    100105            if (support.isDataFlavorSupported(DataFlavor.stringFlavor)
    101106                        || support.isDataFlavorSupported(DataFlavor.javaFileListFlavor)
    102                         || support.isDataFlavorSupported(_URIListDataflavor)) {
     107                        || support.isDataFlavorSupported(_URIListDataflavorString)
     108                        || support.isDataFlavorSupported(_URIListDataflavorCharArray)) {
    103109
    104110                    // check if the source actions (a bitwise-OR of supported actions)
     
    132138                        // data flavor recognized.
    133139                        for (DataFlavor df : support.getTransferable().getTransferDataFlavors()) {
     140                               
     141                                System.out.println(df);
     142                               
    134143
    135144                                if (df == DataFlavor.stringFlavor) { // import as text item
     
    153162                                       
    154163                                // Usually GNOME and KDE enviroments
    155                                 } else if (df.equals(_URIListDataflavor)) {
     164                                } else if (df.equals(_URIListDataflavorString)) {
    156165                                       
    157166                                        String data = (String)support.getTransferable().getTransferData(
    158                                                         _URIListDataflavor);
     167                                                        _URIListDataflavorString);
    159168                                       
    160169                                        List<File> files = textURIListToFileList(data);
     
    164173                                        return true;
    165174
     175                                } else if (df.equals(_URIListDataflavorCharArray)) {
     176                                       
     177                                        char[] data = (char[])support.getTransferable().getTransferData(
     178                                                        _URIListDataflavorCharArray);
     179                                       
     180                                        String uriString = new String(data);
     181                                       
     182                                        List<File> files = textURIListToFileList(uriString);
     183                                       
     184                                        importFileList(files, expediteeDropPoint);
     185                                       
     186                                        return true;
    166187                                }
    167                                
    168188                        }
    169189                       
     
    240260
    241261        private boolean performFileImport(List<FileImporter> importers, File f, Point expediteeDropPoint) throws IOException {
    242                
     262
    243263                for (FileImporter fi : importers) {
    244264                        if (fi.importFile(f, expediteeDropPoint)) return true;
Note: See TracChangeset for help on using the changeset viewer.