home *** CD-ROM | disk | FTP | other *** search
- package webeq3.schema;
-
- import java.awt.Graphics;
- import java.io.PrintStream;
- import java.util.StringTokenizer;
- import webeq3.app.Equation;
- import webeq3.array.ArrayDims;
- import webeq3.constants.ArrayConstants;
- import webeq3.constants.AttributeConstants;
-
- public class MTable extends LineBreakRewriter implements ArrayConstants, AttributeConstants {
- ArrayDims dims = null;
- // $FF: renamed from: o java.io.PrintStream
- PrintStream field_0;
- int align;
- int center_axis;
- int xwidth;
- // $FF: renamed from: em int
- int field_1;
- boolean equalrows;
- boolean equalcols;
- public int savedCursorLeft;
- public int savedCursorTop;
-
- public MTable(Box var1) {
- super(var1);
- this.field_0 = System.out;
- this.align = 2;
- this.center_axis = 0;
- this.xwidth = 0;
- this.field_1 = 0;
- this.equalrows = true;
- this.equalcols = true;
- this.savedCursorLeft = -1;
- this.savedCursorTop = -1;
- super.type = 80;
- }
-
- public MTable() {
- this.field_0 = System.out;
- this.align = 2;
- this.center_axis = 0;
- this.xwidth = 0;
- this.field_1 = 0;
- this.equalrows = true;
- this.equalcols = true;
- this.savedCursorLeft = -1;
- this.savedCursorTop = -1;
- super.type = 80;
- }
-
- public MTable(Equation var1) {
- super(var1);
- this.field_0 = System.out;
- this.align = 2;
- this.center_axis = 0;
- this.xwidth = 0;
- this.field_1 = 0;
- this.equalrows = true;
- this.equalcols = true;
- this.savedCursorLeft = -1;
- this.savedCursorTop = -1;
- super.type = 80;
- }
-
- public void size() {
- boolean var2 = false;
- this.dims = new ArrayDims();
- super.useLinearForm = false;
- Object var3 = null;
-
- for(int var4 = 0; var4 < super.children.size(); ++var4) {
- MTr var14 = (MTr)((Box)this).getChild(var4);
- var14.useLinearForm = false;
-
- for(int var5 = 0; var5 < var14.children.size(); ++var5) {
- ((MTd)((Box)var14).getChild(var5)).useLinearForm = false;
- }
- }
-
- super.bgcolor = ((Box)this).resolveColor(17);
- super.fgcolor = ((Box)this).resolveColor(4);
- ((Box)this).setfont(super.depth);
- this.xwidth = super.fm.charWidth('x');
- this.field_1 = super.fm.charWidth('M');
- this.dims.setXDims(this.xwidth, super.xheight);
- this.setUnparsedAttributes();
- this.storeParsedAttributes();
-
- for(int var17 = 0; var17 < super.children.size(); ++var17) {
- MTr var1 = (MTr)((Box)this).getChild(var17);
- var1.depth = super.depth;
- var1.setDims(this.dims, var17);
- var1.layout();
- }
-
- this.dims.process();
- int var6 = super.my_view.getDisplayWidth();
- if (super.my_view.linebreak && (double)this.dims.getWidth() > 0.85 * (double)var6) {
- super.useLinearForm = true;
- var3 = null;
-
- for(int var19 = 0; var19 < super.children.size(); ++var19) {
- MTr var16 = (MTr)((Box)this).getChild(var19);
- var16.useLinearForm = true;
-
- for(int var20 = 0; var20 < var16.children.size(); ++var20) {
- ((MTd)((Box)var16).getChild(var20)).useLinearForm = true;
- }
- }
-
- if (super.lb_rewrite == null) {
- super.lb_rewrite = this.table_rewrite();
- }
-
- super.lb_rewrite.layout();
- super.width = super.lb_rewrite.getWidth();
- super.ascent = super.lb_rewrite.getAscent();
- super.descent = super.lb_rewrite.getDescent();
- super.height = super.ascent + super.descent;
- } else {
- boolean var7 = false;
-
- for(int var8 = 0; var8 < super.children.size(); ++var8) {
- MTr var11 = (MTr)((Box)this).getChild(var8);
-
- for(int var9 = 0; var9 < ((Box)var11).getNumChildren(); ++var9) {
- MTd var10 = (MTd)((Box)var11).getChild(var9);
- var7 |= ((Box)var10).stretchTo(this.dims.getRowAscent(var8), this.dims.getRowDescent(var8));
- var7 |= ((Box)var10).widthTo(this.dims.getColWidth(var9));
- }
- }
-
- if (var7) {
- this.dims = new ArrayDims();
- this.dims.setXDims(this.xwidth, super.xheight);
- this.setUnparsedAttributes();
- this.storeParsedAttributes();
-
- for(int var21 = 0; var21 < super.children.size(); ++var21) {
- MTr var12 = (MTr)((Box)this).getChild(var21);
- var12.setDims(this.dims, var21);
- var12.layout();
- }
-
- this.dims.process();
- }
-
- for(int var22 = 0; var22 < super.children.size(); ++var22) {
- MTr var13 = (MTr)((Box)this).getChild(var22);
- var13.width = this.dims.getWidth();
- var13.ascent = this.dims.getRowAscent(var22);
- var13.descent = this.dims.getRowDescent(var22);
- var13.height = this.dims.getRowHeight(var22);
- }
-
- super.width = this.dims.getWidth();
- super.ascent = this.dims.getAscent();
- super.descent = this.dims.getDescent();
- super.height = super.ascent + super.descent;
- }
-
- }
-
- public void position() {
- if (super.useLinearForm) {
- super.lb_rewrite.setTop(0);
- super.lb_rewrite.setLeft(0);
- super.lb_rewrite.position();
- } else {
- byte var2 = 0;
- int var3 = this.dims.getFrameHeight();
-
- for(int var4 = 0; var4 < super.children.size(); ++var4) {
- Box var1 = ((Box)this).getChild(var4);
- var1.setLeft(var2);
- var1.setTop(var3);
- var1.position();
- var3 += this.dims.getRowHeight(var4) + this.dims.getRowSepHeight(var4);
- }
- }
-
- }
-
- public void paint(Graphics var1, int var2, int var3) {
- if (super.useLinearForm) {
- super.lb_rewrite.paint(var1, var2 + super.left, var3 + super.top);
- } else {
- super.paint(var1, var2, var3);
- if (super.reverse_video) {
- var1.setColor(super.bgcolor);
- } else {
- var1.setColor(super.fgcolor);
- }
-
- this.dims.drawSeps(var1, var2 + super.left + super.my_view.offsetx, var3 + super.top + super.my_view.offsety);
- }
-
- super.absleft = var2 + super.left;
- super.abstop = var3 + super.top;
- }
-
- private void setUnparsedAttributes() {
- String var1 = ((Box)this).getAttributeByIndex(29).trim();
- int var2 = 0;
- int var3 = var1.indexOf(" ");
- if (var3 > 0) {
- try {
- var2 = Integer.parseInt(var1.substring(var3 + 1).trim());
- var1 = var1.substring(0, var3);
- } catch (NumberFormatException var9) {
- var1 = var1.substring(var3);
- }
- }
-
- if (var1.equals("top")) {
- this.dims.setMatrixAlign(10, var2);
- } else if (var1.equals("bottom")) {
- this.dims.setMatrixAlign(11, var2);
- } else if (var1.equals("center")) {
- this.dims.setMatrixAlign(2, var2);
- } else if (var1.equals("baseline")) {
- this.dims.setMatrixAlign(12, var2);
- } else {
- this.dims.setMatrixAlign(13, var2);
- }
-
- var1 = ((Box)this).getAttributeByIndex(36).trim();
- if (var1.equals("solid")) {
- this.dims.setFrame(5);
- } else if (var1.equals("dashed")) {
- this.dims.setFrame(6);
- } else {
- this.dims.setFrame(7);
- }
-
- var1 = ((Box)this).getAttributeByIndex(37);
- StringTokenizer var4 = new StringTokenizer(var1.toLowerCase());
-
- try {
- float var5;
- float var6;
- if (var4.hasMoreTokens()) {
- var6 = Float.valueOf(((Box)this).processUnits(var4.nextToken(), 0, 37));
- if (var4.hasMoreTokens()) {
- var5 = Float.valueOf(((Box)this).processUnits(var4.nextToken(), 1, 37));
- } else {
- var5 = 0.5F;
- }
- } else {
- var6 = 0.4F;
- var5 = 0.5F;
- }
-
- this.dims.setFrameSpacing((int)(var6 * (float)this.field_1), (int)(var5 * (float)this.xwidth));
- } catch (NumberFormatException var8) {
- }
-
- if (((Box)this).getAttributeByIndex(38).trim().equals("false")) {
- this.dims.setEqualRows(false);
- }
-
- if (((Box)this).getAttributeByIndex(39).trim().equals("false")) {
- this.dims.setEqualCols(false);
- }
-
- }
-
- private void storeParsedAttributes() {
- Object var1 = null;
- String var2 = ((Box)this).getAttributeByIndex(30);
- StringTokenizer var3 = new StringTokenizer(var2.toLowerCase());
-
- while(var3.hasMoreTokens()) {
- String var5 = var3.nextToken();
- this.dims.RowAlignValues.addElement(var5);
- }
-
- var2 = ((Box)this).getAttributeByIndex(31);
- var3 = new StringTokenizer(var2.toLowerCase());
-
- while(var3.hasMoreTokens()) {
- String var6 = var3.nextToken();
- this.dims.ColAlignValues.addElement(var6);
- }
-
- var2 = ((Box)this).getAttributeByIndex(32);
- var3 = new StringTokenizer(var2.toLowerCase());
-
- while(var3.hasMoreTokens()) {
- String var7 = var3.nextToken();
- Float var4 = new Float(Float.valueOf(var7) * (float)this.xwidth);
- this.dims.RowSpacingValues.addElement(var4);
- }
-
- var2 = ((Box)this).getAttributeByIndex(33);
- var3 = new StringTokenizer(var2.toLowerCase());
-
- while(var3.hasMoreTokens()) {
- String var8 = var3.nextToken();
- Float var21 = new Float(Float.valueOf(var8) * (float)this.field_1);
- this.dims.ColSpacingValues.addElement(var21);
- }
-
- var2 = ((Box)this).getAttributeByIndex(34);
- var3 = new StringTokenizer(var2.toLowerCase());
-
- while(var3.hasMoreTokens()) {
- String var9 = var3.nextToken();
- this.dims.RowLinesValues.addElement(var9);
- }
-
- var2 = ((Box)this).getAttributeByIndex(35);
- var3 = new StringTokenizer(var2.toLowerCase());
-
- while(var3.hasMoreTokens()) {
- String var10 = var3.nextToken();
- this.dims.ColLinesValues.addElement(var10);
- }
-
- }
-
- private MRow table_rewrite() {
- MRow var1 = new MRow(((Box)this).getParent());
- MO var2 = new MO(var1);
- ((Box)var2).addData("[");
- ((Box)var1).addChild(var2);
-
- for(int var5 = 0; var5 < super.children.size() - 1; ++var5) {
- MTr var3 = (MTr)((Box)this).getChild(var5);
- ((Box)var1).addChild(var3);
- ((Box)var3).setParent(this);
- var3.rewrite();
- MO var4 = new MO(var1);
- ((Box)var4).addData(",");
- ((Box)var1).addChild(var4);
- }
-
- MTr var7 = (MTr)((Box)this).getChild(super.children.size() - 1);
- ((Box)var1).addChild(var7);
- ((Box)var7).setParent(this);
- var7.rewrite();
- var2 = new MO(var1);
- ((Box)var2).addData("]");
- ((Box)var1).addChild(var2);
- return var1;
- }
- }
-