package coopy;
/**
*
* For other languages, I implemented a simple wrapper around the most
* obvious 2D representation of a table, to avoid unnecessary copies.
* In Java, the 2D representations aren't really so convenient to
* use that this is worth doing, if we are modifying the list.
* So this wrapper switches representation once we start making
* structural modifications.
*
*/
public class JavaTableView extends haxe.lang.HxObject implements coopy.Table
{
private Object[][] basic_data;
private coopy.SimpleTable edit_data;
private int w;
private int h;
public JavaTableView() {
basic_data = null;
edit_data = new coopy.SimpleTable(1,1);
w = h = 0;
}
public JavaTableView(Object[][] data) {
basic_data = data;
edit_data = null;
h = basic_data.length;
if (h>0) {
w = basic_data[0].length;
} else {
w = 0;
}
}
public int get_width() {
if (edit_data!=null) return edit_data.get_width();
return this.w;
}
public int get_height() {
if (edit_data!=null) return edit_data.get_height();
return this.h;
}
private void needToEdit() {
if (edit_data==null) {
edit_data = new coopy.SimpleTable(w,h);
for (int y=0; y fate, int hfate) {
needToEdit();
return edit_data.insertOrDeleteRows(fate,hfate);
}
public boolean insertOrDeleteColumns(haxe.root.Array fate, int wfate) {
needToEdit();
return edit_data.insertOrDeleteColumns(fate,wfate);
}
public boolean trimBlank() {
needToEdit();
return edit_data.trimBlank();
}
@Override public java.lang.String toString() {
return coopy.SimpleTable.tableToString(this);
}
@Override public JavaTableView clone() {
JavaTableView result = new JavaTableView();
result.resize(w,h);
for (int c=0; c) (dynargs.__get(0)) ), ((int) (haxe.lang.Runtime.toInt(dynargs.__get(1))) ));
}
break;
case 1150076829:
if (field.equals("get_width")) {
onwards = false;
return this.get_width();
}
break;
case 1186308544:
if (field.equals("insertOrDeleteRows")) {
onwards = false;
return this.insertOrDeleteRows(((haxe.root.Array) (dynargs.__get(0)) ), ((int) (haxe.lang.Runtime.toInt(dynargs.__get(1))) ));
}
break;
case 859648560:
if (field.equals("get_height")) {
onwards = false;
return this.get_height();
}
break;
case 94746189:
if (field.equals("clear")) {
onwards = false;
this.clear();
}
break;
case -934437708:
if (field.equals("resize")) {
onwards = false;
return this.resize(((int) (haxe.lang.Runtime.toInt(dynargs.__get(0))) ), ((int) (haxe.lang.Runtime.toInt(dynargs.__get(1))) ));
}
break;
case -75632168:
if (field.equals("getCell")) {
onwards = false;
return this.getCell(((int) (haxe.lang.Runtime.toInt(dynargs.__get(0))) ), ((int) (haxe.lang.Runtime.toInt(dynargs.__get(1))) ));
}
break;
case -972315487:
if (field.equals("isResizable")) {
onwards = false;
return this.isResizable();
}
break;
case 1984477412:
if (field.equals("setCell")) {
onwards = false;
this.setCell(((int) (haxe.lang.Runtime.toInt(dynargs.__get(0))) ), ((int) (haxe.lang.Runtime.toInt(dynargs.__get(1))) ), dynargs.__get(2));
}
break;
case 1160377501:
if (field.equals("getCellView")) {
onwards = false;
return this.getCellView();
}
break;
case -1776922004:
if (field.equals("toString")) {
onwards = false;
return this.toString();
}
break;
}
if (onwards) {
return super.__hx_invokeField(field, dynargs);
}
return null;
}
@Override public void __hx_getFields(haxe.root.Array baseArr) {
baseArr.push("width");
baseArr.push("height");
baseArr.push("data");
super.__hx_getFields(baseArr);
}
}