Next row in JTable (skip disabled rows)

When I press the down button on my keyboard how can I move to the next available row. It should skip all disabled rows.
My subclass of JTable looks like this:
public void changeSelection(int rowIndex, int columnIndex, boolean toggle, boolean extend) {
if (list[rowIndex].isEnabled()) {
super.changeSelection(rowIndex, columnIndex, toggle, extend);
All the disabled rows is not selectable. Right now it just stop when the next row is disabled.

Well, I think the right way to it would be something like..
public void changeSelection(int rowIndex, int columnIndex, boolean toggle, boolean extend)
     // Get to the right row..
     while (!list[rowIndex].isEnabled())
          ++rowIndex;
          rowIndex %= list.length;
     // Change selection to the row found.
     super.changeSelection(rowIndex, columnIndex, toggle, extend);
The last one is good asuming there must be at least one enabled row, otherwise you should handle this case also...

Similar Messages

  • Table with column group (one column) - next row is showing on new page instead of below previous row

    I am creating new table. My goal is to display some text in few lines like this:
    "AAAAAAAA"           "BBBBBBBB"           "CCCCCCCCC"     
    "DDDDDDD"           "EEEEEEEE"
    Actually the next row (with "DD" and "EE" values) is not displayed below first row, but on the next page.
    I've tried to put table into rectangle, disabled all page breaks and still the same effect. Any help?

    Hi Heidi,
    Actually, it's not solution, I only gave more details about my problem :)
    Another description:
    In my report I'm creating Tablix with Column grouping. There is only one column with image (every image has same width). If there is only three pictures, then they are displayed next to each other in one row.
    In case, there is more than three pics, another row is showing on next page. I'd like to display all rows one after another on one page.
    I've tried to create three vertical lists, and filter each column group to display only records:
    1) =(RowNumber("Tablix1")) mod 3 = 1
    2) =(RowNumber("Tablix1")) mod 3 = 2
    3) =(RowNumber("Tablix1")) mod 3 = 0
    Unfortunately, I got an error:
    "A FilterExpression for the tablix ‘Tablix1’ uses the function RowNumber.  RowNumber cannot be used in filters."
    Do You have any other propositions?
    --------EDIT--------
    ok, I manged to solve it. As I said, I've created three vertival lists and placed them next to each other.
    Then, instead of using filter, I've used Visibility trigger:
    1)
    =IIf(RunningValue(Fields![rowgroupfield].Value, COUNTDISTINCT, "Tablix1") mod 3 = 1, false, true)
    2)
    =IIf(RunningValue(Fields![rowgroupfield].Value, COUNTDISTINCT, "Tablix2") mod 3 = 2, false, true)
    3)
    =IIf(RunningValue(Fields![rowgroupfield].Value, COUNTDISTINCT, "Tablix3") mod 3 = 0, false, true)
    I had to use function RunningValue to count all occurrences, as my report is quite complex and "RowNumber" [ssrs function] and "ROW_NUMBER() OVER (ORDER BY [rowgroupfield])" [sql query] were not working properly.

  • Copy a certain row of data into the next row in a same internal table ??

    HI, guys.
    May i know how to copy a certain row of data into the next row in a same internal table ?? Bcz I plan to update a certain colum of data in the row just now into another value..
    For example:-
    *at first...
    ebeln1   ebelp1   xblnr1
    ebeln2   ebelp2   xblnr2
    ebeln3   ebelp3   xblnr3
    *after that, become...
    ebeln1   ebelp1   xblnr1
    ebeln2   ebelp2   xblnr2
    ebeln2   ebelp2   xblnr4
    ebeln2   ebelp2   xblnr5
    ebeln3   ebelp3   xblnr3
    Thanks in advance.

    hi,
    If you have this kind of requirement then you must be having 2 internal tables ,one existing data and 2nd from which you have to insert the records into 1st table.
    so in this case,
    loop at itab1.
      v_index = sy-tabix.
      loop at itab2 into wa where pri_key = itab1-pri_key.
      v_index = v_index + 1.
      insert  wa into itab index v_index.
      endloop.
    endloop.
    Using this code ,your data records similar to your 1st tables primary key records will get inserted into table.

  • How to set the current row in table automatically when tabout from one row to next row

    Hi
    I'm using jdev 11.1.2.0.0
    How can we set the  row(in which row focus is)  as current row in the table?
    If we create a table with single row selection, then whichever row we select, that row becomes current row because of the selection listener(#{bindings.xxvo.collectionModel.makeCurrent}).
    Then if we do tabout from one component to another component in table and moved to next row, then the focus would be on another row .
    when focus is shifted from one row to another row, then how can we make the focused row as current row or selected row.
    Any suggestion would we appreciated
    Thanks.

    Add clientListener inside table component and set client listener type to dblClick with method as a JavaScript method name.
    <af:clientListener method="dblclk" type="dblClick"/>

  • Create row as next row on click of add another row button not on top of it

    My af:table is based on a transientVO (all the attributes are transient)
    This is just for data entry and not for data retrieval
    So i have placed add another row button on my af:table
    After i enter data in the first row and click add another row button the data is being moved to second row and the new row is created on top of that
    I want the row to be created as next row . not on top of my existing row
    How can we do this

    would this help you:
    http://lucbors.blogspot.com/2010/12/adf-11g-how-to-control-where-new-row-is.html

  • Can I use action build to fade one table row as I move to the next row in the table?

    I have built a table with 6 rows.  Right now,I am building the table row by row when I play the slide. Is there a way to fade or dissolve one row when I move to the next row in the table? I want to be able to de-emphasize the row I just discussed when I move to the next row in the table. I can fade the entire table by invoking that action but I do not seem to be able to use this action one row at a time. Thanks for your comments and assistance.

    you will have to use a workaround to get the exact effect you described
    create a table with out any text
    use text tool to add text and position in each table cell
    select the text boxes( command click) in the first row and group them (arrange > group)
    use a, build in, to display text and then a, build out, to remove it
    repeat the above for the other rows

  • How can i select the next column instead of next row when press enter key

    I need to know how can i select the next column instead of next row when i press the enter key.By default ,when i press enter key the next row is selected and the column remain unchanged but I wants opposite that is the row should remain unchanged but column index will changed.
    Thanks to all.

    Well, the right arrow key will already move you to the next column, so the easiest way to do this is to modify the InputMap to have the Enter key invoke the same Action as the right arrow key.
    You can search the forum for my "Table Actions" (without the space) example that will show you how to do this.

  • Adding rows based on current and next row

    I got some excellent help on multiplying rows based on start and end date in this
    thread, resulting in the query below. It helps me follow Vehicle activity and Vehicle allocation of our vehicles day by day. Now I would like to add another feature to the query, if it is possible.
    The problem is that in our database, only actual tasks are registered, which means that the time when the vehicle is between tasks is not showing. I could of course calculate total available time per vehicle and month, but that would not tell me where the
    vehicles are waiting, when during the day, etc.
    So I would like to insert rows for when the vehicles are standing still, and the logic would be something like this:
    If vehicle number on current row equals vehicle number on the next row and End (date/time) of current row < Start (date/time) of next row, insert row after current row. Set Start=End of current row and End=Start of next row. Set From=To
    of current row and To=To of current row. Set Vehicle activity to "Not active". Finaly copy all other fields from current row.
    Is this possible to achieve in Power Query?
    Brgds,
    Caj
    let
        Source = Sql.Databases("sql10"),
        SLM = Source{[Name="SLM"]}[Data],
        dbo_V_LKPI = SLM{[Schema="dbo",Item="V_LKPI"]}[Data],
        RenamedColumns = Table.RenameColumns(dbo_V_LKPI,{{"ActualDeparture", "Start"}, {"ActualArrival", "End"}}),
         Records = Table.ToRecords(V_LocoKPI),
          DateTime.IsSameDay = (x, y) => Date.Year(x) = Date.Year(y) and Date.Month(x) = Date.Month(y) and Date.Day(x) = Date.Day(y),
          Expand = (x) => List.Generate(
              () => Record.Combine({x, [End=Date.EndOfDay(x[Start])]}),
              (record) => record[Start] <= x[End],
              (record) => let
                  NextStart = Date.StartOfDay(Date.AddDays(record[Start], 1)),
                  NextEnd = Date.EndOfDay(NextStart),
                  ThisEnd = List.Min({NextEnd, x[End]})
              in
                  Record.Combine({record, [Start=NextStart, End=ThisEnd]})),
          Transformed = List.Transform(Records, each if DateTime.IsSameDay([Start], [End]) then {_} else Expand(_)),
          Combined = List.Combine(Transformed),
          Result = Table.FromRecords(Combined)
      in
          Result
    Csten

    Here's some sample code. Again, we use List.Generate to build either a record or a list of records and then use List.Combine to bring the results back together before converting them to a table.
    let
        CombineTwoRows = (x, y) =>
            let
                combine = x[Vehicle] = y[Vehicle] and x[End] < y[Start],
                added = Record.Combine({x, [Start=x[End], End=y[Start], Active=false]}),
                result = if combine then {added, y} else {y}
            in result,
        GenerateStandingRows = (table, combine) =>
            let
                Handle = (x, y) => {x, y},
                buffered = Table.Buffer(table),
                n = Table.RowCount(buffered),
                windows = List.Generate(
                    () => {1, {buffered{0}}},
                    (x) => x{0} <= n,
                    (x) => {x{0} + 1, if x{0} < n then combine(buffered{x{0}-1}, buffered{x{0}}) else {buffered{x{0}}}},
                    (x) => x{1})
            in
                windows,
        InsertInactivity = (table) => Table.FromRecords(List.Combine(GenerateStandingRows(table, CombineTwoRows))),
        TestData = Table.FromRows({
            {1, #datetime(2014, 2, 23, 13, 0, 0), #datetime(2014, 2, 23, 13, 10, 0), true},
            {1, #datetime(2014, 2, 23, 13, 20, 0), #datetime(2014, 2, 23, 13, 30, 0), true},
            {2, #datetime(2014, 2, 23, 13, 20, 0), #datetime(2014, 2, 23, 14, 0, 0), true},
            {2, #datetime(2014, 2, 23, 14, 20, 0), #datetime(2014, 2, 23, 14, 40, 0), true},
            {2, #datetime(2014, 2, 23, 16, 0, 0), #datetime(2014, 2, 23, 17, 0, 0), true},
            {2, #datetime(2014, 2, 24, 2, 0, 0), #datetime(2014, 2, 24, 3, 0, 0), true},
            {3, #datetime(2014, 2, 24, 1, 0, 0), #datetime(2014, 2, 24, 8, 0, 0), true},
            {3, #datetime(2014, 2, 24, 9, 0, 0), #datetime(2014, 2, 24, 10, 0, 0), true}
            }, {"Vehicle", "Start", "End", "Active"})
    in
        InsertInactivity(TestData)

  • Form button doing both update and moving to next row

    How do I get a form button to do an update of the shown row, and then move on to the next row in the resultset?
    I've tried to assign both the doQuery; and doNext; functions in the same PL/SQL button event, but with no luck.

    Hi,
    Call this code in the plsql event of the update button.
    --- Type your PL/SQL code here...
    doUpdate;--- This is the default handler
    onNEXT(
    p_block_name => p_block_name ,
    p_object_name => p_object_name,
    p_instance => p_instance ,
    p_event_type => p_event_type ,
    p_user_args => p_user_args ,
    p_session => p_session);
    --- ...and here, thanks...
    Thanks,
    Sharmila

  • Set Cursor to next row Field in Table

    Hi Experts,
    I have a requirement in WDA table, when user click on Enter button from key board, cursor should move to the next row in table and without clicking on that columns user should type the message,
    Right now user is able to type the message only after clicking on that cell.
    Please guide me

    Hi Rohit,
    Please check with following code.
    LO_NODE   = WD_CONTEXT->GET_CHILD_NODE( 'DIAGNOSE' ).
    lv_index = lo_node->GET_LEAD_SELECTION_INDEX( ) .
    lv_index = lv_index + 1.
    LO_NODE->SET_LEAD_SELECTION(  lv_index ).
       LO_ELEMENT = LO_NODE->GET_ELEMENT( ).
       LO_RUNTIMEAPI = WD_THIS->WD_GET_API( ).   LO_RUNTIMEAPI->REQUEST_FOCUS( ATTRIBUTE = 'ICDDESC' CONTEXT_ELEMENT =LO_ELEMENT ).
    Thank You,
    Harsha

  • How  to set focus on next row inputfield in table

    Hello all,
    How  to set focus on next row input field in table
    Please help.
    Thanks in advance.
    CSP

    Hi,
    use the following code
    wdThis.wdGetAPI().requestFocus(nodeElement, attribute)
    Ex:
    Provide the attribute and replace the nodeElement with that of yours
    IWDAttributeInfo attributeInfo = wdContext.getNodeInfo().getAttribute("Your attribute");
           wdThis.wdGetAPI().requestFocus(wdContext.currentContextElement(), attributeInfo);
    Regards
    Ayyapparaj

  • Get the next row in EL

    Hello all!
    Possibly the thread name isn't clear or is wrong, i'll just explain:
    there's a column, which contains Iterator (since it's point is to display collection data separated by ', '). I found it reasonable to add 2 outputText's inside Iterator: one for the value, and another for ', '. The second should have an EL value, which should contain a statement similar to #{<nextRowExists> ? ', ' : ''}.
    Hope You get my point, i just want to find out if there's a next row or not using EL to decide whether i need another ', ' or not. :-)
    Many thanks!
    Edited by: 866307 on Jun 29, 2011 6:57 AM

    Hi
    ADF Bindings shows all Iterators from that iterators select relevant one and,Then you can get estimatedRowCount that returns the number of rows in the collection defined by associated viewObject.Also you can get current row using currentRowIndexInRange.
    all records --> #{bindings.IteratorName.estimatedRowCount}
    current record -- >#{bindings.IteratorName.rangeStart+bindings.IteratorName.currentRowIndexInRange+1}
    see:
    Re: How to show row ranges on the table.
    I think these information will help you to resolve your problem.

  • Editable Datagrid: focus shifts to next row on click : Urgent

    I have an editable datagrid and when I change the value of a cell and then instead of tab I click on the cell adjacent to it, the focus automatic shifts to the next row. I have no freaking idea why?
    Any help is appreciated. Thanks a ton in advance.

    Issue Resolved 
    Need to set lead selection to next element in the node using MOVE_NEXT method of IF_WD_CONTEXT_NODE interface.
    rest of the code remains same.

  • Next Row in SMARTFORM

    hi all
    am printing a line in smartform with field GS_it_KOND_W-vtext but displaying the first line in that field..but my requirement is i need only second line to be printed.please pass on the code...like how can i print the line that is der in the next row...please help
    vijay

    Hi,
    for this you will have to hard code the 2nd line.
    For this what you can do is read the length of the description and fix the length of the line which is to be printed.
    From that particular length take the description into a variable and u can print that variable.
    If g_length is the length of the line, then
    gv_2nd_line = GS_it_KOND_W-vtext + 250(250).
    This will give you the second line.
    Regards,
    Lavanya

  • What is the next row shortcut?

    Hi SCN,
    I know that going to the next column the shortcut is "TAB" but what is the shortcut to move to the next row?
    Thanks
    David

    Hi David
    Check the short cut pdf it may helps you
    http://www.vision33.com/media/5444/how%20to%20%20keyboard_shortcuts.pdf
    With Regards
    Balaji Sampath

Maybe you are looking for