1 3 package com.sshtools.ui.awt.tooltips; 4 5 import java.awt.Color ; 6 import java.awt.Component ; 7 import java.awt.Frame ; 8 9 12 public class ToolTipManager { 13 14 private static ToolTipManager instance; 15 private WaitThread waitThread; 16 private boolean enabled; 17 18 Color foreground, background; 19 private static Frame sharedFrame; 20 21 static { 22 26 27 Frame [] f = Frame.getFrames(); 29 sharedFrame = f != null && f.length > 0 ? f[0] : new Frame (); 31 } 32 33 private ToolTipManager() { 34 foreground = Color.black; 35 background = new Color (0xfe, 0xff, 0xc6); 36 enabled = true; 37 } 38 39 public Frame getSharedFrame() { 40 return sharedFrame; 41 } 42 43 public void setSharedFrame(Frame frame) { 44 if (frame == null) { 45 49 50 Frame [] f = Frame.getFrames(); 52 sharedFrame = f != null && f.length > 0 ? f[0] : new Frame (); 54 } else { 55 sharedFrame = frame; 56 } 57 58 if (waitThread != null) { 60 waitThread.dismissToolTip(); 61 } 62 } 63 64 public void setEnabled(boolean enabled) { 65 this.enabled = enabled; 66 } 67 68 public synchronized void requestToolTip(Component component, String text) { 69 requestToolTip(component, -1, -1, text); 70 } 71 72 public synchronized void requestToolTip(Component component, int x, int y, String text) { 73 if (enabled) { 74 if (waitThread == null) { 75 waitThread = new WaitThread(); 76 waitThread.start(); 77 } 78 waitThread.requestToolTip(component, x, y, text); 79 } 80 } 81 82 public void setToolTipBackground(Color background) { 83 this.background = background; 84 } 85 86 public void setToolTipForeground(Color foreground) { 87 this.foreground = foreground; 88 } 89 90 public static ToolTipManager getInstance() { 91 if (instance == null) { 92 instance = new ToolTipManager(); 93 } 94 return instance; 95 } 96 97 100 public void hide() { 101 if (waitThread != null) { 102 waitThread.dismissToolTip(); 103 } 104 } 105 } | Popular Tags |