home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / xa / EntityModel.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-30  |  9.5 KB  |  314 lines

  1. package com.extensibility.xa;
  2.  
  3. import com.extensibility.app.BaseEdit;
  4. import com.extensibility.app.DialogFactory;
  5. import com.extensibility.app.UI;
  6. import com.extensibility.rock.table.QlickerDataSource;
  7. import com.extensibility.util.Debug;
  8. import com.extensibility.util.StringUtilities;
  9. import com.extensibility.xa.undo.EntityNewRowUndoable;
  10. import com.extensibility.xa.undo.ExternalEntIncludeUndoable;
  11. import com.extensibility.xa.undo.ExternalEntPublicUndoable;
  12. import com.extensibility.xa.undo.ExternalEntityNameUndoable;
  13. import com.extensibility.xa.undo.ExternalEntityURIUndoable;
  14. import com.extensibility.xa.undo.InternalEntValueUndoable;
  15. import com.extensibility.xa.undo.InternalEntityNameUndoable;
  16. import com.extensibility.xml.BaseDeclaration;
  17. import com.extensibility.xml.DTDUtilities;
  18. import com.extensibility.xml.EntityDeclaration;
  19. import com.extensibility.xml.ExternalGEDeclaration;
  20. import com.extensibility.xml.ExternalPEDeclaration;
  21. import com.extensibility.xml.ExternalSubset;
  22. import com.extensibility.xml.InternalGEDeclaration;
  23. import com.extensibility.xml.InternalPEDeclaration;
  24. import com.extensibility.xml.ParserException;
  25. import com.extensibility.xml.URI;
  26. import java.awt.Component;
  27. import java.io.FileNotFoundException;
  28. import java.io.IOException;
  29. import java.net.UnknownHostException;
  30.  
  31. public final class EntityModel extends DeclTableModel implements QlickerDataSource {
  32.    static final boolean INTERNAL = true;
  33.    static final boolean EXTERNAL = false;
  34.    // $FF: renamed from: GE boolean
  35.    static final boolean field_0 = true;
  36.    // $FF: renamed from: PE boolean
  37.    static final boolean field_1 = false;
  38.    static final int COL_CNT_GE_INTERNAL = 4;
  39.    static final int COL_CNT_GE_EXTERNAL = 6;
  40.    static final int COL_CNT_PE_INTERNAL = 4;
  41.    static final int COL_CNT_PE_EXTERNAL = 6;
  42.    public static final int COL_NAME = 2;
  43.    public static final int COL_VALUE = 3;
  44.    public static final int COL_URI = 3;
  45.    public static final int COL_PUBLIC = 4;
  46.    public static final int COL_INCLUDE = 5;
  47.    public static final int COL_NOTATION = 5;
  48.    // $FF: renamed from: ge boolean
  49.    boolean field_2;
  50.    boolean internal;
  51.  
  52.    public EntityModel(SchemaDoc var1, boolean var2, boolean var3) {
  53.       super(var1, var3 ? (var2 ? Class.forName("com.extensibility.xml.InternalGEDeclaration") : Class.forName("com.extensibility.xml.ExternalGEDeclaration")) : (var2 ? Class.forName("com.extensibility.xml.InternalPEDeclaration") : Class.forName("com.extensibility.xml.ExternalPEDeclaration")));
  54.       this.internal = super.declClass == Class.forName("com.extensibility.xml.InternalGEDeclaration") || super.declClass == Class.forName("com.extensibility.xml.InternalPEDeclaration");
  55.       this.field_2 = super.declClass == Class.forName("com.extensibility.xml.InternalGEDeclaration") || super.declClass == Class.forName("com.extensibility.xml.ExternalGEDeclaration");
  56.    }
  57.  
  58.    boolean isInternal() {
  59.       return this.internal;
  60.    }
  61.  
  62.    public boolean isGE() {
  63.       return this.field_2;
  64.    }
  65.  
  66.    public int getColumnCount() {
  67.       if (this.field_2) {
  68.          return this.internal ? 4 : 6;
  69.       } else {
  70.          return this.internal ? 4 : 6;
  71.       }
  72.    }
  73.  
  74.    char getHeaderMnemonic(int var1) {
  75.       return this.isGE() ? UI.getMnemonic(this.getColumnName(var1)) : '\u0000';
  76.    }
  77.  
  78.    public String getColumnName(int var1) {
  79.       if (var1 == 5) {
  80.          return this.isGE() ? String.valueOf("entity.ge.column").concat(String.valueOf(var1)) : String.valueOf("entity.pe.column").concat(String.valueOf(var1));
  81.       } else {
  82.          return this.internal ? String.valueOf("entity.internal.column").concat(String.valueOf(var1)) : String.valueOf("entity.external.column").concat(String.valueOf(var1));
  83.       }
  84.    }
  85.  
  86.    public Object getQlickerData(String var1, Object var2) {
  87.       if (var1.equals("NOTATIONS")) {
  88.          return new 1(this);
  89.       } else {
  90.          Debug.assert(false, String.valueOf("Unknown getData key: ").concat(String.valueOf(var1)));
  91.          return "";
  92.       }
  93.    }
  94.  
  95.    public Class getColumnClass(int var1) {
  96.       switch (var1) {
  97.          case 2:
  98.             return Class.forName("java.lang.String");
  99.          case 3:
  100.             return Class.forName("java.lang.String");
  101.          case 4:
  102.             return Class.forName("java.lang.String");
  103.          case 5:
  104.             return this.isGE() ? Class.forName("java.lang.String") : Class.forName("java.lang.Boolean");
  105.          default:
  106.             return super.getColumnClass(var1);
  107.       }
  108.    }
  109.  
  110.    public EntityDeclaration getEntity(int var1) {
  111.       return (EntityDeclaration)((DeclTableModel)this).getDeclaration(var1);
  112.    }
  113.  
  114.    public Object getValueAt(int var1, int var2) {
  115.       EntityDeclaration var3 = this.getEntity(var1);
  116.       if (this.internal) {
  117.          switch (var2) {
  118.             case 2:
  119.                return ((DeclTableModel)this).isNewRow(var1) ? "" : ((BaseDeclaration)var3).getName();
  120.             case 3:
  121.                return ((DeclTableModel)this).isNewRow(var1) ? "" : (this.field_2 ? var3.getValue() : StringUtilities.normalizeWhitespace(var3.getValue()));
  122.             default:
  123.                return super.getValueAt(var1, var2);
  124.          }
  125.       } else {
  126.          switch (var2) {
  127.             case 2:
  128.                return ((DeclTableModel)this).isNewRow(var1) ? "" : ((BaseDeclaration)var3).getName();
  129.             case 3:
  130.                return ((DeclTableModel)this).isNewRow(var1) ? "" : (var3.getSystemID() == null ? "" : var3.getSystemID().toSource());
  131.             case 4:
  132.                return ((DeclTableModel)this).isNewRow(var1) ? "" : var3.getPublicID();
  133.             case 5:
  134.                if (this.isGE()) {
  135.                   if (((DeclTableModel)this).isNewRow(var1)) {
  136.                      return "";
  137.                   }
  138.  
  139.                   return ((ExternalGEDeclaration)var3).getNotation();
  140.                } else {
  141.                   if (((DeclTableModel)this).isNewRow(var1)) {
  142.                      return Boolean.FALSE;
  143.                   }
  144.  
  145.                   return new Boolean(super.doc.getNamedDeclaration(((BaseDeclaration)var3).getName(), Class.forName("com.extensibility.xml.ExternalSubset")) != null);
  146.                }
  147.             default:
  148.                return super.getValueAt(var1, var2);
  149.          }
  150.       }
  151.    }
  152.  
  153.    ParserException validateCell(String var1, int var2, int var3) {
  154.       if (var1.equals(this.getValueAt(var2, var3))) {
  155.          return null;
  156.       } else {
  157.          switch (var3) {
  158.             case 2:
  159.                return ((DeclTableModel)this).validateName(var1, (Class)null, this.getEntity(var2), true);
  160.             case 3:
  161.                if (this.getEntity(var2) instanceof InternalPEDeclaration) {
  162.                   InternalPEDeclaration var4 = (InternalPEDeclaration)this.getEntity(var2);
  163.                   if (var4.getContentModel() != null) {
  164.                      try {
  165.                         super.doc.checkContentModel(((BaseDeclaration)var4).getName(), var1);
  166.                      } catch (ParserException var8) {
  167.                         return var8;
  168.                      }
  169.                   }
  170.  
  171.                   if (var4.getAttributeGroup() != null) {
  172.                      try {
  173.                         super.doc.checkAttributeGroup(((BaseDeclaration)var4).getName(), var1);
  174.                      } catch (ParserException var7) {
  175.                         return var7;
  176.                      }
  177.                   }
  178.                }
  179.             default:
  180.                return null;
  181.          }
  182.       }
  183.    }
  184.  
  185.    public void setCellOfInclude(Object var1, BaseDeclaration var2) {
  186.       if (this.isGE()) {
  187.          if (((String)var1).length() == 0) {
  188.             var1 = null;
  189.          }
  190.  
  191.          ((ExternalGEDeclaration)var2).setNotation((String)var1);
  192.       } else if ((Boolean)var1) {
  193.          try {
  194.             int var3 = super.doc.insertSubset((ExternalPEDeclaration)var2);
  195.             if (var3 > 0) {
  196.                DialogFactory.caution((Component)null, UI.getString("caution.extsubset.errors", (new Integer(var3)).toString(), var2.getName()));
  197.             }
  198.          } catch (FileNotFoundException var4) {
  199.             DialogFactory.note((Component)null, UI.getString("note.uri.not.found", ((ExternalPEDeclaration)var2).getSystemID().getShortName()));
  200.          } catch (UnknownHostException var5) {
  201.             DialogFactory.note((Component)null, UI.getString("note.url.not.found", ((ExternalPEDeclaration)var2).getSystemID().getFullName()));
  202.          } catch (IOException var6) {
  203.             DialogFactory.showException((Component)null, 107, var6);
  204.          }
  205.       } else {
  206.          String var7 = var2.getName();
  207.          super.doc.removeSubset((ExternalSubset)((DeclTableModel)this).getSchemaDoc().getNamedDeclaration(var7, Class.forName("com.extensibility.xml.ExternalSubset")));
  208.       }
  209.  
  210.    }
  211.  
  212.    public void setValueAt(Object var1, int var2, int var3) {
  213.       if (!var1.equals(this.getValueAt(var2, var3))) {
  214.          EntityDeclaration var4 = this.getEntity(var2);
  215.          if (((DeclTableModel)this).isNewRow(var2)) {
  216.             String var5 = var3 == 2 ? (String)var1 : ((DeclTableModel)this).getUniqueDeclName((String)null);
  217.             EntityNewRowUndoable var6 = new EntityNewRowUndoable(this, var2, var5);
  218.             ((DeclTableModel)this).getSchemaDoc().getUndoManager().addEdit(var6);
  219.             ((BaseEdit)var6).doCommand();
  220.             super.doc.touch(super.doc.getFocusedURI(true));
  221.             if (var3 == 2) {
  222.                return;
  223.             }
  224.          } else {
  225.             super.doc.touch(var4);
  226.          }
  227.  
  228.          if (this.internal) {
  229.             switch (var3) {
  230.                case 2:
  231.                   InternalEntityNameUndoable var9 = new InternalEntityNameUndoable(this, var4, var1);
  232.                   ((DeclTableModel)this).getSchemaDoc().getUndoManager().addEdit(var9);
  233.                   ((BaseEdit)var9).doCommand();
  234.                   break;
  235.                case 3:
  236.                   InternalEntValueUndoable var11 = new InternalEntValueUndoable(this, var4, var1);
  237.                   ((DeclTableModel)this).getSchemaDoc().getUndoManager().addEdit(var11);
  238.                   ((BaseEdit)var11).doCommand();
  239.                   break;
  240.                default:
  241.                   Debug.assert(false, String.valueOf("Unexpected column number:").concat(String.valueOf(var3)));
  242.             }
  243.          } else {
  244.             switch (var3) {
  245.                case 2:
  246.                   ExternalEntityNameUndoable var10 = new ExternalEntityNameUndoable(this, var4, var1);
  247.                   ((DeclTableModel)this).getSchemaDoc().getUndoManager().addEdit(var10);
  248.                   ((BaseEdit)var10).doCommand();
  249.                   break;
  250.                case 3:
  251.                   ExternalEntityURIUndoable var12 = new ExternalEntityURIUndoable(this, var4, var1);
  252.                   if (((String)var1).length() != 0 || this.getValueAt(var2, var3) != null) {
  253.                      ((DeclTableModel)this).getSchemaDoc().getUndoManager().addEdit(var12);
  254.                   }
  255.  
  256.                   ((BaseEdit)var12).doCommand();
  257.                   break;
  258.                case 4:
  259.                   ExternalEntPublicUndoable var7 = new ExternalEntPublicUndoable(this, var4, var1);
  260.                   if (((String)var1).length() != 0 || this.getValueAt(var2, var3) != null) {
  261.                      ((DeclTableModel)this).getSchemaDoc().getUndoManager().addEdit(var7);
  262.                   }
  263.  
  264.                   ((BaseEdit)var7).doCommand();
  265.                   break;
  266.                case 5:
  267.                   ExternalEntIncludeUndoable var8 = new ExternalEntIncludeUndoable(this, var4, var1);
  268.                   if (!this.isGE() || ((String)var1).length() != 0 || this.getValueAt(var2, var3) != null) {
  269.                      ((DeclTableModel)this).getSchemaDoc().getUndoManager().addEdit(var8);
  270.                   }
  271.  
  272.                   ((BaseEdit)var8).doCommand();
  273.                   break;
  274.                default:
  275.                   Debug.assert(false, String.valueOf("Unexpected column number:").concat(String.valueOf(var3)));
  276.             }
  277.          }
  278.  
  279.       }
  280.    }
  281.  
  282.    public BaseDeclaration createDeclaration(String var1) {
  283.       if (this.field_2) {
  284.          return (BaseDeclaration)(this.internal ? new InternalGEDeclaration(var1, "") : new ExternalGEDeclaration(var1, (String)null, URI.makeStringURI("")));
  285.       } else {
  286.          return (BaseDeclaration)(this.internal ? new InternalPEDeclaration(var1, "") : new ExternalPEDeclaration(var1, (String)null, URI.makeStringURI("")));
  287.       }
  288.    }
  289.  
  290.    protected BaseDeclaration getDeclaration(int var1, int var2, String var3) {
  291.       BaseDeclaration var4 = null;
  292.       if (var2 == 5) {
  293.          var4 = ((DeclTableModel)this).getSchemaDoc().getNamedDeclaration(var3, Class.forName("com.extensibility.xml.NotationDeclaration"));
  294.       } else if (var2 == 3) {
  295.          if (DTDUtilities.isGEName(var3)) {
  296.             var3 = DTDUtilities.convertGEName(var3, false);
  297.             var4 = ((DeclTableModel)this).getSchemaDoc().getNamedDeclaration(var3, Class.forName("com.extensibility.xml.GeneralEntityDeclaration"));
  298.          } else if (DTDUtilities.isPEName(var3)) {
  299.             var3 = DTDUtilities.convertPEName(var3, false);
  300.             var4 = ((DeclTableModel)this).getSchemaDoc().getNamedDeclaration(var3, Class.forName("com.extensibility.xml.ParameterEntityDeclaration"));
  301.          } else if (!this.isGE() && this.isInternal()) {
  302.             InternalPEDeclaration var5 = (InternalPEDeclaration)this.getEntity(var1);
  303.             if (var5.getAttributeGroup() != null) {
  304.                var4 = ((DeclTableModel)this).getSchemaDoc().getNamedDeclaration(var3, Class.forName("com.extensibility.xml.AttributeDeclaration"));
  305.             } else if (var5.getContentModel() != null) {
  306.                var4 = ((DeclTableModel)this).getSchemaDoc().getNamedDeclaration(var3, Class.forName("com.extensibility.xml.ElementDeclaration"));
  307.             }
  308.          }
  309.       }
  310.  
  311.       return var4;
  312.    }
  313. }
  314.