summaryrefslogtreecommitdiff
path: root/libcaribou/row-model.vala
diff options
context:
space:
mode:
authorEitan Isaacson <eitan@monotonous.org>2011-05-28 12:52:20 -0700
committerEitan Isaacson <eitan@monotonous.org>2011-05-28 12:52:20 -0700
commit458fb0f30376fa795828bdbf550730057a3c1e24 (patch)
tree8ac67b1f912bf0e8f9bdebc3ce34a8f03ec88a68 /libcaribou/row-model.vala
parentc0b23433f89b91bb08c5d6da65a26b32ff739baa (diff)
downloadcaribou-458fb0f30376fa795828bdbf550730057a3c1e24.tar.gz
Add Column model. Use Gee collections (I give up).
Diffstat (limited to 'libcaribou/row-model.vala')
-rw-r--r--libcaribou/row-model.vala37
1 files changed, 29 insertions, 8 deletions
diff --git a/libcaribou/row-model.vala b/libcaribou/row-model.vala
index de4456c..291d76c 100644
--- a/libcaribou/row-model.vala
+++ b/libcaribou/row-model.vala
@@ -1,22 +1,43 @@
namespace Caribou {
public class RowModel : GLib.Object {
- List<KeyModel> keys;
+ Gee.ArrayList<ColumnModel> columns;
public RowModel () {
- keys = new List<KeyModel> ();
+ columns = new Gee.ArrayList<ColumnModel> ();
}
- public void add_key (KeyModel key) {
- keys.append (key);
+ internal void add_key (int colnum, KeyModel key) {
+ int colindex = colnum;
+ ColumnModel column = null;
+
+ if (colnum < 0)
+ colindex = columns.size + colnum;
+
+ if (colnum >= columns.size) {
+ column = new ColumnModel ();
+ columns.add(column);
+ } else {
+ column = columns[colindex];
+ }
+
+ column.add_key (key);
}
- public KeyModel get_key (uint index) {
- return keys.nth (index).data;
+ public KeyModel[] get_keys () {
+ Gee.ArrayList<KeyModel> keys = new Gee.ArrayList<KeyModel> ();
+ foreach (ColumnModel column in columns) {
+ KeyModel[] col_keys = column.get_keys();
+ foreach (KeyModel key in col_keys) {
+ keys.add(key);
+ }
+ }
+ return (KeyModel[]) keys.to_array ();
}
- public unowned List<weak KeyModel> get_keys () {
- return keys;
+ public ColumnModel[] get_columns () {
+ return (ColumnModel[]) columns.to_array ();
}
+
}
}