/* XOWA: the XOWA Offline Wiki Application Copyright (C) 2012 gnosygnu@gmail.com This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ package gplx.gfui.layouts; import gplx.*; import gplx.gfui.*; class GftGrid_fx { public GftItem Owner() {return owner;} GftItem owner; public GftGrid_fx Clear() { itms.Clear(); grid.Clear(); curGrid = grid; owner = new GftItem_mok();//.Key_("owner"); return this; } public GftGrid_fx ini_AddItms(int num) { for (int i = 0; i < num; i++) itms.Add(new GftItem_mok());//.Key_("key" + Int_.To_str(i))); return this; } public GftGrid_fx ini_ItmWidth(int i, int width) { GftItem itm = (GftItem)itms.Get_at(i); itm.Gft_w_(width); return this; } public GftGrid_fx ini_AddLyts(int num) { for (int i = 0; i < num; i++) { GftGrid newGrid = GftGrid.new_(); grid.SubLyts().Add(newGrid); } return this; } public GftGrid_fx ini_Lyt(int num) { curGrid = (GftGrid)grid.SubLyts().Get_at(num); return this; } public GftGrid_fx ini_BandDir(DirInt dir) {curGrid.Bands_dir_(dir); return this;} public GftGrid_fx ini_OwnerSize(int w, int h) {owner.Gft_w_(w); owner.Gft_h_(h); return this;} public GftGrid_fx ini_Set(int idx, GftBand orig) {return ini_Set(idx, idx, orig);} public GftGrid_fx ini_Set(int bgn, int end, GftBand orig) {curGrid.Bands_set(bgn, end, orig); return this;} public GftGrid_fx run() { GftItem[] ary = (GftItem[])itms.To_ary(GftItem.class); grid.Exec(owner, ary); return this; } public GftGrid_fx tst_Filter(int idx) {return tst_Filter(idx, idx);} public GftGrid_fx tst_Filter(int bgn, int end) {this.bgn = bgn; this.end = end; return this;} int bgn, end; public GftGrid_fx tst_W(int... expd) {return tst_ary("w", expd);} public GftGrid_fx tst_H(int... expd) {return tst_ary("h", expd);} public GftGrid_fx tst_X(int... expd) {return tst_ary("x", expd);} public GftGrid_fx tst_Y(int... expd) {return tst_ary("y", expd);} public GftGrid_fx tst_W_all(int expd) {return tst_all("w", expd);} public GftGrid_fx tst_H_all(int expd) {return tst_all("h", expd);} public GftGrid_fx tst_X_all(int expd) {return tst_all("x", expd);} public GftGrid_fx tst_Y_all(int expd) {return tst_all("y", expd);} GftGrid_fx tst_all(String name, int expdVal) {return tst_ary(name, rng_(expdVal, end - bgn + 1));} GftGrid_fx tst_ary(String name, int[] expd) { int len = end - bgn + 1; int[] actl = new int[len]; for (int i = 0; i < len; i++) { GftItem itm = (GftItem)itms.Get_at(i + bgn); actl[i] = GetVal(itm, name); } Tfds.Eq_ary(expd, actl, name); return this; } int GetVal(GftItem item, String name) { if (String_.Eq(name, "x")) return item.Gft_x(); else if (String_.Eq(name, "y")) return item.Gft_y(); else if (String_.Eq(name, "w")) return item.Gft_w(); else if (String_.Eq(name, "h")) return item.Gft_h(); else throw Err_.new_unhandled(name); } static int[] rng_(int expdVal, int len) { int[] rv = new int[len]; for (int i = 0; i < len; i++) rv[i] = expdVal; return rv; } GftGrid grid = GftGrid.new_(), curGrid; List_adp itms = List_adp_.New(); }