File: PasteController.java

package info (click to toggle)
imagej 1.52j-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 5,604 kB
  • sloc: java: 120,017; sh: 279; xml: 161; makefile: 6
file content (84 lines) | stat: -rw-r--r-- 2,289 bytes parent folder | download | duplicates (4)
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package ij.plugin.frame;
import java.awt.*;
import java.awt.event.*;
import ij.*;
import ij.plugin.*;
import ij.gui.*;
import ij.process.*;

/** Implements ImageJ's Paste Control window. */
public class PasteController extends PlugInFrame implements PlugIn, ItemListener {

	private Panel panel;
	private Choice pasteMode;
	private static Frame instance;
	
	public PasteController() {
		super("Paste Control");
		if (instance!=null) {
			WindowManager.toFront(instance);
			return;
		}
		WindowManager.addWindow(this);
		instance = this;
		IJ.register(PasteController.class);
		setLayout(new FlowLayout(FlowLayout.CENTER, 2, 5));
		
		add(new Label(" Transfer Mode:"));
		pasteMode = new Choice();
		pasteMode.addItem("Copy");
		pasteMode.addItem("Blend");
		pasteMode.addItem("Difference");
		pasteMode.addItem("Transparent-white");
		pasteMode.addItem("Transparent-zero");
		pasteMode.addItem("AND");
		pasteMode.addItem("OR");
		pasteMode.addItem("XOR");
		pasteMode.addItem("Add");
		pasteMode.addItem("Subtract");
		pasteMode.addItem("Multiply");
		pasteMode.addItem("Divide");
		pasteMode.addItem("Min");
		pasteMode.addItem("Max");
		pasteMode.select("Copy");
		pasteMode.addItemListener(this);
		add(pasteMode);
		Roi.setPasteMode(Blitter.COPY);

		pack();
		GUI.center(this);
		setResizable(false);
		show();
	}
	
	public void itemStateChanged(ItemEvent e) {
		int index = pasteMode.getSelectedIndex();
		int mode = Blitter.COPY;
		switch (index) {
			case 0: mode = Blitter.COPY; break;
			case 1: mode = Blitter.AVERAGE; break;
			case 2: mode = Blitter.DIFFERENCE; break;
			case 3: mode = Blitter.COPY_TRANSPARENT; break;
			case 4: mode = Blitter.COPY_ZERO_TRANSPARENT; break;
			case 5: mode = Blitter.AND; break;
			case 6: mode = Blitter.OR; break;
			case 7: mode = Blitter.XOR; break;
			case 8: mode = Blitter.ADD; break;
			case 9: mode = Blitter.SUBTRACT; break;
			case 10: mode = Blitter.MULTIPLY; break;
			case 11: mode = Blitter.DIVIDE; break;
			case 12: mode = Blitter.MIN; break;
			case 13: mode = Blitter.MAX; break;
		}
		Roi.setPasteMode(mode);
		if (Recorder.record)
			Recorder.record("setPasteMode", pasteMode.getSelectedItem());
		ImagePlus imp = WindowManager.getCurrentImage();
	}
	
	public void close() {
		super.close();
		instance = null;
	}
	
}