Safari tabs+java problem.

theres a game called 'runescape' i play its a web based MMORPG that is java based, and i often need help from different sites, so i go and make a new tab like any other person does but when i go back to runescape, the window it is in turns white and i have to close that tab and go all the back to runescape...
i have all the java business installed ect, latest safari and all that but still the window is turning white... any suggestions that could fix this? This seems like something I'd post on runescape forums but it works when in firefox... i don't understand... i have not tried this with any other java application...
thanks, george

It does seem to be a Safari issue with not calling a repaint when browsing through tabs. If it's any consolation, It should work if you have it in a separate window though.
Yang

Similar Messages

  • Safari and Java Problem

    Hi,
    I'm having a problem with the newest updates to Safari. This problem did not occur until late december when I installed several updates via Software Update.
    Problem:
    I use a photo uploader on a website from my company (unfortunately I can't give out the URL, as it is protected). But it is similar to many other photo uploader sites - load a Java applet, drag images files into a Java window, the files are added to a upload list and then uploaded.
    Now, if I drag 10 items into the window, only one or two will be added to the list. If I drag them in one at a time, all the images will be added. Previously it was possible to drag as many as one wanted in.
    Now the really irritating part : During the upload, the Java uploader completely hijacks Safari. The window the uploader allways stays active on top. If I open a new tab or window the uploader window will reappear on top and dominate the action. The only way to get anything done while I am uploading photos is to open another browser like Firefox. Safari is completely occupied with the Java program.
    Computer: MBP 2.16 GHz, 2GB RAM, OSX 10.4.11
    Safari 3.0.4
    Java 5.0 (not sure of the revision, but it is the most recent)
    Any help would be greatly appreciated.

    I had similar Java problems with Safari and Firefox. I downloaded Navigator and now can run any Java app I need. One thing that may or may not have had any impact: when installing Nav, it asked if I wanted to import settings from Safari or Firefox. I chose not to import any settings. Works perfectly.

  • Safari tab loading problem..

    Lately, and intermittently, when I open a new blank tab, the page loads nothing (no "Top Sites"). If I click any bookmarks or type in any google search/URL, the page will load in the first tab (leaving the former page) and leaving the recent tab untitled and empty still.
    Anyone get this before?

    Lately, and intermittently, when I open a new blank tab, the page loads nothing (no "Top Sites").
    That's to be expected if you haven't selected anything to open in a new Tab except a blank page. If you actually wanted to open Top Sites in every new Tab, you'd have to select that from the General preferences tab of Safari.>If I click any bookmarks or type in any google search/URL, the page will load in the first tab (leaving the former page) and leaving the recent tab untitled and empty still.
    If I click any bookmarks or type in any google search/URL, the page will load in the first tab (leaving the former page) and leaving the recent tab untitled and empty still.
    Perfectly normal, considering your preferences are also probably set to not make the new Tab the active Tab. You can set that in the Tabs section of Safari preferences by selecting the top two checkboxes.

  • Problems with Safari, tabs, radio buttons, etc.

    My goal is (as you probably guessed) to have a script that unite all open windows/tabs in the frontmost window. I know at least of two theoretical ways to do this, but neither works for reasons I don't understand:
    1. GUI scripting. Use Safari's menus to navigate through tabs. For some reason this works somewhat randomly, sometimes getting all tabs and sometimes one tab per window. I can get it working in an awkward way that removes all windows before opening a new one: not exactly what I want to do.
    2. I have found this one browsing for solutions on the web, and it uses the System Events app. It seems that Safari tabs are "radio buttons". However, the number of radio buttons returned is always 0. Also, reading the URL with the line
    value of text field 1 of group 1 of splitter group 1 of window 1
    does not work (returns NSReceiverEvaluationScriptError: 4).
    So, does anyone have any ideas on what goes wrong? (or even better, does anyone have a script that works?)
    Mac mini Core Duo   Mac OS X (10.4.7)  

    Thanks Cyclosaurus, this seems to work!
    There is still one problem: when getting the URL of a window, if it is empty it will throw an "undefined variable" error. How can I avoid this? (I cannot even check if the url is empty because it is undefined.)
    Here is the script I have so far, if anyone is interested:
    tell application "System Events"
    tell process "Safari"
    try
    -- finding the group
    set tab_group to 0
    repeat with g from 1 to count of groups of window 1
    if buttons of group g of window 1 is not {} and title of button 1 of group g of window 1 is not "" then
    set tab_group to g
    exit repeat
    end if
    end repeat
    set URL_list to {}
    set N to count of windows
    repeat with w from N to 2 by -1 -- going through windows
    set T to count of buttons of group tab_group of window w
    repeat with b from 1 to count of buttons of group tab_group of window w -- going through tabs
    click button b of group tab_group of window w
    tell application "Safari" to set this_URL to URL of document w
    if URL_list does not contain this_URL then copy this_URL to end of URL_list
    end repeat
    tell application "Safari" to close window w
    end repeat
    set C to count of URL_list
    repeat with i from 1 to C
    my new_tab()
    tell application "Safari" to set URL of document 1 to item i of URL_list
    end repeat
    on error the error_message number the error_number
    display dialog the error_message buttons {"OK"} default button 1
    end try
    end tell
    end tell
    on new_tab()
    tell application "Safari" to activate
    tell application "System Events"
    tell process "Safari"
    click menu item "New Tab" of menu "File" of menu bar 1
    end tell
    end tell
    end new_tab
    Mac mini Core Duo   Mac OS X (10.4.8)  

  • Safari Java Problems

    Hi-
    I've been attempting to download some of the Adobe trails (Illustrator, PS, Flash, etc.) and I've noticed that they implemented a new Java download manager. Whenever I try to download something (through Safari) the Java window just sits at the grey coffee cup with the arrows around it. I've had it open for quite a while, much longer than the one minute that Adobe says it should load in.
    Any help!?

    Well, I get a brief view at a page that says I'm being redirected and my download will start momentarily, and then the page goes blank, shrinks, and I'm left with a URL in the Toolbar of that new, smaller window for the download.
    So if the new, smaller window has no Toolbar visible, reveal that using the View menu, and that URL will be the one to paste into the Downloads window. For example, here are the URLs for the English versions of Irritator, Photoshop, and Flash:
    http://trials.adobe.com/dlm/Applications/Illustrator/CS4/Mac/ADBEILSTCS4_LS1.dmg
    http://trials.adobe.com/dlm/Applications/Photoshop/CS4/Mac/ADBEPHSPCS4_LS1.dmg
    http://trials.adobe.com/dlm/Applications/FlashPro/CS4/Mac/ADBEFLPRCS4_LS1.dmg
    Or, if you want to save time downloading these, you can order a DVD of all the CS4 trials.
    Mulder

  • Firefox was working on my new iMac but then, after switching on recently, won't connect to the web – whereas Safari has no problem.

    ===
    Hi
    I bought an iMac a week ago and installed Firefox via Safari. It worked fine for a while but, after a recently switching on, it won't connect to the web whereas Safari has no problems.
    I've tried following the Firefox Help, looking into the iMac firewall, but still no luck.
    I've no idea whether related or not but yesterday I had a system glitch where the iMac stated no wi-fi was installed and only connected via a physical lead to my house router. Also, there was no sound output via Safari. However, after booting up today all seems well – apart from Firefox still not working. It loads the start page but can't access the web.
    I have Little Snitch running, and wonder if that's the culprit... but it's working fine with Safari, seemingly.
    (Finally, how do I stop a dialogue box appearing on start-up saying that "To open “X” you need a Java runtime. Would you like to install one now?)
    Any ideas anyone?
    Cheers
    Rob / Sheffield / UK
    ===

    On the wireless networks that your Mac has had trouble connecting to, do you know which Wireless Security type (WEP, WPA, or WPA2) is being used?
    If it is WEP, one of the problems is that the actual standard relies on a 10 character HEX key for 40bit WEP and a 26 character HEX key for 128bit WEP.   In order to make things easier, vendors use certain algorithms to convert simple alphanumeric passwords (or passphrases) into HEX keys, thus enabling the use of simple easy to remember WEP password rather than lengthy HEX keys. The problem is that different vendors use different algorithms to generate the HEX key and therefore a ASCII password on an AEBS will be hashed differently on a non-Apple client and vice versa.   You may find the following Apple Support article helpful.

  • 3 year old iMac 24 running OS10.7.4.  After it has been on for a day or so, it stops going to sleep and becomes very slow.  This only happens when Safari is running. Quitting Safari solves the problem.  Has anyone else have the same problem?

    3 year old iMac 24 running OS 10.7.4.  After it has been on for a day or so, it stops going to sleep and becomes very slow.  This only happens when Safari is running. Quitting Safari solves the problem.  Has anyone else have the same problem?  Does not happen on MacBookpro only on iMac.

    Hello Albert, see how many of these you can answer...
    See if the Disk is issuing any S.M.A.R.T errors in Disk Utility...
    http://support.apple.com/kb/PH7029
    Open Activity Monitor in Applications>Utilities, select All Processes & sort on CPU%, any indications there?
    How much RAM & free space do you have also, click on the Memory & Disk Usage Tabs.
    Open Console in Utilities & see if there are any clues or repeating messages when this happens.
    In the Memory tab, are there a lot of Pageouts?

  • Why do my Safari tabs not work and safari keeps crashing

    My Safari Tabs keep malfunctioning. Safari will only recognize 1 tab even though I have 5 open. It also keeps crashing, this is the last message I received:
    Process: Safari [3205]
    Path: /Applications/Safari.app/Contents/MacOS/Safari
    Identifier: com.apple.Safari
    Version: 5.0.3 (5533.19.4)
    Build Info: WebBrowser-75331904~3
    Code Type: X86 (Native)
    Parent Process: launchd [94]
    Interval Since Last Report: 3096 sec
    Crashes Since Last Report: 1
    Per-App Interval Since Last Report: 3064 sec
    Per-App Crashes Since Last Report: 1
    Date/Time: 2010-12-05 14:20:44.478 -0500
    OS Version: Mac OS X 10.5.8 (9L31a)
    Report Version: 6
    Anonymous UUID: 1FEF7D23-CF15-4A7A-987D-6091F86A9B59
    Exception Type: EXCBADACCESS (SIGBUS)
    Exception Codes: KERNPROTECTIONFAILURE at 0x0000000000000024
    Crashed Thread: 0
    Thread 0 Crashed:
    0 com.apple.Safari 0x0005a573 0x1000 + 365939
    1 com.apple.Safari 0x0005a555 0x1000 + 365909
    2 com.apple.Safari 0x0005a04b 0x1000 + 364619
    3 com.apple.Safari 0x000c89df 0x1000 + 817631
    4 com.apple.Foundation 0x9233042a nsnotecallback + 106
    5 com.apple.CoreFoundation 0x906a447a __CFXNotificationPost + 362
    6 com.apple.CoreFoundation 0x906a4753 _CFXNotificationPostNotification + 179
    7 com.apple.Foundation 0x9232d680 -[NSNotificationCenter postNotificationName:object:userInfo:] + 128
    8 com.apple.AppKit 0x96abd59d -[NSTextField textDidChange:] + 383
    9 com.apple.Safari 0x000c87fc 0x1000 + 817148
    10 com.apple.Foundation 0x9233042a nsnotecallback + 106
    11 com.apple.CoreFoundation 0x906a447a __CFXNotificationPost + 362
    12 com.apple.CoreFoundation 0x906a4753 _CFXNotificationPostNotification + 179
    13 com.apple.Foundation 0x9232d680 -[NSNotificationCenter postNotificationName:object:userInfo:] + 128
    14 com.apple.AppKit 0x96abb0fe -[NSTextView(NSSharing) didChangeText] + 526
    15 com.apple.Safari 0x000c873d 0x1000 + 816957
    16 com.apple.AppKit 0x96bbd6a6 _NSDoUserReplaceForCharRange + 557
    17 com.apple.AppKit 0x96bbd473 _NSDoUserDeleteForCharRange + 79
    18 com.apple.AppKit 0x96bbcc00 -[NSTextView(NSKeyBindingCommands) deleteBackward:] + 663
    19 com.apple.AppKit 0x96ac2be1 -[NSResponder doCommandBySelector:] + 83
    20 com.apple.AppKit 0x96ac2a68 -[NSTextView doCommandBySelector:] + 237
    21 com.apple.Safari 0x000d1b72 0x1000 + 854898
    22 com.apple.AppKit 0x96ab5b89 -[NSKeyBindingManager(NSKeyBindingManager_MultiClients) interpretEventAsCommand:forClient:] + 1924
    23 com.apple.AppKit 0x96ab4796 -[NSTSMInputContext interpretKeyEvents:] + 1202
    24 com.apple.AppKit 0x96ab42b2 -[NSView interpretKeyEvents:] + 70
    25 com.apple.AppKit 0x96ab41c2 -[NSTextView keyDown:] + 748
    26 com.apple.AppKit 0x96a24731 -[NSWindow sendEvent:] + 8511
    27 com.apple.Safari 0x00040280 0x1000 + 258688
    28 com.apple.Safari 0x0004020d 0x1000 + 258573
    29 com.apple.AppKit 0x969f06a5 -[NSApplication sendEvent:] + 2939
    30 com.apple.Safari 0x00037490 0x1000 + 222352
    31 com.apple.AppKit 0x9694dfe7 -[NSApplication run] + 867
    32 com.apple.AppKit 0x9691b1d8 NSApplicationMain + 574
    33 com.apple.Safari 0x0000a63e 0x1000 + 38462
    Thread 1:
    0 libSystem.B.dylib 0x978ca44e _semwaitsignal + 10
    1 libSystem.B.dylib 0x978f4dcd pthreadcondwait$UNIX2003 + 73
    Thread 2:
    0 libSystem.B.dylib 0x978ca44e _semwaitsignal + 10
    1 libSystem.B.dylib 0x978f4dcd pthreadcondwait$UNIX2003 + 73
    2 com.apple.WebCore 0x90b17ff4 WebCore::IconDatabase::syncThreadMainLoop() + 260
    3 com.apple.WebCore 0x90b1430c WebCore::IconDatabase::iconDatabaseSyncThread() + 188
    4 libSystem.B.dylib 0x978f4155 pthreadstart + 321
    5 libSystem.B.dylib 0x978f4012 thread_start + 34
    Thread 3:
    0 libSystem.B.dylib 0x978c3266 machmsgtrap + 10
    1 libSystem.B.dylib 0x978caa5c mach_msg + 72
    2 com.apple.CoreFoundation 0x906c2e7e CFRunLoopRunSpecific + 1790
    3 com.apple.CoreFoundation 0x906c3aa8 CFRunLoopRunInMode + 88
    4 com.apple.CFNetwork 0x9711718c CFURLCacheWorkerThread(void*) + 388
    5 libSystem.B.dylib 0x978f4155 pthreadstart + 321
    6 libSystem.B.dylib 0x978f4012 thread_start + 34
    Thread 4:
    0 libSystem.B.dylib 0x978c3266 machmsgtrap + 10
    1 libSystem.B.dylib 0x978caa5c mach_msg + 72
    2 com.apple.CoreFoundation 0x906c2e7e CFRunLoopRunSpecific + 1790
    3 com.apple.CoreFoundation 0x906c3aa8 CFRunLoopRunInMode + 88
    4 com.apple.Safari 0x0002edb3 0x1000 + 187827
    5 com.apple.Safari 0x0002eafc 0x1000 + 187132
    6 com.apple.Safari 0x0002ea95 0x1000 + 187029
    7 libSystem.B.dylib 0x978f4155 pthreadstart + 321
    8 libSystem.B.dylib 0x978f4012 thread_start + 34
    Thread 5:
    0 libSystem.B.dylib 0x979126fa select$DARWIN_EXTSN + 10
    1 libSystem.B.dylib 0x978f4155 pthreadstart + 321
    2 libSystem.B.dylib 0x978f4012 thread_start + 34
    Thread 6:
    0 libSystem.B.dylib 0x978c3266 machmsgtrap + 10
    1 libSystem.B.dylib 0x978caa5c mach_msg + 72
    2 com.apple.CoreFoundation 0x906c2e7e CFRunLoopRunSpecific + 1790
    3 com.apple.CoreFoundation 0x906c3aa8 CFRunLoopRunInMode + 88
    4 com.apple.Foundation 0x92394520 +[NSURLConnection(NSURLConnectionReallyInternal) _resourceLoadLoop:] + 320
    5 com.apple.Foundation 0x92330dfd -[NSThread main] + 45
    6 com.apple.Foundation 0x923309a4 _NSThread__main_ + 308
    7 libSystem.B.dylib 0x978f4155 pthreadstart + 321
    8 libSystem.B.dylib 0x978f4012 thread_start + 34
    Thread 7:
    0 libSystem.B.dylib 0x978ca44e _semwaitsignal + 10
    1 libSystem.B.dylib 0x978f4dcd pthreadcondwait$UNIX2003 + 73
    2 com.apple.JavaScriptCore 0x91ee57d1 ***::ThreadCondition::timedWait(***::Mutex&, double) + 81
    3 com.apple.WebCore 0x90e6786c WebCore::LocalStorageThread::threadEntryPoint() + 188
    4 libSystem.B.dylib 0x978f4155 pthreadstart + 321
    5 libSystem.B.dylib 0x978f4012 thread_start + 34
    Thread 8:
    0 libSystem.B.dylib 0x978ca44e _semwaitsignal + 10
    1 libSystem.B.dylib 0x978f4dcd pthreadcondwait$UNIX2003 + 73
    2 com.apple.JavaScriptCore 0x91ee57d1 ***::ThreadCondition::timedWait(***::Mutex&, double) + 81
    3 com.apple.Safari 0x001ad9ee 0x1000 + 1755630
    4 com.apple.Safari 0x00044c65 0x1000 + 277605
    5 com.apple.Safari 0x00044bb5 0x1000 + 277429
    6 libSystem.B.dylib 0x978f4155 pthreadstart + 321
    7 libSystem.B.dylib 0x978f4012 thread_start + 34
    Thread 9:
    0 libSystem.B.dylib 0x978ca44e _semwaitsignal + 10
    1 libSystem.B.dylib 0x978f4dcd pthreadcondwait$UNIX2003 + 73
    2 libGLProgrammability.dylib 0x95631b32 glvmDoWork + 162
    3 libSystem.B.dylib 0x978f4155 pthreadstart + 321
    4 libSystem.B.dylib 0x978f4012 thread_start + 34
    Thread 10:
    0 libSystem.B.dylib 0x978ca44e _semwaitsignal + 10
    1 libSystem.B.dylib 0x978f4dcd pthreadcondwait$UNIX2003 + 73
    2 com.apple.ColorSync 0x922873f8 pthreadSemaphoreWait(t_pthreadSemaphore*) + 42
    3 com.apple.ColorSync 0x92299d4e CMMConvTask(void*) + 54
    4 libSystem.B.dylib 0x978f4155 pthreadstart + 321
    5 libSystem.B.dylib 0x978f4012 thread_start + 34
    Thread 11:
    0 libSystem.B.dylib 0x978c3266 machmsgtrap + 10
    1 libSystem.B.dylib 0x978caa5c mach_msg + 72
    2 com.apple.CoreFoundation 0x906c2e7e CFRunLoopRunSpecific + 1790
    3 com.apple.CoreFoundation 0x906c3aa8 CFRunLoopRunInMode + 88
    4 com.apple.audio.CoreAudio 0x97df25f8 HALRunLoop::OwnThread(void*) + 160
    5 com.apple.audio.CoreAudio 0x97df2480 CAPThread::Entry(CAPThread*) + 96
    6 libSystem.B.dylib 0x978f4155 pthreadstart + 321
    7 libSystem.B.dylib 0x978f4012 thread_start + 34
    Thread 12:
    0 libSystem.B.dylib 0x978ca44e _semwaitsignal + 10
    1 libSystem.B.dylib 0x978f4dcd pthreadcondwait$UNIX2003 + 73
    2 com.apple.QuartzCore 0x92697a09 fefragmentthread + 54
    3 libSystem.B.dylib 0x978f4155 pthreadstart + 321
    4 libSystem.B.dylib 0x978f4012 thread_start + 34
    Thread 13:
    0 libSystem.B.dylib 0x978c32c6 semaphoretimedwait_signaltrap + 10
    1 libSystem.B.dylib 0x978f52af pthread_condwait + 1244
    2 libSystem.B.dylib 0x978f6b33 pthreadcond_timedwait_relativenp + 47
    3 com.apple.Foundation 0x92376dbc -[NSCondition waitUntilDate:] + 236
    4 com.apple.Foundation 0x92376bd0 -[NSConditionLock lockWhenCondition:beforeDate:] + 144
    5 com.apple.Foundation 0x92376b35 -[NSConditionLock lockWhenCondition:] + 69
    6 com.apple.AppKit 0x969bb6e8 -[NSUIHeartBeat _heartBeatThread:] + 753
    7 com.apple.Foundation 0x92330dfd -[NSThread main] + 45
    8 com.apple.Foundation 0x923309a4 _NSThread__main_ + 308
    9 libSystem.B.dylib 0x978f4155 pthreadstart + 321
    10 libSystem.B.dylib 0x978f4012 thread_start + 34
    Thread 14:
    0 libSystem.B.dylib 0x978c32ae semaphorewait_signaltrap + 10
    1 libSystem.B.dylib 0x978f52c6 pthread_condwait + 1267
    2 libSystem.B.dylib 0x9793a539 pthreadcondwait + 48
    3 ...lashPlayer-10.4-10.5.plugin 0x22c25fbf unregister_ShockwaveFlash + 46383
    4 ...lashPlayer-10.4-10.5.plugin 0x228195af 0x22800000 + 103855
    5 ...lashPlayer-10.4-10.5.plugin 0x22c260ac unregister_ShockwaveFlash + 46620
    6 ...lashPlayer-10.4-10.5.plugin 0x22c260f0 unregister_ShockwaveFlash + 46688
    7 ...lashPlayer-10.4-10.5.plugin 0x22c26216 unregister_ShockwaveFlash + 46982
    8 libSystem.B.dylib 0x978f4155 pthreadstart + 321
    9 libSystem.B.dylib 0x978f4012 thread_start + 34
    Thread 15:
    0 libSystem.B.dylib 0x978c32ae semaphorewait_signaltrap + 10
    1 libSystem.B.dylib 0x978f52c6 pthread_condwait + 1267
    2 libSystem.B.dylib 0x9793a539 pthreadcondwait + 48
    3 ...lashPlayer-10.4-10.5.plugin 0x22c25fbf unregister_ShockwaveFlash + 46383
    4 ...lashPlayer-10.4-10.5.plugin 0x228195af 0x22800000 + 103855
    5 ...lashPlayer-10.4-10.5.plugin 0x22c260ac unregister_ShockwaveFlash + 46620
    6 ...lashPlayer-10.4-10.5.plugin 0x22c260f0 unregister_ShockwaveFlash + 46688
    7 ...lashPlayer-10.4-10.5.plugin 0x22c26216 unregister_ShockwaveFlash + 46982
    8 libSystem.B.dylib 0x978f4155 pthreadstart + 321
    9 libSystem.B.dylib 0x978f4012 thread_start + 34
    Thread 16:
    0 libSystem.B.dylib 0x978c32c6 semaphoretimedwait_signaltrap + 10
    1 libSystem.B.dylib 0x978f52af pthread_condwait + 1244
    2 libSystem.B.dylib 0x978f6b33 pthreadcond_timedwait_relativenp + 47
    3 ...lashPlayer-10.4-10.5.plugin 0x22c25f87 unregister_ShockwaveFlash + 46327
    4 ...lashPlayer-10.4-10.5.plugin 0x229dc01e 0x22800000 + 1949726
    5 ...lashPlayer-10.4-10.5.plugin 0x22c260ac unregister_ShockwaveFlash + 46620
    6 ...lashPlayer-10.4-10.5.plugin 0x22c260f0 unregister_ShockwaveFlash + 46688
    7 ...lashPlayer-10.4-10.5.plugin 0x22c26216 unregister_ShockwaveFlash + 46982
    8 libSystem.B.dylib 0x978f4155 pthreadstart + 321
    9 libSystem.B.dylib 0x978f4012 thread_start + 34
    Thread 17:
    0 libSystem.B.dylib 0x978c32c6 semaphoretimedwait_signaltrap + 10
    1 libSystem.B.dylib 0x978f52af pthread_condwait + 1244
    2 libSystem.B.dylib 0x978f6b33 pthreadcond_timedwait_relativenp + 47
    3 ...lashPlayer-10.4-10.5.plugin 0x22c25f87 unregister_ShockwaveFlash + 46327
    4 ...lashPlayer-10.4-10.5.plugin 0x22b146d5 0x22800000 + 3229397
    5 ...lashPlayer-10.4-10.5.plugin 0x22c260ac unregister_ShockwaveFlash + 46620
    6 ...lashPlayer-10.4-10.5.plugin 0x22c260f0 unregister_ShockwaveFlash + 46688
    7 ...lashPlayer-10.4-10.5.plugin 0x22c26216 unregister_ShockwaveFlash + 46982
    8 libSystem.B.dylib 0x978f4155 pthreadstart + 321
    9 libSystem.B.dylib 0x978f4012 thread_start + 34
    Thread 0 crashed with X86 Thread State (32-bit):
    eax: 0x00000000 ebx: 0x007d70c0 ecx: 0x0051401d edx: 0x00000000
    edi: 0x007e9100 esi: 0x00000000 ebp: 0xbfffed18 esp: 0xbfffed00
    ss: 0x0000001f efl: 0x00010286 eip: 0x0005a573 cs: 0x00000017
    ds: 0x0000001f es: 0x0000001f fs: 0x00000000 gs: 0x00000037
    cr2: 0x00000024
    Binary Images:
    0x1000 - 0x5d2fec com.apple.Safari 5.0.3 (5533.19.4) <604052a6c5ff84f5df924969ac776080> /Applications/Safari.app/Contents/MacOS/Safari
    0x643000 - 0x64efff libxar.1.dylib ??? (???) /usr/lib/libxar.1.dylib
    0x656000 - 0x680fe8 com.apple.framework.Apple80211 5.2.8 (528.1) <97dfd0c2d44d3c5839dd96f74e43d9c2> /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Apple80211
    0x691000 - 0x6a0ffc SyndicationUI ??? (???) <2cd698f2228f7a85b073c9c3fbc32cba> /System/Library/PrivateFrameworks/SyndicationUI.framework/Versions/A/Syndicatio nUI
    0x1ade000 - 0x1adfffc +com.yourcompany.ct_loader 1.7.0.2 (1702) <86134afac7ff3505d2f5a6305d56dea5> /Library/InputManagers/CTLoader/ctloader.bundle/Contents/MacOS/ctloader
    0x1b33000 - 0x1b4aff7 +com.conduit.ct_alerts 1000 (1.0.0.0) <5917af5ccfa75ea19fc21293246ddd65> /Library/Application Support/Conduit/Plugins/cttoolbar.bundle/Contents/Resources/Services/ctalerts.bundle/Contents/MacOS/ctalerts
    0x11d90000 - 0x12177fff com.apple.RawCamera.bundle 3.4.0 (545) <46f9387243c4db157889522a00d16c32> /System/Library/CoreServices/RawCamera.bundle/Contents/MacOS/RawCamera
    0x13a8f000 - 0x13b80fff +com.conduit.cttoolbar 1.7.0.2 (1702) <6dcd8bd26903e46f5113a9aaf2d0852c> /Library/Application Support/Conduit/Plugins/cttoolbar.bundle/Contents/MacOS/ct_plugins
    0x16050000 - 0x16055ff3 libCGXCoreImage.A.dylib ??? (???) <4199fa0c7dd9592abf465b20feec52f9> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ CoreGraphics.framework/Versions/A/Resources/libCGXCoreImage.A.dylib
    0x17ea2000 - 0x17ebeff7 GLRendererFloat ??? (???) <7b68e0fde5d97927d5407221bdf8ace0> /System/Library/Frameworks/OpenGL.framework/Versions/A/Resources/GLRendererFloa t.bundle/GLRendererFloat
    0x17fa1000 - 0x18126fe3 GLEngine ??? (???) <945546cdf016a4e5cbbf2ad1bccd0ab4> /System/Library/Frameworks/OpenGL.framework/Resources/GLEngine.bundle/GLEngine
    0x18154000 - 0x184bdfe8 com.apple.GeForce8xxxGLDriver 1.5.48 (5.4.8) <880ed3155078052260ade6e705c9ca64> /System/Library/Extensions/GeForce8xxxGLDriver.bundle/Contents/MacOS/GeForce8xx xGLDriver
    0x19aef000 - 0x19af0ff3 ATSHI.dylib ??? (???) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ ATS.framework/Versions/A/Resources/ATSHI.dylib
    0x19e42000 - 0x19e43fff com.apple.JavaPluginCocoa 12.7.0 (12.7.0) <2910c87b17ddaa1a8a5efaf9d4c76b00> /System/Library/Frameworks/JavaVM.framework/Versions/A/JavaPluginCocoa.bundle/C ontents/MacOS/JavaPluginCocoa
    0x19e4f000 - 0x19e57ffe com.apple.JavaVM 12.7.0 (12.7.0) <d9cf554378c7cafa431ea651c476fb80> /System/Library/Frameworks/JavaVM.framework/Versions/A/JavaVM
    0x1df30000 - 0x1df33ff2 +com.macromedia.Flash Player.plugin 10.1.102.64 (10.1.102.64) <0e4f768e4ff090b47387c86a3ec48c43> /Library/Internet Plug-Ins/Flash Player.plugin/Contents/MacOS/Flash Player
    0x1e298000 - 0x1e29bfff com.apple.audio.AudioIPCPlugIn 1.0.6 (1.0.6) <51c811377017028f8904ad779e6a1344> /System/Library/Extensions/AudioIPCDriver.kext/Contents/Resources/AudioIPCPlugI n.bundle/Contents/MacOS/AudioIPCPlugIn
    0x1e2ea000 - 0x1e2f3fff com.apple.IOFWDVComponents 1.9.5 (1.9.5) <9d3b7becb2244f67b6348ef2af2e459b> /System/Library/Components/IOFWDVComponents.component/Contents/MacOS/IOFWDVComp onents
    0x1e2fd000 - 0x1e303fff com.apple.audio.AppleHDAHALPlugIn 1.7.1 (1.7.1a2) <a0a4389b5ac52ab84397d2b25c9d3b9c> /System/Library/Extensions/AppleHDA.kext/Contents/PlugIns/AppleHDAHALPlugIn.bun dle/Contents/MacOS/AppleHDAHALPlugIn
    0x1e528000 - 0x1e563fff com.apple.QuickTimeFireWireDV.component 7.6.6 (1674) /System/Library/QuickTime/QuickTimeFireWireDV.component/Contents/MacOS/QuickTim eFireWireDV
    0x1f167000 - 0x1f175feb libSimplifiedChineseConverter.dylib ??? (???) <68f130a585c3f580d166ef7cbbf47e69> /System/Library/CoreServices/Encodings/libSimplifiedChineseConverter.dylib
    0x1f1c0000 - 0x1f1eeff7 com.apple.QuickTimeIIDCDigitizer 7.6.6 (1674) <9491bfbc1a9080ecc4165384f4224f2c> /System/Library/QuickTime/QuickTimeIIDCDigitizer.component/Contents/MacOS/Quick TimeIIDCDigitizer
    0x1f1f9000 - 0x1f247ffe com.apple.QuickTimeUSBVDCDigitizer 2.3.2 (2.3.2) <dceb65eeab48361f6466fadf8aa4ad6f> /System/Library/QuickTime/QuickTimeUSBVDCDigitizer.component/Contents/MacOS/Qui ckTimeUSBVDCDigitizer
    0x1f27c000 - 0x1f28efff libTraditionalChineseConverter.dylib ??? (???) <6108541a452ff07d2f67db4a488b9d22> /System/Library/CoreServices/Encodings/libTraditionalChineseConverter.dylib
    0x22800000 - 0x231c2ff3 +com.macromedia.FlashPlayer-10.4-10.5.plugin 10.1.102.64 (10.1.102.64) <ab20f8cbd0050fdf33413b314a53f915> /Library/Internet Plug-Ins/Flash Player.plugin/Contents/PlugIns/FlashPlayer-10.4-10.5.plugin/Contents/MacOS/Flas hPlayer-10.4-10.5
    0x23de2000 - 0x23debff7 com.apple.iokit.IOUSBLib 3.4.9 (3.4.9) <ea4061ec718fddebf2cf952e8606ae87> /System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/IOUSBLib.bundle/Co ntents/MacOS/IOUSBLib
    0x27168000 - 0x27195ffb libcurl.4.dylib ??? (???) <e70ed3c4c3a9ab52cca43930b038b2b8> /usr/lib/libcurl.4.dylib
    0x2758c000 - 0x275c2fff com.apple.MediaKit 9.1 (401) <62f8d49f7d7eb4096d74377d0b7b51d5> /System/Library/PrivateFrameworks/MediaKit.framework/Versions/A/MediaKit
    0x2914f000 - 0x29247fe0 com.apple.DiskImagesFramework 10.5.10 (204) <8c3102f0ae254f73d26db037a1c18d20> /System/Library/PrivateFrameworks/DiskImages.framework/DiskImages
    0x292ad000 - 0x29376fe5 com.apple.DiscRecording 4.0.7 (4070.4.1) <7c105f35c674aad3a476f8959d3f3ebb> /System/Library/Frameworks/DiscRecording.framework/Versions/A/DiscRecording
    0x2a4b1000 - 0x2a4b1ffd liblangid.dylib ??? (???) <4a7cd4e810ac2cf4cadd29d0bda17306> /usr/lib/liblangid.dylib
    0x2d3d1000 - 0x2d4fcff7 libmecab.1.0.0.dylib ??? (???) <b1f984a091cd38aaa82c99b8437b2761> /usr/lib/libmecab.1.0.0.dylib
    0x70000000 - 0x700e6ff2 com.apple.audio.units.Components 1.5.2 (1.5.2) /System/Library/Components/CoreAudio.component/Contents/MacOS/CoreAudio
    0x8fe00000 - 0x8fe2db43 dyld 97.1 (???) <458eed38a009e5658a79579e7bc26603> /usr/lib/dyld
    0x90003000 - 0x90003ffd com.apple.Accelerate.vecLib 3.4.2 (vecLib 3.4.2) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.fr amework/Versions/A/vecLib
    0x90004000 - 0x9030cfe7 com.apple.HIToolbox 1.5.6 (???) <eece3cb8aa0a4e6843fcc1500aca61c5> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.fra mework/Versions/A/HIToolbox
    0x903d7000 - 0x90451ff8 com.apple.print.framework.PrintCore 5.5.4 (245.6) <3839795086b6857d3c60064dce8702b5> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ PrintCore.framework/Versions/A/PrintCore
    0x90452000 - 0x905d6fef com.apple.MediaToolbox 0.484.2 (484.2) <a5110a7d3bcb02c45ad8fca1f4957917> /System/Library/PrivateFrameworks/MediaToolbox.framework/Versions/A/MediaToolbo x
    0x905dc000 - 0x90600fff libxslt.1.dylib ??? (???) <f0872c9ba3c17861fba8c45a3647cee1> /usr/lib/libxslt.1.dylib
    0x90601000 - 0x9064cff7 com.apple.CoreMediaIOServices 130.0 (935) <4ee695edd53f5aa200021a2f69d24f76> /System/Library/PrivateFrameworks/CoreMediaIOServices.framework/Versions/A/Core MediaIOServices
    0x9064d000 - 0x9064ffff com.apple.securityhi 3.0 (30817) <db23f4bad9f63a606468a4047a69b945> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SecurityHI.fr amework/Versions/A/SecurityHI
    0x90650000 - 0x90783fe7 com.apple.CoreFoundation 6.5.7 (476.19) <a332c8f45529ee26d2e9c36d0c723bad> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
    0x90784000 - 0x907d5ff7 com.apple.HIServices 1.7.1 (???) <ba7fd0ede540a0da08db027f87efbd60> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ HIServices.framework/Versions/A/HIServices
    0x908b9000 - 0x90a75ff3 com.apple.QuartzComposer 2.1 (106.13) <f487aaca8ebdc7e334e2c79cebd8da66> /System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/QuartzCompose r.framework/Versions/A/QuartzComposer
    0x90a76000 - 0x90af5ff5 com.apple.SearchKit 1.2.2 (1.2.2) <3b5f3ab6a363a4d8a2bbbf74213ab0e5> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchK it.framework/Versions/A/SearchKit
    0x90af6000 - 0x90b11ff3 libPng.dylib ??? (???) <c0791798fb92acc136c250a373449359> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ ImageIO.framework/Versions/A/Resources/libPng.dylib
    0x90b12000 - 0x9160cfff com.apple.WebCore 5533.19 (5533.19.4) <9b91bb00c553ec746fdbe51abca306af> /System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks/WebCore.frame work/Versions/A/WebCore
    0x9160d000 - 0x91701ff4 libiconv.2.dylib ??? (???) <96ff4c6f84c4a1623cb78287371cdd3f> /usr/lib/libiconv.2.dylib
    0x91714000 - 0x917fcff3 com.apple.CoreData 100.2 (186.2) <44df326fea0236718f5ed64084e82270> /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData
    0x917fd000 - 0x91812ffb com.apple.ImageCapture 5.0.2 (5.0.2) /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/ImageCapture. framework/Versions/A/ImageCapture
    0x91813000 - 0x918a6ff3 com.apple.ApplicationServices.ATS 3.8 (???) <e61b0945da6ab368348a927f7428ad67> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ ATS.framework/Versions/A/ATS
    0x918a7000 - 0x918c5fff libresolv.9.dylib ??? (???) <39f6d8651f3dca7a1534fa04322e6763> /usr/lib/libresolv.9.dylib
    0x918c6000 - 0x918d5ffe com.apple.DSObjCWrappers.Framework 1.3 (1.3) <9a3a2108a5612a5e683e7e026c582a98> /System/Library/PrivateFrameworks/DSObjCWrappers.framework/Versions/A/DSObjCWra ppers
    0x91909000 - 0x9193ffef libtidy.A.dylib ??? (???) <7f0b8a7837bd7f8039d06fc042acf85b> /usr/lib/libtidy.A.dylib
    0x91940000 - 0x9198ffff com.apple.QuickLookUIFramework 1.3.1 (170.9) /System/Library/PrivateFrameworks/QuickLookUI.framework/Versions/A/QuickLookUI
    0x91990000 - 0x91a23fff com.apple.ink.framework 101.3 (86) <d4c85b5cafa8027fff042b84a8be71dc> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework /Versions/A/Ink
    0x91bf6000 - 0x91bfafff libmathCommon.A.dylib ??? (???) /usr/lib/system/libmathCommon.A.dylib
    0x91cca000 - 0x91ccffff com.apple.backup.framework 1.0 (1.0) /System/Library/PrivateFrameworks/Backup.framework/Versions/A/Backup
    0x91cd0000 - 0x91d0efff libGLImage.dylib ??? (???) <b154e14c351ddc950d5228819201435e> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dyl ib
    0x91d0f000 - 0x91d0fffa com.apple.CoreServices 32 (32) <373d6a888f9204641f313bc6070ae065> /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
    0x91d10000 - 0x91d18fff com.apple.DiskArbitration 2.2.1 (2.2.1) <2664eeb3a4d0c95a21c089892a0ae8d0> /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration
    0x91d19000 - 0x91d4bfff com.apple.LDAPFramework 1.4.5 (110) <bb7a3e5d66f00d1d1c8a40569b003ba3> /System/Library/Frameworks/LDAP.framework/Versions/A/LDAP
    0x91d4c000 - 0x91d64fff com.apple.openscripting 1.2.8 (???) <a6b446eb8ec7844096df5fb9002f5c7b> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/OpenScripting .framework/Versions/A/OpenScripting
    0x91d65000 - 0x91db3fe3 com.apple.AppleVAFramework 4.1.17 (4.1.17) /System/Library/PrivateFrameworks/AppleVA.framework/Versions/A/AppleVA
    0x91db4000 - 0x91e94fff libobjc.A.dylib ??? (???) <d1469bf9fe852864d4fff185c72768e8> /usr/lib/libobjc.A.dylib
    0x91e95000 - 0x91ec6ffb com.apple.quartzfilters 1.5.0 (1.5.0) <92b4f39479fdcabae0d8f53febd22fad> /System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/QuartzFilters .framework/Versions/A/QuartzFilters
    0x91ec7000 - 0x91ed3fff libbz2.1.0.dylib ??? (???) <887bb6f73d23088fe42946cd9f134876> /usr/lib/libbz2.1.0.dylib
    0x91ed4000 - 0x920ccfff com.apple.JavaScriptCore 5533.19 (5533.19.1) <a099821bc9203b1bba37aee855280e28> /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/JavaScriptCore
    0x920cd000 - 0x9217fffb libcrypto.0.9.7.dylib ??? (???) <d02f7e5b8a68813bb7a77f5edb34ff9d> /usr/lib/libcrypto.0.9.7.dylib
    0x921bd000 - 0x921e8fe7 libauto.dylib ??? (???) <2e44c523b851e8e25f05d13a48070a58> /usr/lib/libauto.dylib
    0x9222e000 - 0x9223bfe7 com.apple.opengl 1.5.10 (1.5.10) <95c3d857570a137d0e8285c9eafa1112> /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL
    0x92244000 - 0x92247fff com.apple.help 1.1 (36) <1a25a8fbb49a830efb31d5c0a52939cd> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Help.framewor k/Versions/A/Help
    0x92248000 - 0x92253fe7 libCSync.A.dylib ??? (???) <06652e36188190ec04d294f49c68f28a> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ CoreGraphics.framework/Versions/A/Resources/libCSync.A.dylib
    0x92254000 - 0x9231ffef com.apple.ColorSync 4.5.3 (4.5.3) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ ColorSync.framework/Versions/A/ColorSync
    0x92326000 - 0x925a2fe7 com.apple.Foundation 6.5.9 (677.26) <c68b3cff7864959becfc7fd1a384f925> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
    0x925a3000 - 0x92940fef com.apple.QuartzCore 1.5.8 (1.5.8) <8dc9ad0616bf56ebba60d6353737ac4e> /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore
    0x92941000 - 0x9294afff com.apple.speech.recognition.framework 3.7.24 (3.7.24) <da2d8411921a3fd8bc898dc753b7f3ee> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecogni tion.framework/Versions/A/SpeechRecognition
    0x9294b000 - 0x92a12ff2 com.apple.vImage 3.0 (3.0) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.fr amework/Versions/A/vImage
    0x92a48000 - 0x92a48ffe com.apple.MonitorPanelFramework 1.2.0 (1.2.0) <1f4c10fcc17187a6f106e0a0be8236b0> /System/Library/PrivateFrameworks/MonitorPanel.framework/Versions/A/MonitorPane l
    0x92a49000 - 0x93948fe6 com.apple.QuickTimeComponents.component 7.6.6 (1674) /System/Library/QuickTime/QuickTimeComponents.component/Contents/MacOS/QuickTim eComponents
    0x93949000 - 0x93989fef com.apple.CoreMedia 0.484.2 (484.2) <37461ff47cb25ad434a8544c97271d28> /System/Library/PrivateFrameworks/CoreMedia.framework/Versions/A/CoreMedia
    0x939dc000 - 0x939dcffd com.apple.vecLib 3.4.2 (vecLib 3.4.2) /System/Library/Frameworks/vecLib.framework/Versions/A/vecLib
    0x939dd000 - 0x939edfff com.apple.speech.synthesis.framework 3.7.1 (3.7.1) <273d96ff861dc68be659c07ef56f599a> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ SpeechSynthesis.framework/Versions/A/SpeechSynthesis
    0x939ee000 - 0x93b26fe7 com.apple.imageKit 1.0.2 (1.0) <00d03cf7f26e1b6023efdc4bd15dd52e> /System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/ImageKit.fram ework/Versions/A/ImageKit
    0x93b27000 - 0x93b2eff7 libCGATS.A.dylib ??? (???) <29154398dbefc2a1a97715e5af1e3552> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ CoreGraphics.framework/Versions/A/Resources/libCGATS.A.dylib
    0x93e0c000 - 0x93ec7fe3 com.apple.CoreServices.OSServices 228.1 (228.1) <76fdc146b4d9937f9c5cbaa1512e0023> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServi ces.framework/Versions/A/OSServices
    0x93ec8000 - 0x93ee6ff3 com.apple.DirectoryService.Framework 3.5.7 (3.5.7) <b4cd561d2481c4162ecf0acdf8cb062c> /System/Library/Frameworks/DirectoryService.framework/Versions/A/DirectoryServi ce
    0x93ee7000 - 0x93ee9ffd com.apple.CrashReporterSupport 10.5.7 (161) <ccdc3f2000afa5fcbb8537845f36dc01> /System/Library/PrivateFrameworks/CrashReporterSupport.framework/Versions/A/Cra shReporterSupport
    0x93eea000 - 0x9458afef com.apple.CoreGraphics 1.409.7 (???) <7b65edcce394f39b6a1954d5e30bc34c> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ CoreGraphics.framework/Versions/A/CoreGraphics
    0x9458b000 - 0x94592ffe libbsm.dylib ??? (???) <fa7ae5f1a621d9b69e7e18747c9405fb> /usr/lib/libbsm.dylib
    0x945c3000 - 0x9470bff7 com.apple.ImageIO.framework 2.0.7 (2.0.7) <acf821a3c418fdc86ef02b654366f5f6> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ ImageIO.framework/Versions/A/ImageIO
    0x9470c000 - 0x94766ff7 com.apple.CoreText 2.0.5 (???) <5483518a613464d043455ac661a9dcbe> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ CoreText.framework/Versions/A/CoreText
    0x94767000 - 0x9486eff7 com.apple.WebKit 5533.19 (5533.19.4) <9299024ba5d2d796781e6d7312fae16a> /System/Library/Frameworks/WebKit.framework/Versions/A/WebKit
    0x9486f000 - 0x94c2dfea libLAPACK.dylib ??? (???) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.fr amework/Versions/A/libLAPACK.dylib
    0x94c2e000 - 0x94c68ffe com.apple.securityfoundation 3.0.2 (36131) <f36bdfb346d21856a7aa3e67024cc1d7> /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoun dation
    0x94c69000 - 0x94cc5ff7 com.apple.htmlrendering 68 (1.1.3) <1c5c0c417891b920dfe139385fc6c155> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HTMLRendering .framework/Versions/A/HTMLRendering
    0x94cc6000 - 0x94cc6ffe com.apple.quartzframework 1.5 (1.5) <6865aa0aeaa584b5a54d43f2f21d6c08> /System/Library/Frameworks/Quartz.framework/Versions/A/Quartz
    0x94cc7000 - 0x94d09fef com.apple.NavigationServices 3.5.2 (163) <72cdc9d21f6690837870923e7b8ca358> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/NavigationSer vices.framework/Versions/A/NavigationServices
    0x94d0a000 - 0x94d87fef libvMisc.dylib ??? (???) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.fr amework/Versions/A/libvMisc.dylib
    0x94d88000 - 0x94d8dfff com.apple.DisplayServicesFW 2.0.2 (2.0.2) <cb9b98b43ae385a0f374baabe2b71764> /System/Library/PrivateFrameworks/DisplayServices.framework/Versions/A/DisplayS ervices
    0x94d8e000 - 0x94d9effc com.apple.LangAnalysis 1.6.5 (1.6.5) <d057feb38163121ffd871c564c692804> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ LangAnalysis.framework/Versions/A/LangAnalysis
    0x94d9f000 - 0x94dfcffb libstdc++.6.dylib ??? (???) <7d389389a99ce696726cf4c8980cc505> /usr/lib/libstdc++.6.dylib
    0x94dfd000 - 0x94dfdffd com.apple.Accelerate 1.4.2 (Accelerate 1.4.2) /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate
    0x94dfe000 - 0x94f8dfe7 com.apple.CoreAUC 3.08.0 (3.08.0) <9043e2896f6c99d96932ff86fc5142a7> /System/Library/PrivateFrameworks/CoreAUC.framework/Versions/A/CoreAUC
    0x94f8e000 - 0x9506fff7 libxml2.2.dylib ??? (???) <b3bc0b280c36aa17ac477b4da56cd038> /usr/lib/libxml2.2.dylib
    0x95070000 - 0x950fdff7 com.apple.framework.IOKit 1.5.2 (???) <7a3cc24f78f93931731203854ae0d891> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
    0x950fe000 - 0x9513dfef libTIFF.dylib ??? (???) <a5991d757f0c17a9bb8b1bcb14ab9ec0> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ ImageIO.framework/Versions/A/Resources/libTIFF.dylib
    0x9513e000 - 0x95145fff com.apple.agl 3.0.9 (AGL-3.0.9) <d64d715dab8565014f5e2f239fd2410c> /System/Library/Frameworks/AGL.framework/Versions/A/AGL
    0x95146000 - 0x95420ff3 com.apple.CoreServices.CarbonCore 786.16 (786.16) <60b518e4ad02b91826240199a6311286> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonC ore.framework/Versions/A/CarbonCore
    0x95421000 - 0x95421ffc com.apple.audio.units.AudioUnit 1.5 (1.5) /System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit
    0x95422000 - 0x954d2fff edu.mit.Kerberos 6.0.14 (6.0.14) <673f107cdae80c084774a27bc7bc46c1> /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos
    0x954d3000 - 0x95502fe3 com.apple.AE 402.3 (402.3) <aee412511c8725cd1a2cfb6501316bd5> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.fram ework/Versions/A/AE
    0x95503000 - 0x95575fff com.apple.PDFKit 2.1.2 (2.1.2) /System/Library/Frameworks/Quartz.framework/Versions/A/Frameworks/PDFKit.framew ork/Versions/A/PDFKit
    0x95576000 - 0x95603ff7 com.apple.LaunchServices 292 (292) <a41286c7c1eb20ffd5cc796f791070f0> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchS ervices.framework/Versions/A/LaunchServices
    0x95604000 - 0x95604fff com.apple.Carbon 136 (136) <2ea8decb44f41c4f2fc6fe93e0a53174> /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon
    0x9560a000 - 0x95adbf76 libGLProgrammability.dylib ??? (???) <bf7fb226cbb412edfa377537c3e35877> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLProgramma bility.dylib
    0x95adc000 - 0x95aebfff libsasl2.2.dylib ??? (???) <0ae9f3c08d8508d9dba56324c60ceb63> /usr/lib/libsasl2.2.dylib
    0x95aec000 - 0x95afaffd libz.1.dylib ??? (???) <a98b3b221a72b54faf73ded3dd7000e5> /usr/lib/libz.1.dylib
    0x95afb000 - 0x95b1ffeb libssl.0.9.7.dylib ??? (???) <5b29af782be5894be8b336c9c73c18b6> /usr/lib/libssl.0.9.7.dylib
    0x95b20000 - 0x95b4dfeb libvDSP.dylib ??? (???) <4daafed78a471133ec30b3ae634b6d3e> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.fr amework/Versions/A/libvDSP.dylib
    0x95b4e000 - 0x95b5aff9 com.apple.helpdata 1.0.1 (14.2) /System/Library/PrivateFrameworks/HelpData.framework/Versions/A/HelpData
    0x95b5b000 - 0x95b67ffe libGL.dylib ??? (???) /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
    0x95b80000 - 0x95d51ff3 com.apple.security 5.0.6 (37592) <0b25e1e4cc34431630f01edb3fdf54d1> /System/Library/Frameworks/Security.framework/Versions/A/Security
    0x95d52000 - 0x95ea4ff3 com.apple.audio.toolbox.AudioToolbox 1.5.3 (1.5.3) /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox
    0x95ea5000 - 0x95eabfff com.apple.print.framework.Print 218.0.3 (220.2) <0b70ba17cbbe4d62a00bec91c8cc675e> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Print.framewo rk/Versions/A/Print
    0x95eac000 - 0x962bcfef libBLAS.dylib ??? (???) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.fr amework/Versions/A/libBLAS.dylib
    0x962bd000 - 0x962d3fff com.apple.DictionaryServices 1.0.0 (1.0.0) <7d20b8d1fb238c3e71d0fa6fda18c4f7> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Diction aryServices.framework/Versions/A/DictionaryServices
    0x96323000 - 0x964a3fff com.apple.AddressBook.framework 4.1.2 (702) <f9360f9926ccd411fdf7550b73034d17> /System/Library/Frameworks/AddressBook.framework/Versions/A/AddressBook
    0x964a4000 - 0x964c1ff7 com.apple.QuickLookFramework 1.3.1 (170.9) /System/Library/Frameworks/QuickLook.framework/Versions/A/QuickLook
    0x964c2000 - 0x964f9fff com.apple.SystemConfiguration 1.9.2 (1.9.2) <eab546255ac099b9616df999c9359d0e> /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfi guration
    0x964fa000 - 0x96543fef com.apple.Metadata 10.5.8 (398.26) <e4d268ea45379200f03cdc7c8bedae6f> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadat a.framework/Versions/A/Metadata
    0x96544000 - 0x96900ff4 com.apple.VideoToolbox 0.484.2 (484.2) <35f2d177796ebb3b61f9d06593d1787a> /System/Library/PrivateFrameworks/VideoToolbox.framework/Versions/A/VideoToolbo x
    0x96915000 - 0x97113fef com.apple.AppKit 6.5.9 (949.54) <4df5d2e2271175452103f789b4f4d8a8> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
    0x97114000 - 0x971bbfec com.apple.CFNetwork 438.16 (438.16) <dbf00ca36a09edfae60ec44f9d7a9ef9> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CFNetwo rk.framework/Versions/A/CFNetwork
    0x971bc000 - 0x971beff5 libRadiance.dylib ??? (???) <276f13ab6429e05b093a8dda251e3b53> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ ImageIO.framework/Versions/A/Resources/libRadiance.dylib
    0x971bf000 - 0x97249ff7 com.apple.DesktopServices 1.4.9 (1.4.9) <f5e51a76d315798371b3dd35a4d46d6c> /System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/Desk topServicesPriv
    0x9724a000 - 0x972a3ff7 libGLU.dylib ??? (???) <a08a753efc35f8a27f9c8f938fa01101> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib
    0x972a4000 - 0x972a4ff8 com.apple.Cocoa 6.5 (???) <a1bc9247cf65c20f1a44d0973cbe649c> /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
    0x972a5000 - 0x972cefff libcups.2.dylib ??? (???) <2b0ab6b9fa1957ee940835d0cfd42894> /usr/lib/libcups.2.dylib
    0x972cf000 - 0x972d3fff libGIF.dylib ??? (???) <36f7b0255a81d97c7b360c3b11b4e462> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ ImageIO.framework/Versions/A/Resources/libGIF.dylib
    0x972d4000 - 0x972f0ff3 com.apple.CoreVideo 1.6.1 (48.6) <f1837beeefc81964abf7b58075edea2f> /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo
    0x972f1000 - 0x97357ffb com.apple.ISSupport 1.8 (38.3) /System/Library/PrivateFrameworks/ISSupport.framework/Versions/A/ISSupport
    0x97358000 - 0x97362feb com.apple.audio.SoundManager 3.9.2 (3.9.2) <df077a8048afc3075c6f2d9e7780e78e> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CarbonSound.f ramework/Versions/A/CarbonSound
    0x97363000 - 0x9736afe9 libgcc_s.1.dylib ??? (???) <e280ddf3f5fb3049e674edcb109f389a> /usr/lib/libgcc_s.1.dylib
    0x9736b000 - 0x9736bffb com.apple.installserver.framework 1.0 (8) /System/Library/PrivateFrameworks/InstallServer.framework/Versions/A/InstallSer ver
    0x9736c000 - 0x974b6feb com.apple.QTKit 7.6.6 (1674) <ff784c2169c4214493a2b5153d80bd25> /System/Library/Frameworks/QTKit.framework/Versions/A/QTKit
    0x974b7000 - 0x977e2ff6 com.apple.QuickTime 7.6.6 (1674) <3ebc05dcaf5857bc3d33a04ebabf5c1a> /System/Library/Frameworks/QuickTime.framework/Versions/A/QuickTime
    0x977ed000 - 0x977edff8 com.apple.ApplicationServices 34 (34) <ee7bdf593da050bb30c7a1fc446eb8a6> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Application Services
    0x977ee000 - 0x97875ff7 libsqlite3.0.dylib ??? (???) <7d1fcfae937da95c7d2b9bdea57e6dc0> /usr/lib/libsqlite3.0.dylib
    0x97876000 - 0x978c1fe1 com.apple.securityinterface 3.0.4 (37213) <16de57ab3e3f85f3b753f116e2fa7847> /System/Library/Frameworks/SecurityInterface.framework/Versions/A/SecurityInter face
    0x978c2000 - 0x97a29ff3 libSystem.B.dylib ??? (???) <c8f52e158bf540cc000146ca8a705958> /usr/lib/libSystem.B.dylib
    0x97a36000 - 0x97addfeb com.apple.QD 3.11.57 (???) <35f058678972d42b88ebdf652df79956> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ QD.framework/Versions/A/QD
    0x97ade000 - 0x97afdffa libJPEG.dylib ??? (???) <d23f3f3b9d168bf32f89449f83fa07f7> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ ImageIO.framework/Versions/A/Resources/libJPEG.dylib
    0x97afe000 - 0x97b26ff7 com.apple.shortcut 1.0.1 (1.0) <a452d3f7feae073a12718c2bc553c575> /System/Library/PrivateFrameworks/Shortcut.framework/Versions/A/Shortcut
    0x97b27000 - 0x97b28ffc libffi.dylib ??? (???) <eaf10b99a3fbc4920b175809407466c0> /usr/lib/libffi.dylib
    0x97b29000 - 0x97c17fef com.apple.PubSub 1.0.5 (65.20) <5b1a742b759dd3bc4a6914805a7b314d> /System/Library/Frameworks/PubSub.framework/Versions/A/PubSub
    0x97c18000 - 0x97c1dfff com.apple.CommonPanels 1.2.4 (85) <c135f02edd6b2e2864311e0b9d08a98d> /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CommonPanels. framework/Versions/A/CommonPanels
    0x97c1e000 - 0x97c5ffe7 libRIP.A.dylib ??? (???) <378694b494a02de1b0c812da572579d2> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ CoreGraphics.framework/Versions/A/Resources/libRIP.A.dylib
    0x97c60000 - 0x97c9afe7 com.apple.coreui 1.2 (62) /System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/CoreUI
    0x97c9b000 - 0x97dd4ff7 libicucore.A.dylib ??? (???) <f2819243b278259b9a622ea111ea5fd6> /usr/lib/libicucore.A.dylib
    0x97dd5000 - 0x97e52feb com.apple.audio.CoreAudio 3.1.2 (3.1.2) <782a08c44be4698597f4bbd79cac21c6> /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
    0xba900000 - 0xba916fff libJapaneseConverter.dylib ??? (???) <b9aea83b1cd97f3230999ebfcbf63e7c> /System/Library/CoreServices/Encodings/libJapaneseConverter.dylib
    0xbab00000 - 0xbab21fe2 libKoreanConverter.dylib ??? (???) <bc0bb2eed0f4558f07bbaa812d79371b> /System/Library/CoreServices/Encodings/libKoreanConverter.dylib
    0xfffe8000 - 0xfffebfff libobjc.A.dylib ??? (???) /usr/lib/libobjc.A.dylib
    0xffff0000 - 0xffff1780 libSystem.B.dylib ??? (???) /usr/lib/libSystem.B.dylib

    Welcome to the forums!
    You have the dreaded CT Toolbar!
    That toolbar/ct plugin seems to cause problems for all who install it!
    Close Safari, then locate and delete the following files and it should be gone:
    /Library/Application Support/Conduit
    /Library/InputManagers/CTLoader
    /Library/Receipts/ctloader.pkg
    /Library/Receipts/<Toolbar name>.pkg
    /Library/Application Support/SIMBL/Plugins/CT2285220.bundle
    /Users/<User name>/Library/Application Support/Conduit
    where / is the root library on your Hard Disk.
    If you are running Snow Leopard you should also look here:
    Library/launchAgents/com.conduit.loader.agent.plist
    Library/Application support/conduit plugins
    Note: Safari does not support any third-party toolbars except those supplied as an extension to Safari via the Extension Gallery.

  • IOS 7 Safari tab major bug

    So I run a white iPhone 5S and I recently started looking into what I thought was a faulty screen.. every time I reopened a tab in safari (usually dark images) white fuzzy dots/lines would jolt around the edges of the screen, sometimes bleeding across horizontally. It wasn't until recent research that I saw some feedback on iOS 7 Safari tabs (in the beta stage) that the anti-aliasing wasn't kicking in fast enough and the outlines were supposed to be immensly jaggerdy.. well that's still the same, and to my best guess I have a feeling that this issue has something in relation to anti-aliasing/resizing the content.
    A colleuge of mine also tried it on his iPhone 5, and he too got the same results.. horrid white glitchy patterns upon reopening a tab - please follow this link for a quick reprosenation: http://tinypic.com/player.php?v=vobyhf&s=5#.Umftg5Tk9Gg
    It's a little weird really.. it happens 99.8% of the time with dark photos, but only around 92% of the time with dark web pages. I did manage to screen shot it in action this morning, however only two white pixels are visible as I only just caught it (it's in different patterns each time) every other time I took one I only managed to capture a blank page with a warped web page filling out slowly; so basically the animation when reopening a tab. Ironicly if I had another iPhone 5S then I would record it in the 'slo-mo' setting but unfortunately I don't.
    Has anyone else experienced/heard/seen this?
    p.s. I have just updated to 7.0.3 and it's still doing it

    hello i have the same problem with my iphone 5 ,i'm experiencing the problem just in safari ,when i switch between dark tabs it flickering white spots dots pixels on the edge just like in your video!i have 7.0.4 and i'm wondering if i go to the retail store i would receive a replacement or a repair or something !i am going to make an apple appointment genius bar ,see if i could do something about it..

  • How to remove an AppleStore's loaned iPhone from my iCloud Safari Tabs?

    I'm have a problem of a loaned iPhone still showing up in my iCloud Safari Tabs and would like to remove it.
    I was issued a loaner while my iPhone was sent in for repairs, and upon returning it, I wasn't signed out of iCloud before the store clerk proceeded to erase all the settings and data on the phone.
    Now, upon looking through my safari's iCloud tabs, I am stuck with the loaner phone's last tab sessions.
    I've tried to remove the phone from my iCloud account, however it is not showing up. I've tried merging all iCloud data and that did not clear it out.
    I can't imagine I'm the first to experience this and would hope Apple has a means in place to handle this, I just don't know where.
    Any help is appreciated!

    As stated in the last paragraph of this article, they will automatically be removed after 14 days: Set up and use iCloud Tabs.

  • Safari browser pop-up disabled use of "Safari" tab

    I have a Macbook Air with Mac OS X 10.8.5 and a 1.3 GHz processor. Safari keeps displaying a spam site upon opening with a pop-up that prevents the use of the "Safari" tab at the top of the screen. How do I reset Safari without that tab?

    This is a very common scam. You don't need to download anything to fix it.
    Force Safari to quit by following these instructions: OS X: How to quit an unresponsive application using Force Quit.
    Hold a Shift key while launching Safari again.
    If that does not fix the problem:
    Force Safari to quit again.
    Disconnect from the Internet by selecting Wi-Fi "off" in the Mac's menu bar, or disconnecting its Ethernet cable if you're not using wireless.
    Launch Safari again by holding a Shift key. No pages will be able to load since you're not connected to the Internet.
    Select the Safari menu > Preferences > General, and review your home page selection.
    Select Remove All Website Data... > Remove Now.
    After you reconnect to the Internet, you will need to sign in again with all websites that require authentication (such as this one).
    Turn Wi-Fi back on again or reconnect your Ethernet cable.
    You'll be back in business.
    In an abundance of caution, consider the following additional actions. They are not required to eliminate the scam webpage but you should review them to determine certain Safari settings have not been unexpectedly altered.
    Open Safari's Preferences... and select Extensions. Uninstall any Extensions that you are not certain you require by clicking the Uninstall button. If you are not sure what to uninstall, uninstall all of them. None are required for normal operation.
    Select the Privacy pane. Verify "Block cookies and other website data" is configured the way you expect. If you are uncertain, choose "From third parties and advertisers".

  • Why does a saved file open in new Safari tab?

    I Safari v.7.1.5 (9537.85.14.17), a file that is supposed to be saved to the Downloads folder in the .csv format opens in a new Safari tab instead. I therefore cannot save it in the .csv format. Is there any way to avoid this problem? Thank you.

    Right click the pdf file and click on Properties. In the General tab click the Change button and associate the Adobe Reader 8 program to the pdf file. Click Ok, then Apply.
    I assume the connection to this forum is that the pdf file is a Lighroom generated slideshow.

  • Can remotely close Safari tabs on Macbook but not iPhone/iPad.

    I am unable to remotely close iCloud Safari tabs on my mobile devices. iPhone and iPad are running iOS 8, and my Macbook Pro is running Yosemite. I can remotely close tabs from my Macbook, but when I try to swipe to delete iCloud tabs from my iPhone or iPad, I swipe, the red delete button shows up, but then I tap delete and nothing happens - the tab stays there and is still open on the original device.

    I have been experiencing the exact same problems. Any help is appreciated!

  • Adobe flash player installation wipes my safari tabs

    Hi, since internet is not really possible to use without having flash installed I wonder why you demand that I close Safari and then in the end the flash player installer opens up safari and thereby vines all my active safari tabs...???
    I just lost a lot of active work and its not the first time.
    googling the problem i find more people having the same problem with both safari, chrome, fire fox, and it seems that you are not really giving a solution or an answer...
    Flash Update Wrecking Safari Session | Adobe Community - Adobe Forums
    does adobe at all have a policy of developing user friendly software?

    Another forum post by ElecProf led me to download Flash Player 11 and things are working, so far....I wonder if Flash Player 10 is just getting thrown out and perhaps that's what caused problems.

  • JTable displays string in wrong order : my code problem or Java problem ?

    I have the following code that displays data in a JTable, most of the time it works fine, but I've realized when I have a cell with values like : "Snowboarding"+"[123456789]"
    It would display it as : [Snowboarding[123456789
    For a string like : "Chasing toddlers"+"<123456789>"
    It would display it as : <Chasing toddlers<123456789
    It not only moved the last bracket to the front, but also changed its direction from "]" to "[" and from ">" to "<"
    Is there anything wrong with my code ? Or is this a Java problem ?
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.table.*;
    import java.io.*;
    import java.sql.*;
    import java.util.*;
    import java.util.List;
    import javax.swing.event.TableModelEvent;
    import javax.swing.event.TableModelListener;
    public class Table_Panel extends JPanel implements ItemListener
      public static final long serialVersionUID=26362862L;
      static final int Row_Color_Style_Default=-1,Row_Color_Style_None=0,Row_Color_Style_Blue_Gray=1,Row_Color_Style_Cyan_Gray=2,Row_Color_Style_Blue=3,
                       Row_Color_Style_Gray=4,Row_Color_Style_Red_Green=5,Row_Color_Style_Green_Yellow=6,Row_Color_Style_Red_Yellow=7,
                       Max_Header_Cell_Width=0,Header_Width=1,Cell_Width=2;
      static int Row_Color_Style=Row_Color_Style_Cyan_Gray,Preffered_Width=Header_Width;
    //  static int Row_Color_Style=Row_Color_Style_None,Preffered_Width=Header_Width;
    //boolean        Debug=true,
      boolean        Debug=false,
    //               Use_Row_Colors=true,
                     Use_Row_Colors=false;
      JFrame Table_Frame;
      TableModel My_Model;
      JScrollPane scrollPane=new JScrollPane();
      public JTable Table;
      static String columnNames[],Default_Delimiter=\",\";
      Object[][] data;
      static Dimension Screen_Size=Toolkit.getDefaultToolkit().getScreenSize();
      int Column_Width[];
      static Color Default_Selection_Color=new Color(250,135,200);
      Color Selection_Color=Default_Selection_Color;
      public Table_Panel(ResultSet RS,String Table_Name,boolean Show_External_Table,int Row_Color_Style,int Preffered_Width,boolean In_Original_Order)
        String Value,Table_Column_Names[]=null;
        Object[][] Table_Data=null;
        int Row_Count,Index=0;
        try
          if (RS==null) return;
          else
            RS.last();
            Row_Count=RS.getRow();
            RS.beforeFirst();
          ResultSetMetaData rsmd=RS.getMetaData();
          int Column_Count=rsmd.getColumnCount();
          Table_Column_Names=new String[Column_Count];
          Table_Data=new Object[Row_Count][Column_Count];
          for (int i=1;i<=Column_Count;i++) Table_Column_Names[i-1]=rsmd.getColumnLabel(i);            // Get column names
    //Out("Row_Count="+Row_Count+"  Column_Count="+Column_Count);
          while (RS.next())                                                                            // Get all rows
            for (int i=1;i<=Column_Count;i++)
              Value=RS.getString(i);
              Table_Data[Index][i-1]=(Value==null)?"null":Value;
            Index++;
    //      if (Test_Ct++>300) break;
        catch (Exception e) { e.printStackTrace(); }
        scrollPane=new Table_Panel(Table_Name,Table_Column_Names,Table_Data,Table_Data.length,false,Show_External_Table,false,Row_Color_Style,Preffered_Width,Selection_Color,In_Original_Order).scrollPane;
      public Table_Panel(String[] Table_Column_Names,Object[][] Table_Data,Color Selection_Color,boolean In_Original_Order)
        this("",Table_Column_Names,Table_Data,Table_Data.length,false,false,false,Row_Color_Style,Preffered_Width,Selection_Color,In_Original_Order);
      public Table_Panel(String Table_Name,String[] Table_Column_Names,Object[][] Table_Data,boolean Show_External_Table,Color Selection_Color,boolean In_Original_Order)
        this(Table_Name,Table_Column_Names,Table_Data,Table_Data.length,false,Show_External_Table,false,Row_Color_Style,Preffered_Width,Selection_Color,In_Original_Order);
      public Table_Panel(String Table_Name,String[] Table_Column_Names,Object[][] Table_Data,int Row_Count,boolean Is_Child,boolean Show_External_Table,boolean Manage_Attachment,int Row_Color_Style,int Preffered_Width,Color Selection_Color,boolean In_Original_Order)
        columnNames=Table_Column_Names;
        if (In_Original_Order) data=Table_Data;
        else
          data=new Object[Table_Data.length][columnNames.length];
          for (int row=0;row<Table_Data.length;row++)
            data[row]=new Object[columnNames.length];
            for (int Column=0;Column<Table_Data[row].length;Column++) data[row][Column]=Table_Data[Table_Data.length-1-row][Column];
        Column_Width=new int[columnNames.length];
        this.Row_Color_Style=Row_Color_Style;
        Use_Row_Colors=(Row_Color_Style!=Row_Color_Style_None);
        this.Preffered_Width=Preffered_Width;
        if (Selection_Color!=null) this.Selection_Color=Selection_Color;
    //    Out("this.Selection_Color="+this.Selection_Color);
    //    TableModel My_Model=new DefaultTableModel(Table_Data,columnNames)
        TableModel My_Model=new DefaultTableModel(data,columnNames)
          public int getColumnCount() { return columnNames.length; }
          public int getRowCount() { return data.length; }
          public String getColumnName(int col) { return columnNames[col]; }
          public Object getValueAt(int row,int col)
    //      Out(row+","+col+"["+data[row][col]+"]   data.length="+data.length+"  data[0].length="+data[0].length);
            return (data[row][col]==null)?"":((data[row][col] instanceof Boolean)?data[row][col]:data[row][col].toString()); // Non-boolean values will have bgcolor
          public Class getColumnClass(int column)
            Class returnValue;
            if ((column>=0) && (column<getColumnCount())) returnValue=getValueAt(0,column).getClass();
            else returnValue=Object.class;
            return returnValue;
        // JTable uses this method to determine the default renderer/editor for each cell. If we didn't implement this method, then the last column would contain text ("true"/"false"), rather than a check box.
    //    public Class getColumnClass(int c) { return getValueAt(0,c).getClass(); }
          // Don't need to implement this method unless your table's editable.
          public boolean isCellEditable(int row,int col)
            //Note that the data/cell address is constant, no matter where the cell appears onscreen.
            if (col<0) return false;
            else return true;
          // Don't need to implement this method unless your table's data can change.
          public void setValueAt(Object value,int row,int col)
            String Execution_Dir=getClass().getProtectionDomain().getCodeSource().getLocation().toString();
            if (Debug) System.out.println("Execution_Dir="+Execution_Dir+"\nLast_Value="+Table_Grid_Cell_Renderer.Last_Value+"  Setting value at [ "+row+","+col+" ] to "+value+" (an instance of "+value.getClass()+")");
            if (Execution_Dir.toLowerCase().indexOf("c:/")!=-1 || value.getClass()==Boolean.class || !Use_Row_Colors) data[row][col]=value;
    //     else data[row][col]=(Table_Grid_CellRenderer.Last_Value==null)?value:value.toString().substring(Table_Grid_CellRenderer.Last_Value.toString().length());
            fireTableCellUpdated(row,col);
            if (Debug)
              System.out.println("New value of data :");
              printDebugData();
          private void printDebugData()
            int numRows=getRowCount();
            int numCols=getColumnCount();
            for (int i=0;i<numRows;i++)
              System.out.print("    row "+i+":");
              for (int j=0;j<numCols;j++) System.out.print("  "+data[i][j]);
              System.out.println();
            System.out.println("--------------------------------------------------------------------------");
        TableSorter sorter=new TableSorter(My_Model);
        Table=new JTable(sorter)
    //    Table=new JTable(My_Model)
          public static final long serialVersionUID=26362862L;
          public String getToolTipText(MouseEvent e)           // Implement table cell tool tips.
            Object Cell_Tip;
            String tip=null;
            java.awt.Point p=e.getPoint();
            int rowIndex=rowAtPoint(p);
            int colIndex=columnAtPoint(p);
            int realColumnIndex=convertColumnIndexToModel(colIndex);
            Cell_Tip=getValueAt(rowIndex,colIndex);
    //        if (realColumnIndex == 2)                         //Sport column
              tip=Cell_Tip.toString();
            else if (realColumnIndex == 4)                      //Veggie column
              TableModel model=getModel();
              String firstName=(String)model.getValueAt(rowIndex,0);
              String lastName=(String)model.getValueAt(rowIndex,1);
              Boolean veggie=(Boolean)model.getValueAt(rowIndex,4);
              if (Boolean.TRUE.equals(veggie)) tip=firstName+" "+lastName+" is a vegetarian";
              else tip=firstName+" "+lastName+" is not a vegetarian";
            else
              // You can omit this part if you know you don't have any renderers that supply their own tool tips.
              tip=super.getToolTipText(e);
            return tip;
    //    RowSorter<TableModel> sorter=new TableRowSorter<TableModel>(My_Model);
    //    Table.setRowSorter(sorter);
        Table.setSelectionBackground(this.Selection_Color);
        int Table_Height=Table.getRowHeight()*Row_Count;
        // sorter.addMouseListenerToHeaderInTable(Table);      // ADDED THIS
        sorter.setTableHeader(Table.getTableHeader());
        if (Table_Column_Names.length>20) Table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        if (Manage_Attachment) Table.setPreferredScrollableViewportSize(new Dimension(500,(Table_Height>850)?850:Table_Height));
        else Table.setPreferredScrollableViewportSize(new Dimension(1000,(Table_Height>850)?850:Table_Height));
        if (Use_Row_Colors) Table.setDefaultRenderer(Object.class,new Table_Grid_Cell_Renderer());
        //Create the scroll pane and add the table to it.
        scrollPane=new JScrollPane(Table);
        //Set up column sizes.
        initColumnSizes(Table,My_Model);
        //Add the scroll pane to this window.
        if (Show_External_Table)
          Table_Frame=new JFrame(Table_Name);
          Table_Frame.getContentPane().add(scrollPane);
          Table_Frame.addWindowListener(new WindowAdapter()
            public void windowActivated(WindowEvent e) { }
            public void windowClosed(WindowEvent e) { }
            public void windowClosing(WindowEvent e)  { System.exit(0); }
            public void windowDeactivated(WindowEvent e)  { }
            public void windowDeiconified(WindowEvent e)  { scrollPane.repaint(); }
            public void windowGainedFocus(WindowEvent e)  { scrollPane.repaint(); }
            public void windowIconified(WindowEvent e)  { }
            public void windowLostFocus(WindowEvent e)  { }
            public void windowOpening(WindowEvent e) { scrollPane.repaint(); }
            public void windowOpened(WindowEvent e)  { }
            public void windowResized(WindowEvent e) { scrollPane.repaint(); } 
            public void windowStateChanged(WindowEvent e) { scrollPane.repaint(); }
          Table_Frame.pack();
          Table_Frame.setBounds((Screen_Size.width-Table_Frame.getWidth())/2,(Screen_Size.height-Table_Frame.getHeight())/2,Table_Frame.getWidth(),Table_Frame.getHeight());
          Table_Frame.setVisible(true);
          if (Is_Child) Table_Frame.addComponentListener(new ComponentAdapter() { public void componentClosing(ComponentEvent e) { System.exit(0); } });
        else add(scrollPane);
      public Table_Panel(String File_Name) { this(File_Name,false,Row_Color_Style_Cyan_Gray,Preffered_Width,null,Default_Selection_Color,true); }
      public Table_Panel(String File_Name,int Row_Color_Style,boolean In_Original_Order) { this(File_Name,false,Row_Color_Style,Preffered_Width,null,Default_Selection_Color,In_Original_Order); }
      public Table_Panel(String File_Name,String Delimiter,boolean In_Original_Order) { this(File_Name,false,Row_Color_Style_Cyan_Gray,Preffered_Width,Delimiter,Default_Selection_Color,In_Original_Order); }
      public Table_Panel(String File_Name,int Preffered_Width,String Delimiter,boolean In_Original_Order) { this(File_Name,false,Row_Color_Style,Preffered_Width,Delimiter,Default_Selection_Color,In_Original_Order); }
      public Table_Panel(String File_Name,int Row_Color_Style,int Preffered_Width,String Delimiter,boolean In_Original_Order) { this(File_Name,false,Row_Color_Style,Preffered_Width,Delimiter,Default_Selection_Color,In_Original_Order); }
      public Table_Panel(String File_Name,boolean Show_External_Table,boolean In_Original_Order) { this(File_Name,Show_External_Table,Row_Color_Style,Preffered_Width,null,Default_Selection_Color,In_Original_Order); }
      public Table_Panel(String File_Name,boolean Show_External_Table,String Delimiter,boolean In_Original_Order) { this(File_Name,Show_External_Table,Row_Color_Style,Preffered_Width,Delimiter,Default_Selection_Color,In_Original_Order); }
      public Table_Panel(String File_Name,boolean Show_External_Table,int Row_Color_Style,int Preffered_Width,String Delimiter,Color Selection_Color,boolean In_Original_Order)
        String Table_Column_Names[],Column_Name_Line="";
        int Row_Count=0,Index=0;
        boolean Is_Child=false,Manage_Attachment=false;
        StringTokenizer ST;
        if (Delimiter==null) Delimiter=Default_Delimiter;
        if (new File(File_Name).exists())
          try
            String Line,Str=Tool_Lib.Read_File(File_Name).toString();
            ST=new StringTokenizer(Str,"\n");
            Line=ST.nextToken();
            Row_Count=ST.countTokens();
            Object[][] Table_Data=new Object[Row_Count][];
            if (Delimiter.equals(" ")) Line=Line.replaceAll(" {2,}"," ").trim();     // Replace multiple spaces with the delimiter space
            Table_Column_Names=Line.split(Delimiter);
            columnNames=Table_Column_Names;
            for (int i=0;i<Table_Column_Names.length;i++) Column_Name_Line+=Table_Column_Names[i]+"  ";
    //Out("Column_Name_Line [ "+Table_Column_Names.length+" ]="+Column_Name_Line);
            while (ST.hasMoreTokens())
              Line=ST.nextToken();
    //Out(Line);
              if (Delimiter.equals(" ")) Line=Line.replaceAll(" {2,}"," ").trim();   // Replace multiple spaces with the delimiter space
              if (Line.indexOf(Delimiter)!=-1) Table_Data[Index]=Line.split(Delimiter);
              else
                Table_Data[Index]=new Object[Table_Column_Names.length];
                Table_Data[Index][0]=Line;
                for (int i=1;i<Table_Column_Names.length;i++) Table_Data[Index]="";
    Index++;
    Line="";
    for (int i=0;i<Table_Data.length;i++)
    Line+="[ "+Table_Data[i].length+" ] ";
    for (int j=0;j<Table_Data[i].length;j++) Line+=Table_Data[i][j]+" ";
    Line+="\n";
    Out(Line);
    Table_Panel A_Table_Panel=new Table_Panel(File_Name,Table_Column_Names,Table_Data,Row_Count,Is_Child,Show_External_Table,Manage_Attachment,Row_Color_Style,Preffered_Width,Selection_Color,In_Original_Order);
    Table=A_Table_Panel.Table;
    scrollPane=A_Table_Panel.scrollPane;
    Column_Width=A_Table_Panel.Column_Width;
    data=A_Table_Panel.data;
    catch (Exception e) { e.printStackTrace(); }
    public void setPreferredSize(Dimension A_Dimension) { scrollPane.setPreferredSize(A_Dimension); }
    // This method picks good column sizes. If all column heads are wider than the column's cells' contents, then you can just use column.sizeWidthToFit().
    void initColumnSizes(JTable table,TableModel model)
    TableColumn column=null;
    Component comp=null;
    int headerWidth=0,cellWidth=0;
    Object[] longValues=(data.length>0)?data[0]:null;
    TableCellRenderer headerRenderer=table.getTableHeader().getDefaultRenderer();
    if (data.length<1) return;
    for (int i=0;i<model.getColumnCount();i++)
    column=table.getColumnModel().getColumn(i);
    comp=headerRenderer.getTableCellRendererComponent(null,column.getHeaderValue(),false,false,0,0);
    headerWidth=comp.getPreferredSize().width;
    comp=table.getDefaultRenderer(model.getColumnClass(i)).
    getTableCellRendererComponent(table,longValues[i],false,false,0,i);
    cellWidth=comp.getPreferredSize().width;
    switch (Preffered_Width)
    case Max_Header_Cell_Width : column.setPreferredWidth(Math.max(headerWidth,cellWidth));break;
    case Header_Width : column.setPreferredWidth(headerWidth);break;
    case Cell_Width : column.setPreferredWidth(cellWidth);break;
    Column_Width[i]=column.getPreferredWidth();
    if (Debug) Out("Initializing width of column "+i+". "+"headerWidth="+headerWidth+"; cellWidth="+cellWidth+" Column_Width["+i+"]="+Column_Width[i]);
    // Detects a state change in any of the Lists. Resets the variable corresponding to the selected item in a particular List. Invokes changeFont with the currently selected fontname, style and size attributes.
    public void itemStateChanged(ItemEvent e)
    Out(e.toString());
    if (e.getStateChange() != ItemEvent.SELECTED) return;
    Object list=e.getSource();
    public static void Out(String message) { System.out.println(message); }
    // Create the GUI and show it. For thread safety, this method should be invoked from the event-dispatching thread.
    static void Create_And_Show_GUI()
    boolean Demo_External_Table=true;
    // boolean Demo_External_Table=false;
    final Table_Panel demo;
    String[] columnNames={"First Names","Last Names","Sport","Num of Years","Vegetarian"};
    Object[][] data={{"Mary","Campione","Snowboarding"+"[123456789]",new Integer(5),new Boolean(false)},
    {"Alison","Huml","Rowing"+":123456789]",new Integer(3),new Boolean(true)},
    {"Frank","Ni","Running"+":123456789", new Integer(12), new Boolean(false)},
    {"Kathy","Walrath","Chasing toddlers"+"<123456789>", new Integer(2), new Boolean(false)},
    {"Mark", "Andrews","Speed reading",new Integer(20),new Boolean(true)},
    {"Angela","Lih","Teaching high school",new Integer(36),new Boolean(false)} };
    // Row_Color_Style=Row_Color_Style_Default;
    // Row_Color_Style=Row_Color_Style_None;
    // Row_Color_Style=Row_Color_Style_Blue_Gray;
    Row_Color_Style=Row_Color_Style_Cyan_Gray;
    // Row_Color_Style=Row_Color_Style_Blue;
    // Row_Color_Style=Row_Color_Style_Gray;
    // Row_Color_Style=Row_Color_Style_Red_Green;
    // Row_Color_Style=Row_Color_Style_Green_Yellow;
    // Row_Color_Style=Row_Color_Style_Red_Yellow;
    Preffered_Width=Max_Header_Cell_Width;
    if (Demo_External_Table) demo=new Table_Panel("External Table Demo",columnNames,data,data.length,false,Demo_External_Table,false,Row_Color_Style,Max_Header_Cell_Width,Default_Selection_Color,true);
    else
    JFrame Table_Frame=new JFrame("Internal Table Demo");
    // demo=new Table_Panel(Nm_Lib.Dir_A_Test+"ELX.csv",false,Row_Color_Style,Preffered_Width,null);
    // demo=new Table_Panel(Nm_Lib.Dir_Stock_Data+"ABV_Data.txt",false,Row_Color_Style,Preffered_Width," ");
    demo=new Table_Panel("C:/Dir_Stock_Data/EOP.txt",",",false);
    // demo=new Table_Panel(Nm_Lib.Dir_Stock_Data+"ABV_Data.txt"," ",false);
    Table_Frame.getContentPane().add(demo.scrollPane);
    Table_Frame.addWindowListener(new WindowAdapter()
    public void windowActivated(WindowEvent e) { }
    public void windowClosed(WindowEvent e) { }
    public void windowClosing(WindowEvent e) { System.exit(0); }
    public void windowDeactivated(WindowEvent e) { }
    public void windowDeiconified(WindowEvent e) { demo.repaint(); }
    public void windowGainedFocus(WindowEvent e) { demo.repaint(); }
    public void windowIconified(WindowEvent e) { }
    public void windowLostFocus(WindowEvent e) { }
    public void windowOpening(WindowEvent e) { demo.repaint(); }
    public void windowOpened(WindowEvent e) { }
    public void windowResized(WindowEvent e) { demo.repaint(); }
    public void windowStateChanged(WindowEvent e) { demo.repaint(); }
    Table_Frame.pack();
    Table_Frame.setBounds((Screen_Size.width-Table_Frame.getWidth())/2,(Screen_Size.height-Table_Frame.getHeight())/2,Table_Frame.getWidth(),Table_Frame.getHeight());
    Table_Frame.setVisible(true);
    public static void main(String[] args)
    // Schedule a job for the event-dispatching thread : creating and showing this application's GUI.
    SwingUtilities.invokeLater(new Runnable() { public void run() { Create_And_Show_GUI(); } });
    * TableSorter is a decorator for TableModels; adding sorting functionality to a supplied TableModel. TableSorter does not store
    * or copy the data in its TableModel; instead it maintains a map from the row indexes of the view to the row indexes of the
    * model. As requests are made of the sorter (like getValueAt(row, col)) they are passed to the underlying model after the row numbers
    * have been translated via the internal mapping array. This way, the TableSorter appears to hold another copy of the table
    * with the rows in a different order.
    * <p/>
    * TableSorter registers itself as a listener to the underlying model, just as the JTable itself would. Events recieved from the model
    * are examined, sometimes manipulated (typically widened), and then passed on to the TableSorter's listeners (typically the JTable).
    * If a change to the model has invalidated the order of TableSorter's rows, a note of this is made and the sorter will resort the
    * rows the next time a value is requested.
    * <p/>
    * When the tableHeader property is set, either by using the setTableHeader() method or the two argument constructor, the table
    * header may be used as a complete UI for TableSorter. The default renderer of the tableHeader is decorated with a renderer
    * that indicates the sorting status of each column. In addition, a mouse listener is installed with the following behavior:
    * <ul>
    * <li>
    * Mouse-click: Clears the sorting status of all other columns and advances the sorting status of that column through three
    * values: {NOT_SORTED, ASCENDING, DESCENDING} (then back to NOT_SORTED again).
    * <li>
    * SHIFT-mouse-click: Clears the sorting status of all other columns and cycles the sorting status of the column through the same
    * three values, in the opposite order: {NOT_SORTED, DESCENDING, ASCENDING}.
    * <li>
    * CONTROL-mouse-click and CONTROL-SHIFT-mouse-click: as above except that the changes to the column do not cancel the statuses of columns
    * that are already sorting - giving a way to initiate a compound sort.
    * </ul>
    * <p/>
    * This is a long overdue rewrite of a class of the same name that first appeared in the swing table demos in 1997.
    * @author Philip Milne
    * @author Brendon McLean
    * @author Dan van Enckevort
    * @author Parwinder Sekhon
    * @version 2.0 02/27/04
    class TableSorter extends AbstractTableModel
    public static final long serialVersionUID=26362862L;
    protected TableModel tableModel;
    public static final int DESCENDING = -1;
    public static final int NOT_SORTED = 0;
    public static final int ASCENDING = 1;
    private static Directive EMPTY_DIRECTIVE = new Directive(-1, NOT_SORTED);
    public static final Comparator COMPARABLE_COMAPRATOR = new Comparator() { public int compare(Object o1, Object o2) { return ((Comparable) o1).compareTo(o2); } };
    public static final Comparator LEXICAL_COMPARATOR = new Comparator() { public int compare(Object o1, Object o2) { return o1.toString().compareTo(o2.toString()); } };
    private Row[] viewToModel;
    private int[] modelToView;
    private JTableHeader tableHeader;
    private MouseListener mouseListener;
    private TableModelListener tableModelListener;
    private Map<Class,Comparator> columnComparators = new HashMap<Class,Comparator>();
    private List<Directive> sortingColumns = new ArrayList<Directive>();
    public TableSorter()
    this.mouseListener = new MouseHandler();
    this.tableModelListener = new TableModelHandler();
    public TableSorter(TableModel tableModel)
    this();
    setTableModel(tableModel);
    public TableSorter(TableModel tableModel, JTableHeader tableHeader)
    this();
    setTableHeader(tableHeader);
    setTableModel(tableModel);
    private void clearSortingState()
    viewToModel = null;
    modelToView = null;
    public TableModel getTableModel() { return tableModel; }
    public void setTableModel(TableModel tableModel)
    if (this.tableModel != null) { this.tableModel.removeTableModelListener(tableModelListener); }
    this.tableModel = tableModel;
    if (this.tableModel != null) { this.tableModel.addTableModelListener(tableModelListener); }
    clearSortingState();
    fireTableStructureChanged();
    public JTableHeader getTableHeader() { return tableHeader; }
    public void setTableHeader(JTableHeader tableHeader)
    if (this.tableHeader != null)
    this.tableHeader.removeMouseListener(mouseListener);
    TableCellRenderer defaultRenderer = this.tableHeader.getDefaultRenderer();
    if (defaultRenderer instanceof SortableHeaderRenderer) this.tableHeader.setDefaultRenderer(((SortableHeaderRenderer) defaultRenderer).tableCellRenderer);
    this.tableHeader = tableHeader;
    if (this.tableHeader != null)
    this.tableHeader.addMouseListener(mouseListener);
    this.tableHeader.setDefaultRenderer(
    new SortableHeaderRenderer(this.tableHeader.getDefaultRenderer()));
    public boolean isSorting() { return sortingColumns.size() != 0; }
    private Directive getDirective(int column)
    for (int i = 0; i < sortingColumns.size(); i++)
    Directive directive = (Directive)sortingColumns.get(i);
    if (directive.column == column) { return directive; }
    return EMPTY_DIRECTIVE;
    public int getSortingStatus(int column) { return getDirective(column).direction; }
    private void sortingStatusChanged()
    clearSortingState();
    fireTableDataChanged();
    if (tableHeader != null) { tableHeader.repaint(); }
    public void setSortingStatus(int column, int status)
    Directive directive = getDirective(column);
    if (directive != EMPTY_DIRECTIVE) { sortingColumns.remove(directive); }
    if (status != NOT_SORTED) { sortingColumns.add(new Directive(column, status)); }
    sortingStatusChanged();
    protected Icon getHeaderRendererIcon(int column, int size)
    Directive directive = getDirective(column);
    if (directive == EMPTY_DIRECTIVE) { return null; }
    return new Arrow(directive.direction == DESCENDING, size, sortingColumns.indexOf(directive));
    private void cancelSorting()
    sortingColumns.clear();
    sortingStatusChanged();
    public void setColumnComparator(Class type, Comparator comparator)
    if (comparator == null) { columnComparators.remove(type); }
    else { columnComparators.put(type, comparator); }
    protected Comparator getComparator(int column)
    Class columnType = tableModel.getColumnClass(column);
    Comparator comparator = (Comparator) columnComparators.get(columnType);
    if (comparator != null) { return comparator; }
    if (Comparable.class.isAssignableFrom(columnType)) { return COMPARABLE_COMAPRATOR; }
    return LEXICAL_COMPARATOR;
    private Row[] getViewToModel()
    if (viewToModel == null)
    int tableModelRowCount = tableModel.getRowCount();
    viewToModel = new Row[tableModelRowCount];
    for (int row = 0; row < tableModelRowCount; row++) { viewToModel[row] = new Row(row); }
    if (isSorting()) { Arrays.sort(viewToModel); }
    return viewToModel;
    public int modelIndex(int viewIndex) { return getViewToModel()[viewIndex].modelIndex; }
    private int[] getModelToView()
    if (modelToView == null)
    int n = getViewToModel().length;
    modelToView = new int[n];
    for (int i = 0; i < n; i++) { modelToView[modelIndex(i)] = i; }
    return modelToView;
    // TableModel interface methods
    public int getRowCount() { return (tableModel == null) ? 0 : tableModel.getRowCount(); }
    public int getColumnCount() { return (tableModel == null) ? 0 : tableModel.getColumnCount(); }
    public String getColumnName(int column) { return tableModel.getColumnName(column); }
    public Class getColumnClass(int column) { return tableModel.getColumnClass(column); }
    public boolean isCellEditable(int row, int column) { return tableModel.isCellEditable(modelIndex(row), column); }
    public Object getValueAt(int row, int column) { return tableModel.getValueAt(modelIndex(row), column); }
    public void setValueAt(Object aValue, int row, int column) { tableModel.setValueAt(aValue, modelIndex(row), column); }
    // Helper classes
    private class Row implements Comparable
    private int modelIndex;
    public Row(int index) { this.modelIndex = index; }
    public int compareTo(Object o)
    int row1 = modelIndex;
    int row2 = ((Row) o).modelIndex;
    for (Iterator it = sortingColumns.iterator(); it.hasNext();)
    Directive directive = (Directive) it.next();
    int column = directive.column;
    Object o1 = tableModel.getValueAt(row1, column);
    Object o2 = tableModel.getValueAt(row2, column);
    int comparison = 0;
    // Define null less than everything, except null.

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.table.*;
    import java.io.*;
    import java.sql.*;
    import java.util.*;
    import java.util.List;
    import javax.swing.event.TableModelEvent;
    import javax.swing.event.TableModelListener;
    public class Table_Panel extends JPanel implements ItemListener
      public static final long serialVersionUID=26362862L;
      static final int Row_Color_Style_Default=-1,Row_Color_Style_None=0,Row_Color_Style_Blue_Gray=1,Row_Color_Style_Cyan_Gray=2,Row_Color_Style_Blue=3,
                       Row_Color_Style_Gray=4,Row_Color_Style_Red_Green=5,Row_Color_Style_Green_Yellow=6,Row_Color_Style_Red_Yellow=7,
                       Max_Header_Cell_Width=0,Header_Width=1,Cell_Width=2;
      static int Row_Color_Style=Row_Color_Style_Cyan_Gray,Preffered_Width=Header_Width;
    //  static int Row_Color_Style=Row_Color_Style_None,Preffered_Width=Header_Width;
    //boolean        Debug=true,
      boolean        Debug=false,
    //               Use_Row_Colors=true,
                     Use_Row_Colors=false;
      JFrame Table_Frame;
      TableModel My_Model;
      JScrollPane scrollPane=new JScrollPane();
      public JTable Table;
      static String columnNames[],Default_Delimiter=",";
      Object[][] data;
      static Dimension Screen_Size=Toolkit.getDefaultToolkit().getScreenSize();
      int Column_Width[];
      static Color Default_Selection_Color=new Color(250,135,200);
      Color Selection_Color=Default_Selection_Color;
      public Table_Panel(ResultSet RS,String Table_Name,boolean Show_External_Table,int Row_Color_Style,int Preffered_Width,boolean In_Original_Order)
        String Value,Table_Column_Names[]=null;
        Object[][] Table_Data=null;
        int Row_Count,Index=0;
        try
          if (RS==null) return;
          else
            RS.last();
            Row_Count=RS.getRow();
            RS.beforeFirst();
          ResultSetMetaData rsmd=RS.getMetaData();
          int Column_Count=rsmd.getColumnCount();
          Table_Column_Names=new String[Column_Count];
          Table_Data=new Object[Row_Count][Column_Count];
          for (int i=1;i<=Column_Count;i++) Table_Column_Names[i-1]=rsmd.getColumnLabel(i);            // Get column names
    //Out("Row_Count="+Row_Count+"  Column_Count="+Column_Count);
          while (RS.next())                                                                            // Get all rows
            for (int i=1;i<=Column_Count;i++)
              Value=RS.getString(i);
              Table_Data[Index][i-1]=(Value==null)?"null":Value;
            Index++;
    //      if (Test_Ct++>300) break;
        catch (Exception e) { e.printStackTrace(); }
        scrollPane=new Table_Panel(Table_Name,Table_Column_Names,Table_Data,Table_Data.length,false,Show_External_Table,false,Row_Color_Style,Preffered_Width,Selection_Color,In_Original_Order).scrollPane;
      public Table_Panel(String[] Table_Column_Names,Object[][] Table_Data,Color Selection_Color,boolean In_Original_Order)
        this("",Table_Column_Names,Table_Data,Table_Data.length,false,false,false,Row_Color_Style,Preffered_Width,Selection_Color,In_Original_Order);
      public Table_Panel(String Table_Name,String[] Table_Column_Names,Object[][] Table_Data,boolean Show_External_Table,Color Selection_Color,boolean In_Original_Order)
        this(Table_Name,Table_Column_Names,Table_Data,Table_Data.length,false,Show_External_Table,false,Row_Color_Style,Preffered_Width,Selection_Color,In_Original_Order);
      public Table_Panel(String Table_Name,String[] Table_Column_Names,Object[][] Table_Data,int Row_Count,boolean Is_Child,boolean Show_External_Table,boolean Manage_Attachment,int Row_Color_Style,int Preffered_Width,Color Selection_Color,boolean In_Original_Order)
        columnNames=Table_Column_Names;
        if (In_Original_Order) data=Table_Data;
        else
          data=new Object[Table_Data.length][columnNames.length];
          for (int row=0;row<Table_Data.length;row++)
            data[row]=new Object[columnNames.length];
            for (int Column=0;Column<Table_Data[row].length;Column++) data[row][Column]=Table_Data[Table_Data.length-1-row][Column];
        Column_Width=new int[columnNames.length];
        this.Row_Color_Style=Row_Color_Style;
        Use_Row_Colors=(Row_Color_Style!=Row_Color_Style_None);
        this.Preffered_Width=Preffered_Width;
        if (Selection_Color!=null) this.Selection_Color=Selection_Color;
    //    Out("this.Selection_Color="+this.Selection_Color);
    //    TableModel My_Model=new DefaultTableModel(Table_Data,columnNames)
        TableModel My_Model=new DefaultTableModel(data,columnNames)
          public int getColumnCount() { return columnNames.length; }
          public int getRowCount() { return data.length; }
          public String getColumnName(int col) { return columnNames[col]; }
          public Object getValueAt(int row,int col)
    //      Out(row+","+col+"["+data[row][col]+"]   data.length="+data.length+"  data[0].length="+data[0].length);
            return (data[row][col]==null)?"":((data[row][col] instanceof Boolean)?data[row][col]:data[row][col].toString()); // Non-boolean values will have bgcolor
          public Class getColumnClass(int column)
            Class returnValue;
            if ((column>=0) && (column<getColumnCount())) returnValue=getValueAt(0,column).getClass();
            else returnValue=Object.class;
            return returnValue;
        // JTable uses this method to determine the default renderer/editor for each cell. If we didn't implement this method, then the last column would contain text ("true"/"false"), rather than a check box.
    //    public Class getColumnClass(int c) { return getValueAt(0,c).getClass(); }
          // Don't need to implement this method unless your table's editable.
          public boolean isCellEditable(int row,int col)
            //Note that the data/cell address is constant, no matter where the cell appears onscreen.
            if (col<0) return false;
            else return true;
          // Don't need to implement this method unless your table's data can change.
          public void setValueAt(Object value,int row,int col)
            String Execution_Dir=getClass().getProtectionDomain().getCodeSource().getLocation().toString();
            if (Debug) System.out.println("Execution_Dir="+Execution_Dir+"\nLast_Value="+Table_Grid_Cell_Renderer.Last_Value+"  Setting value at [ "+row+","+col+" ] to "+value+" (an instance of "+value.getClass()+")");
            if (Execution_Dir.toLowerCase().indexOf("c:/")!=-1 || value.getClass()==Boolean.class || !Use_Row_Colors) data[row][col]=value;
    //     else data[row][col]=(Table_Grid_CellRenderer.Last_Value==null)?value:value.toString().substring(Table_Grid_CellRenderer.Last_Value.toString().length());
            fireTableCellUpdated(row,col);
            if (Debug)
              System.out.println("New value of data :");
              printDebugData();
          private void printDebugData()
            int numRows=getRowCount();
            int numCols=getColumnCount();
            for (int i=0;i<numRows;i++)
              System.out.print("    row "+i+":");
              for (int j=0;j<numCols;j++) System.out.print("  "+data[i][j]);
              System.out.println();
            System.out.println("--------------------------------------------------------------------------");
        TableSorter sorter=new TableSorter(My_Model);
        Table=new JTable(sorter)
    //    Table=new JTable(My_Model)
          public static final long serialVersionUID=26362862L;
          public String getToolTipText(MouseEvent e)           // Implement table cell tool tips.
            Object Cell_Tip;
            String tip=null;
            java.awt.Point p=e.getPoint();
            int rowIndex=rowAtPoint(p);
            int colIndex=columnAtPoint(p);
            int realColumnIndex=convertColumnIndexToModel(colIndex);
            Cell_Tip=getValueAt(rowIndex,colIndex);
    //        if (realColumnIndex == 2)                         //Sport column
              tip=Cell_Tip.toString();
            else if (realColumnIndex == 4)                      //Veggie column
              TableModel model=getModel();
              String firstName=(String)model.getValueAt(rowIndex,0);
              String lastName=(String)model.getValueAt(rowIndex,1);
              Boolean veggie=(Boolean)model.getValueAt(rowIndex,4);
              if (Boolean.TRUE.equals(veggie)) tip=firstName+" "+lastName+" is a vegetarian";
              else tip=firstName+" "+lastName+" is not a vegetarian";
            else
              // You can omit this part if you know you don't have any renderers that supply their own tool tips.
              tip=super.getToolTipText(e);
            return tip;
    //    RowSorter<TableModel> sorter=new TableRowSorter<TableModel>(My_Model);
    //    Table.setRowSorter(sorter);
        Table.setSelectionBackground(this.Selection_Color);
        int Table_Height=Table.getRowHeight()*Row_Count;
        // sorter.addMouseListenerToHeaderInTable(Table);      // ADDED THIS
        sorter.setTableHeader(Table.getTableHeader());
        if (Table_Column_Names.length>20) Table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        if (Manage_Attachment) Table.setPreferredScrollableViewportSize(new Dimension(500,(Table_Height>850)?850:Table_Height));
        else Table.setPreferredScrollableViewportSize(new Dimension(1000,(Table_Height>850)?850:Table_Height));
        if (Use_Row_Colors) Table.setDefaultRenderer(Object.class,new Table_Grid_Cell_Renderer());
        //Create the scroll pane and add the table to it.
        scrollPane=new JScrollPane(Table);
        //Set up column sizes.
        initColumnSizes(Table,My_Model);
        //Add the scroll pane to this window.
        if (Show_External_Table)
          Table_Frame=new JFrame(Table_Name);
          Table_Frame.getContentPane().add(scrollPane);
          Table_Frame.addWindowListener(new WindowAdapter()
            public void windowActivated(WindowEvent e) { }
            public void windowClosed(WindowEvent e) { }
            public void windowClosing(WindowEvent e)  { System.exit(0); }
            public void windowDeactivated(WindowEvent e)  { }
            public void windowDeiconified(WindowEvent e)  { scrollPane.repaint(); }
            public void windowGainedFocus(WindowEvent e)  { scrollPane.repaint(); }
            public void windowIconified(WindowEvent e)  { }
            public void windowLostFocus(WindowEvent e)  { }
            public void windowOpening(WindowEvent e) { scrollPane.repaint(); }
            public void windowOpened(WindowEvent e)  { }
            public void windowResized(WindowEvent e) { scrollPane.repaint(); } 
            public void windowStateChanged(WindowEvent e) { scrollPane.repaint(); }
          Table_Frame.pack();
          Table_Frame.setBounds((Screen_Size.width-Table_Frame.getWidth())/2,(Screen_Size.height-Table_Frame.getHeight())/2,Table_Frame.getWidth(),Table_Frame.getHeight());
          Table_Frame.setVisible(true);
          if (Is_Child) Table_Frame.addComponentListener(new ComponentAdapter() { public void componentClosing(ComponentEvent e) { System.exit(0); } });
        else add(scrollPane);
      public Table_Panel(String File_Name) { this(File_Name,false,Row_Color_Style_Cyan_Gray,Preffered_Width,null,Default_Selection_Color,true); }
      public Table_Panel(String File_Name,int Row_Color_Style,boolean In_Original_Order) { this(File_Name,false,Row_Color_Style,Preffered_Width,null,Default_Selection_Color,In_Original_Order); }
      public Table_Panel(String File_Name,String Delimiter,boolean In_Original_Order) { this(File_Name,false,Row_Color_Style_Cyan_Gray,Preffered_Width,Delimiter,Default_Selection_Color,In_Original_Order); }
      public Table_Panel(String File_Name,int Preffered_Width,String Delimiter,boolean In_Original_Order) { this(File_Name,false,Row_Color_Style,Preffered_Width,Delimiter,Default_Selection_Color,In_Original_Order); }
      public Table_Panel(String File_Name,int Row_Color_Style,int Preffered_Width,String Delimiter,boolean In_Original_Order) { this(File_Name,false,Row_Color_Style,Preffered_Width,Delimiter,Default_Selection_Color,In_Original_Order); }
      public Table_Panel(String File_Name,boolean Show_External_Table,boolean In_Original_Order) { this(File_Name,Show_External_Table,Row_Color_Style,Preffered_Width,null,Default_Selection_Color,In_Original_Order); }
      public Table_Panel(String File_Name,boolean Show_External_Table,String Delimiter,boolean In_Original_Order) { this(File_Name,Show_External_Table,Row_Color_Style,Preffered_Width,Delimiter,Default_Selection_Color,In_Original_Order); }
      public Table_Panel(String File_Name,boolean Show_External_Table,int Row_Color_Style,int Preffered_Width,String Delimiter,Color Selection_Color,boolean In_Original_Order)
        String Table_Column_Names[],Column_Name_Line="";
        int Row_Count=0,Index=0;
        boolean Is_Child=false,Manage_Attachment=false;
        StringTokenizer ST;
        if (Delimiter==null) Delimiter=Default_Delimiter;
        if (new File(File_Name).exists())
          try
            String Line,Str=Tool_Lib.Read_File(File_Name).toString();
            ST=new StringTokenizer(Str,"\n");
            Line=ST.nextToken();
            Row_Count=ST.countTokens();
            Object[][] Table_Data=new Object[Row_Count][];
            if (Delimiter.equals(" ")) Line=Line.replaceAll(" {2,}"," ").trim();     // Replace multiple spaces with the delimiter space
            Table_Column_Names=Line.split(Delimiter);
            columnNames=Table_Column_Names;
            for (int i=0;i<Table_Column_Names.length;i++) Column_Name_Line+=Table_Column_Names[i]+"  ";
    //Out("Column_Name_Line [ "+Table_Column_Names.length+" ]="+Column_Name_Line);
            while (ST.hasMoreTokens())
              Line=ST.nextToken();
    //Out(Line);
              if (Delimiter.equals(" ")) Line=Line.replaceAll(" {2,}"," ").trim();   // Replace multiple spaces with the delimiter space
              if (Line.indexOf(Delimiter)!=-1) Table_Data[Index]=Line.split(Delimiter);
              else
                Table_Data[Index]=new Object[Table_Column_Names.length];
                Table_Data[Index][0]=Line;
                for (int i=1;i<Table_Column_Names.length;i++) Table_Data[Index]="";
    Index++;
    Line="";
    for (int i=0;i<Table_Data.length;i++)
    Line+="[ "+Table_Data[i].length+" ] ";
    for (int j=0;j<Table_Data[i].length;j++) Line+=Table_Data[i][j]+" ";
    Line+="\n";
    Out(Line);
    Table_Panel A_Table_Panel=new Table_Panel(File_Name,Table_Column_Names,Table_Data,Row_Count,Is_Child,Show_External_Table,Manage_Attachment,Row_Color_Style,Preffered_Width,Selection_Color,In_Original_Order);
    Table=A_Table_Panel.Table;
    scrollPane=A_Table_Panel.scrollPane;
    Column_Width=A_Table_Panel.Column_Width;
    data=A_Table_Panel.data;
    catch (Exception e) { e.printStackTrace(); }
    public void setPreferredSize(Dimension A_Dimension) { scrollPane.setPreferredSize(A_Dimension); }
    // This method picks good column sizes. If all column heads are wider than the column's cells' contents, then you can just use column.sizeWidthToFit().
    void initColumnSizes(JTable table,TableModel model)
    TableColumn column=null;
    Component comp=null;
    int headerWidth=0,cellWidth=0;
    Object[] longValues=(data.length>0)?data[0]:null;
    TableCellRenderer headerRenderer=table.getTableHeader().getDefaultRenderer();
    if (data.length<1) return;
    for (int i=0;i<model.getColumnCount();i++)
    column=table.getColumnModel().getColumn(i);
    comp=headerRenderer.getTableCellRendererComponent(null,column.getHeaderValue(),false,false,0,0);
    headerWidth=comp.getPreferredSize().width;
    comp=table.getDefaultRenderer(model.getColumnClass(i)).
    getTableCellRendererComponent(table,longValues[i],false,false,0,i);
    cellWidth=comp.getPreferredSize().width;
    switch (Preffered_Width)
    case Max_Header_Cell_Width : column.setPreferredWidth(Math.max(headerWidth,cellWidth));break;
    case Header_Width : column.setPreferredWidth(headerWidth);break;
    case Cell_Width : column.setPreferredWidth(cellWidth);break;
    Column_Width[i]=column.getPreferredWidth();
    if (Debug) Out("Initializing width of column "+i+". "+"headerWidth="+headerWidth+"; cellWidth="+cellWidth+" Column_Width["+i+"]="+Column_Width[i]);
    // Detects a state change in any of the Lists. Resets the variable corresponding to the selected item in a particular List. Invokes changeFont with the currently selected fontname, style and size attributes.
    public void itemStateChanged(ItemEvent e)
    Out(e.toString());
    if (e.getStateChange() != ItemEvent.SELECTED) return;
    Object list=e.getSource();
    public static void Out(String message) { System.out.println(message); }
    // Create the GUI and show it. For thread safety, this method should be invoked from the event-dispatching thread.
    static void Create_And_Show_GUI()
    boolean Demo_External_Table=true;
    // boolean Demo_External_Table=false;
    final Table_Panel demo;
    String[] columnNames={"First Names","Last Names","Sport","Num of Years","Vegetarian"};
    Object[][] data={{"Mary","Campione","Snowboarding"+"[123456789]",new Integer(5),new Boolean(false)},
    {"Alison","Huml","Rowing"+":123456789]",new Integer(3),new Boolean(true)},
    {"Frank","Ni","Running"+":123456789", new Integer(12), new Boolean(false)},
    {"Kathy","Walrath","Chasing toddlers"+"<123456789>", new Integer(2), new Boolean(false)},
    {"Mark", "Andrews","Speed reading",new Integer(20),new Boolean(true)},
    {"Angela","Lih","Teaching high school",new Integer(36),new Boolean(false)} };
    // Row_Color_Style=Row_Color_Style_Default;
    // Row_Color_Style=Row_Color_Style_None;
    // Row_Color_Style=Row_Color_Style_Blue_Gray;
    Row_Color_Style=Row_Color_Style_Cyan_Gray;
    // Row_Color_Style=Row_Color_Style_Blue;
    // Row_Color_Style=Row_Color_Style_Gray;
    // Row_Color_Style=Row_Color_Style_Red_Green;
    // Row_Color_Style=Row_Color_Style_Green_Yellow;
    // Row_Color_Style=Row_Color_Style_Red_Yellow;
    Preffered_Width=Max_Header_Cell_Width;
    if (Demo_External_Table) demo=new Table_Panel("External Table Demo",columnNames,data,data.length,false,Demo_External_Table,false,Row_Color_Style,Max_Header_Cell_Width,Default_Selection_Color,true);
    else
    JFrame Table_Frame=new JFrame("Internal Table Demo");
    // demo=new Table_Panel(Nm_Lib.Dir_A_Test+"ELX.csv",false,Row_Color_Style,Preffered_Width,null);
    // demo=new Table_Panel(Nm_Lib.Dir_Stock_Data+"ABV_Data.txt",false,Row_Color_Style,Preffered_Width," ");
    demo=new Table_Panel("C:/Dir_Stock_Data/EOP.txt",",",false);
    // demo=new Table_Panel(Nm_Lib.Dir_Stock_Data+"ABV_Data.txt"," ",false);
    Table_Frame.getContentPane().add(demo.scrollPane);
    Table_Frame.addWindowListener(new WindowAdapter()
    public void windowActivated(WindowEvent e) { }
    public void windowClosed(WindowEvent e) { }
    public void windowClosing(WindowEvent e) { System.exit(0); }
    public void windowDeactivated(WindowEvent e) { }
    public void windowDeiconified(WindowEvent e) { demo.repaint(); }
    public void windowGainedFocus(WindowEvent e) { demo.repaint(); }
    public void windowIconified(WindowEvent e) { }
    public void windowLostFocus(WindowEvent e) { }
    public void windowOpening(WindowEvent e) { demo.repaint(); }
    public void windowOpened(WindowEvent e) { }
    public void windowResized(WindowEvent e) { demo.repaint(); }
    public void windowStateChanged(WindowEvent e) { demo.repaint(); }
    Table_Frame.pack();
    Table_Frame.setBounds((Screen_Size.width-Table_Frame.getWidth())/2,(Screen_Size.height-Table_Frame.getHeight())/2,Table_Frame.getWidth(),Table_Frame.getHeight());
    Table_Frame.setVisible(true);
    public static void main(String[] args)
    // Schedule a job for the event-dispatching thread : creating and showing this application's GUI.
    SwingUtilities.invokeLater(new Runnable() { public void run() { Create_And_Show_GUI(); } });
    * TableSorter is a decorator for TableModels; adding sorting functionality to a supplied TableModel. TableSorter does not store
    * or copy the data in its TableModel; instead it maintains a map from the row indexes of the view to the row indexes of the
    * model. As requests are made of the sorter (like getValueAt(row, col)) they are passed to the underlying model after the row numbers
    * have been translated via the internal mapping array. This way, the TableSorter appears to hold another copy of the table
    * with the rows in a different order.
    * <p/>
    * TableSorter registers itself as a listener to the underlying model, just as the JTable itself would. Events recieved from the model
    * are examined, sometimes manipulated (typically widened), and then passed on to the TableSorter's listeners (typically the JTable).
    * If a change to the model has invalidated the order of TableSorter's rows, a note of this is made and the sorter will resort the
    * rows the next time a value is requested.
    * <p/>
    * When the tableHeader property is set, either by using the setTableHeader() method or the two argument constructor, the table
    * header may be used as a complete UI for TableSorter. The default renderer of the tableHeader is decorated with a renderer
    * that indicates the sorting status of each column. In addition, a mouse listener is installed with the following behavior:
    * <ul>
    * <li>
    * Mouse-click: Clears the sorting status of all other columns and advances the sorting status of that column through three
    * values: {NOT_SORTED, ASCENDING, DESCENDING} (then back to NOT_SORTED again).
    * <li>
    * SHIFT-mouse-click: Clears the sorting status of all other columns and cycles the sorting status of the column through the same
    * three values, in the opposite order: {NOT_SORTED, DESCENDING, ASCENDING}.
    * <li>
    * CONTROL-mouse-click and CONTROL-SHIFT-mouse-click: as above except that the changes to the column do not cancel the statuses of columns
    * that are already sorting - giving a way to initiate a compound sort.
    * </ul>
    * <p/>
    * This is a long overdue rewrite of a class of the same name that first appeared in the swing table demos in 1997.
    * @author Philip Milne
    * @author Brendon McLean
    * @author Dan van Enckevort
    * @author Parwinder Sekhon
    * @version 2.0 02/27/04
    class TableSorter extends AbstractTableModel
    public static final long serialVersionUID=26362862L;
    protected TableModel tableModel;
    public static final int DESCENDING = -1;
    public static final int NOT_SORTED = 0;
    public static final int ASCENDING = 1;
    private static Directive EMPTY_DIRECTIVE = new Directive(-1, NOT_SORTED);
    public static final Comparator COMPARABLE_COMAPRATOR = new Comparator() { public int compare(Object o1, Object o2) { return ((Comparable) o1).compareTo(o2); } };
    public static final Comparator LEXICAL_COMPARATOR = new Comparator() { public int compare(Object o1, Object o2) { return o1.toString().compareTo(o2.toString()); } };
    private Row[] viewToModel;
    private int[] modelToView;
    private JTableHeader tableHeader;
    private MouseListener mouseListener;
    private TableModelListener tableModelListener;
    private Map<Class,Comparator> columnComparators = new HashMap<Class,Comparator>();
    private List<Directive> sortingColumns = new ArrayList<Directive>();
    public TableSorter()
    this.mouseListener = new MouseHandler();
    this.tableModelListener = new TableModelHandler();
    public TableSorter(TableModel tableModel)
    this();
    setTableModel(tableModel);
    public TableSorter(TableModel tableModel, JTableHeader tableHeader)
    this();
    setTableHeader(tableHeader);
    setTableModel(tableModel);
    private void clearSortingState()
    viewToModel = null;
    modelToView = null;
    public TableModel getTableModel() { return tableModel; }
    public void setTableModel(TableModel tableModel)
    if (this.tableModel != null) { this.tableModel.removeTableModelListener(tableModelListener); }
    this.tableModel = tableModel;
    if (this.tableModel != null) { this.tableModel.addTableModelListener(tableModelListener); }
    clearSortingState();
    fireTableStructureChanged();
    public JTableHeader getTableHeader() { return tableHeader; }
    public void setTableHeader(JTableHeader tableHeader)
    if (this.tableHeader != null)
    this.tableHeader.removeMouseListener(mouseListener);
    TableCellRenderer defaultRenderer = this.tableHeader.getDefaultRenderer();
    if (defaultRenderer instanceof SortableHeaderRenderer) this.tableHeader.setDefaultRenderer(((SortableHeaderRenderer) defaultRenderer).tableCellRenderer);
    this.tableHeader = tableHeader;
    if (this.tableHeader != null)
    this.tableHeader.addMouseListener(mouseListener);
    this.tableHeader.setDefaultRenderer(
    new SortableHeaderRenderer(this.tableHeader.getDefaultRenderer()));
    public boolean isSorting() { return sortingColumns.size() != 0; }
    private Directive getDirective(int column)
    for (int i = 0; i < sortingColumns.size(); i++)
    Directive directive = (Directive)sortingColumns.get(i);
    if (directive.column == column) { return directive; }
    return EMPTY_DIRECTIVE;
    public int getSortingStatus(int column) { return getDirective(column).direction; }
    private void sortingStatusChanged()
    clearSortingState();
    fireTableDataChanged();
    if (tableHeader != null) { tableHeader.repaint(); }
    public void setSortingStatus(int column, int status)
    Directive directive = getDirective(column);
    if (directive != EMPTY_DIRECTIVE) { sortingColumns.remove(directive); }
    if (status != NOT_SORTED) { sortingColumns.add(new Directive(column, status)); }
    sortingStatusChanged();
    protected Icon getHeaderRendererIcon(int column, int size)
    Directive directive = getDirective(column);
    if (directive == EMPTY_DIRECTIVE) { return null; }
    return new Arrow(directive.direction == DESCENDING, size, sortingColumns.indexOf(directive));
    private void cancelSorting()
    sortingColumns.clear();
    sortingStatusChanged();
    public void setColumnComparator(Class type, Comparator comparator)
    if (comparator == null) { columnComparators.remove(type); }
    else { columnComparators.put(type, comparator); }
    protected Comparator getComparator(int column)
    Class columnType = tableModel.getColumnClass(column);
    Comparator comparator = (Comparator) columnComparators.get(columnType);
    if (comparator != null) { return comparator; }
    if (Comparable.class.isAssignableFrom(columnType)) { return COMPARABLE_COMAPRATOR; }
    return LEXICAL_COMPARATOR;
    private Row[] getViewToModel()
    if (viewToModel == null)
    int tableModelRowCount = tableModel.getRowCount();
    viewToModel = new Row[tableModelRowCount];
    for (int row = 0; row < tableModelRowCount; row++) { viewToModel[row] = new Row(row); }
    if (isSorting()) { Arrays.sort(viewToModel); }
    return viewToModel;
    public int modelIndex(int viewIndex) { return getViewToModel()[viewIndex].modelIndex; }
    private int[] getModelToView()
    if (modelToView == null)
    int n = getViewToModel().length;
    modelToView = new int[n];
    for (int i = 0; i < n; i++) { modelToView[modelIndex(i)] = i; }
    return modelToView;
    // TableModel interface methods
    public int getRowCount() { return (tableModel == null) ? 0 : tableModel.getRowCount(); }
    public int getColumnCount() { return (tableModel == null) ? 0 : tableModel.getColumnCount(); }
    public String getColumnName(int column) { return tableModel.getColumnName(column); }
    public Class getColumnClass(int column) { return tableModel.getColumnClass(column); }
    public boolean isCellEditable(int row, int column) { return tableModel.isCellEditable(modelIndex(row), column); }
    public Object getValueAt(int row, int column) { return tableModel.getValueAt(modelIndex(row), column); }
    public void setValueAt(Object aValue, int row, int column) { tableModel.setValueAt(aValue, modelIndex(row), column); }
    // Helper classes
    private class Row implements Comparable
    private int modelIndex;
    public Row(int index) { this.modelIndex = index; }
    public int compareTo(Object o)
    int row1 = modelIndex;
    int row2 = ((Row) o).modelIndex;
    for (Iterator it = sortingColumns.iterator(); it.hasNext();)
    Directive directive = (Directive) it.next();
    int column = directive.column;
    Object o1 = tableModel.getValueAt(row1, column);
    Object o2 = tableModel.getValueAt(row2, column);
    int comparison = 0;
    // Define null less than everything, except null.
    if (o1 == null && o2 == null) { comparison = 0; }
    else if (o1 == null) { comparison = -1; }
    else if (o2 == null) { comparison = 1; }
    else { comparison = getComparator(column).compare(o1, o2); }
    if (comparison != 0) { return directive.direction == DESCENDING ? -comparison : comparison; }
    return 0;
    private class TableModelHandler implements TableModelListener
    public void tableChanged(TableModelEvent e)
    // If we're not sorting by anything

Maybe you are looking for

  • How to have Header and body in reciever SOAP adapter channel

    Hi Experts, Please help me with the following scenario. I am designing a webservice scenario and have the WSDL available . The webservice expect the SOAP message as follows <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w

  • Linked Report Object Error

    Hi,I am trying to use LROAddObject and the sts is not 0.The sts value = 1042015 which is error code for Net_Tcp_Name.Does anyone know what that status code mean and what should I do to return sts 0. I am also sending my code.Desc.userName = "Admin"De

  • Error message: "We have detected an incompatible display driver..."

    I have loaded PE12 on my Sony Vaio laptop running Windows 8.0 and keep getting this error message... "We have detected an incompatible display driver. To get a better and faster playback performance, please update your display driver." I have an Inte

  • Random Quotes

    I want to have a random quote (chosen from a separate file) displayed on our site that changes on a daily basis. I have about 100+ quotes that are in a already in a HTML file using a table. Do they need to be in a different format eg SQL file. How do

  • Display iPhone 5

    I need display iPhone 5