home *** CD-ROM | disk | FTP | other *** search
- package webeq3.schema;
-
- import java.awt.Graphics;
- import java.util.EmptyStackException;
- import java.util.Hashtable;
- import webeq3.app.Equation;
- import webeq3.constants.AttributeConstants;
- import webeq3.constants.OperatorDictionary;
- import webeq3.constants.OperatorProperty;
- import webeq3.fonts.CharRender;
- import webeq3.fonts.ExtendedChar;
- import webeq3.util.OutputHandler;
-
- // $FF: renamed from: webeq3.schema.MO
- public class class_0 extends Box {
- // $FF: renamed from: op webeq3.constants.OperatorProperty
- OperatorProperty field_0 = null;
- boolean opSet = false;
- boolean noLayout = false;
- boolean marginTweak = false;
- private static Hashtable parentCheck = new Hashtable();
-
- public class_0() {
- super.type = 2;
- super.embellished_op = true;
- }
-
- public class_0(Box var1) {
- super(var1);
- super.type = 2;
- super.embellished_op = true;
- }
-
- public class_0(Equation var1) {
- super(var1);
- super.type = 2;
- super.embellished_op = true;
- }
-
- public void dictLookUp() {
- String var1 = super.udata;
- if ("".equals(super.udata)) {
- Character var2 = new Character('�');
- var1 = var2.toString();
- }
-
- String var5 = ((Box)this).getAttributeByIndex(13);
- if (var5 != null && "prefix".equals(var5)) {
- this.field_0 = OperatorDictionary.lookUp("_pre_" + var1);
- } else if (var5 != null && "postfix".equals(var5)) {
- this.field_0 = OperatorDictionary.lookUp("_post_" + var1);
- } else if (var5 != null && "infix".equals(var5)) {
- this.field_0 = OperatorDictionary.lookUp(var1);
- } else {
- Object var3;
- for(var3 = this; this.parentCheck((Box)var3); var3 = ((Box)var3).parent) {
- }
-
- if (((Box)var3).parent != null) {
- if (((Box)var3).parent.getNumChildren() == 1) {
- this.field_0 = OperatorDictionary.lookUp(var1);
- } else {
- int var4;
- for(var4 = 0; ((Box)var3).parent.getChild(var4).is_spacelike; ++var4) {
- }
-
- if (((Box)var3).box_id == var4) {
- this.field_0 = OperatorDictionary.lookUp("_pre_" + var1);
- } else if (((Box)var3).box_id == ((Box)var3).parent.getNumChildren() - 1) {
- this.field_0 = OperatorDictionary.lookUp("_post_" + var1);
- } else {
- this.field_0 = OperatorDictionary.lookUp(var1);
- }
- }
- } else {
- this.field_0 = OperatorDictionary.lookUp(var1);
- }
- }
-
- this.opSet = true;
- }
-
- public String getAttributeString(int var1) {
- Object var2 = null;
- String var5;
- if (super.attributes[var1] != null) {
- var5 = super.attributes[var1];
- } else {
- try {
- var5 = (String)super.attribute_stack[var1].peek();
- } catch (EmptyStackException var4) {
- var5 = AttributeConstants.defaultValue[var1];
- if (var1 == 28) {
- if (!this.opSet) {
- this.dictLookUp();
- }
-
- if (this.field_0.accent) {
- var5 = "true";
- }
- }
-
- if (var1 == 7) {
- if (!this.opSet) {
- this.dictLookUp();
- }
-
- if (this.field_0.stretchy) {
- var5 = "true";
- }
- }
- }
- }
-
- if (var5 != null) {
- var5.toLowerCase();
- }
-
- return var5.trim();
- }
-
- public Box getCopy() {
- class_0 var1 = (class_0)super.getCopy();
- if (this.field_0 != null) {
- var1.field_0 = this.field_0.copy();
- }
-
- return var1;
- }
-
- public OperatorProperty getOperatorProperty() {
- return this.field_0;
- }
-
- public boolean isBinary() {
- return this.field_0 != null ? this.field_0.binaryop : false;
- }
-
- public int getLSpace() {
- return this.field_0 != null ? this.field_0.lspace : 0;
- }
-
- public void setfont(int var1) {
- var1 = ((Box)this).resolveDepth(var1);
- super.setfont(var1);
- char var2 = super.data[0].getChar();
- switch (var2) {
- case 'Γê½':
- case 'Γê¼':
- case 'Γê¡':
- case 'Γê«':
- case '\ue22b':
- case '\ue22c':
- case '\ue22d':
- case '\ue22e':
- super.italic = true;
- default:
- }
- }
-
- void setMarginTweak(boolean var1) {
- this.marginTweak = var1;
- }
-
- public void setProperty(OperatorProperty var1) {
- this.field_0 = var1;
- }
-
- public void layout() {
- if (this.noLayout) {
- this.noLayout = false;
- } else {
- super.left = 0;
- super.top = 0;
- super.width = 0;
- super.ascent = 0;
- super.descent = 0;
- this.size();
- }
- }
-
- public boolean stretchTo(int var1, int var2) {
- int var3 = 0;
- if (!this.field_0.stretchy) {
- return false;
- } else if (super.udata.length() != 1 || super.udata.charAt(0) != '\ue1c0' && super.udata.charAt(0) != 175 && super.udata.charAt(0) != 770 && super.udata.charAt(0) != 10003 && super.udata.charAt(0) != '\uf612' && super.udata.charAt(0) != '\uf613' && super.udata.charAt(0) != '\ue190' && super.udata.charAt(0) != '\ue192' && super.udata.charAt(0) != '\ue194' && super.udata.charAt(0) != 732) {
- String var4 = ((Box)this).getAttributeByIndex(8);
- var4 = var4.length() == 0 ? (this.field_0.symmetric ? "true" : "false") : var4;
- if ("false".equals(var4)) {
- var3 = (var1 - var2) / 2;
- } else {
- var3 = (int)((double)0.5F * (double)super.xheight);
- }
-
- int var5 = var1 - var3;
- int var6 = var2 + var3;
- if (var5 > var6) {
- var6 = var5;
- } else {
- var5 = var6;
- }
-
- double var9 = (double)0.0F;
- String var7 = this.getAttributeString(10);
- String var8 = ((Box)this).getAttributeByIndex(10);
-
- try {
- var9 = Double.valueOf(var8);
-
- try {
- double var11 = Double.valueOf(var7.trim());
- } catch (Exception var17) {
- var9 = var9 * (double)super.xheight / (double)super.height;
- }
- } catch (Exception var18) {
- var9 = this.field_0.minsize;
- }
-
- double var25 = (double)10000.0F;
- var7 = this.getAttributeString(9);
- var8 = ((Box)this).getAttributeByIndex(9);
- var8 = var8.equals("infinity") ? "10000.0" : var8;
-
- try {
- var25 = Double.valueOf(var8);
-
- try {
- double var13 = Double.valueOf(var7.trim());
- } catch (Exception var15) {
- var25 = var25 * (double)super.xheight / (double)super.height;
- }
- } catch (Exception var16) {
- var25 = this.field_0.maxsize;
- }
-
- if ((double)(var5 + var6) < var9 * (double)super.height) {
- var5 = (int)(var9 * (double)super.height / (double)2.0F);
- var6 = (int)(var9 * (double)super.height - (double)var5);
- }
-
- if ((double)(var5 + var6) > var25 * (double)super.height) {
- var5 = (int)(var25 * (double)super.height / (double)2.0F);
- var6 = (int)(var25 * (double)super.height - (double)var5);
- }
-
- if (Math.abs(super.descent - var6 + var3) > 2) {
- super.descent = (int)(1.06 * (double)(var6 - var3));
- }
-
- if (Math.abs(super.ascent - var5 - var3) > 2) {
- super.ascent = (int)(1.06 * (double)(var5 + var3));
- }
-
- super.height = super.ascent + super.descent;
- return true;
- } else {
- return false;
- }
- }
-
- public boolean widthTo(int var1) {
- if (this.field_0.stretchy && super.udata.length() == 1 && (super.udata.charAt(0) == '\ue190' || super.udata.charAt(0) == '\ue192' || super.udata.charAt(0) == '\ue194' || super.udata.charAt(0) == 175 || super.udata.charAt(0) == '\uf613' || super.udata.charAt(0) == '\uf612' || super.udata.charAt(0) == '\ue1c0')) {
- double var2 = (double)var1 / (double)super.width;
- if (var2 > (double)1.25F) {
- var2 = (double)1.5F;
- }
-
- if (var2 < 0.8) {
- var2 = 0.8;
- }
-
- super.width = var1;
- super.ascent = (int)((double)super.ascent * var2);
- super.descent = (int)((double)super.descent * var2);
- super.height = super.ascent + super.descent;
- return true;
- } else {
- return false;
- }
- }
-
- public void size() {
- boolean var4 = false;
- super.ascent = 0;
- super.descent = 0;
- super.height = 0;
- super.width = 0;
- super.fgcolor = ((Box)this).resolveColor(4);
- super.bgcolor = ((Box)this).resolveColor(17);
- String var5 = ((Box)this).getAttributeByIndex(21);
- if (var5 != null && "true".equals(var5)) {
- var4 = true;
- }
-
- ((Box)this).setData();
- super.atomic = true;
- this.marginTweak = false;
- this.dictLookUp();
- var5 = ((Box)this).getAttributeByIndex(12);
- if (var5.length() > 0) {
- if ("true".equals(var5)) {
- this.field_0.movescripts = true;
- }
-
- if ("false".equals(var5)) {
- this.field_0.movescripts = false;
- }
- }
-
- var5 = ((Box)this).getAttributeByIndex(11);
- if (var5.length() > 0) {
- if ("true".equals(var5)) {
- this.field_0.large = true;
- }
-
- if ("false".equals(var5)) {
- this.field_0.large = false;
- }
- }
-
- if (var5.length() > 0) {
- var5 = ((Box)this).getAttributeByIndex(28);
- if ("true".equals(var5)) {
- this.field_0.accent = true;
- }
-
- if ("false".equals(var5)) {
- this.field_0.accent = false;
- }
- }
-
- ExtendedChar var1;
- try {
- var1 = super.data[0];
- } catch (ArrayIndexOutOfBoundsException var9) {
- var1 = new ExtendedChar('�', -1);
- super.data = new ExtendedChar[1];
- super.data[0] = var1;
- }
-
- switch (var1.getChar()) {
- case '+':
- var1 = new ExtendedChar('+', 5);
- break;
- case '-':
- var1 = new ExtendedChar('−', 5);
- break;
- case '=':
- var1 = new ExtendedChar('=', 5);
- break;
- case 'Γàà':
- var1 = new ExtendedChar('D', 0);
- break;
- case 'Γàå':
- var1 = new ExtendedChar('d', 0);
- break;
- case '\ufffb':
- if (super.data.length == 1 && super.udata.equals(String.valueOf('\ufffb')) && super.syntax_info != null) {
- var1 = new ExtendedChar('*', 0);
- }
- }
-
- var5 = ((Box)this).getAttributeByIndex(7);
- if (var5.length() > 0) {
- if ("true".equals(var5)) {
- this.field_0.stretchy = true;
- }
-
- if ("false".equals(var5)) {
- this.field_0.stretchy = false;
- }
- }
-
- switch (var1.getChar()) {
- case '(':
- case ')':
- case '[':
- case ']':
- case '{':
- case '|':
- case '}':
- case '¯':
- case '˜':
- case '̂':
- case 'ΓÇû':
- case 'Γîê':
- case 'Γîë':
- case 'Γîè':
- case 'Γîï':
- case 'Γ£ô':
- case '〈':
- case '〉':
- case '\ue190':
- case '\ue191':
- case '\ue192':
- case '\ue193':
- case '\ue194':
- case '\ue195':
- case '\ue1c0':
- case '\uf612':
- case '\uf613':
- break;
- default:
- this.field_0.stretchy = false;
- }
-
- if (var4 && this.field_0.large) {
- switch (var1.getChar()) {
- case '∏':
- var1 = new ExtendedChar('\ue20f', 11);
- break;
- case '∐':
- var1 = new ExtendedChar('\ue210', 11);
- break;
- case 'Γêæ':
- var1 = new ExtendedChar('\ue211', 11);
- break;
- case '∧':
- var1 = new ExtendedChar('⋀', 11);
- break;
- case 'Γê¿':
- var1 = new ExtendedChar('\ue261', 11);
- break;
- case '∩':
- var1 = new ExtendedChar('Γïé', 11);
- break;
- case '∪':
- var1 = new ExtendedChar('Γïâ', 11);
- break;
- case 'Γê½':
- var1 = new ExtendedChar('\ue22b', 11);
- break;
- case 'Γê¼':
- var1 = new ExtendedChar('\ue22c', 11);
- break;
- case 'Γê¡':
- var1 = new ExtendedChar('\ue22d', 11);
- break;
- case 'Γê«':
- var1 = new ExtendedChar('\ue22e', 11);
- break;
- case 'Γèò':
- var1 = new ExtendedChar('\ue295', 11);
- break;
- case 'Γèù':
- var1 = new ExtendedChar('\ue997', 11);
- break;
- case 'ΓèÖ':
- var1 = new ExtendedChar('\ue299', 11);
- }
- }
-
- super.data[0] = var1;
- String var6 = ((Box)this).getDeprecatedAttributePair(0, 81);
- if ("small".equals(var6)) {
- var6 = "" + (int)((double)super.my_view.standardPointsize(((Box)this).resolveDepth(super.depth)) * 0.8);
- } else if ("big".equals(var6)) {
- var6 = "" + (int)((double)super.my_view.standardPointsize(((Box)this).resolveDepth(super.depth)) * 1.35);
- } else {
- var6 = ((Box)this).processUnits(var6, 2, 0);
- }
-
- if (var6 != null && !"X".equals(var6)) {
- try {
- ((Box)this).setrawfont(Integer.parseInt(var6));
- } catch (NumberFormatException var8) {
- }
- } else {
- this.setfont(super.depth);
- }
-
- var5 = ((Box)this).getAttributeByIndex(5);
- if (var5.length() > 0) {
- this.field_0.lspace = (int)((double)super.fm.charWidth('M') * Double.valueOf(var5));
- } else {
- this.field_0.lspace = super.fm.charWidth('M') * this.field_0.lspace / 10;
- }
-
- var5 = ((Box)this).getAttributeByIndex(6);
- if (var5.length() > 0) {
- this.field_0.rspace = (int)((double)super.fm.charWidth('M') * Double.valueOf(var5));
- } else {
- this.field_0.rspace = super.fm.charWidth('M') * this.field_0.rspace / 10;
- }
-
- if (super.depth > 0) {
- this.field_0.lspace /= 2;
- this.field_0.rspace /= 2;
- }
-
- for(int var7 = 0; var7 < super.data.length; ++var7) {
- var1 = super.data[var7];
- var1.setFont(super.fn, super.my_view.getHandler().getComponent());
- int var2 = var1.getAscent();
- int var3 = var1.getDescent();
- if (var2 > super.ascent) {
- super.ascent = var2;
- }
-
- if (var3 > super.descent) {
- super.descent = var3;
- }
-
- if (var7 == super.data.length - 1) {
- super.width += var1.getWidth();
- } else {
- super.width += var1.getAdvance();
- }
-
- if (var7 == 0 && var1.getChar() == 'f' && var7 < super.data.length - 1 && var1.getFont().isItalic()) {
- super.width += (int)(0.4 * (double)var1.getWidth());
- }
- }
-
- super.width += this.field_0.lspace + this.field_0.rspace;
- super.height = super.ascent + super.descent;
- }
-
- public void paint(Graphics var1, int var2, int var3) {
- this.noLayout = false;
- if (!this.marginTweak) {
- ((Box)this).paintBackground(var1, var2, var3);
- } else {
- ((Box)this).rvPaint(var1, var2 + super.left + super.my_view.offsetx + this.field_0.lspace, var3 + super.top + super.my_view.offsety, super.width - this.field_0.lspace, super.height);
- }
-
- int var4 = var2 + super.left + super.my_view.offsetx + this.field_0.lspace;
- ExtendedChar var5 = super.data[0];
- if (super.data.length == 1 && this.field_0.stretchy) {
- int var6 = super.width - this.field_0.lspace - this.field_0.rspace;
- if (var5.getAscent() != super.ascent || var5.getDescent() != super.descent || var5.getWidth() != var6) {
- var5 = new ExtendedChar(var5.getChar(), -1);
- var5.setFont(super.fn, super.my_view.getHandler().getComponent());
- var5.setHeight(super.height);
- var5.setWidth(var6);
- var5.setAscent(super.ascent);
- }
- }
-
- int var11 = super.my_view.getDisplayWidth();
- int var7 = var5.getChar() == 'f' && var5.getFont().isItalic() ? (int)(0.4 * (double)var5.getWidth()) : 0;
- if (super.reverse_video) {
- CharRender.paint(var1, var5, var4 + var7, var3 + super.top + super.my_view.offsety + super.ascent, super.bgcolor, super.fgcolor, super.my_view.getHandler().getComponent());
- } else {
- CharRender.paint(var1, var5, var4 + var7, var3 + super.top + super.my_view.offsety + super.ascent, super.fgcolor, super.bgcolor, super.my_view.getHandler().getComponent());
- }
-
- var4 += var5.getAdvance() + var7;
-
- for(int var8 = 1; var8 < super.data.length; ++var8) {
- var5 = super.data[var8];
- if (super.reverse_video) {
- CharRender.paint(var1, var5, var4, var3 + super.top + super.my_view.offsety + super.ascent, super.bgcolor, super.fgcolor, super.my_view.getHandler().getComponent());
- } else {
- CharRender.paint(var1, var5, var4, var3 + super.top + super.my_view.offsety + super.ascent, super.fgcolor, super.bgcolor, super.my_view.getHandler().getComponent());
- }
-
- var4 += var5.getAdvance();
- }
-
- super.absleft = var2 + super.left;
- super.abstop = var3 + super.top;
- }
-
- public void printSelected(String var1, OutputHandler var2, boolean var3, boolean var4, String var5, boolean var6, int var7) {
- if (!var3 || super.reverse_video) {
- if (var6 && super.cpeer != null) {
- super.cpeer.printSelected(var1, var2, var3, var4, var5, var6, var7);
- } else {
- var2.println(var1 + ((Box)this).make_head(false, var5) + ((Box)this).unicodeData(var7) + "</" + ((Box)this).make_tag(var5) + ">");
- }
- }
-
- }
-
- public void printDebug(String var1) {
- if (super.children.size() == 0) {
- String var2 = super.udata;
- if (super.udata.equals(String.valueOf('\ufffb'))) {
- var2 = "invisibleTimes";
- }
-
- if (super.udata.equals(String.valueOf(''))) {
- var2 = "ApplyFunction";
- }
-
- System.out.println(var1 + "<" + this + " [" + var2 + "] [[" + super.adata + "]] (sf=" + ((Box)this).semanticForm() + " st=" + ((Box)this).semanticType() + " sp=" + ((Box)this).semanticPrecedence() + " sft=" + ((Box)this).semanticFenceType() + ") >");
- } else {
- System.out.println(var1 + "<" + this + ">");
- String var4 = var1 + " ";
-
- for(int var3 = 0; var3 < ((Box)this).getNumDisplayChildren(); ++var3) {
- ((Box)this).getDisplayChild(var3).printDebug(var4);
- }
-
- System.out.println(var1 + "</" + this + ">");
- }
-
- }
-
- private boolean parentCheck(Box var1) {
- return var1.parent == null ? false : parentCheck.containsKey(var1.parent.getClass().getName());
- }
-
- static {
- parentCheck.put("webeq3.schema.MSubsup", parentCheck);
- parentCheck.put("webeq3.schema.MSub", parentCheck);
- parentCheck.put("webeq3.schema.MSup", parentCheck);
- parentCheck.put("webeq3.schema.MUnderover", parentCheck);
- parentCheck.put("webeq3.schema.MUnder", parentCheck);
- parentCheck.put("webeq3.schema.MOver", parentCheck);
- parentCheck.put("webeq3.schema.MMultiscripts", parentCheck);
- parentCheck.put("webeq3.schema.MStyle", parentCheck);
- }
- }
-