File: MacAdapter9.source

package info (click to toggle)
imagej 1.54g-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 6,520 kB
  • sloc: java: 132,209; sh: 286; xml: 255; makefile: 6
file content (58 lines) | stat: -rw-r--r-- 1,769 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package ij.plugin;
import ij.*;
import ij.io.*;
import java.awt.Desktop;
import java.awt.desktop.*;
import java.io.File;
import java.util.Vector;

/** This Mac-specific plugin is designed to handle the "About ImageJ" 
 * command in the ImageJ menu, to open files dropped on ImageJ.app 
 * and to open double-clicked files with creator code "imgJ". 
 * With Java 9 or newer, we use java.awt.desktop instead of the
 * previous com.apple.eawt.* classes.
 * @author Alan Brooks
*/
public class MacAdapter9 implements PlugIn, AboutHandler, OpenFilesHandler, QuitHandler, Runnable {
   static Vector<String> paths = new Vector<String>();

   public void run(String arg) {
      Desktop dtop = Desktop.getDesktop();
      dtop.setOpenFileHandler(this);
      dtop.setAboutHandler(this);
      dtop.setQuitHandler(this);
   }

   @Override
   public void handleAbout(AboutEvent e) {
      IJ.doCommand("About ImageJ...");
   }

   @Override
   public void openFiles(OpenFilesEvent e) {
      for (File file: e.getFiles()) {
         paths.add(file.getPath());
         Thread thread = new Thread(this, "Open");
         thread.setPriority(thread.getPriority()-1);
         thread.start();
      }
   }

   @Override
   public void handleQuitRequestWith(QuitEvent e, QuitResponse response) {
      new Executer("Quit", null); // works with the CommandListener
   }
 
   // Not adding preference handling
   // because we don't have the equivalent of app.setEnabledPreferencesMenu(true);
   // @Override
   // public void handlePreferences(PreferencesEvent e) {
   //    IJ.error("The ImageJ preferences are in the Edit>Options menu.");
   // }
  
    public void run() {
      if (paths.size() > 0) {
         (new Opener()).openAndAddToRecent(paths.remove(0));
      }
    }
}