ListField: RENDERER updates only the top line

Hey all,.

Calling for first time, long time listener. I cut my teeth on BB dev and have hit a snag. I created a ListField which takes an array of custom RowObjects that includes not only the table that makes up the line, but both the properties of style (background color, text color).

My 2 questions are the only the first line is its background color and the rest are by default. None get the color of the text. It seems that the rendering engine is only called once, bouncing absolutely me.

The second problem is that I can't scroll horizontally to view additional columns that are off-screen.

Main components TableField code:

package com.keslabs.kui;

import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;

public class TableField extends ListField
{
    private TableRowManager[] _rows;
    private int[] _columnWidths;
    private int[] _horizontalPaddings;

    public TableField(TableRowObject[] contents, int[] columnWidths, int[] horizontalPaddings)
    {
        int numRows = contents.length;

        _rows = new TableRowManager[numRows];
        for (int curRow = 0;  curRow < numRows;  curRow++) {
            _rows[curRow] = new TableRowManager(contents[curRow]);
        }

        // Store the layout data.
        _columnWidths = columnWidths;
        _horizontalPaddings = horizontalPaddings;

        // Configure this ListField to operate with TableListField semantics.
        setSize(numRows);
        setCallback(RENDERER);
    }

    // Calculates the horizontal position at which the indicated
    // column should begin, based on the column widths and paddings.
    private int getColumnStart(int col)
    {
        int columnStart = 0;
        for (int i = 0;  i < col;  i++) {
            columnStart += _columnWidths[i];
            columnStart += _horizontalPaddings[i];
        }
        return columnStart;
    }

    public int moveFocus(int amount, int status, int time)
    {
        invalidate(getSelectedIndex());
        return super.moveFocus(amount, status, time);
    }

    // Invoked when this field receives the focus.
    public void onFocus(int direction)
    {
        super.onFocus(direction);
        invalidate();
    }

    // Invoked when a field loses the focus.
    public void onUnfocus()
    {
        super.onUnfocus();
        invalidate();
    }    

    // Manager that lays out the fields of a table row horizontally,
    // within the columns of its enclosing TableListField.
    private class TableRowManager extends Manager
    {
        private TableRowObject _row;

        // styles
        public int bgcolor = Color.BEIGE;
        public int fgcolor = Color.BLUE;

        // Constructor.  The elements of rowContents are added to this manager
        // so that when it is layed out, these fields become cells within a row.

        public TableRowManager(TableRowObject rowContents)
        {
            super(0);

            if (rowContents.bgcolor != -1) {
                bgcolor = rowContents.bgcolor;
            }
            if (rowContents.fgcolor != -1) {
                fgcolor = rowContents.fgcolor;
            }
            _row = rowContents;

            for (int col = 0;  col < rowContents.data.length;  col++) {
                add(rowContents.data[col]);
            }
        }

        // Causes the fields within this row manager to be layed out then
        // painted.
        public void drawRow(ListField listField, int index, Graphics g, int x, int y, int width, int height)
        {
            // Arrange the cell fields within this row manager.
            layout(width, height);

            // Place this row manager within its enclosing list.
            setPosition(x, y);

            // Apply a translating/clipping transformation to the graphics
            // context so that this row paints in the right area.
            g.pushRegion(getExtent());

            // Paint this manager's controlled fields.
            subpaint(g);

            g.setColor(bgcolor);
            g.fillRect(0, y, width, height);
            g.setColor(fgcolor);
            //g.drawText("i-"+index, 0, y);

            listField.invalidate(index);

            // Restore the graphics context.
            g.popContext();
        }

        protected void sublayout(int width, int height)
        {
            for (int col = 0; col < getFieldCount(); col++) {
                Field curCellField = getField(col);
                layoutChild(curCellField, _columnWidths[col], getPreferredHeight());
                setPositionChild(curCellField, getColumnStart(col), 0);
            }

            setExtent(getPreferredWidth(), getPreferredHeight());
        }

        public int getPreferredWidth()
        {
            return RENDERER.getPreferredWidth(TableField.this);
        }

        public int getPreferredHeight()
        {
            return getRowHeight();
        }
    }

    private static final ListFieldCallback RENDERER = new ListFieldCallback()
    {
        public void drawListRow(ListField listField, Graphics graphics, int index, int y, int width)
        {
            TableField tableField = (TableField) listField;
            TableRowManager rowManager = tableField._rows[index];
            rowManager.drawRow(listField, index, graphics, 0, y, width, tableField.getRowHeight());
        }

        public int getPreferredWidth(ListField listField)
        {
            TableField tableField = (TableField) listField;
            int numColumns = tableField._columnWidths.length;
            return tableField.getColumnStart(numColumns);
        }

        public Object get(ListField listField, int index)
        {
            TableField tableField = (TableField) listField;
            return tableField._rows[index];
        }

        // prefix searching is not supported
        public int indexOfList(ListField listField, String prefix, int start)
        {
            return -1;
        }
    };
}

Class TableRowObject (which works fine, but I posted for ease of understanding):

package com.keslabs.kui;

import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
import net.rim.device.api.system.*;

public class TableRowObject {

    public Field[] data;
    public int bgcolor = -1;
    public int fgcolor = -1;

    public TableRowObject(Field[] rowContent) {
        data = rowContent;
    }
}

Any help that could be provided would be great that I was stuck with this for 3 days banging my head against a wall.

Yes, but it must not necessarily be 'this '. It can be any other object that you did in your implementation.

Tags: BlackBerry Developers

Similar Questions

  • How to create the map that updates only the changed lines

    Hello

    I have a map that made a merger (update/insert) in a table. The problem is that it will always update all rows in this table. I want to update only the changed lines.

    Some dummy code that shows what I want to do.
    Current situation (all lines updated):

    FUSION
    IN
    Table 1-t1
    USING
    (select key_column, Column1, Column2 from table2) t2
    ON)
    T1.key_column = t2.key_kolumn
    )

    WHEN MATCHED THEN
    UPDATE
    SET
    T1. Column1 = t2.column1
    T1. Column2 = t2.column2
    WHEN NOT MATCHED THEN
    INSERT
    (t1.key_column, t1.column1, t1.column2)
    VALUES
    (t2.key_column, t2.column1, t2.column2);

    What I'm trying to get (only changed the lines updated):
    FUSION
    IN
    Table 1-t1
    USING
    (select key_column, Column1, Column2 from table2) t2
    ON)
    T1.key_column = t2.key_kolumn
    )

    WHEN MATCHED THEN
    UPDATE
    SET
    T1. Column1 = t2.column1
    T1. Column2 = t2.column2
    * WHERE
    T1. Column1! = t2.column1
    or t1.column2! = t2.column2*
    WHEN NOT MATCHED THEN
    INSERT
    (t1.key_column, t1.column1, t1.column2)
    VALUES
    (t2.key_column, t2.column1, t2.column2);

    WHERE in WHEN MATCHED t clause is that I'm not able to create via OWB in the mapping. How is that possible?
    I tried to look for the solution here and google without success

    Thank you!

    Hello

    you left outer join table2, with table1. Then use a filter to determine which rows in which an attribute has changed or no towing in table1 where found.
    To compare attributes use expression with nvl to properly handle nulls: nvl(table2.my_attribute,'#')! = nvl(table1.my_attribute,'#')

    Kind regards
    Carsten.

  • Mr President, how can I enter two rows at the same time with different default values that only the first line to use see?

    Mr President.

    My worm jdev is 12.2.1

    How to enter two rows at the same time with different default values that only the first line to use see?

    Suppose I have a table with four fields as below

    "DEBIT" VARCHAR2(7) , 
      "DRNAME" VARCHAR2(50),
      "CREDIT" VARCHAR2(7) , 
      "CRNAME" VARCHAR2(50),
    

    Now I want that when I click on a button (create an insert) to create the first line with the default values below

    firstrow.png

    So if I click on the button and then validate the second row with different values is also inserted on commit.

    The value of the second row are like the picture below

    tworows.png

    But the second row should be invisible. It could be achieved by adding vc in the vo.

    The difficult part in my question is therefore, to add the second row with the new default values.

    Because I already added default values in the first row.

    Now how to add second time default values.

    Concerning

    Mr President

    I change the code given by expensive Sameh Nassar and get my results.

    Thanks once again dear Sameh Nassar .

    My code to get my goal is

    First line of code is

        protected void doDML(int operation, TransactionEvent e) {    
    
            if(operation != DML_DELETE)
                 {
                     setAmount(getPurqty().multiply(getUnitpurprice()));
                 } 
    
            if (operation == DML_INSERT )
                       {
                               System.out.println("I am in Insert with vid= " + getVid());
                           insertSecondRowInDatabase(getVid(),getLineitem(),"6010010","SALES TAX PAYABLE",
                            (getPurqty().multiply(getUnitpurprice()).multiply(getStaxrate())).divide(100));      
    
                           }
    
            if(operation == DML_UPDATE)
                              {                                                    
    
                                 System.out.println("I am in Update with vid= " + getVid());
                             updateSecondRowInDatabase(getVid(),
                                 (getPurqty().multiply(getUnitpurprice()).multiply(getStaxrate())).divide(100));      
    
                              }                      
    
            super.doDML(operation, e);
        }
        private void insertSecondRowInDatabase(Object value1, Object value2, Object value3, Object value4, Object value5)
                  {
                    PreparedStatement stat = null;
                    try
                    {
                      String sql = "Insert into vdet (VID,LINEITEM,DEBIT,DRNAME,AMOUNT) values " +
                 "('" + value1 + "','" + value2 + "','" + value3 + "','" + value4 + "','" + value5 + "')";  
    
                      stat = getDBTransaction().createPreparedStatement(sql, 1);
                      stat.executeUpdate();
                    }
                    catch (Exception e)
                    {
                      e.printStackTrace();
                    }
                    finally
                    {
                      try
                      {
                        stat.close();
                      }
                      catch (Exception e)
                      {
                        e.printStackTrace();
                      }
                    }
                  }  
    
                  private void updateSecondRowInDatabase(Object value1, Object value5)
                  {
                    PreparedStatement stat = null;
                    try
                    {
                      String sql = "update vdet set  AMOUNT='"+ value5+"' where VID='" + value1 + "'";                     
    
                      stat = getDBTransaction().createPreparedStatement(sql, 1);  
    
                      stat.executeUpdate();
                    }
                    catch (Exception e)
                    {
                      e.printStackTrace();
                    }
                    finally
                    {
                      try
                      {
                        stat.close();
                      }
                      catch (Exception e)
                      {
                        e.printStackTrace();
                      }
                    }                  
    
                  }
    

    Second line code is inside a bean method

        public void addNewPurchaseVoucher(ActionEvent actionEvent) {
            // Add event code here...
    
            BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry();
                   DCIteratorBinding dciter = (DCIteratorBinding) bindings.get("VoucherView1Iterator");
                   RowSetIterator rsi = dciter.getRowSetIterator();
                   Row lastRow = rsi.last();
                   int lastRowIndex = rsi.getRangeIndexOf(lastRow);
                   Row newRow = rsi.createRow();
                   newRow.setNewRowState(Row.STATUS_NEW);
                   rsi.insertRowAtRangeIndex(lastRowIndex +1, newRow);
                   rsi.setCurrentRow(newRow);
    
                   BindingContainer bindings1 = BindingContext.getCurrent().getCurrentBindingsEntry();
                   DCIteratorBinding dciter1 = (DCIteratorBinding) bindings1.get("VdetView1Iterator");
                   RowSetIterator rsi1 = dciter1.getRowSetIterator();
                   Row lastRow1 = rsi1.last();
                   int lastRowIndex1 = rsi1.getRangeIndexOf(lastRow1);
                   Row newRow1 = rsi1.createRow();
                   newRow1.setNewRowState(Row.STATUS_NEW);
                   rsi1.insertRowAtRangeIndex(lastRowIndex1 +1, newRow1);
                   rsi1.setCurrentRow(newRow1);
        }
    

    And final saveUpdate method is

        public void saveUpdateButton(ActionEvent actionEvent) {
            // Add event code here...
    
            BindingContainer bindingsBC = BindingContext.getCurrent().getCurrentBindingsEntry();      
    
                   OperationBinding commit = bindingsBC.getOperationBinding("Commit");
                   commit.execute(); 
    
            OperationBinding operationBinding = BindingContext.getCurrent().getCurrentBindingsEntry().getOperationBinding("Commit");
            operationBinding.execute();
            DCIteratorBinding iter = (DCIteratorBinding) BindingContext.getCurrent().getCurrentBindingsEntry().get("VdetView1Iterator");// write iterator name from pageDef.
            iter.getViewObject().executeQuery();  
    
        }
    

    Thanks for all the cooperation to obtain the desired results.

    Concerning

  • Print previews halh shows only the top of page. WHY?

    I have used Firefox for more than five years and this problem just showed. Using the preview before printing displays only the top half of the page. He started in Firefox 8 and is still doing the same thing with Firefox 9 beta if I use IE or K-meleon, it works very well. I like firefox and you want to get help. I use windows 7 with a 64 bit HP computer (1 year) and a Brother printer. How can I fix?

    See this:

    http://KB.mozillazine.org/Problems_printing_web_pages

  • I dropped my phone in a small bowl of water, but only the top wet! (Camera and side buttons)!

    I dropped my phone in a small bowl of water, but only the top wet! (Camera and side buttons) but I caught as fast as I could and I put it in rice! The camera picture and everything work fine, but these last two days the phone has acted a bit! As it is a bit slow (which im hoping is just my access provider) and this morning I plugged my headphones, but they were not involved. It's as if they are not yet connected. Until I restarted my phone! All this may be water damage! Once again; the camera works very well and the buttons are too! I can take it to the Apple Store to watching it!

    Is one of the newest phones.   He should not have these problems.   Water works in many ways where electrics are concerned, and few of them are to our advantage.   Bring it to your local Apple store and ask for an assessment.

    Guarantees exclude the water damage.

  • Discover with function as datasource returns only the first line.

    Hello

    I created the following function to get the status of all the rules for the instances of SQL Server.

    The data type of the function output has been configured as 'List of SQLInstanceRuleStatuss', where SQLInstanceRuleStatuss is the custom type, I created in the same module.

    When I tested the function, it returns all instances of SQL Server with two other columns.

    But when I try to create a view with the Rows property that is configured to use the feature, it returns only the first line:

    sqlRules = new ArrayList();

    queryStatement = server. QueryService.createStatement ("(DBSS_Instance)");

    queryResult = server. QueryService.executeStatement (queryStatement);

    for (it in queryResult.topologyObjects)

    {

    sqlRule is functionHelper.createDataObject ("westjet_mark_dev:SQLInstanceRuleStatus", "none", "test");.

    sqlRule.instance = it;

    sqlRule.ruleName = 'test rule name';

    sqlRule.status = false;

    sqlRules.add (sqlRule);

    }

    Return sqlRules;

    Did I miss something?

    Thank you

    Mark

    Mark,

    I think I forgot something

    sqlRule=functionHelper.createDataObject("westjet_mark_dev:SQLInstanceRuleStatus","none","test");

    you create the test id

    change your line of

    sqlRule=functionHelper.createDataObject("westjet_mark_dev:SQLInstanceRuleStatus","none",null);

    This should allow the creation of a single object in your loop for

  • I need a file to an exact width and height and it must be in png format, because it allows to translucency. My graphics are only the top of the page and when I export only the graph is not exported the entire file. How can I get the entire file to ex

    I need a file to an exact width and height and it must be in png format, because it allows to translucency. My graphics are only the top of the page and when I export only the graph is not exported the entire file. How can I get the entire file of export including blank parts?

    in the export dialog box, you have chcked 'use of work plans? ''

  • How do you get the text in the top line of the table to stop forcing text format the same way in the row below.

    I created a table with two rows. I would like the text in the top line is centered and the text in the line below that is aligned to the left. I have no problem when no list (chips) are involved. However, this week, the client has a list of items that have bullets.

    My problems are:

    1. the second row of my mimics table my top row despite not correctly displayed in design mode.

    2. when I try to clear my list of left fleas disappear.

    Please help if you can.

    Here is the link problem: 2015 Spelman women of color Conference

    Here are the previous explosion without the bullets/problem: 2015 Spelman women of color Conference

    Some days I think I understand the basics of HTML, but obviously not on this one. Whenever I try to search, then hard to pull the code to solve this problem, I fail miserably.

    Here is the code for the problem table:

    < b >

    < td width = "296" align = "left" valign = "top" bgcolor = "#F5F5F5" > < table >

    < td width = "269" align = "left" valign = "top" bgcolor = "#F5F5F5" > < table >

    < /tr >

    < b >

    < td colspan = "2" align = "left" valign = "top" bgcolor = "#F5F5F5" > < table width = "500" border = "0" align = "center" cellpadding = "0" cellspacing = "0" >

    < b >

    < td align = "center" class = "alegreyasc" > Top 3 reasons to attend the < br / >

    Spelman College 11th Annual Leadership and Women of Color Conference: new principals in the era digital < table >

    < /tr >

    < b >

    < td align = "left" valign = "top" class = "alegreyasc1" > < ul >

    < li > < span class = "alegreyasans" > learn how to use the technology in many aspects of your life, including the design of career strategies, balancing work/life, community and promoting civic participation skills.

    • </span > < /li >

    < li > < span class = "alegreyasans" > learn more about the importance of diversity in the digital space and its impact on innovation. </span > < /li >

    < li > < span class = "alegreyasans" > identify and examine the skills required and directors of schools new platforms use to build and maintain the success. </span > < /li >

    < /ul > < table >

    < /tr >

    < / table > < table >

    < /tr >

    OK - let's try this-

    -Replace

    table of .mainbox table tr td table tr td tr td {}

    text-align: center;

    do-family: 'Alegreya SC', serif;

    }

    with this--

    table of .mainbox table tr td table tr td tr td {}

    do-family: 'Alegreya SC', serif;

    }

    and this-

    {.alegreyasans}

    do-family: ' ' Alegreya without, without serif.

    color: #666;

    do-size: 16px;

    text-align: left;

    list-style-position: inside;

    list-style-type: disc;

    }

    with this--

    {.alegreyasans}

    do-family: ' ' Alegreya without, without serif.

    color: #666;

    do-size: 16px;

    text-align: left;

    list-style-type: disc;

    }

    Works now?

  • How to remove the firefox address bar and simply only the top menu bar

    I want to only have the menu bar at the top of the screen... and not do anything else;
    as the address bar.
    would appreciate any help.
    I made a java update and wonder if that could be part of the problem.

    Thank you

    You can attach a screenshot?

    Use a type of compressed as PNG or JPG image to save the screenshot.

    You can use one of them to set toolbars to display.

    • Firefox menu button > customize > show/hide toolbars
    • View > toolbars (press F10 to display the Menu bar)
    • Right click on empty toolbar space
  • Updated all the selected lines in a table.

    Hello

    Jdev Version 11.1.2.3.0

    I'm trying to update all the selected rows in a table with several choices.

            AppModuleImpl am = (AppModuleImpl)ADFUtils.getApplicationModuleForDataControl("AppModuleDataControl");
            ViewObject vo = am.findViewObject("RegistrationHistory1");
            RowKeySet selectedRegistrations = historyTable.getSelectedRowKeys();
    
    
            if (selectedRegistrations != null) {
                Iterator iter = selectedRegistrations.iterator();
                    while (iter.hasNext()) {
                        Object facesTreeRowKey = iter.next();
                        Row[] row = vo.findByKey((Key)((List)(facesTreeRowKey)).get(0), 1);
    
    
                        if (row != null && row.length == 1) {
                            Row r = row[0];
                             r.setAttribute("Attr", "1"); 
                        }
                    }
              }
    

    But after I put the attribute on the line. My iterator ignores most of the lines and they don't last updated.

    It works very well for the removal of the line well.

    Any suggestions?

    It turn out that I got a try catch and in the catch, I had a log (e.printStackTrace ()) and I do not see a single line in the diary saying ConcurrentModificationException appearing all the time.

    Looks for read-only access to an attribute or delete lines is OK to iterate over the selected lines, but it's different for the modification of an attribute.

    The code that worked:

    Links DCBindingContainer = (DCBindingContainer) BindingContext.getCurrent () .getCurrentBindingsEntry ();

    Entry DCIteratorBinding = bindings.findIteratorBinding ("RegistrationHistory1Iterator");

    RowSetIterator regRSiter = regIter.getRowSetIterator ();

    RowKeySet selectedRegistrations = historyTable.getSelectedRowKeys ();

    Object [] keys = selectedRegistrations.toArray ();

    for (Object key: keys) {}

    Line currentRow = regRSiter.getRow ((Key) ((List) key) .get (0));

    removeOrModify (currentRow);

    }

  • Sanitation Manager Update: only the scan, patch no host?

    Hi, we have a whole new ESXi 4.1 installation host with brand new install V-Center server 4.1, I installed all the components of Vcenter virtual server on a Windows 2003 X 64 computer (which is not part of this new license key we just buy for a branch of the Department), Update Manager of plug-in is here, I can see and test its configuratuions , I can see his Large patches (218) (88 reviews and 130 not critics) lists the ins Patch repository. So far, everything seems to work, Scan takes less than 30 seconds.

    Now the real problem for me: I was not able to apply these patches using 'Cleanup' - I tried like a task executed immediately or later, it ends always in less than 1 Minute (I knew it should take much more time because I used the host-setting utility to update on the free ESXi 3.5, it took about 10 Minutes to patch a host) , of the event, I see this: it seems only scan patches, do not have true patch for the host.

    I read the entire Update Manager Guide, do not understand why it doesn't NOT patch the host (the base line is here, each reference has a number of fixes, I tried many times and checked the ESXI host, up to now, nothing happens), suggestions and advise are greatly appreciated.

    (almost all our configuration server Vcenter by default is because we have only 2 ESXI hosts)

    Analysis 10.1.1.40 for patches successfully.
    Info
    21/04/2011-14:38:51
    Clean up the entity
    10.1.1.40
    Administrator

    Analysis 10.1.1.40 for patches successfully.
    Info
    21/04/2011-14:38:48
    Clean up the entity
    10.1.1.40
    Administrator

    Task: Clean up entity
    Info
    21/04/2011-14:38:43
    Clean up the entity
    10.1.1.40
    Administrator

    With construction 348481 host already has the new installed patches. Perhaps VUM indicates these fixes as critical, but they do not apply to the host.

    André

  • Is my content gmail is no longer visible, only the subject line, any ideas?

    My Gmail on firefox shows is no longer the content of the e-mail. I don't see the subject line, and sometimes the first line of the email. I have not changed anything. Have updated my firefox, it makes no difference. I tried Gmail in IE and it works.

    Content of the entire message missing GMail (empty) after the title of the header

    In Firefox, if you have an extension "Adblock Plus".

    1. 'Ctrl + Shift + F' preferences (or right click on the symbol of the ADP and choose Preferences)
    2. 'Filters' menu > 'update all subscriptions'.
  • I don't see my Gmail messages or attachments in Firefox, only the subject line, but I can't go or when accessed from my Android.

    I use Firefox 7.0.1 on my desktop using Windows 7. Since yesterday I do not show my messages in Gmail when I click on them using Firefox. A window will appear, but it shows just the subject line, not the rest of the message. I can see them in Outlook, and I can see them in Gmail of IE or my Android.

    I think I say it, looking at another web site of the forum, looks to add block more treated somehow the body of the message as a supplement and it blocked it, I disabled the ABP for mail.google.com only and it worked!
    The strange thing though is that ABP blocked only my e-mail address, not my wife. However, this should be seen by someone under Add block Plus I think

    http://www.Google.com/support/forum/p/Gmail/thread?TID=46084ae3730f53ac & hl = in

  • How the 4.01 version to have the TABS line nearby even as in 3.67. ?. In other words, the line of TABS just above window web site at 3.67. Right, in 4.01, is now in the top line of the screen.

    Basically, need a feature that allows the user to rearrange the location of tab line (ie: the ability to drag the line to a different location). For me, it would be moved from the line Summit of 4.01 on line facing down(as the place where it sits in versions of X 3.6), just above the window of the web page. That would make it very convenient to click on multiple back when necessary. What I constantly in my case.

    I thank you for your public service and a great work all you do!

    You can right click on the orange Firefox button to open the menu of the toolbar.

    • Click "Tabs at the top" to remove the check mark and place the tab to its original position bar just above the browser window.
  • My indicator shows only the first line of the string

    Hi all

    I'm having some trouble with chains, could you help me?

    I use a device connected to my computer in a RS-232 port.

    I configured the VISA series correctly. When I write a command to my device, the answer is something like this:

    "XXXXX."

    YYYYYY

    2222

    44444

    WWWW.

    The problem is when I try to read this response. The channel indicator shows only one line at a time every single loop. And the other orders received are stored in the buffer until their time to be displayed to come. I mean:

    In the first loop device XXXXX responses.

    In the second loop the device responds YYYYYY but now I stored what must appear:

    2222

    44444

    WWWW

    XXXXX

    YYYYYY

    2222

    44444

    WWWW

    In the third loop, the device responds 2222 and stores again:

    44444

    WWWW

    XXXXX

    YYYYYY

    2222

    44444

    WWWW

    XXXXX

    YYYYYY

    2222

    44444

    WWWW

    How can I configure my blocks to display the full string?

    Thank you

    Murilo

    Post your code and we can better understand what is happening.

    My first is however you spend only the corrent, reading of the indicator.

    You use a chain shift reg with a knot to concatenate a String?

    Your zip code and we'll have a glance.

Maybe you are looking for