19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package sun.awt.X11;
27
28 import java.util.ArrayList;
29 import java.util.Collections;
30 import java.util.Iterator;
31 import java.util.List;
32
33 /**
34 * This class is a registry for the supported drag and drop protocols.
35 *
36 * @since 1.5
37 */
38 final class XDragAndDropProtocols {
39 private final static List dragProtocols;
40 private final static List dropProtocols;
41
42 public static final String XDnD = "XDnD";
43 public static final String MotifDnD = "MotifDnD";
44
45 static {
46 // Singleton listener for all drag source protocols.
47 XDragSourceProtocolListener dragSourceProtocolListener =
48 XDragSourceContextPeer.getXDragSourceProtocolListener();
49 // Singleton listener for all drop target protocols.
50 XDropTargetProtocolListener dropTargetProtocolListener =
51 XDropTargetContextPeer.getXDropTargetProtocolListener();
52
53 List tDragSourceProtocols = new ArrayList();
54 XDragSourceProtocol xdndDragSourceProtocol =
55 XDnDDragSourceProtocol.createInstance(dragSourceProtocolListener);
56 tDragSourceProtocols.add(xdndDragSourceProtocol);
57 XDragSourceProtocol motifdndDragSourceProtocol =
58 MotifDnDDragSourceProtocol.createInstance(dragSourceProtocolListener);
59 tDragSourceProtocols.add(motifdndDragSourceProtocol);
60
61 List tDropTargetProtocols = new ArrayList();
62 XDropTargetProtocol xdndDropTargetProtocol =
63 XDnDDropTargetProtocol.createInstance(dropTargetProtocolListener);
64 tDropTargetProtocols.add(xdndDropTargetProtocol);
65 XDropTargetProtocol motifdndDropTargetProtocol =
66 MotifDnDDropTargetProtocol.createInstance(dropTargetProtocolListener);
67 tDropTargetProtocols.add(motifdndDropTargetProtocol);
68
69 dragProtocols = Collections.unmodifiableList(tDragSourceProtocols);
70 dropProtocols = Collections.unmodifiableList(tDropTargetProtocols);
71 }
72
73 static Iterator getDragSourceProtocols() {
74 return dragProtocols.iterator();
75 }
76
77 static Iterator getDropTargetProtocols() {
78 return dropProtocols.iterator();
79 }
80
81 /*
82 * Returns a XDragSourceProtocol whose name equals to the specified string
83 * or null if no such protocol is registered.
84 */
85 public static XDragSourceProtocol getDragSourceProtocol(String name) {
86 // Protocol name cannot be null.
87 if (name == null) {
88 return null;
89 }
90
91 Iterator dragProtocols = XDragAndDropProtocols.getDragSourceProtocols();
92 while (dragProtocols.hasNext()) {
93 XDragSourceProtocol dragProtocol =
94 (XDragSourceProtocol)dragProtocols.next();
95 if (dragProtocol.getProtocolName().equals(name)) {
96 return dragProtocol;
97 }
98 }
99
100 return null;
101 }
102
103 /*
104 * Returns a XDropTargetProtocol which name equals to the specified string
105 * or null if no such protocol is registered.
106 */
107 public static XDropTargetProtocol getDropTargetProtocol(String name) {
108 // Protocol name cannot be null.
109 if (name == null) {
110 return null;
111 }
112
113 Iterator dropProtocols = XDragAndDropProtocols.getDropTargetProtocols();
114 while (dropProtocols.hasNext()) {
115 XDropTargetProtocol dropProtocol =
116 (XDropTargetProtocol)dropProtocols.next();
117 if (dropProtocol.getProtocolName().equals(name)) {
118 return dropProtocol;
119 }
120 }
121
122 return null;
123 }
124 }
|
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25
26 package sun.awt.X11;
27
28 import java.util.ArrayList;
29 import java.util.Collections;
30 import java.util.Iterator;
31 import java.util.List;
32
33 /**
34 * This class is a registry for the supported drag and drop protocols.
35 *
36 * @since 1.5
37 */
38 final class XDragAndDropProtocols {
39 private final static List<XDragSourceProtocol> dragProtocols;
40 private final static List<XDropTargetProtocol> dropProtocols;
41
42 public static final String XDnD = "XDnD";
43 public static final String MotifDnD = "MotifDnD";
44
45 static {
46 // Singleton listener for all drag source protocols.
47 XDragSourceProtocolListener dragSourceProtocolListener =
48 XDragSourceContextPeer.getXDragSourceProtocolListener();
49 // Singleton listener for all drop target protocols.
50 XDropTargetProtocolListener dropTargetProtocolListener =
51 XDropTargetContextPeer.getXDropTargetProtocolListener();
52
53 List<XDragSourceProtocol> tDragSourceProtocols = new ArrayList<>();
54 XDragSourceProtocol xdndDragSourceProtocol =
55 XDnDDragSourceProtocol.createInstance(dragSourceProtocolListener);
56 tDragSourceProtocols.add(xdndDragSourceProtocol);
57 XDragSourceProtocol motifdndDragSourceProtocol =
58 MotifDnDDragSourceProtocol.createInstance(dragSourceProtocolListener);
59 tDragSourceProtocols.add(motifdndDragSourceProtocol);
60
61 List<XDropTargetProtocol> tDropTargetProtocols = new ArrayList<>();
62 XDropTargetProtocol xdndDropTargetProtocol =
63 XDnDDropTargetProtocol.createInstance(dropTargetProtocolListener);
64 tDropTargetProtocols.add(xdndDropTargetProtocol);
65 XDropTargetProtocol motifdndDropTargetProtocol =
66 MotifDnDDropTargetProtocol.createInstance(dropTargetProtocolListener);
67 tDropTargetProtocols.add(motifdndDropTargetProtocol);
68
69 dragProtocols = Collections.unmodifiableList(tDragSourceProtocols);
70 dropProtocols = Collections.unmodifiableList(tDropTargetProtocols);
71 }
72
73 static Iterator<XDragSourceProtocol> getDragSourceProtocols() {
74 return dragProtocols.iterator();
75 }
76
77 static Iterator<XDropTargetProtocol> getDropTargetProtocols() {
78 return dropProtocols.iterator();
79 }
80
81 /*
82 * Returns a XDragSourceProtocol whose name equals to the specified string
83 * or null if no such protocol is registered.
84 */
85 public static XDragSourceProtocol getDragSourceProtocol(String name) {
86 // Protocol name cannot be null.
87 if (name == null) {
88 return null;
89 }
90
91 Iterator<XDragSourceProtocol> dragProtocols =
92 XDragAndDropProtocols.getDragSourceProtocols();
93 while (dragProtocols.hasNext()) {
94 XDragSourceProtocol dragProtocol = dragProtocols.next();
95 if (dragProtocol.getProtocolName().equals(name)) {
96 return dragProtocol;
97 }
98 }
99
100 return null;
101 }
102
103 /*
104 * Returns a XDropTargetProtocol which name equals to the specified string
105 * or null if no such protocol is registered.
106 */
107 public static XDropTargetProtocol getDropTargetProtocol(String name) {
108 // Protocol name cannot be null.
109 if (name == null) {
110 return null;
111 }
112
113 Iterator<XDropTargetProtocol> dropProtocols =
114 XDragAndDropProtocols.getDropTargetProtocols();
115 while (dropProtocols.hasNext()) {
116 XDropTargetProtocol dropProtocol = dropProtocols.next();
117 if (dropProtocol.getProtocolName().equals(name)) {
118 return dropProtocol;
119 }
120 }
121
122 return null;
123 }
124 }
|