/** For internal use only. */
  public static void initMeta() {
    try {
      metaClass.setSuperMetaClass(DbSMSStructuralFeature.metaClass);
      metaClass.setIcon("dboodatamember.gif");

      fAssociationEnd.setJField(DbOODataMember.class.getDeclaredField("m_associationEnd"));
      fAssociationEnd.setVisibleInScreen(false);
      fVisibility.setJField(DbOODataMember.class.getDeclaredField("m_visibility"));
      fVisibility.setScreenOrder("<initialValue");
      fType.setJField(DbOODataMember.class.getDeclaredField("m_type"));
      fType.setFlags(MetaField.COPY_REFS | MetaField.INTEGRABLE_BY_NAME);
      fType.setRendererPluginName("DbFullNameInTip;DbOOAdt");
      fElementType.setJField(DbOODataMember.class.getDeclaredField("m_elementType"));
      fElementType.setFlags(MetaField.COPY_REFS | MetaField.INTEGRABLE_BY_NAME);
      fTypeUse.setJField(DbOODataMember.class.getDeclaredField("m_typeUse"));
      fTypeUseStyle.setJField(DbOODataMember.class.getDeclaredField("m_typeUseStyle"));
      fStatic.setJField(DbOODataMember.class.getDeclaredField("m_static"));
      fCommonItem.setJField(DbOODataMember.class.getDeclaredField("m_commonItem"));
      fDomain.setJField(DbOODataMember.class.getDeclaredField("m_domain"));

      fAssociationEnd.setOppositeRel(DbOOAssociationEnd.fAssociationMember);
      fType.setOppositeRel(DbOOAdt.fTypedDataMembers);
      fElementType.setOppositeRel(DbOOAdt.fTypedElementDataMembers);
      fCommonItem.setOppositeRel(DbORCommonItem.fFields);
      fDomain.setOppositeRel(DbORDomain.fFields);

    } catch (Exception e) {
      throw new RuntimeException("Meta init");
    }
  }
 public static MetaField getMetaField(DbObject dbo, String name) {
   MetaField[] allMetaFields = dbo.getMetaClass().getAllMetaFields();
   for (int i = 0; i < allMetaFields.length; i++) {
     MetaField metaField = allMetaFields[i];
     if (name.equals(metaField.getJField().getName())) return metaField;
   }
   return null;
 }
 // Overridden
 public void installDbListeners(boolean install) {
   MetaField[] tipsFields = DisplayToolTipsOptionGroup.getAvailableMetaFields();
   MetaField[] metaFields = new MetaField[] {DbObject.fComponents, DbSemanticalObject.fName};
   if (install) {
     MetaField.addDbRefreshListener(this, null, metaFields);
     MetaField.addDbRefreshListener(this, null, tipsFields);
   } else {
     MetaField.removeDbRefreshListener(this, metaFields);
     MetaField.removeDbRefreshListener(this, tipsFields);
   }
 }
 // Called at the end of a cell edition, to process the edition result.
 public final void valueForPathChanged(TreePath path, Object newValue) {
   DynamicNode node = (DynamicNode) path.getLastPathComponent();
   Object obj = node.getRealObject();
   if (obj instanceof DbObject) {
     boolean editable = false;
     try {
       Db db = ((DbObject) obj).getDb();
       if (db.isValid()) {
         db.beginReadTrans();
         MetaField editableMetaField = getEditableMetaField((DbObject) obj);
         if (editableMetaField == null)
           editable =
               ApplicationContext.getSemanticalModel()
                   .isNameEditable((DbObject) obj, Explorer.class);
         else
           editable =
               ApplicationContext.getSemanticalModel()
                   .isEditable(editableMetaField, (DbObject) obj, Explorer.class);
         db.commitTrans();
       }
     } catch (DbException ex) {
       org.modelsphere.jack.util.ExceptionHandler.processUncatchedException(
           ApplicationContext.getDefaultMainFrame(), ex);
       editable = false;
     }
     if (!editable) return;
   } else {
     return;
   }
   DbObject semObj = (DbObject) obj;
   try {
     MetaField editableMetaField = getEditableMetaField(semObj);
     String transName =
         (editableMetaField == null
             ? LocaleMgr.action.getString("rename")
             : MessageFormat.format(kUpdate0, new Object[] {editableMetaField.getGUIName()}));
     semObj.getDb().beginTrans(Db.WRITE_TRANS, transName);
     if (editableMetaField == null) {
       if (semObj.getTransStatus() == Db.OBJ_REMOVED) return;
       semObj.setName((String) newValue);
     } else semObj.set(editableMetaField, (String) newValue);
     semObj.getDb().commitTrans();
     nodeChanged(node); // in case it is a secondary node (only the
     // primary node is updated by the refresh
     // listener).
   } catch (Exception ex) {
     org.modelsphere.jack.util.ExceptionHandler.processUncatchedException(
         ApplicationContext.getDefaultMainFrame(), ex);
   }
 }
 public void set(MetaField metaField, Object value) throws DbException {
   if (metaField.getMetaClass() == metaClass) {
     if (metaField == fStereotypedObjects) ((DbSMSSemanticalObject) value).setUmlStereotype(this);
     else if (metaField == fSubStereotypes)
       setSubStereotypes((DbSMSStereotype) value, Db.ADD_TO_RELN);
     else if (metaField == fSuperStereotypes)
       setSuperStereotypes((DbSMSStereotype) value, Db.ADD_TO_RELN);
     else basicSet(metaField, value);
   } else super.set(metaField, value);
 }
  /** For internal use only. */
  public static void initMeta() {
    try {
      metaClass.setSuperMetaClass(DbSemanticalObject.metaClass);
      metaClass.setIcon("dbsmsumlstereotype.gif");

      fStereotypedObjects.setJField(DbSMSStereotype.class.getDeclaredField("m_stereotypedObjects"));
      fSubStereotypes.setJField(DbSMSStereotype.class.getDeclaredField("m_subStereotypes"));
      fSuperStereotypes.setJField(DbSMSStereotype.class.getDeclaredField("m_superStereotypes"));
      fIcon.setJField(DbSMSStereotype.class.getDeclaredField("m_icon"));
      fIcon.setRendererPluginName("SrImage;StereotypeIcon");
      fBuiltIn.setJField(DbSMSStereotype.class.getDeclaredField("m_builtIn"));
      fBuiltIn.setEditable(false);
      fMetaClassName.setJField(DbSMSStereotype.class.getDeclaredField("m_metaClassName"));
      fMetaClassName.setRendererPluginName("SMSSemanticalMetaClass");

      fSubStereotypes.setOppositeRel(DbSMSStereotype.fSuperStereotypes);
      fSuperStereotypes.setOppositeRel(DbSMSStereotype.fSubStereotypes);

    } catch (Exception e) {
      throw new RuntimeException("Meta init");
    }
  }
 public void set(MetaField metaField, Object value) throws DbException {
   if (metaField.getMetaClass() == metaClass) {
     basicSet(metaField, value);
   } else super.set(metaField, value);
 }
  /** For internal use only. */
  public static void initMeta() {
    try {
      metaClass.setSuperMetaClass(DbSMSStyle.metaClass);

      fOr_nameDescriptor.setJField(
          DbORCommonItemStyle.class.getDeclaredField("m_or_nameDescriptor"));
      fLineColorDbORCommonItem.setJField(
          DbORCommonItemStyle.class.getDeclaredField("m_lineColorDbORCommonItem"));
      fDescriptorFontDbORCommonItem.setJField(
          DbORCommonItemStyle.class.getDeclaredField("m_descriptorFontDbORCommonItem"));
      fDashStyleDbORCommonItem.setJField(
          DbORCommonItemStyle.class.getDeclaredField("m_dashStyleDbORCommonItem"));
      fTextColorDbORCommonItem.setJField(
          DbORCommonItemStyle.class.getDeclaredField("m_textColorDbORCommonItem"));
      fHighlightDbORCommonItem.setJField(
          DbORCommonItemStyle.class.getDeclaredField("m_highlightDbORCommonItem"));
      fBackgroundColorDbORCommonItem.setJField(
          DbORCommonItemStyle.class.getDeclaredField("m_backgroundColorDbORCommonItem"));
      fOr_commonItemLengthDecimalsDisplay.setJField(
          DbORCommonItemStyle.class.getDeclaredField("m_or_commonItemLengthDecimalsDisplay"));
      fOr_commonItemLengthDecimalsFont.setJField(
          DbORCommonItemStyle.class.getDeclaredField("m_or_commonItemLengthDecimalsFont"));
      fReferringProjectCommonItem.setJField(
          DbORCommonItemStyle.class.getDeclaredField("m_referringProjectCommonItem"));
      fOr_commonItemNullValueFont.setJField(
          DbORCommonItemStyle.class.getDeclaredField("m_or_commonItemNullValueFont"));
      fOr_commonItemTypeFont.setJField(
          DbORCommonItemStyle.class.getDeclaredField("m_or_commonItemTypeFont"));
      fOr_commonItemTypeDisplay.setJField(
          DbORCommonItemStyle.class.getDeclaredField("m_or_commonItemTypeDisplay"));
      fOr_commonItemNullValueDisplay.setJField(
          DbORCommonItemStyle.class.getDeclaredField("m_or_commonItemNullValueDisplay"));

      fReferringProjectCommonItem.setOppositeRel(DbSMSProject.fOrDefaultCommonItemStyle);

    } catch (Exception e) {
      throw new RuntimeException("Meta init");
    }
  }