201 202 public static LWToolkit getLWToolkit() { 203 return (LWToolkit)Toolkit.getDefaultToolkit(); 204 } 205 206 // ---- TOPLEVEL PEERS ---- // 207 208 /* 209 * Note that LWWindowPeer implements WindowPeer, FramePeer 210 * and DialogPeer interfaces. 211 */ 212 private LWWindowPeer createDelegatedPeer(Window target, PlatformComponent platformComponent, 213 PlatformWindow platformWindow, LWWindowPeer.PeerType peerType) 214 { 215 LWWindowPeer peer = new LWWindowPeer(target, platformComponent, platformWindow, peerType); 216 targetCreatedPeer(target, peer); 217 peer.initialize(); 218 return peer; 219 } 220 221 @Override 222 public WindowPeer createWindow(Window target) { 223 PlatformComponent platformComponent = createPlatformComponent(); 224 PlatformWindow platformWindow = createPlatformWindow(LWWindowPeer.PeerType.SIMPLEWINDOW); 225 return createDelegatedPeer(target, platformComponent, platformWindow, LWWindowPeer.PeerType.SIMPLEWINDOW); 226 } 227 228 @Override 229 public FramePeer createFrame(Frame target) { 230 PlatformComponent platformComponent = createPlatformComponent(); 231 PlatformWindow platformWindow = createPlatformWindow(LWWindowPeer.PeerType.FRAME); 232 return createDelegatedPeer(target, platformComponent, platformWindow, LWWindowPeer.PeerType.FRAME); 233 } 234 235 public LWWindowPeer createEmbeddedFrame(CEmbeddedFrame target) { 236 PlatformComponent platformComponent = createPlatformComponent(); 237 PlatformWindow platformWindow = createPlatformWindow(LWWindowPeer.PeerType.EMBEDDED_FRAME); 238 return createDelegatedPeer(target, platformComponent, platformWindow, LWWindowPeer.PeerType.EMBEDDED_FRAME); 239 } 240 485 486 synchronized (this) { 487 if (clipboard == null) { 488 clipboard = createPlatformClipboard(); 489 } 490 } 491 return clipboard; 492 } 493 494 // ---- DELEGATES ---- // 495 496 public abstract Clipboard createPlatformClipboard(); 497 498 /* 499 * Creates a delegate for the given peer type (window, frame, dialog, etc.) 500 */ 501 protected abstract PlatformWindow createPlatformWindow(LWWindowPeer.PeerType peerType); 502 503 protected abstract PlatformComponent createPlatformComponent(); 504 505 protected abstract FileDialogPeer createFileDialogPeer(FileDialog target); 506 507 // ---- UTILITY METHODS ---- // 508 509 /* 510 * Expose non-public targetToPeer() method. 511 */ 512 public final static Object targetToPeer(Object target) { 513 return SunToolkit.targetToPeer(target); 514 } 515 516 /* 517 * Expose non-public targetDisposedPeer() method. 518 */ 519 public final static void targetDisposedPeer(Object target, Object peer) { 520 SunToolkit.targetDisposedPeer(target, peer); 521 } 522 523 /* 524 * Returns the current cursor manager. | 201 202 public static LWToolkit getLWToolkit() { 203 return (LWToolkit)Toolkit.getDefaultToolkit(); 204 } 205 206 // ---- TOPLEVEL PEERS ---- // 207 208 /* 209 * Note that LWWindowPeer implements WindowPeer, FramePeer 210 * and DialogPeer interfaces. 211 */ 212 private LWWindowPeer createDelegatedPeer(Window target, PlatformComponent platformComponent, 213 PlatformWindow platformWindow, LWWindowPeer.PeerType peerType) 214 { 215 LWWindowPeer peer = new LWWindowPeer(target, platformComponent, platformWindow, peerType); 216 targetCreatedPeer(target, peer); 217 peer.initialize(); 218 return peer; 219 } 220 221 private LWLightweightFramePeer createDelegatedLwPeer(LightweightFrame target, 222 PlatformComponent platformComponent, 223 PlatformWindow platformWindow) 224 { 225 LWLightweightFramePeer peer = new LWLightweightFramePeer(target, platformComponent, platformWindow); 226 targetCreatedPeer(target, peer); 227 peer.initialize(); 228 return peer; 229 } 230 231 @Override 232 public FramePeer createLightweightFrame(LightweightFrame target) { 233 PlatformComponent platformComponent = createLwPlatformComponent(); 234 PlatformWindow platformWindow = createPlatformWindow(LWWindowPeer.PeerType.LW_FRAME); 235 return createDelegatedLwPeer(target, platformComponent, platformWindow); 236 } 237 238 @Override 239 public WindowPeer createWindow(Window target) { 240 PlatformComponent platformComponent = createPlatformComponent(); 241 PlatformWindow platformWindow = createPlatformWindow(LWWindowPeer.PeerType.SIMPLEWINDOW); 242 return createDelegatedPeer(target, platformComponent, platformWindow, LWWindowPeer.PeerType.SIMPLEWINDOW); 243 } 244 245 @Override 246 public FramePeer createFrame(Frame target) { 247 PlatformComponent platformComponent = createPlatformComponent(); 248 PlatformWindow platformWindow = createPlatformWindow(LWWindowPeer.PeerType.FRAME); 249 return createDelegatedPeer(target, platformComponent, platformWindow, LWWindowPeer.PeerType.FRAME); 250 } 251 252 public LWWindowPeer createEmbeddedFrame(CEmbeddedFrame target) { 253 PlatformComponent platformComponent = createPlatformComponent(); 254 PlatformWindow platformWindow = createPlatformWindow(LWWindowPeer.PeerType.EMBEDDED_FRAME); 255 return createDelegatedPeer(target, platformComponent, platformWindow, LWWindowPeer.PeerType.EMBEDDED_FRAME); 256 } 257 502 503 synchronized (this) { 504 if (clipboard == null) { 505 clipboard = createPlatformClipboard(); 506 } 507 } 508 return clipboard; 509 } 510 511 // ---- DELEGATES ---- // 512 513 public abstract Clipboard createPlatformClipboard(); 514 515 /* 516 * Creates a delegate for the given peer type (window, frame, dialog, etc.) 517 */ 518 protected abstract PlatformWindow createPlatformWindow(LWWindowPeer.PeerType peerType); 519 520 protected abstract PlatformComponent createPlatformComponent(); 521 522 protected abstract PlatformComponent createLwPlatformComponent(); 523 524 protected abstract FileDialogPeer createFileDialogPeer(FileDialog target); 525 526 // ---- UTILITY METHODS ---- // 527 528 /* 529 * Expose non-public targetToPeer() method. 530 */ 531 public final static Object targetToPeer(Object target) { 532 return SunToolkit.targetToPeer(target); 533 } 534 535 /* 536 * Expose non-public targetDisposedPeer() method. 537 */ 538 public final static void targetDisposedPeer(Object target, Object peer) { 539 SunToolkit.targetDisposedPeer(target, peer); 540 } 541 542 /* 543 * Returns the current cursor manager. |