X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fgui%2FDesktop.java;h=b3a82bdf80032adcbda44722581e3d8a8d887fef;hb=79d2d1087d5a8a8242a6bc9ba9e2695059504669;hp=e82bd9c320b19c95de86a053a4aaac50a691143d;hpb=5969ead0fd401f4435a3435ede9e4e87cf9c1d0b;p=jalview.git diff --git a/src/jalview/gui/Desktop.java b/src/jalview/gui/Desktop.java index e82bd9c..b3a82bd 100644 --- a/src/jalview/gui/Desktop.java +++ b/src/jalview/gui/Desktop.java @@ -421,49 +421,50 @@ public class Desktop extends jalview.jbgui.GDesktop checkURLLinks(); - this.setDropTarget(new java.awt.dnd.DropTarget(desktop, this)); - // Spawn a thread that shows the splashscreen + // Spawn a thread that shows the splashscreen - SwingUtilities.invokeLater(new Runnable() - { - @Override - public void run() + SwingUtilities.invokeLater(new Runnable() { - new SplashScreen(); - } - }); + @Override + public void run() + { + new SplashScreen(); + } + }); - // Thread off a new instance of the file chooser - this reduces the time it - // takes to open it later on. - new Thread(new Runnable() - { - @Override - public void run() + // Thread off a new instance of the file chooser - this reduces the time it + // takes to open it later on. + new Thread(new Runnable() { - Cache.log.debug("Filechooser init thread started."); - String fileFormat = Cache.getProperty("DEFAULT_FILE_FORMAT"); - JalviewFileChooser.forRead(Cache.getProperty("LAST_DIRECTORY"), - fileFormat); - Cache.log.debug("Filechooser init thread finished."); - } - }).start(); - // Add the service change listener - changeSupport.addJalviewPropertyChangeListener("services", - new PropertyChangeListener() - { - - @Override - public void propertyChange(PropertyChangeEvent evt) + @Override + public void run() + { + Cache.log.debug("Filechooser init thread started."); + String fileFormat = Cache.getProperty("DEFAULT_FILE_FORMAT"); + JalviewFileChooser.forRead(Cache.getProperty("LAST_DIRECTORY"), + fileFormat); + Cache.log.debug("Filechooser init thread finished."); + } + }).start(); + // Add the service change listener + changeSupport.addJalviewPropertyChangeListener("services", + new PropertyChangeListener() { - Cache.log.debug("Firing service changed event for " - + evt.getNewValue()); - JalviewServicesChanged(evt); - } - }); + @Override + public void propertyChange(PropertyChangeEvent evt) + { + Cache.log.debug("Firing service changed event for " + + evt.getNewValue()); + JalviewServicesChanged(evt); + } + + }); } // end BH 2018 ignore + this.setDropTarget(new java.awt.dnd.DropTarget(desktop, this)); + this.addWindowListener(new WindowAdapter() { @Override @@ -1062,7 +1063,7 @@ public class Desktop extends jalview.jbgui.GDesktop // Java's Transferable for native dnd evt.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE); Transferable t = evt.getTransferable(); - List files = new ArrayList<>(); + List files = new ArrayList<>(); List protocols = new ArrayList<>(); try @@ -1080,13 +1081,15 @@ public class Desktop extends jalview.jbgui.GDesktop { for (int i = 0; i < files.size(); i++) { - String file = files.get(i).toString(); + // BH 2018 File or String + Object file = files.get(i); + String fileName = file.toString(); DataSourceType protocol = (protocols == null) ? DataSourceType.FILE : protocols.get(i); FileFormatI format = null; - if (file.endsWith(".jar")) + if (fileName.endsWith(".jar")) { format = FileFormat.Jalview; @@ -1096,7 +1099,7 @@ public class Desktop extends jalview.jbgui.GDesktop format = new IdentifyFile().identify(file, protocol); } - new FileLoader().LoadFile(file, protocol, format); + new FileLoader().LoadFile(null, file, protocol, format); } } catch (Exception ex) @@ -1118,7 +1121,7 @@ public class Desktop extends jalview.jbgui.GDesktop public void inputLocalFileMenuItem_actionPerformed(AlignViewport viewport) { String fileFormat = Cache.getProperty("DEFAULT_FILE_FORMAT"); - final JalviewFileChooser chooser = JalviewFileChooser + JalviewFileChooser chooser = JalviewFileChooser .forRead(Cache.getProperty("LAST_DIRECTORY"), fileFormat); chooser.setFileView(new JalviewFileView()); @@ -1608,6 +1611,8 @@ public class Desktop extends jalview.jbgui.GDesktop @Override public void saveState_actionPerformed(ActionEvent e) { + // TODO: JAL-3048 not needed for Jalview-JS + JalviewFileChooser chooser = new JalviewFileChooser("jvp", "Jalview Project"); @@ -1681,6 +1686,8 @@ public class Desktop extends jalview.jbgui.GDesktop @Override public void loadState_actionPerformed(ActionEvent e) { + // TODO: JAL-3048 not needed for Jalview-JS + JalviewFileChooser chooser = new JalviewFileChooser( Cache.getProperty("LAST_DIRECTORY"), new String[] { "jvp", "jar" }, @@ -1740,7 +1747,7 @@ public class Desktop extends jalview.jbgui.GDesktop ArrayList fileLoadingPanels = new ArrayList<>(); - public void startLoading(final String fileName) + public void startLoading(final Object fileName) { if (fileLoadingCount == 0) { @@ -1988,6 +1995,8 @@ public class Desktop extends jalview.jbgui.GDesktop @Override public void vamsasImport_actionPerformed(ActionEvent e) { + // TODO: JAL-3048 not needed for Jalview-JS + if (v_client == null) { // Load and try to start a session. @@ -2264,6 +2273,8 @@ public class Desktop extends jalview.jbgui.GDesktop @Override public void vamsasSave_actionPerformed(ActionEvent e) { + // TODO: JAL-3048 not needed for Jalview-JS + if (v_client != null) { // TODO: VAMSAS DOCUMENT EXTENSION is VDJ @@ -3504,10 +3515,29 @@ public class Desktop extends jalview.jbgui.GDesktop * - the payload from the drop event * @throws Exception */ - public static void transferFromDropTarget(List files, + public static void transferFromDropTarget(List files, List protocols, DropTargetDropEvent evt, Transferable t) throws Exception { + + // BH 2018 changed List to List to allow for File from SwingJS + +// DataFlavor[] flavors = t.getTransferDataFlavors(); +// for (int i = 0; i < flavors.length; i++) { +// if (flavors[i].isFlavorJavaFileListType()) { +// evt.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE); +// List list = (List) t.getTransferData(flavors[i]); +// for (int j = 0; j < list.size(); j++) { +// File file = (File) list.get(j); +// byte[] data = getDroppedFileBytes(file); +// fileName.setText(file.getName() + " - " + data.length + " " + evt.getLocation()); +// JTextArea target = (JTextArea) ((DropTarget) evt.getSource()).getComponent(); +// target.setText(new String(data)); +// } +// dtde.dropComplete(true); +// return; +// } +// DataFlavor uriListFlavor = new DataFlavor( "text/uri-list;class=java.lang.String"), urlFlavour = null; @@ -3557,7 +3587,7 @@ public class Desktop extends jalview.jbgui.GDesktop for (Object file : (List) t .getTransferData(DataFlavor.javaFileListFlavor)) { - files.add(((File) file).toString()); + files.add(file); protocols.add(DataSourceType.FILE); } } @@ -3663,13 +3693,14 @@ public class Desktop extends jalview.jbgui.GDesktop // resolve any .lnk files in the file drop for (int f = 0; f < files.size(); f++) { - String source = files.get(f).toLowerCase(); + String source = files.get(f).toString().toLowerCase(); if (protocols.get(f).equals(DataSourceType.FILE) && (source.endsWith(".lnk") || source.endsWith(".url") || source.endsWith(".site"))) { try { - File lf = new File(files.get(f)); + Object obj = files.get(f); + File lf = (obj instanceof File ? (File) obj : new File((String) obj)); // process link file to get a URL Cache.log.debug("Found potential link file: " + lf); WindowsShortcut wscfile = new WindowsShortcut(lf);