Problem when sorting docs stack by name

In my Documents folder in the Finder, my documents and folders are arranged alphabetically. I have prefaced the names of frequently accessed folders with a ~ which puts them at the top of the list.
Why, when the items are sorted by name in my Documents stack, are the items prefaced with a ~ at the end of the list? How can I get them listed first the way they are in the Finder?

the same thing happens to me. seems to be a bug. the following workaround works for me. change ~ to space in the names of those folders. then change the sort order in the stack from name to something else and back to name.

Similar Messages

  • Bizarre solution for OfficeJet Pro K5300 problem when Word docs hang in the print queue spooling

    A bizarre solution to a spooling problem.
    Problem:
    Word documents sent to an HP Officejet Pro K5300 Series printer hang in the print queue, saying “spooling”. They do not print, and cannot even be cancelled.
    Solution (Bizarre Solution).
    The solution that worked for me was to rename the printer by removing the first space after “HP” in the printer’s name. When I did this, Word could then print to the printer. If the space is then re-inserted back into the printer-name then Word is still able to print!! I don’t know how, but it worked, and it worked on two separate installations! The full explanation is below with more options for testing that still need to be explored, or preferably explained by HP and or Microsoft.
    First here is some background. My computer is an IBM NetVista 2.4GHz, P4. It has a 250GB HDD with lots of room and 2GB of RAM. My operating system is Win XP Pro with Service Pack 3. My anti-Virus in Trend Micro Internet Security 2009, updated regularly, (I turned it off while installing the printer software). I use Office Professional 97, with Office SP2b).
    I bought a new HP Officejet Pro K5300 printer.
    I installed the printer software, and followed HP’s directions strictly. I used the installation CD that was supplied by HP. My connection to the printer was USB.
    The installation proceeded uneventfully and I printed a test page after it finished.
    After that I printed a configuration page, then I printed a couple of photographs using Irfan View. The quality was great and I was pleased.
    Then I tried to print a 2-page Word document, using Word 97, but nothing happened. No response from the printer, no error messages, just silence. I clicked on the printer icon on the task bar to look at the print queue and saw that my document was listed as “Spooling”, but it was not making any progress. I waited a couple of minutes but still no progress. I tried canceling it but it would not cancel/delete. The job on the queue would not respond to anything. I could not print it and I could not cancel it. The only way I could recover was to shut down Word, which flushed the queue and lost the job.
    I tried this a few more times but with no success.
    I did a Google search for this problem, and I found a few solutions. I tried them, but none worked. I checked HP’s website and found this problem listed, with some solutions from HP. I tried HP’s solutions, but they did not work either. In fact, when there was a Word document stuck “spooling” in the queue, HP’s diagnostic utility said that it could not even communicate with the printer, and suggested that my USB connection was bad. However, when I flushed the queue by shutting down Word, I could successfully send a Test Page to the printer, and I could print a detailed PDF from Adobe. So Word was the problem, not my USB connection.
    After a pondering this problem over the next few days, and keeping in mind the fact that the default HP printer-name was “HP Officejet Pro K5300 Series”, I remembered that many years ago I could not get an Excel VB macro to select a printer, and print to it, if the printer-name had any spaces in it. I had noticed that the HP default printer name had 4 spaces in it, so I wondered what would happen if I renamed the printer by removing the spaces from its name.
    So I renamed the printer to “HPOfficejetProK5300Series” (no spaces), and voila! Word could now print to it!
    Then I wondered, if it was necessary to remove all of the spaces from the name, or just some of them, to get the printer to work, so I renamed the printer back to it’s default name in 4 stages, at each stage re-inserting one of the original spaces, and testing the printing. At each stage the printer kept successfully printing from Word, until I had re-inserted all four spaces and the printer’s name was back to being identical to the default name that it was installed with, but now it would print from Word on command.
    So why was it that Word could not get the printer to print with the printer’s default installed name, but if I removed all of the spaces from the printer’s name, then re-inserted them, the printer would print from Word every time?
    So I did another test.
    I uninstalled the entire printer software package and installed the updated Full Feature software package, filename “OJProK5X00_Full_8_3.exe”, 159MB download from HP.
    After the package was installed, Word could NOT print to the printer, but other programs like Adobe PDF reader, and Irfan View, could print to it. I tried each software package about three times each, with consistent results.
    I then renamed the printer, but this time I just removed the first space after the letters “HP”, i.e., I changed the printer’s name from “HP Officejet Pro K5300 Series” to “HPOfficejet Pro K5300 Series”. After I did that Word could then print to it. I then changed the printer’s name back to “HP Officejet Pro K5300 Series” by re-inserting the first space, and Word could still print to it now.
    I challenge someone from HP to read this and explain why Word won’t print to this printer until I rename the printer by removing a space, but can still print to it after the space is re-inserted!
    Of course, there is another alternative. Perhaps I could have renamed the printer by removing or changing any of the other characters, instead of the spaces. But each test involves completely uninstalling and re-installing the software, and I have better things to do with my time.
    This question was solved.
    View Solution.

    What an amazing solution!
    I recently purchased an HP Deskjet F4580 and had discovered that when using Word 97, it would print OK when using the Print icon but when trying to print using File->Print->choose page number or current page, Word would crash. Excel, Adobe etc would all print fine. I have spend many hours removing and then reloading the HP software and Office Professional software but this solution fixed the problem in a few minutes. PC is running XP Home SP3.
    Just one thing I would add is that my computer has two accounts - one is the Computer Administrator account and the other is a Limited account. When I took out the space between HP and Deskjet so the printer became HPDeskjet F4500 series, I could then print from the Administrator account using either  the print icon or File->Print->choose page number or current page. When I switched to the Limited account, I would get the same crash when I tried File->Print->choose page number or current page (OK with icon). The Limited account mode does not allow the printer to be re-named.
    I went back to Admin mode, re-classified the Limited account as a Computer Administrator account, logged on to this account and re-named the printer (in this case I took out another space so it became HPDeskjetF4500 series. Then it printed fine using the print icon or using File->Print->choose page number or current page. I then went back to the Computer Administrator account, re-named the printer to HPDeskjet F4500 and re-classified the second account back to Limited account mode. Now printing OK in both Computer Administrator account mode and Limited account mode.
    Thanks again!

  • Add row to tabular form pagination problem when sorted

    Hi,
    I have a problem with a tabular form that has various sortable columns. If the user tries to add a row when the sort order is set to something where possibly the nulls are appearing first in the list, then the user cannot enter any data (since the last page of results is always shown after clicking the add row button).
    I know the empty record is in the list somewhere since the pagination page count is increased by 1, but there is no way for the user to enter data into that record since traversing back pages then removes the empty record. How can I fix this? Is it possible to programatically reset all column sorting?
    Cheers!

    Hi,
    Sort orders in reports are stored as user preferences - these can be removed using PL/SQL. Have a look at: Need to do column SORTING only when I click the column heading and Re: Default sort and pagination placement not working in reports
    Or, you could try adding a blank row in your SQL statement itself: Problems With "Add A Row"
    Andy

  • Tableview problem when sort

    Hi all,
    We've implemented a tablewiew in MVC. The property sort is "SERVER". When a row of the tableview is selected an we try to sort the table, the selected row is lost.
    How we keep the selected row when we sort the tableview?
    Thanks in advance.

    Hi Mario
       What is happening in case you are sorting the table is it is refreshing the selectedrowindex.
       If you want the same index to remain selected, you can do one thing, just save the selectedrowindex in some variable before sorting and assign that variable to selectedrowindex after sorting. It will show that index as selected.
       If you want the same item to remain selected. i.e. let you have selected index 5 and after sorting the item of index 5 move to 2, And now you want the same item which is now on index 2 , to be selected. Than you need to store the key values of that item in some variable before sorting and after sorting Loop through the table to get the index of that item having same set of KEY VALUES.
    Now use that index to set the selectedrowindex value.
    This will make that item selected.........
    I think it will solve your problem, otherwise do revert back.........
    Have a nice time..
    Mithlesh

  • Problem when sorting data based on date

    I am trying to sort the following data based on the Transaction Receipt date column,unable to do it usi g the following syntax:
    <?sort:TRANSACTION_RECEIPT_DATE;'ascending';data-type='date'?>
    I have problem in converting the date in report to canonical date ,is there any other way to achieve the output without converting the date format.
    <?xml version="1.0"?>
    <!-- Generated by Oracle Reports version 6.0.8.27.0 -->
    <RECDTREP>
    <LIST_G_ASW_REC_DATE>
    <G_ASW_REC_DATE>
    <SNO_CREATED_BY>1433</SNO_CREATED_BY>
    <SNO_REQUEST_ID>-1</SNO_REQUEST_ID>
    <VENDOR_LOT_NUM>PO104</VENDOR_LOT_NUM>
    <SNO_CREATION_DATE>07-APR-09</SNO_CREATION_DATE>
    <SNO_ATTRIBUTE1></SNO_ATTRIBUTE1>
    <OBJECT_ID>24636</OBJECT_ID>
    <INITIALIZATION_DATE>07-APR-09</INITIALIZATION_DATE>
    <ORGANIZATION_CODE>10</ORGANIZATION_CODE>
    <ORGANISATION_NAME>NDC - PARTS</ORGANISATION_NAME>
    <SERIAL_NUMBER>6510863063</SERIAL_NUMBER>
    <ITEM_CODE>3000.006</ITEM_CODE>
    <DESCRIPTION>ALLISON 3000 SERIES ON HWY TRANSMISSION E016392</DESCRIPTION>
    <MANUFACTURER>ALLISON</MANUFACTURER>
    <APPLICATION>On Highway</APPLICATION>
    <ITEM_COST>8879.02</ITEM_COST>
    <MATERIAL_COST>631.09</MATERIAL_COST>
    <CURRENCY_CODE>AUD</CURRENCY_CODE>
    <PO_UNIT_PRICE></PO_UNIT_PRICE>
    <TRANSACTION_RECEIPT_DATE>07-Apr-09</TRANSACTION_RECEIPT_DATE>
    <PO_NUMBER>982121</PO_NUMBER>
    </G_ASW_REC_DATE>
    <G_ASW_REC_DATE>
    <SNO_CREATED_BY>1433</SNO_CREATED_BY>
    <SNO_REQUEST_ID>-1</SNO_REQUEST_ID>
    <VENDOR_LOT_NUM>PO107</VENDOR_LOT_NUM>
    <SNO_CREATION_DATE>07-APR-09</SNO_CREATION_DATE>
    <SNO_ATTRIBUTE1></SNO_ATTRIBUTE1>
    <OBJECT_ID>24641</OBJECT_ID>
    <INITIALIZATION_DATE>07-APR-09</INITIALIZATION_DATE>
    <ORGANIZATION_CODE>10</ORGANIZATION_CODE>
    <ORGANISATION_NAME>NDC - PARTS</ORGANISATION_NAME>
    <SERIAL_NUMBER>6510863068</SERIAL_NUMBER>
    <ITEM_CODE>3000.006</ITEM_CODE>
    <DESCRIPTION>ALLISON 3000 SERIES ON HWY TRANSMISSION E016392</DESCRIPTION>
    <MANUFACTURER>ALLISON</MANUFACTURER>
    <APPLICATION>On Highway</APPLICATION>
    <ITEM_COST>8879.02</ITEM_COST>
    <MATERIAL_COST>631.09</MATERIAL_COST>
    <CURRENCY_CODE>AUD</CURRENCY_CODE>
    <PO_UNIT_PRICE></PO_UNIT_PRICE>
    <TRANSACTION_RECEIPT_DATE>07-Apr-09</TRANSACTION_RECEIPT_DATE>
    <PO_NUMBER>982121</PO_NUMBER>
    </G_ASW_REC_DATE>
    <G_ASW_REC_DATE>
    <SNO_CREATED_BY>1433</SNO_CREATED_BY>
    <SNO_REQUEST_ID>-1</SNO_REQUEST_ID>
    <VENDOR_LOT_NUM>PO123</VENDOR_LOT_NUM>
    <SNO_CREATION_DATE>07-APR-09</SNO_CREATION_DATE>
    <SNO_ATTRIBUTE1>2008/06/11 00:00:00</SNO_ATTRIBUTE1>
    <OBJECT_ID>24658</OBJECT_ID>
    <INITIALIZATION_DATE>07-APR-09</INITIALIZATION_DATE>
    <ORGANIZATION_CODE>10</ORGANIZATION_CODE>
    <ORGANISATION_NAME>NDC - PARTS</ORGANISATION_NAME>
    <SERIAL_NUMBER>6510863086</SERIAL_NUMBER>
    <ITEM_CODE>3000.006</ITEM_CODE>
    <DESCRIPTION>ALLISON 3000 SERIES ON HWY TRANSMISSION E016392</DESCRIPTION>
    <MANUFACTURER>ALLISON</MANUFACTURER>
    <APPLICATION>On Highway</APPLICATION>
    <ITEM_COST>8879.02</ITEM_COST>
    <MATERIAL_COST>631.09</MATERIAL_COST>
    <CURRENCY_CODE>AUD</CURRENCY_CODE>
    <PO_UNIT_PRICE></PO_UNIT_PRICE>
    <TRANSACTION_RECEIPT_DATE>07-Apr-09</TRANSACTION_RECEIPT_DATE>
    <PO_NUMBER>982121</PO_NUMBER>
    </G_ASW_REC_DATE>
    <G_ASW_REC_DATE>
    <SNO_CREATED_BY>1433</SNO_CREATED_BY>
    <SNO_REQUEST_ID>-1</SNO_REQUEST_ID>
    <VENDOR_LOT_NUM>PO75</VENDOR_LOT_NUM>
    <SNO_CREATION_DATE>31-MAR-09</SNO_CREATION_DATE>
    <SNO_ATTRIBUTE1></SNO_ATTRIBUTE1>
    <OBJECT_ID>22190</OBJECT_ID>
    <INITIALIZATION_DATE>14-APR-09</INITIALIZATION_DATE>
    <ORGANIZATION_CODE>10</ORGANIZATION_CODE>
    <ORGANISATION_NAME>NDC - PARTS</ORGANISATION_NAME>
    <SERIAL_NUMBER>6510860842</SERIAL_NUMBER>
    <ITEM_CODE>3000.006</ITEM_CODE>
    <DESCRIPTION>ALLISON 3000 SERIES ON HWY TRANSMISSION E016392</DESCRIPTION>
    <MANUFACTURER>ALLISON</MANUFACTURER>
    <APPLICATION>On Highway</APPLICATION>
    <ITEM_COST>8879.02</ITEM_COST>
    <MATERIAL_COST>631.09</MATERIAL_COST>
    <CURRENCY_CODE>AUD</CURRENCY_CODE>
    <PO_UNIT_PRICE></PO_UNIT_PRICE>
    <TRANSACTION_RECEIPT_DATE>31-Mar-09</TRANSACTION_RECEIPT_DATE>
    <PO_NUMBER>971515</PO_NUMBER>
    </G_ASW_REC_DATE>
    <G_ASW_REC_DATE>
    <SNO_CREATED_BY>1433</SNO_CREATED_BY>
    <SNO_REQUEST_ID>-1</SNO_REQUEST_ID>
    <VENDOR_LOT_NUM>PO116</VENDOR_LOT_NUM>
    <SNO_CREATION_DATE>25-JUN-09</SNO_CREATION_DATE>
    <SNO_ATTRIBUTE1>2008/06/11 00:00:00</SNO_ATTRIBUTE1>
    <OBJECT_ID>64271</OBJECT_ID>
    <INITIALIZATION_DATE>30-JUN-09</INITIALIZATION_DATE>
    <ORGANIZATION_CODE>10</ORGANIZATION_CODE>
    <ORGANISATION_NAME>NDC - PARTS</ORGANISATION_NAME>
    <SERIAL_NUMBER>6510863077</SERIAL_NUMBER>
    <ITEM_CODE>3000.006</ITEM_CODE>
    <DESCRIPTION>ALLISON 3000 SERIES ON HWY TRANSMISSION E016392</DESCRIPTION>
    <MANUFACTURER>ALLISON</MANUFACTURER>
    <APPLICATION>On Highway</APPLICATION>
    <ITEM_COST>8879.02</ITEM_COST>
    <MATERIAL_COST>631.09</MATERIAL_COST>
    <CURRENCY_CODE>AUD</CURRENCY_CODE>
    <PO_UNIT_PRICE></PO_UNIT_PRICE>
    <TRANSACTION_RECEIPT_DATE>25-Jun-09</TRANSACTION_RECEIPT_DATE>
    <PO_NUMBER>982121</PO_NUMBER>
    </G_ASW_REC_DATE>
    <G_ASW_REC_DATE>
    <SNO_CREATED_BY>1433</SNO_CREATED_BY>
    <SNO_REQUEST_ID>-1</SNO_REQUEST_ID>
    <VENDOR_LOT_NUM>PO92</VENDOR_LOT_NUM>
    <SNO_CREATION_DATE>31-MAR-09</SNO_CREATION_DATE>
    <SNO_ATTRIBUTE1>2008/06/11 00:00:00</SNO_ATTRIBUTE1>
    <OBJECT_ID>22253</OBJECT_ID>
    <INITIALIZATION_DATE>14-APR-09</INITIALIZATION_DATE>
    <ORGANIZATION_CODE>10</ORGANIZATION_CODE>
    <ORGANISATION_NAME>NDC - PARTS</ORGANISATION_NAME>
    <SERIAL_NUMBER>6510860890</SERIAL_NUMBER>
    <ITEM_CODE>3000.006</ITEM_CODE>
    <DESCRIPTION>ALLISON 3000 SERIES ON HWY TRANSMISSION E016392</DESCRIPTION>
    <MANUFACTURER>ALLISON</MANUFACTURER>
    <APPLICATION>On Highway</APPLICATION>
    <ITEM_COST>8879.02</ITEM_COST>
    <MATERIAL_COST>631.09</MATERIAL_COST>
    <CURRENCY_CODE>AUD</CURRENCY_CODE>
    <PO_UNIT_PRICE></PO_UNIT_PRICE>
    <TRANSACTION_RECEIPT_DATE>31-Mar-09</TRANSACTION_RECEIPT_DATE>
    <PO_NUMBER>971515</PO_NUMBER>
    </G_ASW_REC_DATE>
    <G_ASW_REC_DATE>
    <SNO_CREATED_BY>1433</SNO_CREATED_BY>
    <SNO_REQUEST_ID>-1</SNO_REQUEST_ID>
    <VENDOR_LOT_NUM>PO99</VENDOR_LOT_NUM>
    <SNO_CREATION_DATE>31-MAR-09</SNO_CREATION_DATE>
    <SNO_ATTRIBUTE1></SNO_ATTRIBUTE1>
    <OBJECT_ID>22263</OBJECT_ID>
    <INITIALIZATION_DATE>14-APR-09</INITIALIZATION_DATE>
    <ORGANIZATION_CODE>10</ORGANIZATION_CODE>
    <ORGANISATION_NAME>NDC - PARTS</ORGANISATION_NAME>
    <SERIAL_NUMBER>6510860899</SERIAL_NUMBER>
    <ITEM_CODE>3000.006</ITEM_CODE>
    <DESCRIPTION>ALLISON 3000 SERIES ON HWY TRANSMISSION E016392</DESCRIPTION>
    <MANUFACTURER>ALLISON</MANUFACTURER>
    <APPLICATION>On Highway</APPLICATION>
    <ITEM_COST>8879.02</ITEM_COST>
    <MATERIAL_COST>631.09</MATERIAL_COST>
    <CURRENCY_CODE>AUD</CURRENCY_CODE>
    <PO_UNIT_PRICE></PO_UNIT_PRICE>
    <TRANSACTION_RECEIPT_DATE>31-Mar-09</TRANSACTION_RECEIPT_DATE>
    <PO_NUMBER>971515</PO_NUMBER>
    </G_ASW_REC_DATE>
    <G_ASW_REC_DATE>
    <SNO_CREATED_BY>1433</SNO_CREATED_BY>
    <SNO_REQUEST_ID>-1</SNO_REQUEST_ID>
    <VENDOR_LOT_NUM>PO109</VENDOR_LOT_NUM>
    <SNO_CREATION_DATE>25-JUN-09</SNO_CREATION_DATE>
    <SNO_ATTRIBUTE1></SNO_ATTRIBUTE1>
    <OBJECT_ID>64204</OBJECT_ID>
    <INITIALIZATION_DATE>30-JUN-09</INITIALIZATION_DATE>
    <ORGANIZATION_CODE>10</ORGANIZATION_CODE>
    <ORGANISATION_NAME>NDC - PARTS</ORGANISATION_NAME>
    <SERIAL_NUMBER>6510863070</SERIAL_NUMBER>
    <ITEM_CODE>3000.006</ITEM_CODE>
    <DESCRIPTION>ALLISON 3000 SERIES ON HWY TRANSMISSION E016392</DESCRIPTION>
    <MANUFACTURER>ALLISON</MANUFACTURER>
    <APPLICATION>On Highway</APPLICATION>
    <ITEM_COST>8879.02</ITEM_COST>
    <MATERIAL_COST>631.09</MATERIAL_COST>
    <CURRENCY_CODE>AUD</CURRENCY_CODE>
    <PO_UNIT_PRICE></PO_UNIT_PRICE>
    <TRANSACTION_RECEIPT_DATE>25-Jun-09</TRANSACTION_RECEIPT_DATE>
    <PO_NUMBER>982121</PO_NUMBER>
    </G_ASW_REC_DATE>
    <G_ASW_REC_DATE>
    <SNO_CREATED_BY>1433</SNO_CREATED_BY>
    <SNO_REQUEST_ID>-1</SNO_REQUEST_ID>
    <VENDOR_LOT_NUM>PO135</VENDOR_LOT_NUM>
    <SNO_CREATION_DATE>25-JUN-09</SNO_CREATION_DATE>
    <SNO_ATTRIBUTE1>2008/06/18 00:00:00</SNO_ATTRIBUTE1>
    <OBJECT_ID>64296</OBJECT_ID>
    <INITIALIZATION_DATE>30-JUN-09</INITIALIZATION_DATE>
    <ORGANIZATION_CODE>10</ORGANIZATION_CODE>
    <ORGANISATION_NAME>NDC - PARTS</ORGANISATION_NAME>
    <SERIAL_NUMBER>6510875546</SERIAL_NUMBER>
    <ITEM_CODE>3000.006</ITEM_CODE>
    <DESCRIPTION>ALLISON 3000 SERIES ON HWY TRANSMISSION E016392</DESCRIPTION>
    <MANUFACTURER>ALLISON</MANUFACTURER>
    <APPLICATION>On Highway</APPLICATION>
    <ITEM_COST>8879.02</ITEM_COST>
    <MATERIAL_COST>631.09</MATERIAL_COST>
    <CURRENCY_CODE>AUD</CURRENCY_CODE>
    <PO_UNIT_PRICE></PO_UNIT_PRICE>
    <TRANSACTION_RECEIPT_DATE>25-Jun-09</TRANSACTION_RECEIPT_DATE>
    <PO_NUMBER>982121</PO_NUMBER>
    </G_ASW_REC_DATE>
    <G_ASW_REC_DATE>
    <SNO_CREATED_BY>1433</SNO_CREATED_BY>
    <SNO_REQUEST_ID>-1</SNO_REQUEST_ID>
    <VENDOR_LOT_NUM>PO101</VENDOR_LOT_NUM>
    <SNO_CREATION_DATE>07-APR-09</SNO_CREATION_DATE>
    <SNO_ATTRIBUTE1></SNO_ATTRIBUTE1>
    <OBJECT_ID>24618</OBJECT_ID>
    <INITIALIZATION_DATE>07-APR-09</INITIALIZATION_DATE>
    <ORGANIZATION_CODE>10</ORGANIZATION_CODE>
    <ORGANISATION_NAME>NDC - PARTS</ORGANISATION_NAME>
    <SERIAL_NUMBER>6510863046</SERIAL_NUMBER>
    <ITEM_CODE>3000.006</ITEM_CODE>
    <DESCRIPTION>ALLISON 3000 SERIES ON HWY TRANSMISSION E016392</DESCRIPTION>
    <MANUFACTURER>ALLISON</MANUFACTURER>
    <APPLICATION>On Highway</APPLICATION>
    <ITEM_COST>8879.02</ITEM_COST>
    <MATERIAL_COST>631.09</MATERIAL_COST>
    <CURRENCY_CODE>AUD</CURRENCY_CODE>
    <PO_UNIT_PRICE></PO_UNIT_PRICE>
    <TRANSACTION_RECEIPT_DATE>07-Apr-09</TRANSACTION_RECEIPT_DATE>
    <PO_NUMBER>982121</PO_NUMBER>
    </G_ASW_REC_DATE>
    <G_ASW_REC_DATE>
    <SNO_CREATED_BY>1433</SNO_CREATED_BY>
    <SNO_REQUEST_ID>-1</SNO_REQUEST_ID>
    <VENDOR_LOT_NUM>PO120</VENDOR_LOT_NUM>
    <SNO_CREATION_DATE>07-APR-09</SNO_CREATION_DATE>
    <SNO_ATTRIBUTE1>2008/06/11 00:00:00</SNO_ATTRIBUTE1>
    <OBJECT_ID>24653</OBJECT_ID>
    <INITIALIZATION_DATE>07-APR-09</INITIALIZATION_DATE>
    <ORGANIZATION_CODE>10</ORGANIZATION_CODE>
    <ORGANISATION_NAME>NDC - PARTS</ORGANISATION_NAME>
    <SERIAL_NUMBER>6510863081</SERIAL_NUMBER>
    <ITEM_CODE>3000.006</ITEM_CODE>
    <DESCRIPTION>ALLISON 3000 SERIES ON HWY TRANSMISSION E016392</DESCRIPTION>
    <MANUFACTURER>ALLISON</MANUFACTURER>
    <APPLICATION>On Highway</APPLICATION>
    <ITEM_COST>8879.02</ITEM_COST>
    <MATERIAL_COST>631.09</MATERIAL_COST>
    <CURRENCY_CODE>AUD</CURRENCY_CODE>
    <PO_UNIT_PRICE></PO_UNIT_PRICE>
    <TRANSACTION_RECEIPT_DATE>07-Apr-09</TRANSACTION_RECEIPT_DATE>
    <PO_NUMBER>982121</PO_NUMBER>
    </G_ASW_REC_DATE>
    <G_ASW_REC_DATE>
    <SNO_CREATED_BY>1433</SNO_CREATED_BY>
    <SNO_REQUEST_ID>-1</SNO_REQUEST_ID>
    <VENDOR_LOT_NUM>PO122</VENDOR_LOT_NUM>
    <SNO_CREATION_DATE>07-APR-09</SNO_CREATION_DATE>
    <SNO_ATTRIBUTE1>2008/06/11 00:00:00</SNO_ATTRIBUTE1>
    <OBJECT_ID>24657</OBJECT_ID>
    <INITIALIZATION_DATE>07-APR-09</INITIALIZATION_DATE>
    <ORGANIZATION_CODE>10</ORGANIZATION_CODE>
    <ORGANISATION_NAME>NDC - PARTS</ORGANISATION_NAME>
    <SERIAL_NUMBER>6510863085</SERIAL_NUMBER>
    <ITEM_CODE>3000.006</ITEM_CODE>
    <DESCRIPTION>ALLISON 3000 SERIES ON HWY TRANSMISSION E016392</DESCRIPTION>
    <MANUFACTURER>ALLISON</MANUFACTURER>
    <APPLICATION>On Highway</APPLICATION>
    <ITEM_COST>8879.02</ITEM_COST>
    <MATERIAL_COST>631.09</MATERIAL_COST>
    <CURRENCY_CODE>AUD</CURRENCY_CODE>
    <PO_UNIT_PRICE></PO_UNIT_PRICE>
    <TRANSACTION_RECEIPT_DATE>07-Apr-09</TRANSACTION_RECEIPT_DATE>
    <PO_NUMBER>982121</PO_NUMBER>
    </G_ASW_REC_DATE>
    <G_ASW_REC_DATE>
    <SNO_CREATED_BY>1433</SNO_CREATED_BY>
    <SNO_REQUEST_ID>-1</SNO_REQUEST_ID>
    <VENDOR_LOT_NUM>PO127</VENDOR_LOT_NUM>
    <SNO_CREATION_DATE>07-APR-09</SNO_CREATION_DATE>
    <SNO_ATTRIBUTE1>2008/06/11 00:00:00</SNO_ATTRIBUTE1>
    <OBJECT_ID>24662</OBJECT_ID>
    <INITIALIZATION_DATE>07-APR-09</INITIALIZATION_DATE>
    <ORGANIZATION_CODE>10</ORGANIZATION_CODE>
    <ORGANISATION_NAME>NDC - PARTS</ORGANISATION_NAME>
    <SERIAL_NUMBER>6510863090</SERIAL_NUMBER>
    <ITEM_CODE>3000.006</ITEM_CODE>
    <DESCRIPTION>ALLISON 3000 SERIES ON HWY TRANSMISSION E016392</DESCRIPTION>
    <MANUFACTURER>ALLISON</MANUFACTURER>
    <APPLICATION>On Highway</APPLICATION>
    <ITEM_COST>8879.02</ITEM_COST>
    <MATERIAL_COST>631.09</MATERIAL_COST>
    <CURRENCY_CODE>AUD</CURRENCY_CODE>
    <PO_UNIT_PRICE></PO_UNIT_PRICE>
    <TRANSACTION_RECEIPT_DATE>07-Apr-09</TRANSACTION_RECEIPT_DATE>
    <PO_NUMBER>982121</PO_NUMBER>
    </G_ASW_REC_DATE>
    <G_ASW_REC_DATE>
    <SNO_CREATED_BY>1433</SNO_CREATED_BY>
    <SNO_REQUEST_ID>-1</SNO_REQUEST_ID>
    <VENDOR_LOT_NUM>PO100</VENDOR_LOT_NUM>
    <SNO_CREATION_DATE>07-APR-09</SNO_CREATION_DATE>
    <SNO_ATTRIBUTE1></SNO_ATTRIBUTE1>
    <OBJECT_ID>24585</OBJECT_ID>
    <INITIALIZATION_DATE>07-APR-09</INITIALIZATION_DATE>
    <ORGANIZATION_CODE>10</ORGANIZATION_CODE>
    <ORGANISATION_NAME>NDC - PARTS</ORGANISATION_NAME>
    <SERIAL_NUMBER>6510863033</SERIAL_NUMBER>
    <ITEM_CODE>3000.006</ITEM_CODE>
    <DESCRIPTION>ALLISON 3000 SERIES ON HWY TRANSMISSION E016392</DESCRIPTION>
    <MANUFACTURER>ALLISON</MANUFACTURER>
    <APPLICATION>On Highway</APPLICATION>
    <ITEM_COST>8879.02</ITEM_COST>
    <MATERIAL_COST>631.09</MATERIAL_COST>
    <CURRENCY_CODE>AUD</CURRENCY_CODE>
    <PO_UNIT_PRICE></PO_UNIT_PRICE>
    <TRANSACTION_RECEIPT_DATE>07-Apr-09</TRANSACTION_RECEIPT_DATE>
    <PO_NUMBER>982121</PO_NUMBER>
    </G_ASW_REC_DATE>
    <G_ASW_REC_DATE>
    <SNO_CREATED_BY>1433</SNO_CREATED_BY>
    <SNO_REQUEST_ID>-1</SNO_REQUEST_ID>
    <VENDOR_LOT_NUM>PO110</VENDOR_LOT_NUM>
    <SNO_CREATION_DATE>25-JUN-09</SNO_CREATION_DATE>
    <SNO_ATTRIBUTE1>2008/06/11 00:00:00</SNO_ATTRIBUTE1>
    <OBJECT_ID>64265</OBJECT_ID>
    <INITIALIZATION_DATE>30-JUN-09</INITIALIZATION_DATE>
    <ORGANIZATION_CODE>10</ORGANIZATION_CODE>
    <ORGANISATION_NAME>NDC - PARTS</ORGANISATION_NAME>
    <SERIAL_NUMBER>6510863071</SERIAL_NUMBER>
    <ITEM_CODE>3000.006</ITEM_CODE>
    <DESCRIPTION>ALLISON 3000 SERIES ON HWY TRANSMISSION E016392</DESCRIPTION>
    <MANUFACTURER>ALLISON</MANUFACTURER>
    <APPLICATION>On Highway</APPLICATION>
    <ITEM_COST>8879.02</ITEM_COST>
    <MATERIAL_COST>631.09</MATERIAL_COST>
    <CURRENCY_CODE>AUD</CURRENCY_CODE>
    <PO_UNIT_PRICE></PO_UNIT_PRICE>
    <TRANSACTION_RECEIPT_DATE>25-Jun-09</TRANSACTION_RECEIPT_DATE>
    <PO_NUMBER>982121</PO_NUMBER>
    </G_ASW_REC_DATE>
    <G_ASW_REC_DATE>
    <SNO_CREATED_BY>1433</SNO_CREATED_BY>
    <SNO_REQUEST_ID>-1</SNO_REQUEST_ID>
    <VENDOR_LOT_NUM>PO130</VENDOR_LOT_NUM>
    <SNO_CREATION_DATE>25-JUN-09</SNO_CREATION_DATE>
    <SNO_ATTRIBUTE1>2008/06/13 00:00:00</SNO_ATTRIBUTE1>
    <OBJECT_ID>64275</OBJECT_ID>
    <INITIALIZATION_DATE>30-JUN-09</INITIALIZATION_DATE>
    <ORGANIZATION_CODE>10</ORGANIZATION_CODE>
    <ORGANISATION_NAME>NDC - PARTS</ORGANISATION_NAME>
    <SERIAL_NUMBER>6510875487</SERIAL_NUMBER>
    <ITEM_CODE>3000.006</ITEM_CODE>
    <DESCRIPTION>ALLISON 3000 SERIES ON HWY TRANSMISSION E016392</DESCRIPTION>
    <MANUFACTURER>ALLISON</MANUFACTURER>
    <APPLICATION>On Highway</APPLICATION>
    <ITEM_COST>8879.02</ITEM_COST>
    <MATERIAL_COST>631.09</MATERIAL_COST>
    <CURRENCY_CODE>AUD</CURRENCY_CODE>
    <PO_UNIT_PRICE></PO_UNIT_PRICE>
    <TRANSACTION_RECEIPT_DATE>25-Jun-09</TRANSACTION_RECEIPT_DATE>
    <PO_NUMBER>982121</PO_NUMBER>
    </G_ASW_REC_DATE>
    </LIST_G_ASW_REC_DATE>
    <CF_SORT_BY>Manufacture,Receipt Date,Organization,Item Code</CF_SORT_BY>
    <CF_SERIAL_WHERE></CF_SERIAL_WHERE>
    </RECDTREP>

    HI Mahesh,
    <TRANSACTION_RECEIPT_DATE>07-Apr-09</TRANSACTION_RECEIPT_DATE>
    this is not a date,
    so you should change the query to get you the format in xsd format : YYYY-MM-DDThh:mm:ss+HH:MM
    otherwise, you have to write a custom sort function to decode and order it it.
    if you dont do the custom order and use
    <?sort:TRANSACTION_RECEIPT_DATE;'ascending';data-type='date'?>
    the data will be treated as string and you will see the row is sorted on string.

  • JTable sorting - problem when adding elements (complete code inside)

    I�m writing this email with reference to a recent posting here but this time with the code example. (I apologize for the duplicated posting � this time it will be with the code)
    Problem: when adding more elements to the JTable (sorted) the exception: ArrayIndexOutOfBoundsException is thrown.
    Example: If the elements in the table are 10 and then the user requests for 8 � the table will produce the correct result. However, if the user will ask for 11 items (>10) the exception will be thrown.
    The program: The program below (compiles and running). A JTable is constructed with 3 items, when you click the button - the return result should be 4 items - this will generate the error, WHY?
    I would highly appreciate your thoughts why this is happening and most importantly � how to fix it.
    Thanks a lot
    3 files:
    (1) TableSorterDemo
    (2) Traveler
    (3)TableSorter
    //TableSorterDemo:
    package sorter;
    import javax.swing.DefaultListModel;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.table.AbstractTableModel;
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    * TableSorterDemo is like TableDemo, except that it
    * inserts a custom model -- a sorter -- between the table
    * and its data model.  It also has column tool tips.
    public class TableSorterDemo implements ActionListener
         private JPanel superPanel;
         private JButton clickMe = new JButton("click me to get diff data");
         private boolean DEBUG = false;
         private DefaultListModel defaultListModel;
         private JTable table;
        public TableSorterDemo()
             superPanel = new JPanel(new BorderLayout());
             defaultListModel = new DefaultListModel();
             init1();
            TableSorter sorter = new TableSorter(new MyTableModel(defaultListModel)); //ADDED THIS     
            table = new JTable(sorter);             //NEW
            sorter.setTableHeader(table.getTableHeader()); //ADDED THIS
            table.setPreferredScrollableViewportSize(new Dimension(500, 70));
            //Set up tool tips for column headers.
            table.getTableHeader().setToolTipText(
                    "Click to specify sorting; Control-Click to specify secondary sorting");
            //Create the scroll pane and add the table to it.
            JScrollPane scrollPane = new JScrollPane(table);
            //Add the scroll pane to this panel.
            superPanel.add("Center", scrollPane);
            superPanel.add("South",clickMe);
            clickMe.addActionListener(this);              
        public JPanel getPanel()
             return superPanel;
        public void init1()
             //in real life this will be done from the db
             Traveler a = new Traveler();
             Traveler b = new Traveler();
             Traveler c = new Traveler();
             a.setFirstName("Elvis");
             a.setLastName("Presley");
             a.setSprot("Ping Pong");
             a.setNumYears(3);
             a.setVegetarian(true);
             b.setFirstName("Elton");
             b.setLastName("John");
             b.setSprot("Soccer");
             b.setNumYears(2);
             b.setVegetarian(true);
             c.setFirstName("shaquille");
             c.setLastName("oneil");
             c.setSprot("Golf");
             c.setNumYears(22);
             c.setVegetarian(true);
             defaultListModel.addElement(a);
             defaultListModel.addElement(b);
             defaultListModel.addElement(c);
        public void init2()
             //in real life this will be done from the db
             Traveler d = new Traveler();
             Traveler e = new Traveler();
             Traveler f = new Traveler();
             Traveler g = new Traveler();
             d.setFirstName("John");
             d.setLastName("Smith");
             d.setSprot("Tennis");
             d.setNumYears(32);
             d.setVegetarian(true);
             e.setFirstName("Ron");
             e.setLastName("Cohen");
             e.setSprot("Baseball");
             e.setNumYears(12);
             e.setVegetarian(true);
             f.setFirstName("Donald");
             f.setLastName("Mac Novice");
             f.setSprot("Vallyball");
             f.setNumYears(1);
             f.setVegetarian(true);
             g.setFirstName("Eithan");
             g.setLastName("Superstar");
             g.setSprot("Vallyball");
             g.setNumYears(21);
             g.setVegetarian(true);
             defaultListModel.addElement(d);
             defaultListModel.addElement(e);
             defaultListModel.addElement(f);
             defaultListModel.addElement(g);            
        class MyTableModel extends AbstractTableModel
             private DefaultListModel myModel;
             public MyTableModel(DefaultListModel m)
                  myModel=m;
            private String[] columnNames = {"First Name",
                                            "Last Name",
                                            "Sport",
                                            "# of Years",
                                            "Vegetarian"};
            public int getColumnCount()
                return columnNames.length;
            public int getRowCount()
                return myModel.size();
            public String getColumnName(int column)
                 return getNames()[column];             
             public String[] getNames()
                  String[] names = {"First Name", "Last Name", "Sport", "# of Years", "Vegetarian"};
                  return names;
            public Object getValueAt(int row, int col)
                 return distributeObjectsInTable(row, col, (Traveler) myModel.elementAt(row));
            public Object distributeObjectsInTable(int row, int col, Traveler tr)
               switch(col)
                         case 0:
                              return tr.getFirstName();
                         case 1:
                           return tr.getLastName();
                      case 2:
                           return tr.getSprot();
                      case 3:
                           return new Integer(tr.getNumYears());
                      case 4:
                           return new Boolean (tr.isVegetarian());
                     default:
                         return "Error";
            public Class getColumnClass(int c)
                return getValueAt(0, c).getClass();
        private static void createAndShowGUI()
            //Make sure we have nice window decorations.
            JFrame.setDefaultLookAndFeelDecorated(true);
            //Create and set up the window.
            JFrame frame = new JFrame("TableSorterDemo");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            //Create and set up the content pane.
            TableSorterDemo newContentPane = new TableSorterDemo();
            newContentPane.getPanel().setOpaque(true); //content panes must be opaque
            frame.setContentPane(newContentPane.getPanel());
            //Display the window.
            frame.pack();
            frame.setVisible(true);
        public static void main(String[] args)
            //Schedule a job for the event-dispatching thread:
            //creating and showing this application's GUI.
            javax.swing.SwingUtilities.invokeLater(new Runnable()                   
                public void run()
                    createAndShowGUI();
         public void actionPerformed(ActionEvent ae)
              if (ae.getSource()==clickMe)
                   defaultListModel.removeAllElements();
                   init2(); //if the size of the model was less than 2 items - the result will be ok.
                              //in other words, if you commens the last 2 rows of this method (addElement(f) & g)
                             // the result will be fine.
                   table.updateUI();          
    }//(2) Traveler
    package sorter;
    public class Traveler
         private String firstName;
         private String lastName;
         private String sprot;
         private int numYears;
         private boolean vegetarian;
         public String getFirstName()
              return firstName;
         public String getLastName()
              return lastName;
         public int getNumYears()
              return numYears;
         public String getSprot()
              return sprot;
         public boolean isVegetarian()
              return vegetarian;
         public void setFirstName(String firstName)
              this.firstName = firstName;
         public void setLastName(String lastName)
              this.lastName = lastName;
         public void setNumYears(int numYears)
              this.numYears = numYears;
         public void setSprot(String sprot)
              this.sprot = sprot;
         public void setVegetarian(boolean vegetarian)
              this.vegetarian = vegetarian;
    }//(3)TableSorter
    package sorter;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import java.util.List;
    import javax.swing.*;
    import javax.swing.event.TableModelEvent;
    import javax.swing.event.TableModelListener;
    import javax.swing.table.*;
    public class TableSorter extends AbstractTableModel {
        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 columnComparators = new HashMap();
        private List sortingColumns = new ArrayList();
        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, just pass the event along.            
                if (!isSorting()) {
                    clearSortingState();
                    fireTableChanged(e);
                    return;
                // If the table structure has changed, cancel the sorting; the            
                // sorting columns may have been either moved or deleted from            
                // the model.
                if (e.getFirstRow() == TableModelEvent.HEADER_ROW) {
                    cancelSorting();
                    fireTableChanged(e);
                    return;
                // We can map a cell event through to the view without widening            
                // when the following conditions apply:
                // a) all the changes are on one row (e.getFirstRow() == e.getLastRow()) and,
                // b) all the changes are in one column (column != TableModelEvent.ALL_COLUMNS) and,
                // c) we are not sorting on that column (getSortingStatus(column) == NOT_SORTED) and,
                // d) a reverse lookup will not trigger a sort (modelToView != null)
                // Note: INSERT and DELETE events fail this test as they have column == ALL_COLUMNS.
                // The last check, for (modelToView != null) is to see if modelToView
                // is already allocated. If we don't do this check; sorting can become
                // a performance bottleneck for applications where cells 
                // change rapidly in different parts of the table. If cells
                // change alternately in the sorting column and then outside of            
                // it this class can end up re-sorting on alternate cell updates -
                // which can be a performance problem for large tables. The last
                // clause avoids this problem.
                int column = e.getColumn();
                if (e.getFirstRow() == e.getLastRow()
                        && column != TableModelEvent.ALL_COLUMNS
                        && getSortingStatus(column) == NOT_SORTED
                        && modelToView != null) {
                    int viewIndex = getModelToView()[e.getFirstRow()];
                    fireTableChanged(new TableModelEvent(TableSorter.this,
                                                         viewIndex, viewIndex,
                                                         column, e.getType()));
                    return;
                // Something has happened to the data that may have invalidated the row order.
                clearSortingState();
                fireTableDataChanged();
                return;
        private class MouseHandler extends MouseAdapter {
            public void mouseClicked(MouseEvent e) {
                JTableHeader h = (JTableHeader) e.getSource();
                TableColumnModel columnModel = h.getColumnModel();
                int viewColumn = columnModel.getColumnIndexAtX(e.getX());
                int column = columnModel.getColumn(viewColumn).getModelIndex();
                if (column != -1) {
                    int status = getSortingStatus(column);
                    if (!e.isControlDown()) {
                        cancelSorting();
                    // Cycle the sorting states through {NOT_SORTED, ASCENDING, DESCENDING} or
                    // {NOT_SORTED, DESCENDING, ASCENDING} depending on whether shift is pressed.
                    status = status + (e.isShiftDown() ? -1 : 1);
                    status = (status + 4) % 3 - 1; // signed mod, returning {-1, 0, 1}
                    setSortingStatus(column, status);
        private static class Arrow implements Icon {
            private boolean descending;
            private int size;
            private int priority;
            public Arrow(boolean descending, int size, int priority) {
                this.descending = descending;
                this.size = size;
                this.priority = priority;
            public void paintIcon(Component c, Graphics g, int x, int y) {
                Color color = c == null ? Color.GRAY : c.getBackground();            
                // In a compound sort, make each succesive triangle 20%
                // smaller than the previous one.
                int dx = (int)(size/2*Math.pow(0.8, priority));
                int dy = descending ? dx : -dx;
                // Align icon (roughly) with font baseline.
                y = y + 5*size/6 + (descending ? -dy : 0);
                int shift = descending ? 1 : -1;
                g.translate(x, y);
                // Right diagonal.
                g.setColor(color.darker());
                g.drawLine(dx / 2, dy, 0, 0);
                g.drawLine(dx / 2, dy + shift, 0, shift);
                // Left diagonal.
                g.setColor(color.brighter());
                g.drawLine(dx / 2, dy, dx, 0);
                g.drawLine(dx / 2, dy + shift, dx, shift);
                // Horizontal line.
                if (descending) {
                    g.setColor(color.darker().darker());
                } else {
                    g.setColor(color.brighter().brighter());
                g.drawLine(dx, 0, 0, 0);
                g.setColor(color);
                g.translate(-x, -y);
            public int getIconWidth() {
                return size;
            public int getIconHeight() {
                return size;
        private class SortableHeaderRenderer implements TableCellRenderer {
            private TableCellRenderer tableCellRenderer;
            public SortableHeaderRenderer(TableCellRenderer tableCellRenderer) {
                this.tableCellRenderer = tableCellRenderer;
            public Component getTableCellRendererComponent(JTable table,
                                                           Object value,
                                                           boolean isSelected,
                                                           boolean hasFocus,
                                                           int row,
                                                           int column) {
                Component c = tableCellRenderer.getTableCellRendererComponent(table,
                        value, isSelected, hasFocus, row, column);
                if (c instanceof JLabel) {
                    JLabel l = (JLabel) c;
                    l.setHorizontalTextPosition(JLabel.LEFT);
                    int modelColumn = table.convertColumnIndexToModel(column);
                    l.setIcon(getHeaderRendererIcon(modelColumn, l.getFont().getSize()));
                return c;
        private static class Directive {
            private int column;
            private int direction;
            public Directive(int column, int direction) {
                this.column = column;
                this.direction = direction;
    }

    The table listens to the TableModel for changes. Changing the table by adding/removing
    rows or columns has no affect on its table model. If you make changes to the table model
    the table will be notified by its TableModelListener and change its view. So tell
    MyTableModel about the change of data:
    public class TableSorterDemo implements ActionListener
        MyTableModel tableModel;
        public TableSorterDemo()
            defaultListModel = new DefaultListModel();
            init1();
            tableModel = new MyTableModel(defaultListModel);
            TableSorter sorter = new TableSorter(tableModel);
        public void actionPerformed(ActionEvent ae)
            if (ae.getSource()==clickMe)
                defaultListModel.removeAllElements();
                init2();
                tableModel.fireTableStructureChanged();
    }

  • Problem of sorting month name in pivot table

    Hello,
    I have a month name that is sorted by month number in my repository.
    When I select Year + month name + measure sorted by year then by month name and I look the result in a table, everything works perfectly but when I switch to a pivot table the sorting doesn't work : the pivot table sorts my month name in an alphabetical order instead of using the month number .... Is it normal ?
    To find a solution, I have added my month number and I have sorted by year then by month number and I have hidden my column month number. This have solved my problem for the pivot table but if I attached a chart to it (by selecting "Chart Pivoted Results"), the label of the bottom axis contains the month number and the month name and I haven't found where I can hide this month number. Why the hidden option only works on the pivot table and not on the pivot chart ? And how I can do that ?
    Thanks in advance for your help.

    No there is no Transient attribute involved , could you please tell me what might cause this error .
    Basically this page is for inserting a record.
    Thanks ,
    Keerthi
    Edited by: user1140193 on Oct 21, 2011 7:15 AM
    Edited by: user1140193 on Oct 21, 2011 7:16 AM

  • Question about Finder file listing order when sorting by "Name"

    I quite often add a suffix to some of my file names when I save them so that I can keep a complete history of changes. For example, I usually add "_000" at the end, and progress to "_001" through "_009". However after "_009" I don't increase the next digit to "_010" but instead, after "_009" comes "_00A" then "_00B" on to "_00Z" and then to "_010". I have been doing this for a while now (several years) and it has worked well for me.
    I have noticed in the finder window, when in "List" view a file ending in "_00A" is listed lexicographically before a file ending in "009" instead of the other way around.
    I think that this is due to my UNIX Locale being set to LANG="en_US.UTF-8"
    1. Is this a correct assumption?
    I would like it to be listed in POSIX order.
    2. Is there a way I can make just specific folders list file names in POSIX order?
    I was thinking of changing my Language to POSIX using the terminal command:
    $ export LANG=POSIX
    but this may have undesirable effects with the rest of Mac OS X.
    3. Is there a finder preference (plist item) I can change so this just changes the listing order to POSIX? (I have no problem if all Finder windows use this sort order for file names.)
    Thank you in advance.
    Jeff Cameron

    I don't know of a GUI way to change it or if you unix trick will work/do anything, but the Mac OS has always sorted that way, if I'm understanding you correctly. It looks at the entirety of the naming and puts 2 immediately after 1 instead of putting 10 there like Windows does (and Alpha comes before numeric).
    I don't think the unix underpinnings changed sort order, but I may be remembering wrong. It's been a long time since OS 9. That's why I don't think the LANG switch will work.

  • We have created shared folder on multiple client machine in domain environment on different 2 OS like-XP,Vista, etc. from some day's When we facing problem when we are access from host name that shared folder is accessible but same time same computer when

    Hello All,
    we have created shared folder on multiple client machine in domain environment on different 2 OS like-XP,Vista, etc.
    from some day's When we facing problem when we are access from host name that shared folder is accessible but same time same computer when we are trying to access the share folder with IP it asking for credentials i have type again and again
    correct credential but unable to access that. If i re-share the folder then we are access it but when we are restarted the system then same problem is occurring.
    I have checked IP,DNS,Gateway and more each & everything is well.
    Pls suggest us.
    Pankaj Kumar

    Hi,
    According to your description, my understanding is that the same shared folder can be accessed by name, but can’t be accessed be IP address and asks for credentials.
    Please try to enable the option below on the device which has shared folder:
    Besides, check the Advanced Shring settings of shared folder and confrim that if there is any limitation settings.
    Best Regards,
    Eve Wang
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Support, contact [email protected]

  • How do I sort by employee last name when grouped by employee id?

    Hi,
    The first Group is: Employee ID.
    The second Group is: Employee Last Name.
    I wish to sort the entire report by Employee Last Name; however, standard crystal reports sorting functionality doesn't present me with this ability. As a result, the report is sorted by Employee ID.
    Can someone help me how to sort by Employee Last Name in this scenario?
    thx,
    Mark

    Hi Mark,
    When you create a Group in the report, Crystal reports automatically adds the grouped fields in the Sort list which unfortunately cannot be removed! You cannot change the priority of the sort fields too, and the only way of achieving this is by actually changing the group order. But it wouldn't help the purpose.
    As a workaround, here's what you can do though:
    1) Create a command object and provide a pre-sorted result set to Crystal Reports. In this situation you would probably create a command object like :
    select Emp_ID, Last_Name from Emp order by Last_Name asc
    2) Create the 2 groups in the report again. Open the 'Group Expert', click on the first group and then click 'Options'
    3) The Sort order for this group would be 'in ascending order' by default. Change it to 'in original order'
    4) Repeat the above step for the next group
    This is the only way I know of sorting a report on another field.
    Let me know how this goes!
    -Abhilash

  • Getting problem when retriving Table name

    Hi,
    I'm having problem when i trying to get the table name from database. I'm using NetBeans 6.0, And It does n't show any error during compile and run time. I could n't find where the problem is?
    Code:_
    DatabaseMetaData dbm=conn.getMetaData();
    String[] types={"TABLES"};
    ResultSet rs=dbm.getTables("%","%","%",types);
    System.out.println("TableName:");
    while(rs.next())
    String tableName=rs.getString("TABLE_NAME");
    String tableSchema=rs.getString("TABLE_SCHEM");
    String tableCatalog=rs.getString("TABLE_CAT");
    System.out.println(tableName);
    conn.close();
    System.out.println("Disconnected from database");
    Output is:_
    MySQL Connect Example.
    TableName:
    BUILD SUCCESSFUL
    Regds,
    Prabu
    Edited by: [email protected] on Apr 16, 2008 12:32 PM

    Why did you repost? Don't do this, it is extremely rude!
    Stick with your other thread. I just gave you what I believe to be the correct answer.
    [Original Post|http://forum.java.sun.com/thread.jspa?threadID=5286520&tstart=0]

  • I have my contacts sorted and displayed last name, first name - however when I access my contact list via message they display first name, last name - WHY????

    Contacts sorted and dispalyed last name, first name - why when I access contacts via messaging do they display first name, last name?

    Hi
    It is when I tap on the +....
    My husbands display with first name first but grouped by surname alphabetically.
    Thanks
    Cat

  • When sorting, Itunes ignores "The" of my artists names

    When sorting, Itunes ignores "The" of my artist name.
    Is it normal?
    Like "The Offsprings" is sort with my "O" artist.
    Is there a way that I tune would recognize it?

    Ok but its weird, itunes recognize The on my bros laptop and not on mine.

  • Strange problem when opening word doc situated in WLS virtual dir

    Hi all,
    we have a strange problem when opening word doc
    situated in C:\Oracle\Middleware\as_1\forms\webutil
    we put some word docs there and tried to open from forms using for example web.show_document('http://wp0606:9001/forms/webutil/mug00103.doc', '_blank');
    no problem using FF, however in IE8 the word doc is shown in its binary format, this also happens when we try to open the doc in IE8
    however when we google and search for instance for a test.doc and then click on this url a file save dialog is shown
    that's why we believe that this might be due to a configuration issue of WLS
    any help would be greatly appreciated
    Kr
    Martin

    I think you have 2 ways to go here. Figure out what html is from wherever weblogic gets it, meaning you have to delve into the docs, snoop
    around in directories and find what it must be sending (This is going to be unavoidable if you are going to change what weblogic is doing.
    Sooner or later you have to try to figure out where it gets this stuff from)
    or
    you can experimentally snoop on your url with a tool like wget or curl. These are fundamental web tools.
    The latter is always a useful thing to be able to do. (you need to formulate a query to get the content-type).
    Whoever managed to get weblogic to serve any files in the first place probably can figure this out.

  • Hi everyone, I'v got some tech problem when I am watch youku video. It often got stuck and just stop broadcasting the video. I am wondering if it was sort of bugs of 10.7.4 versions?

    hi everyone, I'v got some tech problem when I am watch youku video. It often got stuck and just stop broadcasting the video. I am wondering if it was sort of bugs of 10.7.4 versions?

    Do you have a link to this youku video?

Maybe you are looking for