» VVVV.DataTable
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

VVVV.DataTable

plugin
Credits: m-box, elliot woods, woei, tonfilm

about

Persistent data handling with GUI.

Supports type boolean, int, float/double and string.

Heavily based on VVVV.Nodes.TableBuffer by elliotwoods

Mixed type support and GUI convenience sponsored by m-box.

v1.2:

  • set nodes set pin changed from bang to toggle
  • insert nodes insert pin changed from bang to toggle

(bang type was preventing alteration in subsequent frames)

v1.1:

  • fixed wrong output slicecount on GetRow Dynamic
  • culture info is set to invariant culture
  • copy paste handles arbitrary decimal separator

Source Code:
https://github.com/woeishi/VVVV.DataTable

download

DataTable V1.2 AnyCPU.zip
11.10.15 [16:05 UTC] by woei | 948 downloads
DataTable V1.2 AnyCPU
Show 2 older revisions

Older Revisions

DataTable V1.1 AnyCPU.zip
28.03.15 [19:41 UTC] by woei | 649 downloads
DataTable V1.1 AnyCPU
Datatable V1.zip
24.11.14 [16:52 UTC] by tonfilm | 768 downloads
DataTable V1 AnyCPU

u7angel 24/11/2014 - 17:59

sweet.
next time i will just upload any random code to encourage you to deliver the goodies ;)

tonfilm 24/11/2014 - 18:04

you have to thank m-box, the development was mainly sponsored by them.

u7angel 24/11/2014 - 18:07

thank you m-box

sebescudie 24/11/2014 - 21:23

looks awesome, thanks :)

keftaparty 16/02/2015 - 14:29

Hi,
Thanks for this, very practicle !
Is there any chance to get a layer out pin for TableView, to integrate it in a GUI renderer with other controls around ?
Mehdi

woei 16/02/2015 - 15:13

while it's pretty straight forward to output the tableview as texture, weaving in the mouse-in-renderer interaction is a pretty extensive task

sebl 16/02/2015 - 15:38

great!

can you think about substituting . to , ? so inserting 234.6 will add the same value as 234,6

keftaparty 16/02/2015 - 16:02

ok thanks,

Well, interaction would of course be great.
But I understand it's a heavy task...

I found somehow my way using SetRenderer to show/hide the table.

Thank you !

woei 16/02/2015 - 16:06

@sebl: jap. just hope that inserting 1.000(,00) won't become 1,00
maybe just switch the locale to something matching v4?

sebl 16/02/2015 - 16:09

ah, for sure, there's always some exceptional case... i think, the system should ideally be smart and, if there's a , and a . in the string, it takes only the , as a comma.

how do you mean "switching locale"? change windows language stuff?

woei 16/02/2015 - 16:24

na, you can set the cultureinfo on how number representation is dealt with (within the plugin only). the cleanest way to handle this would probably be setting it globally to how v4 deals with it. that might potentially break old saved files though

velcrome 16/02/2015 - 20:07

for background infos see i18n

catweasel 27/03/2015 - 20:41

@woei I had a go at making a getTable by name rather than index, but can't get it to work in a dynamic plugin (are you missing a directive or an assembly reference) I've added a reference to the complied table dll and Im using like a type not a namespace. Dont know how to fix either of these!
Seems like it should be easy?
Any chance of a hand?

catweasel 27/03/2015 - 23:35

Ok scratch that its easy enough to do with sifts and selects.
My next question is how to set multiple lines in 1 table, if you have 1 table spreading the index works, but with multiple tables they get set amongst the tables, adding an offset doesn't seem to work, for example 2 tables, index all evens both tables have rows added.

woei 28/03/2015 - 20:32

oi cat

  • can give you a hand in integrating that into a dynamic plugin. referencing the dll + adding
using VVVV.Nodes.Table

should do the trick though

  • second issue

it's just spreads so you can set multiple rows of different tables.
e.g. you have two tables on the input of SetRow, it's the standard patching way you would have to handle vectors. first index coresponds to the first table, second to the second table, third index to first table... by just using the set pin for the slices you need, you can avoid changing all tables at once.

note that the dynamic nodes do not support multiple table as input. (since i cannot safely assume that those tables share the same column names & types

catweasel 30/03/2015 - 15:45

Still have issues with using too...

On the spread thing, I'm trying to set multiple rows of 1 slice of a table

https://www.dropbox.com/s/odwyrnwf76rke19/TableTest.zip?dl=0

I've added a patch to demo what I'm trying to do...

woei 30/03/2015 - 16:16
  • your class(es) were not inside a namespace
namespace VVVV.Nodes.Tables
{
  ... pluginclasses
}

works for me

  • since you have only one slice on the insert bang, the plugin resamples that for every incoming table. try setting on slicecount 2 and see.

for each table on the input a bin of values, the index and the set boolean are used.

check?

catweasel 30/03/2015 - 17:10

Ah ok, that slice counting seems slightly un-intuitive, as I would have expected to have to set an index for it to do its magic on it, but now I know, all good, Thanks Woei

as for your class(es) were not inside a namespace, I think I'll just leave that there before starting lesson 1 of c# again...

woei 30/03/2015 - 18:18

then you would have two indices. one for the row you wanted to set, and another one for the table. not sure, if that isn't even more confusing.

catweasel 02/04/2015 - 23:21

So... I'm getTabling to get presets from an array of table, their in different tables as they can all have different and changing numbers of rows. However, it takes quite a bit of cpu every time I get a table, and it looks like 2 frames of slow rather than just 1, is there anyway of optimizing this, is a spread of tables not the best way?
I was previously using xml and txt files, and they are far faster to load than reading from the table, which I presumed would be read from memory?
Managed to finally get a fork and got it to compile, can't figure out how to do it dynamic, maybe I'll get you at node... ;)

Ok the slow down is the TableView node, even it it is not visible it seems to mess with the frame rate.

woei 03/04/2015 - 17:46

hum,
cpu might be busy because i haven't cleaned/optimized event raising on table/datachange. it shouldn't be any frame late though... have to dive into that.
a spread of tables should be okey, as long as you don't have to load each from file. once loaded they are kept in memory by the central table node.
let's sit down at node!

sansui 20/07/2015 - 14:11

would be very useful. thank you!

sansui 20/07/2015 - 14:13

perhaps, Is there a way to get table data from reading xls, csv, xml files?

woei 20/07/2015 - 14:44

it is already saving and reading xml files.
copy pasting xls should also work (depending on the separator)

elliotwoods 02/11/2015 - 11:38

Nice!

Some great new additions in here.
I'm making this version the default for my own projects.

a few issues:

  • Column Names is space delineated now? (e.g. "Position X (m), Position Y (m)" comes as 3 columns "Position", "X", "(m)". And everything after the first comma is then ignored.
  • Still has issue on repaint
  • checkbox (bool type) draws outside of bounds of row (maybe an issue on high dpi screens?)
  • Colours are kind of horrible now :(
  • GetColumn doesn't work with bool type? GetColumn (Dynamic) would be nice
  • GetRows (or simply GetRowIndices module which is a mix of Info and I (Spreads)) would be useful
woei 06/11/2015 - 12:28

hej elliot,
welcome back

  • column names cannot have spaces, since their name will be used directly as xml node identifier. can handle that case more gracefully though
  • repaint issue: indeed. seems even more noticeable now on win10 and highdpi. guess it would require quite a rework of event messaging...
  • checkbox out of bounds: definitely high dpi issue, just noticed myself here
  • colors: see github
  • GetColumns and bool: ja, bugger, will fix.
  • GetColumn (Dynamic): the issue with that node would be, that it could change output pin (type) every time you change the index... therefore not implemented
  • GetRows: you mean something like GetTable (Dynamic) a pin per column outputting all available cells?
elliotwoods 08/07/2016 - 04:35
username said
woei
column names cannot have spaces, since their name will be used directly as xml node identifier. can handle that case more gracefully though

I see, interesting.
I've changed my projects to use no spaces, but i think it'd be nice to have that support, and still comma separated lists would be more sensible (but now changing that would break old patches)

username said
woei
repaint issue: indeed. seems even more noticeable now on win10 and highdpi. guess it would require quite a rework of event messaging...
checkbox out of bounds: definitely high dpi issue, just noticed myself here

OK

username said
woei
colors: see github

cheers!
what **were** you thinking?? ;)

username said
woei
GetColumn (Dynamic): the issue with that node would be, that it could change output pin (type) every time you change the index... therefore not implemented

Why would that be a problem?

username said
woei
GetRows: you mean something like GetTable (Dynamic) a pin per column outputting all available cells?

yes exactly. would be nice!

anonymous user login

Shoutbox

~4d ago

joreg: vvvvTv S02E01 is out: Buttons & Sliders with Dear ImGui: https://www.youtube.com/live/PuuTilbqd9w

~10d ago

joreg: vvvvTv S02E00 is out: Sensors & Servos with Arduino: https://visualprogramming.net/blog/2024/vvvvtv-is-back-with-season-2/

~10d ago

~11d ago

fleg: hey there! What's the best tool for remote work? Teamviewer feels terrible. Thanks!

~24d ago

joreg: Last call: 6-session vvvv beginner course starting November 4: https://thenodeinstitute.org/courses/ws24-5-vvvv-beginners-part-i/

~1mth ago

joreg: Missed the last meetup? You can rewatch it here: https://www.youtube.com/live/MdvTa58uxB0?si=Fwi-9hHoCmo794Ag

~1mth ago

theurbankind: When is the next big event, like node festival ?

~1mth ago

~1mth ago

joreg: Join us for the next vvvv meetup on Oktober 17th: https://visualprogramming.net/blog/2024/25.-vvvv-worldwide-meetup/

~2mth ago

joreg: 6 session beginner course part 2 "Deep Dive" starts January 13th: https://thenodeinstitute.org/courses/ws24-5-vvvv-beginners-part-ii/