Updating a JPanel with new data, using CardLayout

Hi,
I'm using a CardLayout to change between JPanels.
I have 2 JPanels: panel1, panel2; 2 JButtons: backButton, nextButton;
I also have 1 JTable - table1 - which get it's info from a database.
I add nextButton and table1 to panel1, and add backButton to panel2.
I add panel1 and panel2 to the CardLayout, and of course I add the Cardlayout to the JFrame and so on.
When I start the application I get the panel1 with a table filled up from the DB. I then press the nextButton and get the panel2 visible.
Problem:
My problem now is how to do when I press the backButton so that the application checks the DB and updates the table1.
I make a ActionListener to the backButton, which makes the panel1 visible again, but it does not update the table1 from the DB.
How do I do that??
Thx. for all answers!!
/bogger

of course it will be the same - you must call the database again.
if you just copy and paste the code, that fills your database with data where you make the panel visible again, it'll work
(of course it will be better to create a method to update the table, not just paste the code)

Similar Messages

  • How do i update a JTable with new data?

    Hey
    I have a JTable where the data of some football players are shown. Name, club, matches and goals. What i want is to change the data in
    the JTable when i click a button. For example each team in a league has its own button, so when i click the teams button, JTable has
    data of that teams players.
    Here is the code i have atm, there isnt anything on how to change the data, because i dont know where to start, plz point me in somekind of direction:
    * To change this template, choose Tools | Templates
    * and open the template in the editor.
    package test;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.JMenu;
    import javax.swing.JMenuItem;
    import javax.swing.JMenuBar;
    import javax.swing.ImageIcon;
    import javax.swing.JTable;
    import javax.swing.JButton;
    import javax.swing.JTextArea;
    import javax.swing.JScrollPane;
    import javax.swing.JPanel;
    import javax.swing.JFrame;
    * @author Jesper
    public class Main extends JFrame implements ActionListener {
        private Players players;
        private JTextArea output;
        private JScrollPane scrollPane2;
        private JButton button1, button2;
        private String newline = "\n";
        private int club = 1;
        public Main(){
            players = new Players();
        public JMenuBar createMenuBar(){
            JMenuBar menuBar = new JMenuBar();
            JMenu menu = new JMenu("File");
            menu.setMnemonic(KeyEvent.VK_A);
            menu.getAccessibleContext().setAccessibleDescription("The only menu in this program that has menu items");
            menuBar.add(menu);
            // add menuitems/buttons
            JMenuItem menuItemNew   = new JMenuItem("new");
            menuItemNew.setActionCommand("1");
            menuItemNew.addActionListener(this);       
            JMenuItem menuItemOpen   = new JMenuItem("Open");
            JMenuItem menuItemQuit   = new JMenuItem("Quit");
            menuItemQuit.setActionCommand("2");
            menuItemQuit.addActionListener(this);
            // add to menu
            menu.add(menuItemNew);
            menu.add(menuItemOpen);
            menu.add(menuItemQuit);
            return menuBar;
        public void actionPerformed(ActionEvent e){
            String s;
            if ("Silkeborg IF".equals(e.getActionCommand())){
                club = 1;
                s = e.getActionCommand();
                output.append(s + newline);
                button1.setEnabled(false);
                button2.setEnabled(true);
            } else{
                club = 2;
                s = e.getActionCommand();
                output.append(s + newline);
                button1.setEnabled(true);
                button2.setEnabled(false);
        //Quit the application.
        protected void quit() {
            System.exit(0);
        public Container createContent(){
            JPanel contentPane = new JPanel(new GridLayout(3,1));
            ImageIcon icon = createImageIcon("middle.gif", "a pretty but meaningless splat");
            JTable table = new JTable(players.showPlayers(club));
            //Create the first label.
            button1 = new JButton("Silkeborg IF");
            button1.setToolTipText("Klik her for at se Silkeborg IF");
            button1.addActionListener(this);
            button1.setActionCommand("Silkeborg IF");
            //Create the second label.
            button2 = new JButton("FC Midtjylland");
            button2.setToolTipText("Klik her for at se FC Midtjylland");
            button2.addActionListener(this);
            button2.setActionCommand("FC Midtjylland");
            //Create a scrolled text area.
            output = new JTextArea(5, 30);
            output.setEditable(false);
            scrollPane2 = new JScrollPane(output);
            //Add stuff to contentPane.
            contentPane.add(button1);
            contentPane.add(button2);
            contentPane.add(table);
            contentPane.add(scrollPane2, BorderLayout.CENTER);
            return contentPane;
        protected static ImageIcon createImageIcon(String path,
                                                   String description) {
            java.net.URL imgURL = Main.class.getResource(path);
            if (imgURL != null) {
                return new ImageIcon(imgURL, description);
            } else {
                System.err.println("Couldn't find file: " + path);
                return null;
        public static void createGUI(){
            JFrame frame = new JFrame();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            Main main = new Main();
            frame.setJMenuBar(main.createMenuBar());
            frame.setContentPane(main.createContent());
            frame.setSize(500, 500);
            frame.setVisible(true);
         * @param args the command line arguments
        public static void main(String[] args) {
            createGUI();
    }

    ooohh sorry... i posted the wrong code :S
    Here is the correct code:
    * To change this template, choose Tools | Templates
    * and open the template in the editor.
    package test;
    import java.util.HashMap;
    import java.util.Set;
    import javax.swing.table.*;
    * @author Jesper
    public class Players {
        HashMap<Player, Stats> players;
        public Players(){
            players = new HashMap<Player, Stats>();
            addPlayer();
        public void addPlayer(){
            //Silkeborg IF
            players.put(new Player("Martin ?rnskov", 1), new Stats(19, 3, 1));
            players.put(new Player("Thomas Raun", 1), new Stats(23, 6, 0));
            players.put(new Player("Jimmy Mayasi", 1), new Stats(26, 26, 3));
            players.put(new Player("Lasse J?rgensen", 1), new Stats(33, 0, 0));
            //FC Midtjylland
            players.put(new Player("Frank Kristensen", 2), new Stats(19, 3, 1));
            players.put(new Player("Thomas R?ll", 2), new Stats(23, 6, 0));
            players.put(new Player("Simon Poulsen", 2), new Stats(26, 26, 3));
            players.put(new Player("Magnus Troels", 2), new Stats(33, 0, 0));
        public DefaultTableModel showPlayers(int club){
            String[] columNames = {"Spiller", "Klub", "Kampe", "M?l", "R?de kort"};
            //Object[][] data = {{"Martin ?rnskov", 19, 3, 1}, {"Thomas Raun", 23, 6, 0}};
            Set<Player> keys = players.keySet();
            Object[][] data = new Object[keys.size()][columNames.length];
            int i = 0;
            for(Player player : keys){
               if(player.getClub() == club){
                   data[0] = player.getName();
    data[i][1] = player.getClub();
    data[i][2] = players.get(player).getMatches();
    data[i][3] = players.get(player).getGoals();
    data[i][4] = players.get(player).getRedCards();
    i++;
    DefaultTableModel table = new DefaultTableModel(data, columNames);
    return table;

  • Updating graph with new data

    I have a problem updating my graphs with new data in Illustrator. When I update them with new data each month the y and x-axis tend to change font and size.
    What can be the problem? Please help me!

    Hi Rajasekar
    You can purchase the enterprise toolkit fron NI, it includes a "database connectivity toolkit".
    As regards the design pattern to do you you describe, it will depends on the refresh rate you need and the rate at which you want to write your data to the database.
    I would have 2 loops :
     - one acquiring the data and putting it in a queue,
     - and a second that get the data from the queue, logging data to database and refreshing the graph.
    If the write time to database is too long and slows down the graph refresh you place it in another loop.
    Hope this helps
    When my feet touch the ground each morning the devil thinks "bloody hell... He's up again!"

  • A serious problem with JTable to update with new data.

    I am customizing a JTable. In the table 3 rows and row wise same data presents. After every 30 sec table will be update with new data. But a exception is coming like: ArrayIndexOutofBound 4>=0. Exception is not coming so frequently some time it comes within 1 min or after 1 hour of program running and each time *4>=0* is varies with different number.
    Here is the model i am using and to update table i am calling setTableData( ) with updated vector as a argument.
    public class MyModel extends AbstractTableModel {
              protected Vector m_vector;          
              public MyModel(Vector m_vector) {     this.m_vector = m_vector;     }
              public int getColumnCount() {          
                   return m_vector==null ? 0 : m_vector.size();           
              public int getRowCount() {     return 3;          }
              public String getColumnName(int col) {     return null;     }
              public Object getValueAt(int row, int col) {
                       if (col < 0 || col>=getColumnCount())
                      return null;
                  try{
                  MyData column = (MyData)m_vector.elementAt(col);               
                  switch (row) {
                      case 0: return column.gate;
                      case 1: return column.time;
                      case 2: return column.status;            
                  }}catch(Exception e){
                        System.out.println("Error is here");
                        e.printStackTrace();
                  return null;               
              public Class getColumnClass(int c) {return getValueAt(0, c).getClass();     }
              public boolean isCellEditable(int row, int col) {
                   if (row == 1) { return false; } else { return true; }
              public void setTableData( Vector mData)
                         this.m_vector = new Vector(mData);                    
                         fireTableStructureChanged();
         }Please help me out.

    This is the exception:
    java.lang.ArrayIndexOutOfBoundsException: 4 >= 3
         at java.util.Vector.elementAt(Vector.java:431)
         at javax.swing.table.DefaultTableColumnModel.getColumn(DefaultTableColumnModel.java:277)
         at javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:1047)
         at javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:974)
         at javax.swing.plaf.ComponentUI.update(ComponentUI.java:142)
         at javax.swing.JComponent.paintComponent(JComponent.java:541)
         at javax.swing.JComponent.paint(JComponent.java:808)
         at javax.swing.JComponent.paintChildren(JComponent.java:647)
         at javax.swing.JComponent.paint(JComponent.java:817)
         at javax.swing.JViewport.paint(JViewport.java:722)
         at javax.swing.JComponent.paintChildren(JComponent.java:647)
         at javax.swing.JComponent.paint(JComponent.java:817)
         at javax.swing.JComponent.paintWithOffscreenBuffer(JComponent.java:4787)
         at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4740)
         at javax.swing.JComponent._paintImmediately(JComponent.java:4685)
         at javax.swing.JComponent.paintImmediately(JComponent.java:4488)
         at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:410)
         at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:117)
         at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
         at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
         at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
         at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)and Column may increase/decrease depending upon data retrieved.

  • I want to update iCloud account with new apple id but don't know password for old apple id.  Plus can no longer receive email at old apple id.  How can I delete the current iCloud account on my iPhone if the previously stated conditions exist?

    I want to update iCloud account with new apple id but don't know password for old apple id.  Plus can no longer receive email at old apple id.  How can I delete the current iCloud account on my iPhone if the previously stated conditions exist?

    If the old ID is yours, and if it is an earlier version of your current ID, go to https://appleid.apple.com, click Manage my Apple ID and sign in with your current iCloud ID.  Click edit next to the primary email account, change it back to your old email address and save the change.  Then edit the name of the account to change it back to your old email address.  You can now use your current password to turn off Find My iDevice, even though it prompts you for the password for your old account ID. Then save any photo stream photos that you wish to keep to your camera roll.  When finished go to Settings>iCloud, tap Delete Account and choose Delete from My iDevice when prompted (your iCloud data will still be in iCloud).  Next, go back to https://appleid.apple.com and change your primary email address and iCloud ID name back to the way it was.  Now you can go to Settings>iCloud and sign in with your current iCloud ID and password.

  • [svn:osmf:] 13083: Updated MASTAdapter class with new trait names and events.

    Revision: 13083
    Revision: 13083
    Author:   [email protected]
    Date:     2009-12-17 16:10:05 -0800 (Thu, 17 Dec 2009)
    Log Message:
    Updated MASTAdapter class with new trait names and events.
    Modified Paths:
        osmf/trunk/plugins/MASTPlugin/org/osmf/mast/adapter/MASTAdapter.as
        osmf/trunk/plugins/MASTPluginIntegrationTest/src/org/osmf/test/mast/TestMASTPluginInfo.as
        osmf/trunk/plugins/MASTPluginIntegrationTest/src/org/osmf/test/mast/adapter/TestMASTAdapt er.as

    Silviu!
    I'm really sorry, but as all the office is trying to fix the problem, someone replaced the url content with the stuff that was pointing to the local machine.
    I've fix it, and the video player is available here again: http://pp.player.webtv.flumotion.com/params/apiKey/5PzLR2ULL3z2rumJ/videoId/60
    If there are other references to the localhost, please do not bother with them, as they do not affect player functionality.
    The stream that it uses is an RTMPE, so i'm afraid it will only works with this player. Anyway, the stream url is as follows: rtmpe://87.248.205.81/a4349/e2/veo7/ondemandrtmpe/mp4/med/first-person-mario-4d8741aa.mp4
    I really appreciate your help!
    Thank you!

  • Problem with updating oracle DB with java date thru resultset.updateDate()

    URGENT Please
    I am facing problem in updating oracle database with java date through resultset.updateDate() method. Can anybody help me please
    following code is saving wrong date value (dec 4, 2006 instead of java date jul 4, 2007) in database:
    ResultSet rs = stmt.executeQuery("SELECT myDate FROM myTable");
    rs.first();
    SimpleDateFormat sqlFormat = new SimpleDateFormat("yyyy-mm-dd");
    java.util.Date myDate = new Date();
    rs.updateDate("myDate", java.sql.Date.valueOf(sqlFormat.format(myDate)));
    rs.updateRow();

    I believe you should use yyyy-MM-dd instead of yyyy-mm-dd. I think MM stands for month while mm stands for minute as per
    http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html
    (If this works, after spending so much of your time trying to solve it, don't hit yourself in the head too hard. I find running out of the room laughing hysterically feels better).
    Here is a more standard(?) way of updating:
    String sqlStatement=
    "update myTable set myDate=? where personID=?"
    PreparedStatement p1= connection.prepareStatement(sqlStatement);
    p1.setDate(1,new java.sqlDate());
    p1.setInt(2, personID);
    p1.executeUpdate();

  • HT1311 How can I get updates for apps with new Apple ID

    How can I get updates for apps with new Apple ID. I have apps that I got for free, and some that I have purchased. I had to create a new Apple ID because I don't have a credit card now.

    Apps will always be tied to the ID in which they were purchased or downloaded under. You can not change this unless you buy or download the free  app using the new ID.

  • I have updated my Iphone5 with new IOS6 - now the screen/display does not react to my taps on screen as in i cant tap in my pin to start???

    I have updated my Iphone5 with new IOS6 - now the screen/display does not react to my taps on screen as in i cant tap in my pin to startup???

    I have updated my Iphone5 with new IOS6 - now the screen/display does not react to my taps on screen as in i cant tap in my pin to startup???

  • XML generation with SAP data using XML schema - Reg

    Hello experts,
      My requirement is , SAP( ztable data )  data has to be transferred to third party software folder.Third party using XML so they requires output from SAP in XML format.
    For that third party software guys told me that they will give their own XML schema to me.I have to generate XML file with SAP data using their XML schema.
    Generating XML file with their Schema should be underlined.
    I studied that call transformation statement helps for this.
    Even then i don't have clear idea about this topic.
    Please brief me about how to use their XML schema to generate XML with my own sap data.
    Thanks in advance experts.
    Kumar

    please  try this  same program    and see  it ....
    *& Report  z_xit_xml_check
      REPORT  z_xit_xml_check.
      TYPE-POOLS: ixml.
      TYPES: BEGIN OF t_xml_line,
              data(256) TYPE x,
            END OF t_xml_line.
      DATA: l_ixml            TYPE REF TO if_ixml,
            l_streamfactory   TYPE REF TO if_ixml_stream_factory,
            l_parser          TYPE REF TO if_ixml_parser,
            l_istream         TYPE REF TO if_ixml_istream,
            l_document        TYPE REF TO if_ixml_document,
            l_node            TYPE REF TO if_ixml_node,
            l_xmldata         TYPE string.
      DATA: l_elem            TYPE REF TO if_ixml_element,
            l_root_node       TYPE REF TO if_ixml_node,
            l_next_node       TYPE REF TO if_ixml_node,
            l_name            TYPE string,
            l_iterator        TYPE REF TO if_ixml_node_iterator.
      DATA: l_xml_table       TYPE TABLE OF t_xml_line,
            l_xml_line        TYPE t_xml_line,
            l_xml_table_size  TYPE i.
      DATA: l_filename        TYPE string.
      PARAMETERS: pa_file TYPE char1024 DEFAULT 'c:temporders_dtd.xml'.
    * Validation of XML file: Only DTD included in xml document is supported
      PARAMETERS: pa_val  TYPE char1 AS CHECKBOX.
      START-OF-SELECTION.
    *   Creating the main iXML factory
        l_ixml = cl_ixml=>create( ).
    *   Creating a stream factory
        l_streamfactory = l_ixml->create_stream_factory( ).
        PERFORM get_xml_table CHANGING l_xml_table_size l_xml_table.
    *   wrap the table containing the file into a stream
        l_istream = l_streamfactory->create_istream_itable( table = l_xml_table
                                                        size  = l_xml_table_size ).
    *   Creating a document
        l_document = l_ixml->create_document( ).
    *   Create a Parser
        l_parser = l_ixml->create_parser( stream_factory = l_streamfactory
                                          istream        = l_istream
                                          document       = l_document ).
    *   Validate a document
        IF pa_val EQ 'X'.
          l_parser->set_validating( mode = if_ixml_parser=>co_validate ).
        ENDIF.
    *   Parse the stream
        IF l_parser->parse( ) NE 0.
          IF l_parser->num_errors( ) NE 0.
            DATA: parseerror TYPE REF TO if_ixml_parse_error,
                  str        TYPE string,
                  i          TYPE i,
                  count      TYPE i,
                  index      TYPE i.
            count = l_parser->num_errors( ).
            WRITE: count, ' parse errors have occured:'.
            index = 0.
            WHILE index < count.
              parseerror = l_parser->get_error( index = index ).
              i = parseerror->get_line( ).
              WRITE: 'line: ', i.
              i = parseerror->get_column( ).
              WRITE: 'column: ', i.
              str = parseerror->get_reason( ).
              WRITE: str.
              index = index + 1.
            ENDWHILE.
          ENDIF.
        ENDIF.
    *   Process the document
        IF l_parser->is_dom_generating( ) EQ 'X'.
          PERFORM process_dom USING l_document.
        ENDIF.
    *&      Form  get_xml_table
      FORM get_xml_table CHANGING l_xml_table_size TYPE i
                                  l_xml_table      TYPE STANDARD TABLE.
    *   Local variable declaration
        DATA: l_len      TYPE i,
              l_len2     TYPE i,
              l_tab      TYPE tsfixml,
              l_content  TYPE string,
              l_str1     TYPE string,
              c_conv     TYPE REF TO cl_abap_conv_in_ce,
              l_itab     TYPE TABLE OF string.
        l_filename = pa_file.
    *   upload a file from the client's workstation
        CALL METHOD cl_gui_frontend_services=>gui_upload
          EXPORTING
            filename   = l_filename
            filetype   = 'BIN'
          IMPORTING
            filelength = l_xml_table_size
          CHANGING
            data_tab   = l_xml_table
          EXCEPTIONS
            OTHERS     = 19.
        IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                     WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
    *   Writing the XML document to the screen
        CLEAR l_str1.
        LOOP AT l_xml_table INTO l_xml_line.
          c_conv = cl_abap_conv_in_ce=>create( input = l_xml_line-data replacement = space  ).
          c_conv->read( IMPORTING data = l_content len = l_len ).
          CONCATENATE l_str1 l_content INTO l_str1.
        ENDLOOP.
        l_str1 = l_str1+0(l_xml_table_size).
        SPLIT l_str1 AT cl_abap_char_utilities=>cr_lf INTO TABLE l_itab.
        WRITE: /.
        WRITE: /' XML File'.
        WRITE: /.
        LOOP AT l_itab INTO l_str1.
          REPLACE ALL OCCURRENCES OF cl_abap_char_utilities=>horizontal_tab IN
            l_str1 WITH space.
          WRITE: / l_str1.
        ENDLOOP.
        WRITE: /.
      ENDFORM.                    "get_xml_table
    *&      Form  process_dom
      FORM process_dom USING document TYPE REF TO if_ixml_document.
        DATA: node      TYPE REF TO if_ixml_node,
              iterator  TYPE REF TO if_ixml_node_iterator,
              nodemap   TYPE REF TO if_ixml_named_node_map,
              attr      TYPE REF TO if_ixml_node,
              name      TYPE string,
              prefix    TYPE string,
              value     TYPE string,
              indent    TYPE i,
              count     TYPE i,
              index     TYPE i.
        node ?= document.
        CHECK NOT node IS INITIAL.
        ULINE.
        WRITE: /.
        WRITE: /' DOM-TREE'.
        WRITE: /.
        IF node IS INITIAL. EXIT. ENDIF.
    *   create a node iterator
        iterator  = node->create_iterator( ).
    *   get current node
        node = iterator->get_next( ).
    *   loop over all nodes
        WHILE NOT node IS INITIAL.
          indent = node->get_height( ) * 2.
          indent = indent + 20.
          CASE node->get_type( ).
            WHEN if_ixml_node=>co_node_element.
    *         element node
              name    = node->get_name( ).
              nodemap = node->get_attributes( ).
              WRITE: / 'ELEMENT  :'.
              WRITE: AT indent name COLOR COL_POSITIVE INVERSE.
              IF NOT nodemap IS INITIAL.
    *           attributes
                count = nodemap->get_length( ).
                DO count TIMES.
                  index  = sy-index - 1.
                  attr   = nodemap->get_item( index ).
                  name   = attr->get_name( ).
                  prefix = attr->get_namespace_prefix( ).
                  value  = attr->get_value( ).
                  WRITE: / 'ATTRIBUTE:'.
                  WRITE: AT indent name  COLOR COL_HEADING INVERSE, '=',
                                   value COLOR COL_TOTAL   INVERSE.
                ENDDO.
              ENDIF.
            WHEN if_ixml_node=>co_node_text OR
                 if_ixml_node=>co_node_cdata_section.
    *         text node
              value  = node->get_value( ).
              WRITE: / 'VALUE     :'.
              WRITE: AT indent value COLOR COL_GROUP INVERSE.
          ENDCASE.
    *     advance to next node
          node = iterator->get_next( ).
        ENDWHILE.
      ENDFORM.                    "process_dom
    reward  points  if it is use fulll ....
    Girish

  • HT1414 When updating my iphone with new software it came up on screen with the cable and itunes sign (which is what I should get when restoration has been completed) yet it is still saying restore. I have tried 3 times and the screen won't change. HELP!

    When updating my iphone with new software it came up on screen with the cable and itunes sign (which is what I should get when restoration has been completed) yet it is still saying restore. I have tried 3 times and the screen won't change. HELP!

    If the sign does not go away it has not completed the restore. So you are incorrect when you say it "keeps completing the restore" if that message is still displayed.
    Do you get an error message? If so, what is the error number?

  • Updated iPhone 4 with ios 5 using new MacBook!

    Ive had a MacBook as my laptop broke. So set it all up
    &amp; decided to plug my iPhone 4 in for iOS 5 update. The following is what I done:
    1. Backed up my iPhone to iTunes before going out. Took ages!!!!
    2. Started to download iOS 5 to iTunes &amp; went out.
    3. Next morning updated iOS 5 to my iPhone 4
    4. Restored my phone
    Conclusion :
    Phone has only some of my apps (most recent arent there), all of my photos, videos,
    texts, call history, notes, bookmarks. But no contacts!!! So basically my phone is exactly
    the same apart from no contacts &amp; half apps missing.
    Can someone explain what is going on??
    The texts &amp; phone history dont show no names just numbers as if I never had contacts.
    Seen a lot of people mention check iCloud settings etc. Am I not right in saying I didn't have
    iCloud until I updated to ios 5??
    This is very frustrated please someone with knowledge &amp; know apples complications (which is
    everything) reply with their views on this.

    You can only sync an iPhone to ONE computer.
    So if you plugged it into a new computer and did an update, then yes all your data is lost.
    If you still have your old computer, or it's harddrive, you can plug the iphone into it and restore from the last back up.
    There is a warning on the screen of new computers telling you that all data will be lost if you sync your iPhone.
    So users have to accept this window to continue.

  • Updating a document with category metadata using updateDocument(): error!

    I have studied the sample code and the API docs, and I feel pretty sure I am coding it according to the docs, but I cannot successfully update a document with category metadata. I always get a MetaDataSchemaInvalid exception.
    My process goes like this:
    1. Upload a new file, creating a new document publicobject.
    2. Create a CATEGORY_DEFINITION with all the metadata name/value pairs I wish to write.
    3. Call FileManager.updateDocument() with this CATEGORY_DEFINITION.
    My process differs from the docs in that I am first uploading the document, and then adding the metadata as a second step. I want to get it working this way to make my system more modular. I do not want to make my upload method dependent upon metadata attributes, and vice versa.
    Step 1 is working fine. The document is being uploaded to the right folder. Good to go.
    Step 3 is where I get the error. If the error is my fault, then it must be a result of what I do in step 2. The structure of my CATEGORY_DEFINITION must be messed up.
    Here is my code for creating the CATEGORY_DEFINITION. The Document class is my own entity that encapsulates the binary data for a document, as well as the metadata attributes that are to be assigned to the document once it is uploaded into Content Services. We don't need to worry about where the data comes from. Just assume the raw data is correct.
    public NamedValue[] newCategoryAttributeDefinition(Document document, String categoryDisplayName) throws WebserviceClientException {
    /* Get the category attribute name-value pairs as a 2-D array. */
    Map metadataMap = document.getMetadataParser().getAttributeNameMapping();
    List categoryDefinitionAttributeList = new ArrayList();
    for(Iterator i = metadataMap.entrySet().iterator(); i.hasNext();) {
    Map.Entry entry = (Map.Entry)i.next();
    String name = "CUSTOM_" + (String)entry.getKey();
    Object value = entry.getValue();
    if(value != null) {
    categoryDefinitionAttributeList.add(new Object[] { name, value });
    Object[][] categoryDefinitionAttributeArray = new Object[categoryDefinitionAttributeList.size()][];
    int index = 0;
    for(Iterator i = categoryDefinitionAttributeList.iterator(); i.hasNext();) {
    Object[] value = (Object[])i.next();
    categoryDefinitionAttributeArray[index++] = value;
    /* Create the NamedValue tree that describes this category's attribute values. */
    Long categoryId = new Long(getCategoryClassId(categoryDisplayName));
    NamedValue[] categoryAttributeDefinition = WebserviceUtils.newNamedValueArray(new Object[][] {
    { Options.CATEGORY_ID, categoryId },
    { Options.CATEGORY_DEFINITION_ATTRIBUTES, WebserviceUtils.newNamedValueArray(categoryDefinitionAttributeArray) }
    NamedValue[] categoryDefinition = WebserviceUtils.newNamedValueArray(Options.CATEGORY_DEFINITION, categoryAttributeDefinition);
    return categoryDefinition;
    And below is the resulting CATEGORY_DEFINITION, as seen in a jdb debugger.
    -- The OPT.CATEGORY_ID value is equal to the ID column in ODMV_SCHEMACATEGORY, otherwise known as the category class id.
    -- My OPT.CATEGORY_DEFINITION_ATTRIBUTES tree for this document has the 4 attributes that I want to set. The category has more than these 4 attributes; I am not populating every attribute. None of the attributes are required, and all are editable. I don't need to include every attribute in my CATEGORY_DEFINITION, even if the values are null, do I? Also, all the attribute names start with "CUSTOM_", which I believe is necessary - right?
    -- I am setting only the OPT.CATEGORY_ID and OPT.CATEGORY_DEFINITION_ATTRIBUTES. Am I missing some other required attribute?
    http-8888-Processor5[1] http-8888-Processor5[1] dump categoryDefinition
    categoryDefinition = {
    instance of oracle.ifs.fdk.NamedValue(id=2562)
    http-8888-Processor5[1] dump categoryDefinition[0]
    categoryDefinition[0] = {
    name: "OPT.CATEGORY_DEFINITION"
    value: instance of oracle.ifs.fdk.NamedValue[2] (id=2559)
    __equalsCalc: null
    __hashCodeCalc: false
    typeDesc: instance of org.apache.axis.description.TypeDesc(id=2564)
    class$oracle$ifs$fdk$NamedValue: instance of java.lang.Class(reflected class=oracle.ifs.fdk.NamedValue, id=1975)
    http-8888-Processor5[1] dump categoryDefinition[0].value[0]
    categoryDefinition[0].value[0] = {
    name: "OPT.CATEGORY_ID"
    value: instance of java.lang.Long(id=2558)
    __equalsCalc: null
    __hashCodeCalc: false
    typeDesc: instance of org.apache.axis.description.TypeDesc(id=2564)
    class$oracle$ifs$fdk$NamedValue: instance of java.lang.Class(reflected class=oracle.ifs.fdk.NamedValue, id=1975)
    http-8888-Processor5[1] dump categoryDefinition[0].value[0].value.toString()
    categoryDefinition[0].value[0].value.toString() = "60068"
    http-8888-Processor5[1] dump categoryDefinition[0].value[1]
    categoryDefinition[0].value[1] = {
    name: "OPT.CATEGORY_DEFINITION_ATTRIBUTES"
    value: instance of oracle.ifs.fdk.NamedValue[4] (id=2570)
    __equalsCalc: null
    __hashCodeCalc: false
    typeDesc: instance of org.apache.axis.description.TypeDesc(id=2564)
    class$oracle$ifs$fdk$NamedValue: instance of java.lang.Class(reflected class=oracle.ifs.fdk.NamedValue, id=1975)
    http-8888-Processor5[1] dump categoryDefinition[0].value[1].value[0]
    categoryDefinition[0].value[1].value[0] = {
    name: "CUSTOM_From"
    value: "SA"
    __equalsCalc: null
    __hashCodeCalc: false
    typeDesc: instance of org.apache.axis.description.TypeDesc(id=2564)
    class$oracle$ifs$fdk$NamedValue: instance of java.lang.Class(reflected class=oracle.ifs.fdk.NamedValue, id=1975)
    http-8888-Processor5[1] dump categoryDefinition[0].value[1].value[1]
    categoryDefinition[0].value[1].value[1] = {
    name: "CUSTOM_Footer Number"
    value: "PRM 34-318"
    __equalsCalc: null
    __hashCodeCalc: false
    typeDesc: instance of org.apache.axis.description.TypeDesc(id=2564)
    class$oracle$ifs$fdk$NamedValue: instance of java.lang.Class(reflected class=oracle.ifs.fdk.NamedValue, id=1975)
    http-8888-Processor5[1] dump categoryDefinition[0].value[1].value[2]
    categoryDefinition[0].value[1].value[2] = {
    name: "CUSTOM_To"
    value: "PROJECT TEAM"
    __equalsCalc: null
    __hashCodeCalc: false
    typeDesc: instance of org.apache.axis.description.TypeDesc(id=2564)
    class$oracle$ifs$fdk$NamedValue: instance of java.lang.Class(reflected class=oracle.ifs.fdk.NamedValue, id=1975)
    http-8888-Processor5[1] dump categoryDefinition[0].value[1].value[3]
    categoryDefinition[0].value[1].value[3] = {
    name: "CUSTOM_Subject"
    value: "Riverside Energy Resource Center Meeting Minutes-Internal"
    __equalsCalc: null
    __hashCodeCalc: false
    typeDesc: instance of org.apache.axis.description.TypeDesc(id=2564)
    class$oracle$ifs$fdk$NamedValue: instance of java.lang.Class(reflected class=oracle.ifs.fdk.NamedValue, id=1975)
    After building this CATEGORY_DEFINITION, I go on to attempt an update to the document with this information. Here is the method I call. I always fall into the catch(), and the error dump follows the code snippet. Unfortunately, the error doesn't tell me a lot about what's wrong. That's why I am asking for help in spotting any conspicuous errors in my CATEGORY_DEFINITION.
    public Item addCategoryToDocument(Item documentItem,
    NamedValue[] categoryDefinition)
    throws WebserviceClientException {
    FileManager fileManager = getWebserviceClient().getFileManager();
    Item documentItemWithCategory = null;
    try {
    documentItemWithCategory = fileManager.updateDocument(documentItem.getId(), categoryDefinition, null);
    } catch(Exception e) {
    throw new WebserviceClientException("Could not update document with category definition.", e);
    return documentItemWithCategory;
    http-8888-Processor4[1] http-8888-Processor4[1] dump e
    e = {
    detailedErrorCode: "ORACLE.FDK.AggregateError"
    errorCode: "ORACLE.FDK.AggregateError"
    exceptionEntries: instance of oracle.ifs.fdk.FdkExceptionEntry[1] (id=2691)
    info: null
    serverStackTraceId: ""
    __equalsCalc: null
    __hashCodeCalc: false
    typeDesc: instance of org.apache.axis.description.TypeDesc(id=2694)
    class$oracle$ifs$fdk$FdkException: instance of java.lang.Class(reflected class=oracle.ifs.fdk.FdkException, id=1972)
    org.apache.axis.AxisFault.log: instance of org.apache.commons.logging.impl.Log4JLogger(id=2695)
    org.apache.axis.AxisFault.faultCode: instance of javax.xml.namespace.QName(id=2696)
    org.apache.axis.AxisFault.faultSubCode: null
    org.apache.axis.AxisFault.faultString: "ORACLE.FDK.AggregateError:ORACLE.FDK.AggregateError"
    org.apache.axis.AxisFault.faultActor: null
    org.apache.axis.AxisFault.faultDetails: instance of java.util.Vector(id=2698)
    org.apache.axis.AxisFault.faultNode: null
    org.apache.axis.AxisFault.faultHeaders: null
    org.apache.axis.AxisFault.class$org$apache$axis$AxisFault: instance of java.lang.Class(reflected class=org.apache.axis.AxisFault, id=1928)
    java.rmi.RemoteException.serialVersionUID: -5148567311918794206
    java.rmi.RemoteException.detail: null
    java.lang.Exception.serialVersionUID: -3387516993124229948
    java.lang.Throwable.serialVersionUID: -3042686055658047285
    java.lang.Throwable.detailMessage: null
    java.lang.Throwable.cause: null
    java.lang.Throwable.stackTrace: instance of java.lang.StackTraceElement[76] (id=2699)
    http-8888-Processor4[1] dump e.exceptionEntries[0]
    e.exceptionEntries[0] = {
    detailedErrorCode: "ORACLE.FDK.MetadataSchemaInvalid"
    errorCode: "ORACLE.FDK.MetaDataError"
    id: 348018
    info: null
    serverStackTraceId: ""
    __equalsCalc: null
    __hashCodeCalc: false
    typeDesc: instance of org.apache.axis.description.TypeDesc(id=2705)
    class$oracle$ifs$fdk$FdkExceptionEntry: instance of java.lang.Class(reflected class=oracle.ifs.fdk.FdkExceptionEntry, id=1973)
    }

    1 – For an existing document, how do I determine what category instances have been applied to it and their attribute values
    FdkSession session = …;
    // Consider we have an existing item myDoc of type document
    Item myDoc = …;
    CommonManager cm = Managers.getCommonManager(session);
    AttributeRequest[] requestedAttributes = new AttributeRequest[]
      // The Categories associated with this Document, if any
    new AttributeRequest(Attributes.CATEGORIES,
      // sub attributerequest
      new AttributeRequest[] {
        // the actual attributes name/values for the category instance – returns a namedvalue array
        new AttributeRequest(Attributes.CUSTOM_ALL,null),
        // the actual category class for the category instance – returns an item
        new AttributeRequest(Attributes.CATEGORY_CLASS_OBJECT,null)
    myDoc = cm.getItem(myDoc.getId(), requestedAttributes);
    log(myDoc); /* output could look like:
    (Item) 14385 DOCUMENT sample3.doc
    requested attributes ...
    CATEGORIES (Item[])=
    (Item) 14387 CATEGORY
    requested attributes ...
    CUSTOM_ALL (NamedValue[])=
    CUSTOM_14352=true (Boolean)
    CUSTOM_14353=Internal Only Pending Review (String)
    CATEGORY_CLASS_OBJECT (Item)=
    (Item) 14354 CATEGORY_CLASS 5044-14351
    This means, that for document sample3.doc, we have 1 instance of a category object applied to it.
    The category object instance has id 14387. The instance is of a category class object type 14354. The instance has two attributes with internal names CUSTOM_14352, and CUSTOM_15353. The values of these attributes are of type Boolean and String respectively.
    2 - How do I update an attribute value of an existing category instance applied to an item
    FdkSession session = …;
    // Consider we have an existing item myDoc of type document
    Item myDoc = …;
    .. perform code along the lines of that shown in step1 above to determine existing category instance info on the document ..
    FileManager fm = Managers.getFileManager(session);
    NamedValue[] categoryInstanceAttributes = new NamedValue[] {
      // use the internal attribute name for all attributes
      new NamedValue("CUSTOM_14352", Boolean.FALSE),
      new NamedValue("CUSTOM_14352", "Company Confidential")
    NamedValue[] categoryDef = new NamedValue[] {
      // the category instance that we are updating
    new NamedValue(Options.UPDATE_CATEGORY_ID,new Long(14387)),
    // the updated values of the category instance
      new NamedValue(Options.CATEGORY_DEFINITION_ATTRIBUTES, categoryInstanceAttributes)
    NamedValue[] documentDef = new NamedValue[] {
    new NamedValue(Options.CATEGORY_DEFINITION, categoryDef)
    requestedAttributes = ...
    myDoc = fm.updateDocument(myDoc.getId(),documentDef,requestedAttributes) ;
    3 – For a document item X, what is the associated category configuration which could include
    a) what are the category objects I can apply on it (either explicitly restricted by way of ALLOWED_CATEGORIES on the folder configuration, or any site/domain category by way of ALLOW_ALL_CATEGORIES)
    b) is there any attribute overrides
    c) is there any enforced categories
    FdkSession session = …;
    // Consider we have an existing item myDoc of type document
    Item myDoc = …;
    CommonManager cm = Managers.getCommonManager(session);
    AttributeRequest[] categoryObjectAttributes = new AttributeRequest[]
    // What is the category object class name
    new AttributeRequest(Attributes.CLASS_NAME,null),
      // What is the category classobject display name
    new AttributeRequest(Attributes.DISPLAY_NAME,null),
    // get attributes inherited and introduced by category object
    new AttributeRequest(Attributes.METADATA_ATTRIBUTES,
      new AttributeRequest[]
        // Attribute internal name
        new AttributeRequest(Attributes.ATTRIBUTE_NAME,null),
        // Attribute display name
        new AttributeRequest(Attributes.DISPLAY_NAME,null),
        new AttributeRequest(Attributes.ATTRIBUTE_TYPE,null),
        new AttributeRequest(Attributes.ATTRIBUTE_DEFAULT,null),
        new AttributeRequest(Attributes.ATTRIBUTE_ENUMERATION,null),
        new AttributeRequest(Attributes.ATTRIBUTE_REQUIRED,null),
        new AttributeRequest(Attributes.ATTRIBUTE_SETTABLE,null),
        new AttributeRequest(Attributes.ATTRIBUTE_UPDATEABLE,null),
        new AttributeRequest(Attributes.ATTRIBUTE_HIDDEN,null),
        new AttributeRequest(Attributes.ATTRIBUTE_PROMPTED,null),
        new AttributeRequest(Attributes.ATTRIBUTE_OVERRIDEABLE,null),
    AttributeRequest[] overrideAttributes = new AttributeRequest[]
    // id of the attribute to be overridden
    new AttributeRequest(Attributes.ATTRIBUTE_OVERRIDE_ATTRIBUTE,null),
    // id of the category class object to which this attribute override applies
    new AttributeRequest(Attributes.ATTRIBUTE_OVERRIDE_CATEGORY_CLASS,null),
    // new default value
    new AttributeRequest(Attributes.ATTRIBUTE_OVERRIDE_DEFAULT,null),
    // should attribute now be prompted
    new AttributeRequest(Attributes.ATTRIBUTE_OVERRIDE_PROMPT,null),
    // is the attribute now required
    new AttributeRequest(Attributes.ATTRIBUTE_OVERRIDE_REQUIRED,null),
    // can instances of this attribute have there value updated
    new AttributeRequest(Attributes.ATTRIBUTE_OVERRIDE_SETTABLE,null),
    AttributeRequest[] requestedAttributes = new AttributeRequest[]
    // what is the category configuration for the item
    new AttributeRequest(Attributes.CATEGORY_CONFIGURATION,
      new AttributeRequest[]
        // Is the category configuration enabled
         new AttributeRequest(Attributes.CONFIGURATION_ENABLED,null),
         // Can the category configuration be overridden or is it final
        new AttributeRequest(Attributes.CONFIGURATION_FINAL,null),
        // What are the required categories for the category configuration and associated attribute information
        new AttributeRequest(Attributes.REQUIRED_CATEGORIES,categoryObjectAttributes),
        // Can any categories in the site be utilized
        new AttributeRequest(Attributes.ALLOW_ALL_CATEGORIES,null),
        // or .. are we restricting the categories to only the following
        new AttributeRequest(Attributes.ALLOWED_CATEGORIES,categoryObjectAttributes),
        // are there any attribute overrides on category object attributes for this category config?
        new AttributeRequest(Attributes.ATTRIBUTE_OVERRIDES,overrideAttributes)
    log(cm.getItem(myDoc.getId(), requestedAttributes); /*
    If ALLOW_ALL_CATEGORIES is set to true, any category in the domain can be utilized that is not abstract. To determine these, the domain item has a property CATEGORY_CLASSES that returns all category objects in the domain. It also has a property ROOT_CATEGORY_CLASSES which returns just the top level categories (those that have no custom category superclass). You would create a sub AttributeRequest[] checking for CLASS_ABSTRACT when requesting the appropriate categories attribute from the domain.
    If ALLOW_ALL_CATEGORIES is set to false, the applicable categories objects that can be utilized on items contained in the folder is determined by the items contained in the ALLOWED_CATEGORIES attribute of the category configuration.
    Finally, the REQUIRED_CATEGORIES attribute list the category items that must be applied to all new items added to the folder.
    4 – How do I manually apply an instance of a category to an existing item
    FdkSession session = …;
    // Consider we have an existing item myDoc of type document
    Item myDoc = …;
    .. use techniques in step3 above to determine what category objects that you planning to apply to the document ..
    .. if the category configuration on the item has ALLOW_ALL_CATEGORIES set to true, you can use any category in the system
    .. otherwise, you must use a category defined in the allowed categories list
    .. the code here is essentially the same as step2 above
    .. you must utilize internal attribute names, and specify the id of the category class object
    FileManager fm = Managers.getFileManager(session);
    NamedValue[] categoryInstanceAttributes = new NamedValue[] {
      // use the internal attribute name for all attributes
      new NamedValue("CUSTOM_14352", Boolean.FALSE),
      new NamedValue("CUSTOM_14352", "Company Confidential")
    NamedValue[] categoryDef = new NamedValue[] {
      // the id of the category object class for which this new category will be an instance of
    new NamedValue(Options.CATEGORY_CLASS_ID,new Long(14354)),
    // the updated values of the category instance
      new NamedValue(Options.CATEGORY_DEFINITION_ATTRIBUTES, categoryInstanceAttributes)
    NamedValue[] documentDef = new NamedValue[] {
    new NamedValue(Options.CATEGORY_DEFINITION, categoryDef)
    requestedAttributes = ...
    myDoc = fm.updateDocument(myDoc.getId(),documentDef,requestedAttributes);
    // Note – it is possible for one to peform creation, updating, and deletion of various category instances for an existing item in the fileManager updateDocument call!
    // you simply supply multiple Options.CATEGORY_DEFINITIONs to the fm.updateDocument call along with any Options.REMOVE_CATEGORY_IDs 5 – How do I specify a category instance when creating a new item
    FdkSession session = …;
    .. use techniques in step3 above to determine what category objects that you planning to apply to the new document ..
    .. you get the category configuration information from the destination folder!!!
    Item destinationFolder = …;
    CommonManager cm = Managers.getCommonManager(session);
    AttributeRequest[] requestedAttributes = new AttributeRequest[]
    // what is the category configuration for the item
    new AttributeRequest(Attributes.CATEGORY_CONFIGURATION,
    destinationFolder = cm.getItem(destinationFolder.getId(),requestedAttributes);.. if the category configuration on the folder item has ALLOW_ALL_CATEGORIES set to true, you can use any category in the system
    .. otherwise, you must use a category defined in the allowed categories list
    .. the code here is essentially the same as step2 above, just we are using createDocument and document definitions now
    .. you must utilize internal attribute names, and specify the id of the category class object
    FileManager fm = Managers.getFileManager(session);
    NamedValue[] categoryInstanceAttributes = new NamedValue[] {
      // use the internal attribute name for all attributes
      new NamedValue("CUSTOM_14352", Boolean.FALSE),
      new NamedValue("CUSTOM_14352", "Company Confidential")
    NamedValue[] categoryDef = new NamedValue[] {
      // the id of the category object class for which this new category will be an instance of
    new NamedValue(Options.CATEGORY_CLASS_ID,new Long(14354)),
    // the attribute values for this new category instance
      new NamedValue(Options.CATEGORY_DEFINITION_ATTRIBUTES, categoryInstanceAttributes)
    String destinationFile = "sample.doc";
    requestedAttributes = new AttributeRequest[]
      new AttributeRequest(Attributes.URL,null)
    Item docDef = fm.createDocumentDefinition(new NamedValue[]
      new NamedValue(Attributes.NAME, destinationFile),
    },requestedAttributes);
    String defURL = ...  // get URL from document definition
    doFileUpload(...)  // upload file using http put to defURL
    NamedValue[] documentDef = new NamedValue[] {
      new NamedValue(Options.USE_SAVED_DEFINITION,new Long(docDef.getId())),
    new NamedValue(Options.DESTFOLDER, new Long(destinationFolder.getId())),
    // specify character set if appropriate
      new NamedValue(Attributes.DOCUMENT_CHARACTER_SET,"ISO-8859-1"),
      // specify language if appropriate
    new NamedValue(Attributes.DOCUMENT_LANGUAGE,"ENGLISH"),
    // apply category instance information
    new NamedValue(Options.CATEGORY_DEFINITION, categoryDef),
    requestedAttributes = ...
    Item doc = fm.createDocument(documentDef,null, requestedAttributes);
    // Note – it is possible for one to peform creation of multiple category instances on a document at the same time
    // you simply supply multiple Options.CATEGORY_DEFINITIONs to the fm.createDocument call
    // Note – that if a folder has a category configuration containing required categories, and you do not specify
    // all applicable category definitions on createDocument, you will receive an FdkException along the lines of
    // missing metadata. You can catch this exception, and retry the createDocument call supplying the valid category definition(s).

  • Removing rows and inserting new rows with new data in JTAble!!! (Plz. help)

    I have a problem, The scenario is that when I click any folder that si in my JTable's first row, the table is update by removing all the rows and showing only the contents of my selected folder. Right now it's not removing the rows and instead throwing exceptions. The code is attached. The methods to look are upDateTabel(...) and clearTableData(....), after clearing all my rows then I proceed on adding my data to the Jtable and inserting rows but it's not being done. May be I have a problem in my DefaultTableModel class. Please see the code below what I am doing wrong and how should I do it. Any help is appreciated.
    Thanks
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.table.*;
    import javax.swing.border.*;
    import java.io.*;
    import java.text.SimpleDateFormat;
    import java.util.*;
    public class SimpleTable extends JPanel{
         /** Formats the date */
         protected SimpleDateFormat           formatter;
    /** variable to hold the date and time in a raw form for the directory*/
    protected long                          dateDirectory;
    /** holds the readable form converted date for the directories*/
    protected String                     dirDate;
    /** holds the readable form converted date for the files*/
    protected String                     fileDate;
    /** variable to hold the date and time in a raw form for the file*/
    protected long                          dateFile;
    /** holds the length of the file in bytes */
    protected long                         totalLen;
    /** convert the length to the wrapper class */
    protected Long                         longe;
    /** Vector to hold the sub directories */
    protected Vector                     subDir;
    /** holds the name of the selected directory */
    protected String                    dirNameHold;
    /** converting vector to an Array and store the values in this */
    protected File                     directoryArray[];
    /** hashtable to store the key-value pair */
    protected static Hashtable hashTable = new Hashtable();
    /** refer to the TableModel that is the default*/
    protected MyTableModel               tableModel;
    /** stores the path of the selected file */
    protected static String               fullPath;
    /** stores the currently selected file */
    protected static File selectedFilename;
    /** stores the extension of the selected file */
    protected static String           extension;
    protected int COLUMN_COUNT = 4;
         protected Vector data = new Vector( 0, 1 );
         protected final JTable table;
    /** holds the names of the columns */
    protected final String columnNames[] = {"Name", "Size", "Type", "Modified"};
    public SimpleTable(File directoryArray[])
              this.setLayout(new BorderLayout());
              this.setBorder( BorderFactory.createEmptyBorder( 0, 0, 0, 0 ) );
              (SimpleTable.hashTable).clear();
              formatter = new SimpleDateFormat("mm/dd/yyyy hh:mm aaa");
              for(int k = 0; k < directoryArray.length; k++)
                   if(directoryArray[k].isDirectory())
                        dateDirectory = directoryArray[k].lastModified();
                        dirDate = formatter.format(new java.util.Date(dateDirectory));
                        data.addElement( new MyObj( directoryArray[k].getName(), "", "File Folder", "" + dirDate ) );
                        (SimpleTable.hashTable).put(directoryArray[k].getName(), directoryArray[k]);                    
                   else if(directoryArray[k].isFile())
                        dateDirectory = directoryArray[k].lastModified();
                        fileDate = formatter.format(new java.util.Date(dateDirectory));
                        totalLen = directoryArray[k].length();
                        longe = new Long(totalLen);
                        data.addElement( new MyObj( directoryArray[k].getName(), longe + " Bytes", "", "" + fileDate ) );
                        (SimpleTable.hashTable).put(directoryArray[k].getName(), directoryArray[k]);
    tableModel = new MyTableModel();
              table = new JTable( tableModel );
              table.getTableHeader().setReorderingAllowed(false);
              table.setRowSelectionAllowed(false);
              table.setBorder( BorderFactory.createEmptyBorder( 0, 0, 0, 0 ) );
              table.setShowHorizontalLines(false);
              table.setShowVerticalLines(false);
              table.addMouseListener(new MouseAdapter()
    public void mouseReleased(MouseEvent e)
         Object eventTarget = e.getSource();
                        if( eventTarget == table )
                             upDateTable(table);
                             table.tableChanged( new javax.swing.event.TableModelEvent(tableModel) ) ;
              DefaultTableCellRenderer D_headerRenderer = (DefaultTableCellRenderer ) table.getTableHeader().getDefaultRenderer();
              table.getColumnModel().getColumn(0).setHeaderRenderer(D_headerRenderer );
              ((DefaultTableCellRenderer)D_headerRenderer).setToolTipText("File and Folder in the Current Folder");
    //Create the scroll pane and add the table to it.
    JScrollPane scrollPane = new JScrollPane(table);
    //Add the scroll pane to this window.
    this.add(scrollPane, BorderLayout.CENTER);
    * Searches the Hashtable and returns the path of the folder or the value.
    public File findPath(String value)
         return (File)((SimpleTable.hashTable).get(value));
    * This clears the previous data in the JTable
    public void clearTableData(JTable table)
         for(int row = 0; row < table.getRowCount() ; row++)
                   //for (int col = 0; col < table.getColumnCount() ; col++)
                        tableModel.deleteSelections( row );
              tableModel.fireTableStructureChanged();
              tableModel.fireTableRowsDeleted(0,table.getRowCount());
              //table.getModel().fireTableChanged(new TableModelEvent(table.getModel()));
    private void upDateTable(JTable table)
    if((table.getSelectedColumn() == 0) && ((table.getColumnName(0)).equals(columnNames[0])))
         dirNameHold =(String) table.getValueAt(table.getSelectedRow(),table.getSelectedColumn());
                   File argument = findPath(dirNameHold);
                   if(argument.isFile())
                        CMRDialog.fileNameTextField.setText(argument.getName());
                        try
                             fullPath = argument.getCanonicalPath();                          
                             selectedFilename = argument.getCanonicalFile();                          
    CMRDialog.filtersComboBox.removeAllItems();
                             extension = fullPath.substring(fullPath.lastIndexOf('.'));
                             CMRDialog.filtersComboBox.addItem("( " + extension + " )" + " File");
                        catch(IOException e)
                             System.out.println("THE ERROR IS " + e);
                        return;
                   else if(argument.isDirectory())
                        String path = argument.getName();
                             //find the system dependent file separator
                             //String fileSeparator = System.getProperty("file.separator");
                        CMRDialog.driveComboBox.addItem(" " + path);
              subDir = Search.subDirs(argument);
              /**TBD:- needs a method to convert the vector to an array and return the array */
              directoryArray = new File[subDir.size()];
                   int indexCount = 0;
                   /** TBD:- This is inefficient way of converting a vector to an array */               
                   Iterator e = subDir.iterator();               
                   while( e.hasNext() )
                        directoryArray[indexCount] = (File)e.next();
                        indexCount++;
              /** now calls this method and clears the previous data */
              clearTableData(table);     
                   (SimpleTable.hashTable).clear();
                   //data = new Object[this.getRowTotal(directoryArray)][this.getColumnTotal()];
                   formatter = new SimpleDateFormat("mm/dd/yyyy hh:mm aaa");
                   for(int k = 0; k < directoryArray.length; k++)
                        if(directoryArray[k].isDirectory())
                             dateDirectory = directoryArray[k].lastModified();
                             dirDate = formatter.format(new java.util.Date(dateDirectory));
                             data.addElement( new MyObj( directoryArray[k].getName(), "", "File Folder", "" + dirDate ) );
                             (SimpleTable.hashTable).put(directoryArray[k].getName(), directoryArray[k]);                    
                        else if(directoryArray[k].isFile())
                             dateDirectory = directoryArray[k].lastModified();
                             fileDate = formatter.format(new java.util.Date(dateDirectory));
                             totalLen = directoryArray[k].length();
                             longe = new Long(totalLen);
                             data.addElement( new MyObj( directoryArray[k].getName(), longe + " Bytes", "", "" + fileDate ) );
                             (SimpleTable.hashTable).put(directoryArray[k].getName(), directoryArray[k]);
              // tableModel.fireTableDataChanged();          
              // tableModel.fireTableRowsInserted(0,1);
              table.revalidate();
              table.validate();               
    class MyTableModel extends DefaultTableModel
              int totalRows;
              int totalCols;
              public MyTableModel()
                   super();
                   setColumnIdentifiers (columnNames);
                   this.totalRows = data.size();
                   this.totalCols = columnNames.length;
              // this will return the row count of your table
              public int getRowCount()
                   return totalRows;
              // this return the column count of your table
              public int getColumnCount()
                   return totalCols;
              // this return the data for each cell in your table
              public Object getValueAt(int row, int col)
                   MyObj obj = (MyObj)data.elementAt( row );
                   if( obj != null )
                        if( col == 0 ) return( obj.first );
                        else if( col == 1 ) return( obj.last );
                        else if( col == 2 ) return( obj.third );
                        else if( col == 3 ) return( obj.fourth );
                        else return( "" );
                   return "";
              // if you want your table to be editable then return true
              public boolean isCellEditable(int row, int col)
                   return false;
              // if your table is editable edit the data vector here and
              // call table.tableChanged(...)
              public void setValueAt(Object value, int row, int col)
              protected void deleteSelections (int rows)
                   try
                        removeRow(rows);
                   catch(ArrayIndexOutOfBoundsException e)
                        System.out.println("The error in the row index " + rows);
                   fireTableDataChanged() ;
    class MyObj
              String first;
              String last;
              String third;
              String fourth;
              public MyObj( String f, String l, String t, String fo )
                   this.first = f;
                   this.last = l;
                   this.third = t;
                   this.fourth = fo;
    #####################################

    The following code works fine but it doesn't show me the new updated date in my JTable. I tried to print the values that I am getting and it does give the values on the prompt but doesn't show me on the JTable only first two are shown and the rest of the table is filled with the same values. I don't know what's going on and am tired of this TableModel thing so pla. take a time to give me some suggestions. Thanks
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.table.*;
    import javax.swing.border.*;
    import java.io.*;
    import java.text.SimpleDateFormat;
    import java.util.*;
    public class SimpleTable extends JPanel {
         /** Formats the date */
         protected SimpleDateFormat           formatter;
    /** two-dimensional array to hold the information for each column */
    protected Object                     data[][];
    /** variable to hold the date and time in a raw form for the directory*/
    protected long                          dateDirectory;
    /** holds the readable form converted date for the directories*/
    protected String                     dirDate;
    /** holds the readable form converted date for the files*/
    protected String                     fileDate;
    /** variable to hold the date and time in a raw form for the file*/
    protected long                          dateFile;
    /** holds the length of the file in bytes */
    protected long                         totalLen;
    /** convert the length to the wrapper class */
    protected Long                         longe;
    /** Vector to hold the sub directories */
    protected Vector                     subDir;
    /** holds the name of the selected directory */
    protected String                    dirNameHold;
    /** converting vector to an Array and store the values in this */
    protected File                     directoryArray[];
    /** hashtable to store the key-value pair */
    protected static Hashtable hashTable = new Hashtable();
    /** refer to the TableModel that is the default*/
    protected DefaultTableModel      model;
    /** stores the path of the selected file */
    protected static String               fullPath;
    /** stores the currently selected file */
    protected static File selectedFilename;
    /** stores the extension of the selected file */
    protected static String           extension;
    protected Vector                     m = new Vector(0,1);
    /** holds the names of the columns */
    protected final String columnNames[] = {"Name", "Size", "Type", "Modified"};
    public SimpleTable(File directoryArray[])
              this.setLayout(new BorderLayout());
              this.setBorder( BorderFactory.createEmptyBorder( 0, 0, 0, 0 ) );
              (SimpleTable.hashTable).clear();
              data = new Object[this.getRowTotal(directoryArray)][this.getColumnTotal()];
              formatter = new SimpleDateFormat("mm/dd/yyyy hh:mm aaa");
              for(int k = 0; k < directoryArray.length; k++)
                   if(directoryArray[k].isDirectory())
                        data[k][0] = directoryArray[k].getName();
                        data[k][2] = "File Folder";
                        dateDirectory = directoryArray[k].lastModified();
                        dirDate = formatter.format(new java.util.Date(dateDirectory));
                        data[k][3] = dirDate;
                        (SimpleTable.hashTable).put(directoryArray[k].getName(), directoryArray[k]);                    
                   else if(directoryArray[k].isFile())
                        data[k][0] = directoryArray[k].getName();
                        totalLen = directoryArray[k].length();
                        longe = new Long(totalLen);
                        data[k][1] = longe + " Bytes";
                        dateFile = directoryArray[k].lastModified();
                        fileDate = formatter.format(new java.util.Date(dateFile));
                        data[k][3] = fileDate;
                        (SimpleTable.hashTable).put(directoryArray[k].getName(), directoryArray[k]);
    model = new DefaultTableModel();
    model.addTableModelListener( new TableModelListener(){
              public void tableChanged( javax.swing.event.TableModelEvent e )
                   System.out.println("************ I am inside the table changed method ********" );
              final JTable table = new JTable(model);
              table.getTableHeader().setReorderingAllowed(false);
              table.setRowSelectionAllowed(false);
              table.setBorder( BorderFactory.createEmptyBorder( 0, 0, 0, 0 ) );
              table.setShowHorizontalLines(false);
              table.setShowVerticalLines(false);
              table.addMouseListener(new MouseAdapter()
    /* public void mousePressed(MouseEvent e)
    //System.out.println("The clicked component is " + table.rowAtPoint(e.getPoint()) + "AND the number of clicks is " + e.getClickCount());
    /* if(e.getClickCount() >= 2 &&
    (table.getSelectedColumn() == 0) &&
    ((table.getColumnName(0)).equals(columnNames[0])))
         //System.out.println("The clicked component is " + table.rowAtPoint(e.getPoint()) + "AND the number of clicks is " + e.getClickCount());
         upDateTable(table);
    public void mouseReleased(MouseEvent e)
    //System.out.println("The clicked component is " + table.rowAtPoint(e.getPoint()) + "AND the number of clicks is " + e.getClickCount());
    /* if(e.getClickCount() >= 2 &&
    (table.getSelectedColumn() == 0) &&
    ((table.getColumnName(0)).equals(columnNames[0]))) */
         //System.out.println("The clicked component is " + table.rowAtPoint(e.getPoint()) + "AND the number of clicks is " + e.getClickCount());
         upDateTable(table);
              /** set the columns */
              for(int c = 0; c < columnNames.length; c++)
                   model.addColumn(columnNames[c]);
              /** set the rows */
              for(int r = 0; r < data.length; r++)
                   model.addRow(data[r]);
              DefaultTableCellRenderer D_headerRenderer = (DefaultTableCellRenderer ) table.getTableHeader().getDefaultRenderer();
              table.getColumnModel().getColumn(0).setHeaderRenderer(D_headerRenderer );
              ((DefaultTableCellRenderer)D_headerRenderer).setToolTipText("File and Folder in the Current Folder");
    //Create the scroll pane and add the table to it.
    JScrollPane scrollPane = new JScrollPane(table);
    //Add the scroll pane to this window.
    this.add(scrollPane, BorderLayout.CENTER);
    * Returns the number of columns
    public int getColumnTotal()
         return columnNames.length;
    * Returns the number of rows
    public int getRowTotal(Object directoryArray[])
         return directoryArray.length;
    private void upDateTable(JTable table)
    if((table.getSelectedColumn() == 0) && ((table.getColumnName(0)).equals(columnNames[0])))
         dirNameHold =(String) table.getValueAt(table.getSelectedRow(),table.getSelectedColumn());
                   File argument = findPath(dirNameHold);
                   if(argument.isFile())
                        CMRDialog.fileNameTextField.setText(argument.getName());
                        try
                             fullPath = argument.getCanonicalPath();                          
                             selectedFilename = argument.getCanonicalFile();                          
    CMRDialog.filtersComboBox.removeAllItems();
                             extension = fullPath.substring(fullPath.lastIndexOf('.'));
                             CMRDialog.filtersComboBox.addItem("( " + extension + " )" + " File");
                        catch(IOException e)
                             System.out.println("THE ERROR IS " + e);
                        return;
                   else if(argument.isDirectory())
                        String path = argument.getName();
                             //find the system dependent file separator
                             //String fileSeparator = System.getProperty("file.separator");
                        CMRDialog.driveComboBox.addItem(" " + path);
              subDir = Search.subDirs(argument);
              /**TBD:- needs a method to convert the vector to an array and return the array */
              directoryArray = new File[subDir.size()];
                   int indexCount = 0;
                   /** TBD:- This is inefficient way of converting a vector to an array */               
                   Iterator e = subDir.iterator();               
                   while( e.hasNext() )
                        directoryArray[indexCount] = (File)e.next();
                        indexCount++;
              /** now calls this method and clears the previous data */
              clearTableData(table);     
                   (SimpleTable.hashTable).clear();
                   data = new Object[this.getRowTotal(directoryArray)][this.getColumnTotal()];
                   formatter = new SimpleDateFormat("mm/dd/yyyy hh:mm aaa");
                   m.clear();
                   data = null;
                   data = new Object[this.getRowTotal(directoryArray)][this.getColumnTotal()];
                   for(int k = 0; k < directoryArray.length; k++)
                        if(directoryArray[k].isDirectory())
                        System.out.println("Inside the if part");
                             data[k][0] = directoryArray[k].getName();
                             table.setValueAt(directoryArray[k].getName(),k,0);
                             //model.fireTableCellUpdated(k,0);
                             data[k][2] = "File Folder";
                             table.setValueAt("File Folder",k,2);
                             //model.fireTableCellUpdated(k,2);
                             dateDirectory = directoryArray[k].lastModified();
                             dirDate = formatter.format(new java.util.Date(dateDirectory));
                             data[k][3] = dirDate;
                             table.setValueAt(dirDate,k,3);
                             //model.fireTableCellUpdated(k,3);
                             (SimpleTable.hashTable).put(directoryArray[k].getName(), directoryArray[k]);
                             m.add(data);
                             model.addRow(m);
                             model.fireTableDataChanged();                              
                        else if(directoryArray[k].isFile())
                   System.out.println("******* Inside the else part *******");
                             data[k][0] = directoryArray[k].getName();
                   System.out.println("The Name is == " + data[k][0]);
                             table.setValueAt(directoryArray[k].getName(),k,0);
                   System.out.println("The table cell value of the name is == " + table.getValueAt(k,0));
                             //model.fireTableCellUpdated(k,0);
                             totalLen = directoryArray[k].length();
                             longe = new Long(totalLen);
                             data[k][1] = longe + " Bytes";
                   System.out.println("The length == " + data[k][1]);
                             table.setValueAt(longe + " Bytes",k,1);
                   System.out.println("The table cell value of the length is == " + table.getValueAt(k,1));
                             //model.fireTableCellUpdated(k,0);
                             dateFile = directoryArray[k].lastModified();
                             fileDate = formatter.format(new java.util.Date(dateFile));
                             data[k][3] = fileDate;
                   System.out.println("The modified date == " + data[k][3]);
                             table.setValueAt(fileDate,k,3);
                   System.out.println("The table cell value of the name is == " + table.getValueAt(k,3));
                             //model.fireTableCellUpdated(k,0);
                             (SimpleTable.hashTable).put(directoryArray[k].getName(), directoryArray[k]);                    }
                             m.add(data);
                             model.addRow(m);
                             model.fireTableDataChanged();     
              // model.fireTableDataChanged();          
              // model.fireTableRowsInserted(0,1);
              table.revalidate();
              table.validate();               
         else
    * Searches the Hashtable and returns the path of the folder or the value.
    public File findPath(String value)
         return (File)((SimpleTable.hashTable).get(value));
    * This clears the previous data in the JTable
    public void clearTableData(JTable table)
         for(int row = 0; row < table.getRowCount() ; row++)
                   for (int col = 0; col < table.getColumnCount() ; col++)
                        table.setValueAt(null, row , col);
              model.fireTableStructureChanged();
    ###

  • REUSE_ALV_GRID_DISPLAY - updating the database with new values

    Hi,
    I am using the function module 'REUSE_ALV_GRID_DISPLAY' to display records. I have managed to open a field for input/edit mode. Once this data has been changed , where will this data be? I have checked the internal table - no joy. I need to use this new/changed data to update the database with the new values.
    Thanks,
    Leanne

    Hi,
    The data is stored in table tab. After the changes the data does not reflect in table tab. Where can I get the data so that I can update my database?
    I have coded the process as follows:
        when '&SUSPEND'.
          loop at tab
            where box = 'X'.
              update zzzz
                set status       = 'SP'
          endloop.
    Regards,
    Leanne

Maybe you are looking for

  • Portal favorites not displaying the iview.

    Hi Team, We have a home role with a welcome page which is the first role to be displayed to every user logged in to portal. Now we have enabled the option "Add to Portal favorites" to the portal objects. So when a report (BI / Bo report) is added to

  • Memory Leak with GotoAndStop()

    I am trying to track down a solution to a memory leak within an embedded video.  If I embed a video on the timeline and then run gotoAndStop or gotoAndPlay to a specific frame every time the frame changes it takes in more memory until it crashes at a

  • Missing InfoObjects in Business Content for Higher Education & Research

    Hello According to the SAP documentation "[Guideline u2013 BW Content 3.53 and 7.03 for Student Lifecycle Management|http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/a0780530-bf03-2b10-d5ad-e9e8a53def23]" there should be an InfoObject 0HE_EVPRS

  • Repairing the library every time iPhoto launches. Why??

    I just upgraded my MacBook Pro to Mavericks and updated iPhoto. Everytime I start iPhoto it says that it needs to "Upgrade" the library to the latest version. Then it says that the library has to be repaired and I go through this process, the library

  • Audio doing Wierd things!!

    Just wondered if anyone has experienced this little querk? All was well, but my captivate has just started to do this today, and it's somewhat annoying and causing me unneccessary re-work. Problem is this: I am recording narration onto a captivate pr