home *** CD-ROM | disk | FTP | other *** search
Wrap
package com.extensibility.xa; import com.extensibility.app.BaseEdit; import com.extensibility.app.UI; import com.extensibility.rock.table.QlickerDataSource; import com.extensibility.util.Debug; import com.extensibility.xa.undo.AttrsUndoable; import com.extensibility.xa.undo.CMAnyEmptyUndoable; import com.extensibility.xa.undo.CMDataUndoable; import com.extensibility.xa.undo.CMTextUndoable; import com.extensibility.xa.undo.ElemNameUndoable; import com.extensibility.xa.undo.ElementNewRowUndoable; import com.extensibility.xa.undo.ExtendsUndoable; import com.extensibility.xa.undo.TagsCkBoxUndoable; import com.extensibility.xa.undo.TextCkBoxUndoable; import com.extensibility.xml.AttributeDeclaration; import com.extensibility.xml.BaseDeclaration; import com.extensibility.xml.ContentModelTerm; import com.extensibility.xml.DTDUtilities; import com.extensibility.xml.DataTypeDeclaration; import com.extensibility.xml.ElementDeclaration; import com.extensibility.xml.ParserException; import com.extensibility.xml.dt.DataTypeFactory; import com.extensibility.xml.dt.DataTypeIntf; import java.awt.Component; import java.awt.Toolkit; public class ElementTableModel extends DeclModelExtra implements QlickerDataSource { public static final int COL_ELEMENT = 2; public static final int COL_SUPER = 3; public static final int COL_CM_TEXT = 4; public static final int COL_CM_TAGS = 5; public static final int COL_CM_SOURCE = 6; public static final int COL_ATTRS = 7; static final int COL_COUNT = 8; public ElementTableModel(SchemaDoc var1) { super(var1, Class.forName("com.extensibility.xml.ElementDeclaration")); } public int getColumnCount() { return this.getBaseColumnCount() + ((DeclModelExtra)this).getExtraColumnCount(); } protected final int getBaseColumnCount() { return 8; } char getHeaderMnemonic(int var1) { return var1 < 8 ? UI.getMnemonic(String.valueOf(String.valueOf("taglist.column").concat(String.valueOf(var1))).concat(String.valueOf(".header"))) : '\u0000'; } public String getColumnName(int var1) { return var1 < 8 ? String.valueOf(String.valueOf("taglist.column").concat(String.valueOf(var1))).concat(String.valueOf(".header")) : super.getColumnName(var1); } public Class getColumnClass(int var1) { switch (var1) { case 2: return Class.forName("java.lang.String"); case 3: return Class.forName("java.lang.String"); case 4: return Class.forName("java.lang.Boolean"); case 5: return Class.forName("java.lang.Boolean"); case 6: return Class.forName("java.lang.String"); case 7: return Class.forName("java.lang.String"); default: return super.getColumnClass(var1); } } public boolean isCellEditable(int var1, int var2) { boolean var3 = super.isCellEditable(var1, var2); return var3; } public Object getValueAt(int var1, int var2) { if (((DeclTableModel)this).isNewRow(var1)) { switch (var2) { case 2: case 3: case 6: case 7: return ""; case 4: case 5: return Boolean.FALSE; default: return super.getValueAt(var1, var2); } } else { ElementDeclaration var3 = this.getElement(var1); switch (var2) { case 2: return ((BaseDeclaration)var3).getName(); case 3: return var3.getSuperTypeName(); case 4: return var3.getAllowsText() ? Boolean.TRUE : Boolean.FALSE; case 5: return var3.getAllowsTags() ? Boolean.TRUE : Boolean.FALSE; case 6: if (var3.isTextOnly()) { return var3.getDataTypeDisplay(((DeclTableModel)this).getSchemaDoc().getSchema()); } String var4 = ((DeclTableModel)this).getSchemaDoc().getContentModelAsString(var3); return var4; case 7: return var3.getAttributesAsString(false); default: return super.getValueAt(var1, var2); } } } protected final ElementDeclaration getElement(int var1) { return (ElementDeclaration)((DeclTableModel)this).getDeclaration(var1); } public int getMetaSelector() { return 1; } ParserException validateCell(String var1, int var2, int var3) { if (var1.equals(this.getValueAt(var2, var3))) { return null; } else { switch (var3) { case 2: return ((DeclTableModel)this).validateName(var1, Class.forName("com.extensibility.xml.ElementDeclaration"), this.getElement(var2), true); case 3: if (var1.trim().length() == 0) { return null; } ParserException var10 = ((DeclTableModel)this).validateName(var1, (Class)null, (BaseDeclaration)null, false); if (var10 == null && var1.indexOf(58) == -1) { ElementDeclaration var6 = ((DeclTableModel)this).getSchemaDoc().getNamedElement(var1); if (var6 == null) { var10 = new ParserException(210, var1); } else if (var6 == this.getElement(var2)) { var10 = new ParserException(267, var1); } else if (var6.isSubTypeOf(this.getElement(var2))) { var10 = new ParserException(268, var1); } } return var10; case 4: case 5: default: return super.validateCell(var1, var2, var3); case 6: if (((DeclTableModel)this).isNewRow(var2)) { try { super.doc.checkContentModel(((DeclTableModel)this).getUniqueDeclName((String)null), var1); } catch (ParserException var9) { return var9; } } else { ElementDeclaration var4 = this.getElement(var2); if (var4.isTextOnly()) { if (var1.trim().length() == 0) { return null; } if (super.doc.getNamedDeclaration(var1, Class.forName("com.extensibility.xml.NotationDeclaration")) != null) { AttributeDeclaration var5 = var4.getNotationAttr(); if (var5 != null && var5.getOwner() != var4) { return new ParserException(89, ((BaseDeclaration)var5).getName()); } return null; } if (((DeclTableModel)this).getSchemaDoc().getNamedDataTypeIntf(var1) == null) { if (var1.indexOf(":") != -1) { return null; } if (!((DeclTableModel)this).getSchemaDoc().isSupported(Class.forName("com.extensibility.xml.DataTypeDeclaration"))) { return new ParserException(87, var1); } if (!XADialogFactory.askAutoCreateDataType((Component)null, var1)) { return new ParserException(87, var1); } } } else { if (var1.equals("ANY") || var1.equals("EMPTY")) { return null; } try { if (CMTextUndoable.autoParen(var4, var1)) { var1 = String.valueOf(String.valueOf("(").concat(String.valueOf(var1))).concat(String.valueOf(")")); } super.doc.checkContentModel(((BaseDeclaration)var4).getName(), var1); } catch (ParserException var8) { return var8; } } } break; case 7: try { super.doc.checkAttrList(var1); } catch (ParserException var7) { return var7; } } return null; } } public void setValueAt(Object var1, int var2, int var3) { if (!var1.equals(this.getValueAt(var2, var3))) { ElementDeclaration var4 = this.getElement(var2); if (((DeclTableModel)this).isNewRow(var2)) { String var5 = var3 == 2 ? (String)var1 : ((DeclTableModel)this).getUniqueDeclName((String)null); ElementNewRowUndoable var6 = new ElementNewRowUndoable(this, var2, var5); ((DeclTableModel)this).getSchemaDoc().getUndoManager().addEdit(var6); ((BaseEdit)var6).doCommand(); super.doc.touch(super.doc.getFocusedURI(true)); if (var3 == 2) { return; } } else { super.doc.touch(var4); } switch (var3) { case 2: ElemNameUndoable var10 = new ElemNameUndoable(this, var4, var1); ((DeclTableModel)this).getSchemaDoc().getUndoManager().addEdit(var10); ((BaseEdit)var10).doCommand(); break; case 3: if (var1.toString().length() == 0) { if (this.getElement(var2).getSuperType() == null) { return; } var1 = null; } ExtendsUndoable var12 = new ExtendsUndoable(this, var4, var1); ((DeclTableModel)this).getSchemaDoc().getUndoManager().addEdit(var12); ((BaseEdit)var12).doCommand(); break; case 4: if (var4.getSuperType() != null) { Toolkit.getDefaultToolkit().beep(); } else { TextCkBoxUndoable var11 = new TextCkBoxUndoable(this, var4, var1); ((DeclTableModel)this).getSchemaDoc().getUndoManager().addEdit(var11); ((BaseEdit)var11).doCommand(); } break; case 5: if (var4.getSuperType() != null) { Toolkit.getDefaultToolkit().beep(); } else { TagsCkBoxUndoable var7 = new TagsCkBoxUndoable(this, var4, var1); ((DeclTableModel)this).getSchemaDoc().getUndoManager().addEdit(var7); ((BaseEdit)var7).doCommand(); } break; case 6: if (var1.equals("ANY")) { CMAnyEmptyUndoable var13 = new CMAnyEmptyUndoable(this, var4, true); ((DeclTableModel)this).getSchemaDoc().getUndoManager().addEdit(var13); ((BaseEdit)var13).doCommand(); } else if (var1.equals("EMPTY")) { CMAnyEmptyUndoable var14 = new CMAnyEmptyUndoable(this, var4, false); ((DeclTableModel)this).getSchemaDoc().getUndoManager().addEdit(var14); ((BaseEdit)var14).doCommand(); } else if (var4.isTextOnly()) { if (var1.toString().trim().length() == 0) { var1 = ((DeclTableModel)this).getSchemaDoc().getSchema().getDataTypeDisplay(DataTypeFactory.createDataType(DataTypeIntf.STRING)); } if (((DeclTableModel)this).getSchemaDoc().getNamedDataTypeIntf((String)var1) == null && ((String)var1).indexOf(":") == -1) { DataTypeDeclaration var15 = new DataTypeDeclaration(var1.toString(), DataTypeFactory.createDataType(DataTypeIntf.STRING)); ((DeclTableModel)this).getSchemaDoc().insertDeclaration(var15, (BaseDeclaration)null); } CMDataUndoable var16 = new CMDataUndoable(this, var4, var1); ((DeclTableModel)this).getSchemaDoc().getUndoManager().addEdit(var16); ((BaseEdit)var16).doCommand(); } else { String var17 = var1.toString(); CMTextUndoable var9 = new CMTextUndoable(this, var4, var1); ((DeclTableModel)this).getSchemaDoc().getUndoManager().addEdit(var9); ((BaseEdit)var9).doCommand(); } break; case 7: AttrsUndoable var8 = new AttrsUndoable(this, var4, var1); if (((String)var1).length() != 0 || this.getValueAt(var2, var3) != null) { ((DeclTableModel)this).getSchemaDoc().getUndoManager().addEdit(var8); } ((BaseEdit)var8).doCommand(); break; default: super.setValueAt(var1, var2, var3); } } } public BaseDeclaration createDeclaration(String var1) { return ((DeclTableModel)this).getSchemaDoc().isSupported("GESTALT_FORBID_ANY_AND_MIXED") ? new ElementDeclaration(var1, 5) : new ElementDeclaration(var1, 2); } protected BaseDeclaration getDeclaration(int var1, int var2, String var3) { Object var4 = null; if (var2 == 6) { if (DTDUtilities.isPEName(var3)) { var3 = DTDUtilities.convertPEName(var3, false); var4 = ((DeclTableModel)this).getSchemaDoc().getNamedDeclaration(var3, Class.forName("com.extensibility.xml.InternalPEDeclaration")); } else { var3 = ContentModelTerm.getTypeName(var3); var4 = ((DeclTableModel)this).getSchemaDoc().getNamedElement(var3); if (var4 == null) { var4 = ((DeclTableModel)this).getSchemaDoc().getNamedDeclaration(var3, Class.forName("com.extensibility.xml.DataTypeDeclaration")); } } } else if (var2 == 7) { if (DTDUtilities.isPEName(var3)) { var3 = DTDUtilities.convertPEName(var3, false); var4 = ((DeclTableModel)this).getSchemaDoc().getNamedDeclaration(var3, Class.forName("com.extensibility.xml.InternalPEDeclaration")); } else { var4 = ((DeclTableModel)this).getSchemaDoc().getNamedDeclaration(var3, Class.forName("com.extensibility.xml.AttributeDeclaration")); } } return (BaseDeclaration)var4; } public Object getQlickerData(String var1, Object var2) { if (var1 == "ATTRIBUTES") { return super.doc.getAttributeNames(); } else if (var1 == "ATTRGROUPS") { return super.doc.getAttrGroupPENames(); } else { Debug.assert(false, String.valueOf("Unknown getData key: ").concat(String.valueOf(var1))); return ""; } } }