Search Unity

Table Pro: When Your Data isn't a Game

Discussion in 'Assets and Asset Store' started by slumtrimpet, Aug 15, 2015.

  1. ISM3DVS

    ISM3DVS

    Joined:
    Feb 5, 2014
    Posts:
    10
    I figured out what the issue was, you need to toggle 'Use 2D Mask' to get it to wrap with the CurvedUI properly. I'm not quite sure why this is the case, but it is.

    Sorry to be too much of a bother, just looking for some help.

    Profiling the application shows a high number of Render.TransparentGeometry draw calls (300+) for a table of 107 columns x 50 rows. I'm not rendering any images just text. This is tanking my fps as I try to scroll through the table. Any suggestions as to why? Or maybe something I'm doing incorrectly?

    Thanks,
     
  2. SorraTheOrc

    SorraTheOrc

    Joined:
    Jun 11, 2016
    Posts:
    207
    When running the autoupdate demo, even in a brand new project with nothing in it except Table Pro the cells flash when they are updated. This would seem to make the package wholly unusable and since I don't see it mentioned in low start reviews or here on the forum I wonder what could be unique about my setup to cause it?
     
  3. slumtrimpet

    slumtrimpet

    Joined:
    Mar 18, 2014
    Posts:
    372
    Whats your Unity version?
     
  4. witteb

    witteb

    Joined:
    Feb 19, 2017
    Posts:
    13
    Is there a way to hide a column? I've added a column to keep the index to the list I am using to fill the table and added the index column so I can lookup data if a row is clicked from my data. I would prefer not to see this column - any tips would be appreciated.
     
  5. slumtrimpet

    slumtrimpet

    Joined:
    Mar 18, 2014
    Posts:
    372
    When you instantiate each row datum you provide it a unique key. "Typically" something like your index value would go into that. Otherwise, you could xref the column row index to your key index in a normal C# List if for some reason you can't leverage the built-in construct. Will that work for you?
     
  6. witteb

    witteb

    Joined:
    Feb 19, 2017
    Posts:
    13
    makes sense that will work - so I can set the Datum uid ? or would assume as I add items, they are being incremented in the same order as they appear in my list. I was concerned when sorting since "row 2" uid was always 2 even if the table was sorted - I was worried it would break the link to the original object.
     
  7. slumtrimpet

    slumtrimpet

    Joined:
    Mar 18, 2014
    Posts:
    372
    Correct, the Datum UID is just a UID and doesn't control actual positioning. Go nuts with it. :)
     
  8. witteb

    witteb

    Joined:
    Feb 19, 2017
    Posts:
    13
    I am using Unity 2017.3.1.p2 and what used to work fine has started acting funny - every time I go to a scene with a table, only the first column shows data (wrong data) - but if you scroll or move it fixes - I created a brand new project and imported only tablepro - this is the output of "simple" - my app is doing the same thing - used to work great....
    upload_2018-3-2_14-10-46.png

    if you move the table you get the correct view
    upload_2018-3-2_14-10-6.png
     
  9. slumtrimpet

    slumtrimpet

    Joined:
    Mar 18, 2014
    Posts:
    372
    Hrmm.... not sure, sounds like a regression from Unity as obviously, it works in older revs. I'll need to pull the latest Unity fun and see what broke this time. :)
     
  10. slumtrimpet

    slumtrimpet

    Joined:
    Mar 18, 2014
    Posts:
    372
    Well... good/bad news. TablePro still works fine in 2017.3.1f1. Unity broke something pretty seriously in their 2017.3.1 patch releases. As this tends to be the pattern with Unity, I can't take time to try to patch my asset with their patch release as they will most likely fix their end for the next non-patch release (this seems to be a fairly glaring bug in their entire RectTransform/UI layer, surely we aren't the only ones hitting this).
     
  11. witteb

    witteb

    Joined:
    Feb 19, 2017
    Posts:
    13
    thx - how do i confirm Unity is aware of their error?
     
  12. ISM3DVS

    ISM3DVS

    Joined:
    Feb 5, 2014
    Posts:
    10
    Got a quick question. I am changing the header color for specific columns. But when you hover over the header row they change to the hover color. Is there any way to turn off being able to hover the header row?

    Thanks!
     
  13. AshleyBates

    AshleyBates

    Joined:
    Feb 24, 2017
    Posts:
    34
    Hello,

    I am running my software both on a Windows PC Build, and an Android Tablet.

    I have two sets of data - one small and one larger (although the large is only about 2000 lines with 10 columns)

    On the PC both sets of data display without any problem. On the tablet however the larger data never gets populated in the table. It just remains empty.

    I am using unity version 2017.1

    Any ideas what might be causing this?

    Thank You.
     
  14. slumtrimpet

    slumtrimpet

    Joined:
    Mar 18, 2014
    Posts:
    372
    Can you make both the header color and the header hover color the same thing? I guess maybe I'm unclear on the question.
     
  15. ISM3DVS

    ISM3DVS

    Joined:
    Feb 5, 2014
    Posts:
    10
    Sorry, I'll try to be more clear about what I'm using it for.

    I have a table that is quite large in number of columns. Because of this I would like to give the user the ability to remove columns that aren't relevant to what they need to see. I'm doing this with header selection, however when I change the header row background color to for example
    color = Color.blue
    it changes to blue properly. However, it changes right back to the header color after the user removes the pointer from that cell.


    While I'm here I have another issue I would like to ask about.

    So I have a list of names in a single column table. This list is quite long, so I tried to implement a toggle sort so that the user can select a letter which would scroll the table to that location. I'm doing this manually through
    table.MoveSelectionDown(true)
    until the value starts with the letter that the user selected. But the selection isn't always on the rendered viewable area, I would like the first match to be at the top.

    Thank you for your time
     
  16. Eastwing

    Eastwing

    Joined:
    Mar 30, 2013
    Posts:
    26
    Hey there

    Our client's project uses Table pro and it worked great. But after updating Unity to 2017.3.1p3 the tables have started looking wierd. Like that:

    upload_2018-3-17_9-43-4.png

    All columns have headers, but now all the headers have the same coordinates. The columns must be straight. All the cells have a borders, but they're disappear. Look at the left table. There is grey row that's not supposed to be there.

    The tables worked great at least with Unity 2017.3p2. Any idea what's wrong?

    (Please don't pay attention to the font, this post is about tables only)
     
    Last edited: Mar 17, 2018
  17. Eastwing

    Eastwing

    Joined:
    Mar 30, 2013
    Posts:
    26
    Hey guys.

    I've managed to get around our problem with forcing UI element to redraw at the end of the frame:

    Code (CSharp):
    1. TableFormat(){
    2.     //some data processing
    3.     table.StartRenderEngine();
    4.     StartCoroutine(DelayedRedraw());
    5. }
    6.  
    7. IEnumerator DelayedRedraw(){
    8.     var img = GetComponent<UnityEngine.UI.Image>();
    9.     img.enabled = false;
    10.     yield return new WaitForEndOfFrame();
    11.     img.enabled = true;
    12. }
    Yeah, I know it's a dirty hack but it might become a quick temporary solution if you get this problem
     
    Last edited: Mar 23, 2018
    slumtrimpet likes this.
  18. Kirch21

    Kirch21

    Joined:
    Sep 28, 2017
    Posts:
    8
    Hello! I keep getting an error and I cant seem to solve it.

    This is the error:

    get_realtimeSinceStartup can only be called from the main thread.
    Constructors and field initializers will be executed from the loading thread when loading a scene.


    I have an UpdateRow function I am calling from outside my table when I get the error. The function is below:

    Code (CSharp):
    1. public void UpdateRow(String id, String newValue, Color newColor)
    2. {
    3.      Datum currentDatum = table.data.Get(id);
    4.      int index = table.data.IndexOf(currentDatum);
    5.      this.table.data[index].elements[1].value = newValue;
    6.      //update color
    7. }
    Any tips? Thanks!
     
    Last edited: Mar 22, 2018
  19. slumtrimpet

    slumtrimpet

    Joined:
    Mar 18, 2014
    Posts:
    372

    Can I get a full stack trace?
     
  20. slumtrimpet

    slumtrimpet

    Joined:
    Mar 18, 2014
    Posts:
    372
    Thanks for this a similar fix will be included in next release.
     
  21. slumtrimpet

    slumtrimpet

    Joined:
    Mar 18, 2014
    Posts:
    372
    This has been fixed per my previous post. Next release will include said fix.
     
  22. ISM3DVS

    ISM3DVS

    Joined:
    Feb 5, 2014
    Posts:
    10
    @slumtrimpet

    I'm trying to use Table.DoVertScrollUntilVisible() to scroll to a Datum that I've stored elsewhere, but the table does not scroll all the way down to the desired Datum, it only goes so far. Any suggestions?
     
  23. slumtrimpet

    slumtrimpet

    Joined:
    Mar 18, 2014
    Posts:
    372
    There are a ton of bugs in the current TablePro when running against Unity >= 2017.3. I'm pushing a release patch to the store for approval right now. It should be available within a couple days, or PM me for a direct download link if you can't wait for the store.
     
  24. ISM3DVS

    ISM3DVS

    Joined:
    Feb 5, 2014
    Posts:
    10
    Ah I see, thank you for the feedback on that.
     
  25. educardenas94

    educardenas94

    Joined:
    Apr 17, 2018
    Posts:
    2
    Hello, Table Pro is a very useful and excellent asset, I also work very well. But I am new to Unity and I need to know how to save the data that I entered in the table and that is not lost when reloading the scene. Any help or suggestion would be very helpful.
    regards
    Edu
     
  26. slumtrimpet

    slumtrimpet

    Joined:
    Mar 18, 2014
    Posts:
    372
    Thanks for the kind words regarding TablePro. :)

    Your question is very implementation-specific and a bit outside the realm of TablePro itself... but I'll do my best to give an answer. You are sort of talking about persisting arbitrary data (regardless of if TablePro was used to render it or it's just game data or some other UI widgets data) between sessions. You could use PlayerPrefs or even a local SQLite implementation for that... or a billion different client/server implementations where you persist the data on a server and deliver it back to the client on subsequent runs.

    Good luck!
     
  27. JCMazza

    JCMazza

    Joined:
    May 2, 2018
    Posts:
    1
    Hi, this looks like the tool i have been looking for. Does this have the ability to display infinite amount of EMPTY rows? i want the user to be able to fill out qc form then save the data into csv and load it back up on every run.
     
  28. slumtrimpet

    slumtrimpet

    Joined:
    Mar 18, 2014
    Posts:
    372
    Yeah... I mean, obviously it's not 'infinite' but we can display more empty rows than a user would ever manually populate. The serialization to and from CSV is of course up to you to implement.
     
  29. bjornrun

    bjornrun

    Joined:
    Oct 29, 2013
    Posts:
    88
    I bought this asset while back and now I'm planning to use it, so I have bunch of questions.
    Is it possible to nest tables?
    How to make rows that can scroll horizontally without scrolling the other rows?
    I see that horizontal scrolling is supported in the kitchen sink example, but this scrolls the whole table.
     
  30. slumtrimpet

    slumtrimpet

    Joined:
    Mar 18, 2014
    Posts:
    372
    Hello, unfortunately, we don't support nested tables or horizontal scrolling on an individual row.
    Sorry, I feel like we might not be a good fit for you if those are both firm reqs. PM me to discuss refund if desired.
     
  31. Isacote

    Isacote

    Joined:
    Dec 13, 2013
    Posts:
    4
    Hi I just bought it, it works great and very friendly, but I cant found how can I use the TextMesh Pro can you provide me an example

    Thanks
     
  32. slumtrimpet

    slumtrimpet

    Joined:
    Mar 18, 2014
    Posts:
    372
    TextMeshPro should automatically set a Scripting Define Symbol of "TMP_PRESENT" when it's... present. That's all we key off of in our asset to automatically switch all the text to TMP test instead of vanilla Unity.

     
  33. Kirch21

    Kirch21

    Joined:
    Sep 28, 2017
    Posts:
    8
    Hello! Is there a setting to shift+click to select multiple rows at once? For example, click row 8, hold shift(or whatever key) and click row 20 and have all of rows 8-20 be selected? Thanks!
     
  34. slumtrimpet

    slumtrimpet

    Joined:
    Mar 18, 2014
    Posts:
    372
    Yes, under the GENERAL settings in the editor you can change the table selection mode. Supported values are CELL/ROW/MULTICELL/MULTIROW.

    (use a MULTI-variant for shift+click support)
     
  35. Kirch21

    Kirch21

    Joined:
    Sep 28, 2017
    Posts:
    8
    Sorry I should have been more specific. This is working to select multiple rows by holding shift and clicking each row individually, but what I was hoping to enable was selecting a group of rows. The user would select the start row, then holding shift and selecting a different row and every row in between those two rows would also be selected. Microsoft Excel works in a similar fashion. Thanks for the help.
     
  36. slumtrimpet

    slumtrimpet

    Joined:
    Mar 18, 2014
    Posts:
    372
    Ah, sorry I misunderstood. No, we don't currently support that.
     
  37. EkAster

    EkAster

    Joined:
    Mar 27, 2014
    Posts:
    2
    Hi, I just purchased TablePro and am very happy with how it's working so far, thank you! I'm wondering if there's more documentation than is just on the website though? For example, I don't see how I can add those cool blue bars under a row (I could be missing it), or perhaps a better example of how to use the sprite dictionary?

    If there isn't, would you be willing to send the code behind the "Data Table Demo"? I'd love to have a better example to work off of than the basic usage.

    Thank you!
     
  38. slumtrimpet

    slumtrimpet

    Joined:
    Mar 18, 2014
    Posts:
    372
    I'm actually not in front of a computer at the moment (nor will I be for a few days)... But all the samples are included in the "samples" directory of the asset. That includes the data table one.

    I can get you better answers in a few days, but check out the samples for now and see if they will suffice.
     
  39. EkAster

    EkAster

    Joined:
    Mar 27, 2014
    Posts:
    2
    What's there is perfect, thank you! No need for anything else right now
     
  40. QuincyC

    QuincyC

    Joined:
    Jun 5, 2018
    Posts:
    10
    Just got started with this thing and got going pretty quickly with my own data using the basic DataTable sample scene. I can see the path forward for my project but there's a few major issues I'd like some tips on:

    1) The fade in effect when scrolling is straight up insane, it makes it impossible to see the data that you're looking for without stopping every few seconds. Is there a practical reason for this effect? Where (in code) would I look to disable it?

    2) I am working with pretty large datasets (my testing sample is ~1400 rows) and sorting by column after clicking on a header takes upwards of 30 seconds. Looking at the code it's really obvious why this is happening:

    Code (CSharp):
    1.  
    2.       this.table.data.Clear();
    3.       for(int i = 0; i < this.poplist.Count; i++) {
    4.         DataTableData.Population p = this.poplist[i];
    5.         Datum d = Datum.Body(i.ToString());
    6.         d.elements.Add(p.rank.ToString());
    7.         d.elements.Add(p.city);
    8.         d.elements.Add(p.country);
    9.         d.elements.Add(p.population.ToString("#,##0"));
    10.         d.elements.Add(this.spriteNames[p.iconIndex]);
    11.         d.elements.Add(p.density.ToString("#,##0"));
    12.         d.elements.Add(p.sqkm.ToString("#,##0.0"));
    13.         if(!string.IsNullOrEmpty(p.extraText)) {
    14.           d.extraText = new Element(d, p.extraText);
    15.         }
    16.         this.table.data.Add(d);
    17.       }
    18.  
    19.  
    Looks like the entire table gets dumped on sort and every datum is recreated from scratch. I realize there may be significant overhead sorting 1400 strings alphabetically (and I haven't actually timed the operation on its own) but 30 seconds seems pretty extreme. I'll be digging into this on Monday, but do you have any suggestions for how this could be done more smoothly? Maybe just performing the sort on the TableDatumList directly?
     
  41. QuincyC

    QuincyC

    Joined:
    Jun 5, 2018
    Posts:
    10
    Well I figured out the sorting thing, the basic idea is to keep a reference in the Datum class to the original object and use that to sort the Datums directly. My sort function looks like this:

    DataTable.cs
    Code (CSharp):
    1.  
    2. private void ApplyCurrentSort()
    3.     {
    4.         bool isAscending = (CurrentSortDirection == SortDirection.Ascending);
    5.  
    6.         // Reset current sort UI
    7.         for (int i = 0; i < this.table.columns.Count; i++)
    8.         {
    9.             if (i == currentSortColumn)
    10.             {
    11.                 if (isAscending)
    12.                 {
    13.                     this.table.columns[i].headerIcon = "UP";
    14.                 }
    15.                 else
    16.                 {
    17.                     this.table.columns[i].headerIcon = "DOWN";
    18.                 }
    19.             }
    20.             else
    21.             {
    22.                 this.table.columns[i].headerIcon = null;
    23.             }
    24.         }
    25.  
    26.         Comparison<Datum> sort = delegate (Datum dat1, Datum dat2) {
    27.             Chrom chrom1 = (Chrom)dat1.data;
    28.             Chrom chrom2 = (Chrom)dat2.data;
    29.  
    30.             // NAME
    31.             if (currentSortColumn == colName)
    32.             {
    33.                 if (isAscending)
    34.                 {
    35.                     return chrom1.Name.CompareTo(chrom2.Name);
    36.                 }
    37.                 else
    38.                 {
    39.                     return chrom2.Name.CompareTo(chrom1.Name);
    40.                 }
    41.             }
    42.             else if (currentSortColumn == colID)
    43.             { // ID
    44.                 if (isAscending)
    45.                 {
    46.                     return chrom1.ID.CompareTo(chrom2.ID);
    47.                 }
    48.                 else
    49.                 {
    50.                     return chrom2.ID.CompareTo(chrom1.ID);
    51.                 }
    52.             }
    53.  
    54.             return chrom1.Name.CompareTo(chrom2.Name);
    55.         };
    56.  
    57.         // do the sort
    58.         this.table.data.Sort(sort);
    59.     }
    and then in Datum.cs

    Code (CSharp):
    1.     public class Datum
    2.     {
    3.         ...
    4.         public object data;
    5.         ...
    6.      }
    7.  
    8.     public class TableDatumList : IEnumerable<Datum>
    9.     {
    10.         ...
    11.         public void Sort(Comparison<Datum> comparison)
    12.         {
    13.             this._changing = true;
    14.             this.list.Sort(comparison);
    15.             RebuildIndexes();
    16.             this.FinishDataChange();
    17.         }
    18.         ...
    19.     }
    This method works pretty much instantly. My animation issue was fairly easily fixed as well by just setting the animation speed to 0.

    I'm now noticing though that I'm taking a pretty heavy performance hit when resizing the panel containing the data table.And it flashes the spinner a bunch of times which looks really bad. I'll report back if I figure it out, my guess is that it's rebuilding something unnecessarily.
     
  42. p00temkin

    p00temkin

    Joined:
    Aug 12, 2017
    Posts:
    2
    Is there a way to color an individual cell (not entire row) using the API based on the cell text value? Any hints/feedback would be appreciated, thanks!
     
  43. username132323232

    username132323232

    Joined:
    Dec 9, 2014
    Posts:
    477
    Great asset! Just started using it and have some basic questions:

    1. Is there a way to automatically adjust font size so that all text stays in one line (no line breaks).

    2. Is there an API call to set row height?

    3. Is there an API call to change row color?

    4. Any way to use different fonts for the header and the regular rows?

    Thanks!
     
    Last edited: Aug 3, 2018
  44. MrIconic

    MrIconic

    Joined:
    Apr 5, 2013
    Posts:
    239
    Any ideas on how to define min/max height? I want to create static sized cells.
     
  45. Strangertoyourlife

    Strangertoyourlife

    Joined:
    Feb 7, 2016
    Posts:
    2
    Does anyone know how to set the cell height/width ?
     
    username132323232 likes this.
  46. MrIconic

    MrIconic

    Joined:
    Apr 5, 2013
    Posts:
    239
    @username132323232 @Strangertoyourlife

    If you open Datum.cs there's around like 189 you'll see
    Code (csharp):
    1.  
    2.       if(this._measuredHeight.Value > this.table.minRowHeight)
    3.         return this._measuredHeight.Value;
    4.       else {
    5.         if(this.isHeader)
    6.           return this.table.minHeaderHeight;
    7.         if(this.isFooter)
    8.           return this.table.minFooterHeight;
    9.         return this.table.minRowHeight;
    10.       }
    11.     }
    12.  
    If you change the first if's return into "return this.table.minRowHeight" - then the height will always equal the minimum height.

    There will still be height calculations behind the scenes unfortunately. Furthermore, editing table.minRowHeight at runtime will do nothing. It will change back to what was in the inspector as soon as you remake the table.

    Haven't experimented with anything else. Just figured I'd share a temp. way to set exact heights.
     
  47. xpachin

    xpachin

    Joined:
    Feb 6, 2014
    Posts:
    62
    can it be bind to some sort of data oject? like dataset or datatable?
     
  48. astorms

    astorms

    Joined:
    Jan 31, 2018
    Posts:
    50
    @slumtrimpet Just bought this asset and started playing with it. Really excited about the possibilities! However, when attempting to make the first 4 columns 60 pixels wide and the last column filling the remaining space using a modified version of the KitchenSink example, I have the following observations and questions.

    1) cell width does not equal column width for the last column
    2) the first column when rendered is actually 72 pixels wide instead of 60
    3) Why is there a MakeData() method at the bottom of the file? It is not called anywhere. Same questions for the Datum tmpDatum variable

    Thanks a lot in advance!
    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections.Generic;
    3.  
    4. namespace SLS.Widgets.Table
    5. {
    6.     public class KitchenSink : MonoBehaviour
    7.     {
    8.         public Table table;
    9.         private bool started;
    10.         private int colCount;
    11.         private int rowCount;
    12.  
    13.         void Start()
    14.         {
    15.             MakeDefaults.Set();
    16.  
    17.             this.DoTable(5, 10, true);
    18.         }
    19.  
    20.         private void DoTable(int numCols, int numRows, bool initial = false)
    21.         {
    22.  
    23.             this.colCount = numCols;
    24.             this.rowCount = numRows;
    25.  
    26.             this.table.ResetTable();
    27.  
    28.             System.Random rand = new System.Random();
    29.             Datum d;
    30.  
    31.             for (int i = 0; i < colCount; i++)
    32.             {
    33.                 Column c;
    34.                 if (initial)
    35.                 {
    36.                     if (i < colCount - 1)
    37.                         c = table.AddTextColumn("Column_" + i.ToString(), "Footer_" + i.ToString(), 60, 60);
    38.                     else
    39.                         c = table.AddTextColumn("Column_" + i.ToString(), "Footer_" + i.ToString(), 60);
    40.  
    41.                     if (i == 2)
    42.                         c.horAlignment = Column.HorAlignment.CENTER;
    43.                     if (i == 3)
    44.                         c.horAlignment = Column.HorAlignment.RIGHT;
    45.                 }
    46.             }
    47.  
    48.             this.table.Initialize(this.SelectionCallback);
    49.  
    50.             char[] cnames = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".ToCharArray();
    51.  
    52.             for (int i = 0; i < rowCount; i++)
    53.             {
    54.                 d = Datum.Body(i.ToString());
    55.                 for (int j = 0; j < table.columns.Count; j++)
    56.                 {
    57.                     // Add each piece of data to the table
    58.                     if (j < 3)
    59.                         d.elements.Add(rand.Next(9).ToString());
    60.                     else
    61.                         d.elements.Add
    62.                           (i.ToString() + ":" + cnames[j].ToString());
    63.                 }
    64.                 table.data.Add(d);
    65.             }
    66.  
    67.             table.StartRenderEngine();
    68.  
    69.         }
    70.  
    71.         private void SelectionCallback(Datum d)
    72.         {
    73.             print(d.uid);
    74.         }
    75.  
    76.         Datum tmpDatum;
    77.  
    78.         private Datum MakeData(bool isHeader = false, bool isFooter = false)
    79.         {
    80.             float i = Time.realtimeSinceStartup;
    81.             Datum d;
    82.             if (isHeader)
    83.                 d = Datum.Header();
    84.             else if (isFooter)
    85.                 d = Datum.Footer();
    86.             else
    87.                 d = Datum.Body(i.ToString());
    88.             for (int j = 0; j < table.columns.Count; j++)
    89.             {
    90.                 d.elements.Add(j.ToString() + "_" + i.ToString());
    91.             }
    92.             return d;
    93.         }
    94.     }
    95. }
    upload_2018-10-3_11-1-30.png
     

    Attached Files:

  49. slumtrimpet

    slumtrimpet

    Joined:
    Mar 18, 2014
    Posts:
    372
    Hello (and I apologize to all the other commenters on here that I haven't replied to recently... for some reason, I stopped getting thread update notification from Unity at some point in the last month or so...)

    1) true, that's intentional to note cell vs row selection mode. If you ONLY need row selection, go into the TablePro settings in your editor. General Settings > Table Selection UI Mode and set it to 'ROW' to resolve the UI issue I think you are probably trying to fix there.

    2) the first column with is 60 + [General Settings > Left Margin] + [General Settings > Horizontal Spacing / 2]

    3) whoops... I'll remove that for the next release. It's obsolete.
     
  50. slumtrimpet

    slumtrimpet

    Joined:
    Mar 18, 2014
    Posts:
    372
    The data feeding the table is just a List you populate yourself via whatever mechanism you want. So no, we don't auto bind to any data source but it's a trivial exercise for you to populate our table from any source.