[GME-commit] GMESRC/Paradigms/MetaGME/MetaInterpreter2004/Rep Any.cpp,1.9,1.10 Any.h,1.5,1.6 AspectRep.cpp,1.9,1.10 Broker.cpp,1.6,1.7 ConnectionRep.cpp,1.5,1.6 ConnectionRep.h,1.2,1.3 Dumper.cpp,1.21,1.22 FCO.cpp,1.8,1.9 FCO.h,1.3,1.4 FolderRep.cpp,1.6,1.7 Sheet.cpp,1.5,1.6 Sheet.h,1.3,1.4

gme-commit at list.isis.vanderbilt.edu gme-commit at list.isis.vanderbilt.edu
Fri Jul 16 18:39:09 CDT 2004


Update of /var/lib/gme/GMESRC/Paradigms/MetaGME/MetaInterpreter2004/Rep
In directory braindrain:/tmp/cvs-serv22622/MetaInterpreter2004/Rep

Modified Files:
	Any.cpp Any.h AspectRep.cpp Broker.cpp ConnectionRep.cpp 
	ConnectionRep.h Dumper.cpp FCO.cpp FCO.h FolderRep.cpp 
	Sheet.cpp Sheet.h 
Log Message:
New isAbstract, isInRootFolder handling.


CVS User: zolmol

Index: Any.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/Paradigms/MetaGME/MetaInterpreter2004/Rep/Any.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** Any.cpp	14 May 2004 00:51:34 -0000	1.9
--- Any.cpp	16 Jul 2004 22:39:07 -0000	1.10
***************
*** 22,25 ****
--- 22,27 ----
  }
  
+ /*static*/ const std::string Any::InRootFolder_str = "InRootFolder";
+ /*static*/ const std::string Any::DisplayedName_str = "DisplayedName";
  
  /*static*/ const std::string Any::KIND_TYPE_STR[] =
***************
*** 41,44 ****
--- 43,48 ----
  Any::Any( BON::FCO& ptr)
  	: m_ptr( ptr)
+ 	, m_isInRootFolder( false)
+ 	, m_equivs()
  	, m_initialConstraintList()
  	, m_finalConstraintList()
***************
*** 49,52 ****
--- 53,57 ----
  Any::~Any() 
  { 
+ 	m_equivs.clear();
  	m_initialConstraintList.clear();
  	m_finalConstraintList.clear();
***************
*** 54,61 ****
  
  
! bool Any::getAttribute( const std::string & val, bool& is_it)
  {
! 	is_it = m_ptr->getAttribute(val)->getBooleanValue();
! 	return is_it;
  }
  
--- 59,83 ----
  
  
! // applicable for folders only
! void Any::initAttributes()
  {
! 	// for folders the default value (from the meta) true
! 	// for fcos    the default value (from the meta) false
! 
! 	m_isInRootFolder = m_ptr->getAttribute( InRootFolder_str)->getBooleanValue();
! 	// try to find one among the equivalent classes which is in the root folder
! 	std::set< BON::FCO >::const_iterator it = m_equivs.begin();
! 	for ( ; !m_isInRootFolder && it != m_equivs.end(); ++it)
! 	{
! 		if ( *it == m_ptr) continue;
! 
! 		m_isInRootFolder = m_isInRootFolder || (*it)->getAttribute( InRootFolder_str)->getBooleanValue();
! 	}
! }
! 
! 
! bool Any::isInRootFolder()
! {
! 	return m_isInRootFolder;
  }
  
***************
*** 88,92 ****
  	if ( this->m_ptr)
  	{
! 		return m_ptr->getAttribute("DisplayedName")->getStringValue();
  	}
  	return "NullPtrError";
--- 110,114 ----
  	if ( this->m_ptr)
  	{
! 		return m_ptr->getAttribute( DisplayedName_str)->getStringValue();
  	}
  	return "NullPtrError";

Index: Any.h
===================================================================
RCS file: /var/lib/gme/GMESRC/Paradigms/MetaGME/MetaInterpreter2004/Rep/Any.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** Any.h	10 Mar 2004 02:36:28 -0000	1.5
--- Any.h	16 Jul 2004 22:39:07 -0000	1.6
***************
*** 22,25 ****
--- 22,28 ----
  class Any 
  {
+ public: // constant strings
+ 	static const std::string InRootFolder_str;//"InRootFolder"
+ 	static const std::string DisplayedName_str;//"DisplayedName"
  public: // types
  	typedef enum
***************
*** 61,64 ****
--- 64,68 ----
  
  public:	
+ 	virtual void initAttributes();
  	virtual KIND_TYPE getMyKind() const = 0;
  	std::string getMyKindStr() const;
***************
*** 72,79 ****
  	BON::FCO getPtr() const { return m_ptr; }
  
! 	bool getAttribute( const std::string & val, bool& is_it);
  
  	BON::Folder getParentFolder() const { return m_parentFolder; }
  	void setParentFolder( const BON::Folder& folder) { m_parentFolder = folder; }
  
  	virtual std::string getMyPrefix() const;
--- 76,84 ----
  	BON::FCO getPtr() const { return m_ptr; }
  
! 	bool isInRootFolder();
  
  	BON::Folder getParentFolder() const { return m_parentFolder; }
  	void setParentFolder( const BON::Folder& folder) { m_parentFolder = folder; }
+ 	void setEquivPeers( const std::set< BON::FCO >& ps) { m_equivs = ps; }
  
  	virtual std::string getMyPrefix() const;
***************
*** 96,99 ****
--- 101,108 ----
  	// pointer of the parent folder
  	BON::Folder m_parentFolder;
+ 
+ 	// equivalent peers
+ 	std::set< BON::FCO > m_equivs;
+ 	bool	m_isInRootFolder;
  
  	// initial and final constraints

Index: AspectRep.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/Paradigms/MetaGME/MetaInterpreter2004/Rep/AspectRep.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** AspectRep.cpp	16 Jun 2004 18:56:52 -0000	1.9
--- AspectRep.cpp	16 Jul 2004 22:39:07 -0000	1.10
***************
*** 104,113 ****
  	else
  	{
! 		return m_ptr->getAttribute("DisplayedName")->getStringValue(); //<!> modified from m_respPointer
  	}
  #else
  	if( m_ptr != BON::FCO()) 
  	{
! 		return m_ptr->getAttribute("DisplayedName")->getStringValue(); //<!> modified from m_respPointer
  	}
  	else
--- 104,113 ----
  	else
  	{
! 		return m_ptr->getAttribute( Any::DisplayedName_str)->getStringValue(); //<!> modified from m_respPointer
  	}
  #else
  	if( m_ptr != BON::FCO()) 
  	{
! 		return m_ptr->getAttribute( Any::DisplayedName_str)->getStringValue(); //<!> modified from m_respPointer
  	}
  	else

Index: Broker.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/Paradigms/MetaGME/MetaInterpreter2004/Rep/Broker.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** Broker.cpp	11 Mar 2004 15:39:38 -0000	1.6
--- Broker.cpp	16 Jul 2004 22:39:07 -0000	1.7
***************
*** 129,133 ****
  			std::string m1 = node.obj->getID();
  			std::string m2 = otherNode.obj->getID();
! 			bool similar = (node.obj == otherNode.obj);//t
  			std::string p = node.obj->getName();
  			if ( m1 < m2)
--- 129,133 ----
  			std::string m1 = node.obj->getID();
  			std::string m2 = otherNode.obj->getID();
! 			//bool similar = (node.obj == otherNode.obj);//t
  			std::string p = node.obj->getName();
  			if ( m1 < m2)
***************
*** 150,154 ****
  				else
  					node.folder->getRegistry()->getDescendantByPath( token)->clear(); //reset
! 
  				std::string fmtstr = std::string("Duplicate metaref found. Class ") + (flag ? otherNode : node).obj->getName() +
  					" subnode: " + std::string((flag ? otherNode : node).path.empty() ? "n/a" : (flag ? otherNode : node).path + " has been reset to Undefined value");
--- 150,154 ----
  				else
  					node.folder->getRegistry()->getDescendantByPath( token)->clear(); //reset
! #ifdef _DEBUG
  				std::string fmtstr = std::string("Duplicate metaref found. Class ") + (flag ? otherNode : node).obj->getName() +
  					" subnode: " + std::string((flag ? otherNode : node).path.empty() ? "n/a" : (flag ? otherNode : node).path + " has been reset to Undefined value");
***************
*** 156,159 ****
--- 156,160 ----
  				std::string n2str = "Name" + otherNode.obj->getName() + " path: " + otherNode.path;
  				//if (t_1) global_vars.err << fmtstr << "\n" << n1str << "\n" << n2str << "\n";
+ #endif
  			}
  			catch(...) {

Index: ConnectionRep.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/Paradigms/MetaGME/MetaInterpreter2004/Rep/ConnectionRep.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** ConnectionRep.cpp	26 Apr 2004 17:13:38 -0000	1.5
--- ConnectionRep.cpp	16 Jul 2004 22:39:07 -0000	1.6
***************
*** 11,14 ****
--- 11,22 ----
  extern Globals global_vars;
  
+ /*static*/ const std::string ConnectionRep::Color_str = "Color";
+ /*static*/ const std::string ConnectionRep::ConnLineEnd_str = "ConnLineEnd";
+ /*static*/ const std::string ConnectionRep::ConnLineStart_str = "ConnLineStart";
+ /*static*/ const std::string ConnectionRep::ConnLineType_str = "ConnLineType";
+ /*static*/ const std::string ConnectionRep::SrcAttrLabel1_str = "SrcAttrLabel1";
+ /*static*/ const std::string ConnectionRep::SrcAttrLabel2_str = "SrcAttrLabel2";
+ /*static*/ const std::string ConnectionRep::DstAttrLabel1_str = "DstAttrLabel1";
+ /*static*/ const std::string ConnectionRep::DstAttrLabel2_str = "DstAttrLabel2";
  
  ConnectionRep::ConnectionRep( BON::FCO& ptr): FCO( ptr)
***************
*** 24,27 ****
--- 32,209 ----
  
  
+ /*virtual*/ void ConnectionRep::initAttributes()
+ {
+ 	//
+ 	// Connections have their namePos attribute ignored! <!>
+ 	//
+ 
+ 	m_isInRootFolder = m_isInRootFolder || m_ptr->getAttribute( InRootFolder_str)->getBooleanValue();
+ 
+ 	// isAbstract: true if all objects are true
+ 	//m_isAbstract = m_isAbstract && m_ptr->getAttribute( IsAbstract_str)->getBooleanValue();
+ 	bool isabs = true; // if any of the set values is false it will change
+ 	bool isabs_set = false;
+ 	if( m_ptr->getAttribute( IsAbstract_str)->getStatus() == BON::AS_Here)
+ 	{
+ 		isabs = isabs && m_ptr->getAttribute( IsAbstract_str)->getBooleanValue();
+ 		isabs_set = true;
+ 	}
+ 
+ 
+ 	// general pref
+ 	bool isgenpref_set = false;
+ 	if( m_ptr->getAttribute( GeneralPreferences_str)->getStatus() == BON::AS_Here)
+ 	{
+ 		m_sAttrGenPref = m_ptr->getAttribute( GeneralPreferences_str)->getStringValue();
+ 		isgenpref_set = true;
+ 	}
+ 
+ 	// displayed name
+ 	bool isdispname_set = false;
+ 	if( m_ptr->getAttribute( DisplayedName_str)->getStatus() == BON::AS_Here)
+ 	{
+ 		m_sAttrDispName = m_ptr->getAttribute( DisplayedName_str)->getStringValue();
+ 		isdispname_set = true;
+ 	}
+ 
+ 	
+ 	bool iscolor_set = false;
+ 	//if( m_ptr->getAttribute( Color_str)->getStatus() == BON::AS_Here)
+ 	{
+ 		m_sAttrColor = m_ptr->getAttribute( Color_str)->getStringValue();
+ 		iscolor_set = true;
+ 	}
+ 	bool isconnlineend_set = false;
+ 	//if( m_ptr->getAttribute( ConnLineEnd_str)->getStatus() == BON::AS_Here)
+ 	{
+ 		m_sAttrConnLineEnd = m_ptr->getAttribute( ConnLineEnd_str)->getStringValue();
+ 		isconnlineend_set = true;
+ 	}
+ 	bool isconnlinestart_set = false;
+ 	//if( m_ptr->getAttribute( ConnLineStart_str)->getStatus() == BON::AS_Here)
+ 	{
+ 		m_sAttrConnLineStart = m_ptr->getAttribute( ConnLineStart_str)->getStringValue();
+ 		isconnlinestart_set = true;
+ 	}
+ 	
+ 	bool isconnlinetype_set = false;
+ 	//if( m_ptr->getAttribute( ConnLineType_str)->getStatus() == BON::AS_Here)
+ 	{
+ 		m_sAttrConnLineType = m_ptr->getAttribute( ConnLineType_str)->getStringValue();
+ 		isconnlinetype_set = true;
+ 	}
+ 
+ 	bool issrclabel1_set = false;
+ 	if( m_ptr->getAttribute( SrcAttrLabel1_str)->getStatus() == BON::AS_Here)
+ 	{
+ 		m_sAttrSrcAttrLabel1 = m_ptr->getAttribute( SrcAttrLabel1_str)->getStringValue();
+ 		issrclabel1_set = true;
+ 	}
+ 	bool issrclabel2_set = false;
+ 	if( m_ptr->getAttribute( SrcAttrLabel2_str)->getStatus() == BON::AS_Here)
+ 	{
+ 		m_sAttrSrcAttrLabel2 = m_ptr->getAttribute( SrcAttrLabel2_str)->getStringValue();
+ 		issrclabel2_set = true;
+ 	}
+ 	bool isdstlabel1_set = false;
+ 	if( m_ptr->getAttribute( DstAttrLabel1_str)->getStatus() == BON::AS_Here)
+ 	{
+ 		m_sAttrDstAttrLabel1 = m_ptr->getAttribute( DstAttrLabel1_str)->getStringValue();
+ 		isdstlabel1_set = true;
+ 	}
+ 	bool isdstlabel2_set = false;
+ 	if( m_ptr->getAttribute( DstAttrLabel2_str)->getStatus() == BON::AS_Here)
+ 	{
+ 		m_sAttrDstAttrLabel2	= m_ptr->getAttribute( DstAttrLabel2_str)->getStringValue();
+ 		isdstlabel2_set = true;
+ 	}
+ 
+ 	std::set< BON::FCO >::const_iterator it = m_equivs.begin();
+ 	for ( ; it != m_equivs.end(); ++it)
+ 	{
+ 		if ( *it == m_ptr) continue;
+ 
+ 		// --the following 4 attributes are applicable to proxies as well--
+ 		// InRootFolder: true if one is at least true
+ 		m_isInRootFolder = m_isInRootFolder || (*it)->getAttribute( InRootFolder_str)->getBooleanValue();
+ 
+ 		// isAbstract: true if all objects are true
+ 		//m_isAbstract = m_isAbstract && (*it)->getAttribute( IsAbstract_str)->getBooleanValue();
+ 		if( (*it)->getAttribute( IsAbstract_str)->getStatus() == BON::AS_Here) // if set by the user
+ 		{
+ 			isabs = isabs && (*it)->getAttribute( IsAbstract_str)->getBooleanValue();
+ 			isabs_set = true;
+ 		}
+ 
+ #if(1)
+ 		// general pref
+ 		if( !isgenpref_set && (*it)->getAttribute( GeneralPreferences_str)->getStatus() == BON::AS_Here)
+ 		{
+ 			m_sAttrGenPref = (*it)->getAttribute( GeneralPreferences_str)->getStringValue();
+ 			isgenpref_set = true;
+ 		}
+ 		
+ 
+ 		// displayed name
+ 		if( !isdispname_set && (*it)->getAttribute( DisplayedName_str)->getStatus() == BON::AS_Here)
+ 		{
+ 			m_sAttrDispName = (*it)->getAttribute( DisplayedName_str)->getStringValue();
+ 			isdispname_set = true;
+ 		}
+ 		
+ 
+ 		// --applicable to non proxies only--
+ 		if ((*it)->getObjectMeta().name().find("Proxy") != std::string::npos) continue;
+ 
+ 		if( !iscolor_set && (*it)->getAttribute( Color_str)->getStatus() == BON::AS_Here)
+ 		{
+ 			m_sAttrColor = (*it)->getAttribute( Color_str)->getStringValue();
+ 			iscolor_set = true;
+ 		}
+ 
+ 		if( !isconnlineend_set && (*it)->getAttribute( ConnLineEnd_str)->getStatus() == BON::AS_Here)
+ 		{
+ 			m_sAttrConnLineEnd = (*it)->getAttribute( ConnLineEnd_str)->getStringValue();
+ 			isconnlineend_set = true;
+ 		}
+ 		
+ 		if( !isconnlinestart_set && (*it)->getAttribute( ConnLineStart_str)->getStatus() == BON::AS_Here)
+ 		{
+ 			m_sAttrConnLineStart = (*it)->getAttribute( ConnLineStart_str)->getStringValue();
+ 			isconnlinestart_set = true;
+ 		}
+ 		if( !isconnlinetype_set && (*it)->getAttribute( ConnLineType_str)->getStatus() == BON::AS_Here)
+ 		{
+ 			m_sAttrConnLineType = (*it)->getAttribute( ConnLineType_str)->getStringValue();
+ 			isconnlinetype_set = true;
+ 		}
+ 
+ 		if( !issrclabel1_set && (*it)->getAttribute( SrcAttrLabel1_str)->getStatus() == BON::AS_Here)
+ 		{
+ 			m_sAttrSrcAttrLabel1 = (*it)->getAttribute( SrcAttrLabel1_str)->getStringValue();
+ 			issrclabel1_set = true;
+ 		}
+ 		if( !issrclabel2_set && (*it)->getAttribute( SrcAttrLabel2_str)->getStatus() == BON::AS_Here)
+ 		{
+ 			m_sAttrSrcAttrLabel2 = (*it)->getAttribute( SrcAttrLabel2_str)->getStringValue();
+ 			issrclabel2_set = true;
+ 		}
+ 		if( !isdstlabel1_set && (*it)->getAttribute( DstAttrLabel1_str)->getStatus() == BON::AS_Here)
+ 		{
+ 			m_sAttrDstAttrLabel1 = (*it)->getAttribute( DstAttrLabel1_str)->getStringValue();
+ 			isdstlabel1_set = true;
+ 		}
+ 		if( !isdstlabel2_set && (*it)->getAttribute( DstAttrLabel2_str)->getStatus() == BON::AS_Here)
+ 		{
+ 			m_sAttrDstAttrLabel2 = (*it)->getAttribute( DstAttrLabel2_str)->getStringValue();
+ 			isdstlabel2_set = true;
+ 		}
+ #endif
+ 	}
+ 
+ 	if( isabs_set) m_isAbstract = isabs;
+ }
+ 
+ 
  void ConnectionRep::addJoint( ConnJoint & joint)
  {
***************
*** 96,126 ****
  {
  	std::string mmm;
! 	if ( this->m_ptr)
  	{
! 		std::string color = m_ptr->getAttribute("Color")->getStringValue();
! 		if( !color.empty())
! 			mmm += indStr() + "<regnode name = \"color\" value =\"" + color + "\"></regnode>\n";
! 		else
! 			mmm += indStr() + "<regnode name = \"color\" value =\"0x000000\"></regnode>\n";
  
! 		std::string end = m_ptr->getAttribute("ConnLineEnd")->getStringValue();
! 		if( !end.empty())
! 			mmm += indStr() + "<regnode name = \"dstStyle\" value =\"" + end + "\"></regnode>\n";
  
! 		std::string start = m_ptr->getAttribute("ConnLineStart")->getStringValue();
! 		if( !end.empty())
! 			mmm += indStr() + "<regnode name = \"srcStyle\" value =\"" + start + "\"></regnode>\n";
  		
! 		std::string line = m_ptr->getAttribute("ConnLineType")->getStringValue();
! 		if( !line.empty())
! 			mmm += indStr() + "<regnode name = \"lineType\" value =\"" + line + "\"></regnode>\n";
  	
! 		std::string which[] = 
  		{
! 			"SrcAttrLabel1",
! 			"SrcAttrLabel2",
! 			"DstAttrLabel1",
! 			"DstAttrLabel2"
  		};
  		std::string reg_label[] =
  		{
--- 278,302 ----
  {
  	std::string mmm;
! 	//if ( this->m_ptr)
  	{
! 		mmm = indStr() + "<regnode name = \"color\" value =\"" + (m_sAttrColor.empty()?"0x000000":m_sAttrColor) + "\"></regnode>\n";
  
! 		if( !m_sAttrConnLineEnd.empty())
! 			mmm += indStr() + "<regnode name = \"dstStyle\" value =\"" + m_sAttrConnLineEnd + "\"></regnode>\n";
  
! 		if( !m_sAttrConnLineStart.empty())
! 			mmm += indStr() + "<regnode name = \"srcStyle\" value =\"" + m_sAttrConnLineStart + "\"></regnode>\n";
  		
! 		if( !m_sAttrConnLineType.empty())
! 			mmm += indStr() + "<regnode name = \"lineType\" value =\"" + m_sAttrConnLineType + "\"></regnode>\n";
  	
! 		std::string * which[] = 
  		{
! 			&m_sAttrSrcAttrLabel1,
! 			&m_sAttrSrcAttrLabel2,
! 			&m_sAttrDstAttrLabel1,
! 			&m_sAttrDstAttrLabel2
  		};
+ 
  		std::string reg_label[] =
  		{
***************
*** 133,137 ****
  		for( int i = 0; i < 4 ; ++ i)
  		{
! 			std::string label = m_ptr->getAttribute( which[i])->getStringValue();
  			if( !label.empty()) {
  				// the label may or may not contain the % sign
--- 309,313 ----
  		for( int i = 0; i < 4 ; ++ i)
  		{
! 			std::string &label = *which[i];
  			if( !label.empty()) {
  				// the label may or may not contain the % sign

Index: ConnectionRep.h
===================================================================
RCS file: /var/lib/gme/GMESRC/Paradigms/MetaGME/MetaInterpreter2004/Rep/ConnectionRep.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** ConnectionRep.h	10 Mar 2004 02:36:29 -0000	1.2
--- ConnectionRep.h	16 Jul 2004 22:39:07 -0000	1.3
***************
*** 9,12 ****
--- 9,22 ----
  class ConnectionRep : public FCO 
  {
+ public: // constant strings
+ 	static const std::string Color_str;//"IsAbstract"
+ 	static const std::string ConnLineEnd_str;//"Icon"
+ 	static const std::string ConnLineStart_str;//"PortIcon"
+ 	static const std::string ConnLineType_str;//"Decorator"
+ 	static const std::string SrcAttrLabel1_str;//"SrcAttrLabel1"
+ 	static const std::string SrcAttrLabel2_str;//"SrcAttrLabel2"
+ 	static const std::string DstAttrLabel1_str;//"DstAttrLabel1"
+ 	static const std::string DstAttrLabel2_str;//"DstAttrLabel2"
+ 
  public:
  	ConnectionRep( BON::FCO& ptr);
***************
*** 14,17 ****
--- 24,28 ----
  
  public:
+ 	/*virtual*/ void initAttributes();
  	inline Any::KIND_TYPE getMyKind() const { return Any::CONN; }
  	void addJoint( ConnJoint & joint);
***************
*** 26,29 ****
--- 37,49 ----
  protected:
  	std::list<ConnJoint> m_jointList;
+ 
+ 	std::string m_sAttrColor;
+ 	std::string m_sAttrConnLineEnd;
+ 	std::string m_sAttrConnLineStart;
+ 	std::string m_sAttrConnLineType;
+ 	std::string m_sAttrSrcAttrLabel1;
+ 	std::string m_sAttrSrcAttrLabel2;
+ 	std::string m_sAttrDstAttrLabel1;
+ 	std::string m_sAttrDstAttrLabel2;
  
  private: // forbiding copy

Index: Dumper.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/Paradigms/MetaGME/MetaInterpreter2004/Rep/Dumper.cpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -C2 -d -r1.21 -r1.22
*** Dumper.cpp	12 Jul 2004 22:01:09 -0000	1.21
--- Dumper.cpp	16 Jul 2004 22:39:07 -0000	1.22
***************
*** 1649,1653 ****
  #else
  	if( global_vars.silent_mode)
! 		TO( "Successfully generated " + CString(f_name.c_str()));
  	else
  		res = AfxMessageBox( "Successfully generated " + CString(f_name.c_str()) + "\n\nWould you like to register your new paradigm ?", MB_YESNO | MB_ICONINFORMATION);
--- 1649,1653 ----
  #else
  	if( global_vars.silent_mode)
!  		TO( "Successfully generated " + CString(f_name.c_str()));
  	else
  		res = AfxMessageBox( "Successfully generated " + CString(f_name.c_str()) + "\n\nWould you like to register your new paradigm ?", MB_YESNO | MB_ICONINFORMATION);

Index: FCO.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/Paradigms/MetaGME/MetaInterpreter2004/Rep/FCO.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** FCO.cpp	10 Mar 2004 20:03:32 -0000	1.8
--- FCO.cpp	16 Jul 2004 22:39:07 -0000	1.9
***************
*** 15,21 ****
--- 15,40 ----
  
  
+ /*static*/ const std::string FCO::IsAbstract_str = "IsAbstract";
+ /*static*/ const std::string FCO::Icon_str = "Icon";
+ /*static*/ const std::string FCO::PortIcon_str = "PortIcon";
+ /*static*/ const std::string FCO::Decorator_str = "Decorator";
+ /*static*/ const std::string FCO::IsHotspotEnabled_str = "IsHotspotEnabled";
+ /*static*/ const std::string FCO::IsTypeShown_str = "IsTypeShown";
+ /*static*/ const std::string FCO::GeneralPreferences_str = "GeneralPreferences";
+ /*static*/ const std::string FCO::NamePosition_str = "NamePosition";
+ /*static*/ const std::string FCO::SubTypeIcon_str = "SubTypeIcon";
+ /*static*/ const std::string FCO::InstanceIcon_str = "InstanceIcon";
+ /*static*/ const std::string FCO::NameWrapNum_str = "NameWrapNum";
+ /*static*/ const std::string FCO::IsNameEnabled_str = "IsNameEnabled";
+ 
+ 
  FCO::FCO( BON::FCO& ptr)
  	: Any( ptr)
  	, m_isAbstract( false)
+ 	, m_bAttrIsHotspotEnabled( true)
+ 	, m_bAttrIsTypeShown( false)
+ 	, m_bAttrIsNameEnabled( true)
+ 	, m_iAttrNamePosition( 0)
+ 	, m_iAttrNameWrapNum( 0)
  	, m_references()
  	, m_partOf()
***************
*** 31,35 ****
  		m_descendants[i].clear();
  	}
- 	m_isAbstract = m_ptr->getAttribute("IsAbstract")->getBooleanValue();
  }
  
--- 50,53 ----
***************
*** 52,55 ****
--- 70,283 ----
  }
  
+ void FCO::initAttributes()
+ {
+ 	m_isInRootFolder = m_isInRootFolder || m_ptr->getAttribute( InRootFolder_str)->getBooleanValue();
+ 
+ 	// isAbstract: true iff all values (which are set) are true
+ 	bool isabs = true; // if any of the set values is false it will change
+ 	bool isabs_set = false;
+ 	//m_isAbstract = m_isAbstract && m_ptr->getAttribute( IsAbstract_str)->getBooleanValue();
+ 	if( m_ptr->getAttribute( IsAbstract_str)->getStatus() == BON::AS_Here)
+ 	{
+ 		isabs = isabs && m_ptr->getAttribute( IsAbstract_str)->getBooleanValue();
+ 		isabs_set = true;
+ 	}
+ 
+ 	// general pref
+ 	bool isgenpref_set = false;
+ 	if( m_ptr->getAttribute( GeneralPreferences_str)->getStatus() == BON::AS_Here)
+ 	{
+ 		m_sAttrGenPref = m_ptr->getAttribute( GeneralPreferences_str)->getStringValue();
+ 		isgenpref_set = true;
+ 	}
+ 
+ 	// displayed name
+ 	bool isdispname_set = false;
+ 	if( m_ptr->getAttribute( DisplayedName_str)->getStatus() == BON::AS_Here)
+ 	{
+ 		m_sAttrDispName = m_ptr->getAttribute( DisplayedName_str)->getStringValue();
+ 		isdispname_set = true;
+ 	}
+ 
+ 	// --applicable to non proxies only--
+ 
+ 	bool ishotspotenabled_set = false;
+ 	if( m_ptr->getAttribute( IsHotspotEnabled_str)->getStatus() == BON::AS_Here)
+ 	{
+ 		m_bAttrIsHotspotEnabled	= m_ptr->getAttribute( IsHotspotEnabled_str)->getBooleanValue();// def val: TRUE (dumped if FALSE)
+ 		ishotspotenabled_set = true;
+ 
+ 	}
+ 	
+ 	bool istypeshown_set = false;
+ 	if( m_ptr->getAttribute( IsTypeShown_str)->getStatus() == BON::AS_Here)
+ 	{
+ 		m_bAttrIsTypeShown		= m_ptr->getAttribute( IsTypeShown_str)->getBooleanValue();		// def val: FALSE (dumped if TRUE)
+ 		istypeshown_set = true;
+ 	}
+ 	
+ 	bool isnameenabled_set = false;
+ 	if( m_ptr->getAttribute( IsNameEnabled_str)->getStatus() == BON::AS_Here)
+ 	{
+ 		m_bAttrIsNameEnabled	= m_ptr->getAttribute( IsNameEnabled_str)->getBooleanValue();	// def val: TRUE (dumped if FALSE)
+ 		isnameenabled_set = true;
+ 	}
+ 
+ 	bool isnamepos_set = false;
+ 	//if( m_ptr->getAttribute( NamePosition_str)->getStatus() == BON::AS_Here)
+ 	{
+ 		m_iAttrNamePosition	= m_ptr->getAttribute( NamePosition_str)->getIntegerValue();// dumped anyway
+ 		isnamepos_set = true;
+ 	}
+ 
+ 	bool isnamewrapnum_set = false;
+ 	if( m_ptr->getAttribute( NameWrapNum_str)->getStatus() == BON::AS_Here)
+ 	{
+ 		m_iAttrNameWrapNum	= m_ptr->getAttribute( NameWrapNum_str)->getIntegerValue(); // dumped if not 0
+ 		isnamewrapnum_set = true;
+ 	}
+ 
+ 	bool icon_set = false;
+ 	if( m_ptr->getAttribute( Icon_str)->getStatus() == BON::AS_Here)
+ 	{
+ 		m_sAttrIcon = m_ptr->getAttribute( Icon_str)->getStringValue(); // dumped if not empty
+ 		icon_set = true;
+ 	}
+ 
+ 	bool porticon_set = false;
+ 	if( m_ptr->getAttribute( PortIcon_str)->getStatus() == BON::AS_Here)
+ 	{
+ 		m_sAttrPortIcon = m_ptr->getAttribute( PortIcon_str)->getStringValue();
+ 		porticon_set = true;
+ 	}
+ 
+ 	bool subtypeicon_set = false;
+ 	if( m_ptr->getAttribute( SubTypeIcon_str)->getStatus() == BON::AS_Here)
+ 	{
+ 		m_sAttrSubTypeIcon = m_ptr->getAttribute( SubTypeIcon_str)->getStringValue();
+ 		subtypeicon_set = true;
+ 	}
+ 
+ 	bool instanceicon_set = false;
+ 	if( m_ptr->getAttribute( InstanceIcon_str)->getStatus() == BON::AS_Here)
+ 	{
+ 		m_sAttrInstanceIcon = m_ptr->getAttribute( InstanceIcon_str)->getStringValue();
+ 		instanceicon_set = true;
+ 	}
+ 
+ 	bool decorator_set = false;
+ 	if( m_ptr->getAttribute( Decorator_str)->getStatus() == BON::AS_Here)
+ 	{
+ 		m_sAttrDecorator = m_ptr->getAttribute( Decorator_str)->getStringValue();
+ 		decorator_set = true;
+ 	}
+ 
+ 	// proxies have only the following attributes: abstract, inrootfolder, displayedname, generalpref
+ 	// real objects have beside these other attributes
+ 
+ 	// abstract iff all equivalent classes are abstract
+ 	std::set< BON::FCO >::const_iterator it = m_equivs.begin();
+ 	for ( ; it != m_equivs.end(); ++it)
+ 	{
+ 		if ( *it == m_ptr) continue;
+ 		
+ 		// --the following 4 attributes are applicable to proxies as well--
+ 		// InRootFolder: true if one is at least true
+ 		m_isInRootFolder = m_isInRootFolder || (*it)->getAttribute( InRootFolder_str)->getBooleanValue();
+ 
+ 		// isAbstract: true if all objects are true
+ 		//m_isAbstract = m_isAbstract && (*it)->getAttribute( IsAbstract_str)->getBooleanValue();
+ 		if( (*it)->getAttribute( IsAbstract_str)->getStatus() == BON::AS_Here) // if set by the user
+ 		{
+ 			isabs = isabs && (*it)->getAttribute( IsAbstract_str)->getBooleanValue();
+ 			isabs_set = true;
+ 		}
+ #if(1)
+ 		// general pref
+ 		if ( !isgenpref_set && (*it)->getAttribute( GeneralPreferences_str)->getStatus() == BON::AS_Here)
+ 		{
+ 			m_sAttrGenPref = (*it)->getAttribute( GeneralPreferences_str)->getStringValue();
+ 			isgenpref_set = true;
+ 		}
+ 
+ 		// displayed name
+ 		if ( !isdispname_set && (*it)->getAttribute( DisplayedName_str)->getStatus() == BON::AS_Here)
+ 		{
+ 			m_sAttrDispName = (*it)->getAttribute( DisplayedName_str)->getStringValue();
+ 			isdispname_set = true;
+ 		}
+ 
+ 		// --applicable to non proxies only--
+ 		if ((*it)->getObjectMeta().name().find("Proxy") != std::string::npos) continue;
+ 
+ 		if( !ishotspotenabled_set && (*it)->getAttribute( IsHotspotEnabled_str)->getStatus() == BON::AS_Here)
+ 		{
+ 			m_bAttrIsHotspotEnabled	= m_bAttrIsHotspotEnabled || (*it)->getAttribute( IsHotspotEnabled_str)->getBooleanValue();
+ 			ishotspotenabled_set = true;
+ 		}
+ 		
+ 		if( !istypeshown_set && (*it)->getAttribute( IsTypeShown_str)->getStatus() == BON::AS_Here)
+ 		{
+ 			m_bAttrIsTypeShown		= m_bAttrIsTypeShown || (*it)->getAttribute( IsTypeShown_str)->getBooleanValue();
+ 			istypeshown_set = true;
+ 		}
+ 		
+ 		if( !isnameenabled_set && (*it)->getAttribute( IsNameEnabled_str)->getStatus() == BON::AS_Here)
+ 		{
+ 			m_bAttrIsNameEnabled	= m_bAttrIsNameEnabled || (*it)->getAttribute( IsNameEnabled_str)->getBooleanValue();
+ 			isnameenabled_set = true;
+ 		}
+ 
+ 
+ 		if ( !isnamepos_set && (*it)->getAttribute( NamePosition_str)->getStatus() == BON::AS_Here)
+ 		{
+ 			m_iAttrNamePosition	= (*it)->getAttribute( NamePosition_str)->getIntegerValue();
+ 			isnamepos_set = true;
+ 		}
+ 		if ( !isnamewrapnum_set && (*it)->getAttribute( NameWrapNum_str)->getStatus() == BON::AS_Here)
+ 		{
+ 			m_iAttrNameWrapNum	= (*it)->getAttribute( NameWrapNum_str)->getIntegerValue();
+ 			isnamewrapnum_set = true;
+ 		}
+ 
+ 
+ 		if ( !icon_set && (*it)->getAttribute( Icon_str)->getStatus() == BON::AS_Here)
+ 		{
+ 			m_sAttrIcon = (*it)->getAttribute( Icon_str)->getStringValue();
+ 			icon_set = true;
+ 		}
+ 		if ( !porticon_set && (*it)->getAttribute( PortIcon_str)->getStatus() == BON::AS_Here)
+ 		{
+ 			m_sAttrPortIcon = (*it)->getAttribute( PortIcon_str)->getStringValue();
+ 			porticon_set = true;
+ 		}
+ 		if( !subtypeicon_set && (*it)->getAttribute( SubTypeIcon_str)->getStatus() == BON::AS_Here)
+ 		{
+ 			m_sAttrSubTypeIcon = (*it)->getAttribute( SubTypeIcon_str)->getStringValue();
+ 			subtypeicon_set = true;
+ 		}
+ 		if ( !instanceicon_set && (*it)->getAttribute( InstanceIcon_str)->getStatus() == BON::AS_Here)
+ 		{
+ 			m_sAttrInstanceIcon = (*it)->getAttribute( InstanceIcon_str)->getStringValue();
+ 			instanceicon_set = true;
+ 		}
+ 		if ( !decorator_set && (*it)->getAttribute( Decorator_str)->getStatus() == BON::AS_Here)
+ 		{
+ 			m_sAttrDecorator = (*it)->getAttribute( Decorator_str)->getStringValue();
+ 			decorator_set = true;
+ 		}
+ #endif
+ 	}
+ 	
+ 	if( isabs_set) m_isAbstract = isabs;
+ 
+ }
+ 
+ 
+ /*virtual*/ std::string FCO::getDispName() const
+ {
+ 	return m_sAttrDispName;
+ }
+ 
  
  bool FCO::isAbstract() const
***************
*** 448,454 ****
  	}
  
! 	if ( this->m_ptr)
  	{
! 		std::string icon = m_ptr->getAttribute("Icon")->getStringValue();
  
  		if( !icon.empty())
--- 676,682 ----
  	}
  
! 	//if ( this->m_ptr)
  	{
! 		std::string &icon = m_sAttrIcon;//m_ptr->getAttribute( Icon_str)->getStringValue();
  
  		if( !icon.empty())
***************
*** 470,476 ****
  	}
  
! 	if ( this->m_ptr)
  	{
! 		std::string icon = m_ptr->getAttribute("PortIcon")->getStringValue();
  
  		if( !icon.empty())
--- 698,704 ----
  	}
  
! 	//if ( this->m_ptr)
  	{
! 		std::string &icon = m_sAttrPortIcon;//m_ptr->getAttribute( PortIcon_str)->getStringValue();
  
  		if( !icon.empty())
***************
*** 492,498 ****
  	}
  
! 	if ( this->m_ptr)
  	{
! 		std::string icon = m_ptr->getAttribute("Decorator")->getStringValue();
  
  		if( !icon.empty())
--- 720,726 ----
  	}
  
! 	//if ( this->m_ptr)
  	{
! 		std::string &icon = m_sAttrDecorator;//m_ptr->getAttribute( Decorator_str)->getStringValue();
  
  		if( !icon.empty())
***************
*** 515,521 ****
  	}
  
! 	if ( this->m_ptr)
  	{
! 		bool icon = m_ptr->getAttribute("IsHotspotEnabled")->getBooleanValue();
  
  		if( !icon)
--- 743,749 ----
  	}
  
! 	//if ( this->m_ptr)
  	{
! 		bool &icon = m_bAttrIsHotspotEnabled;//m_ptr->getAttribute( IsHotspotEnabled_str)->getBooleanValue();
  
  		if( !icon)
***************
*** 537,543 ****
  	}
  
! 	if ( this->m_ptr)
  	{
! 		bool icon = m_ptr->getAttribute("IsTypeShown")->getBooleanValue();
  
  		if( icon)
--- 765,771 ----
  	}
  
! 	//if ( this->m_ptr)
  	{
! 		bool &icon = m_bAttrIsTypeShown;//m_ptr->getAttribute( IsTypeShown_str)->getBooleanValue();
  
  		if( icon)
***************
*** 558,564 ****
  	}
  	
! 	if ( this->m_ptr)
  	{
! 		std::string prefs_1 = m_ptr->getAttribute("GeneralPreferences")->getStringValue();
  
  		if (prefs_1.empty()) return mmm;
--- 786,792 ----
  	}
  	
! 	//if ( this->m_ptr)
  	{
! 		std::string &prefs_1 = m_sAttrGenPref;//m_ptr->getAttribute( GeneralPreferences_str)->getStringValue();
  
  		if (prefs_1.empty()) return mmm;
***************
*** 621,634 ****
  {
  	std::string mmm;
! 	if ( this->m_ptr)
  	{
! 		int name_pos = m_ptr->getAttribute("NamePosition")->getIntegerValue();
! 
! 		name_pos = min(8,max(0,name_pos));
  		char p[2];
  		sprintf(p, "%d", name_pos);
  		mmm = std::string( p);
  	}
! 	else mmm = "NullPtrError";
  	return indStr() + "<regnode name = \"namePosition\" value =\"" + mmm +"\">" + "</regnode>\n";
  }
--- 849,860 ----
  {
  	std::string mmm;
! 	//if ( this->m_ptr)
  	{
! 		int name_pos = min(8,max(0,m_iAttrNamePosition));//m_ptr->getAttribute( NamePosition_str)->getIntegerValue();
  		char p[2];
  		sprintf(p, "%d", name_pos);
  		mmm = std::string( p);
  	}
! 	//else mmm = "NullPtrError";
  	return indStr() + "<regnode name = \"namePosition\" value =\"" + mmm +"\">" + "</regnode>\n";
  }
***************
*** 646,652 ****
  	}
  
! 	if ( this->m_ptr)
  	{
! 		std::string icon = m_ptr->getAttribute("SubTypeIcon")->getStringValue();
  
  		if( !icon.empty())
--- 872,878 ----
  	}
  
! 	//if ( this->m_ptr)
  	{
! 		const std::string &icon = m_sAttrSubTypeIcon;//m_ptr->getAttribute( SubTypeIcon_str)->getStringValue();
  
  		if( !icon.empty())
***************
*** 668,674 ****
  	}
  
! 	if ( this->m_ptr)
  	{
! 		std::string icon = m_ptr->getAttribute("InstanceIcon")->getStringValue();
  
  		if( !icon.empty())
--- 894,900 ----
  	}
  
! 	//if ( this->m_ptr)
  	{
! 		const std::string &icon = m_sAttrInstanceIcon;//m_ptr->getAttribute( InstanceIcon_str)->getStringValue();
  
  		if( !icon.empty())
***************
*** 690,697 ****
  	}
  
! 	if ( this->m_ptr)
  	{
! 		int icon = m_ptr->getAttribute("NameWrapNum")->getIntegerValue();
! 		std::string icon_str = m_ptr->getAttribute("NameWrapNum")->getStringValue();
  		if( icon != 0)
  			mmm += indStr() + "<regnode name = \"nameWrap\" value =\"" + icon_str + "\"></regnode>\n";
--- 916,925 ----
  	}
  
! 	//if ( this->m_ptr)
  	{
! 		const int &icon = m_iAttrNameWrapNum;//m_ptr->getAttribute( NameWrapNum_str)->getIntegerValue();
! 		char p[64];
! 		sprintf(p, "%d", icon);
! 		std::string icon_str( (const char *) p);// = m_ptr->getAttribute( NameWrapNum_str)->getStringValue();
  		if( icon != 0)
  			mmm += indStr() + "<regnode name = \"nameWrap\" value =\"" + icon_str + "\"></regnode>\n";
***************
*** 712,718 ****
  	}
  
! 	if ( this->m_ptr)
  	{
! 		bool icon = m_ptr->getAttribute("IsNameEnabled")->getBooleanValue();
  
  		if( !icon)
--- 940,946 ----
  	}
  
! 	//if ( this->m_ptr)
  	{
! 		const bool &icon = m_bAttrIsNameEnabled;//m_ptr->getAttribute( IsNameEnabled_str)->getBooleanValue();
  
  		if( !icon)

Index: FCO.h
===================================================================
RCS file: /var/lib/gme/GMESRC/Paradigms/MetaGME/MetaInterpreter2004/Rep/FCO.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** FCO.h	10 Mar 2004 02:36:29 -0000	1.3
--- FCO.h	16 Jul 2004 22:39:07 -0000	1.4
***************
*** 16,19 ****
--- 16,33 ----
  class FCO : public Any
  {
+ public: // constant strings
+ 	static const std::string IsAbstract_str;//"IsAbstract"
+ 	static const std::string Icon_str;//"Icon"
+ 	static const std::string PortIcon_str;//"PortIcon"
+ 	static const std::string Decorator_str;//"Decorator"
+ 	static const std::string IsHotspotEnabled_str;//"IsHotspotEnabled"
+ 	static const std::string IsTypeShown_str;//"IsTypeShown"
+ 	static const std::string GeneralPreferences_str;//"GeneralPreferences"
+ 	static const std::string NamePosition_str;//"NamePosition"
+ 	static const std::string SubTypeIcon_str;//"SubTypeIcon"
+ 	static const std::string InstanceIcon_str;//"InstanceIcon"
+ 	static const std::string NameWrapNum_str;//"NameWrapNum"
+ 	static const std::string IsNameEnabled_str;//"IsNameEnabled"
+ 
  public: // typedefs
  	typedef std::vector<ModelRep *> ModelRepPtrList;
***************
*** 42,45 ****
--- 56,62 ----
  	virtual KIND_TYPE getMyKind() const = 0;
  
+ 	/*virtual*/ void initAttributes();
+ 	/*virtual*/ std::string getDispName() const;
+ 
  	// abstract
  	bool isAbstract() const;
***************
*** 131,134 ****
--- 148,166 ----
  	// the IsAbstract attribute value
  	bool m_isAbstract;
+ 
+ 	bool m_bAttrIsHotspotEnabled;
+ 	bool m_bAttrIsTypeShown;
+ 	bool m_bAttrIsNameEnabled;
+ 
+ 	int m_iAttrNamePosition;
+ 	int m_iAttrNameWrapNum;
+ 
+ 	std::string m_sAttrDispName;
+ 	std::string m_sAttrGenPref;
+ 	std::string m_sAttrIcon;
+ 	std::string m_sAttrPortIcon;
+ 	std::string m_sAttrSubTypeIcon;
+ 	std::string m_sAttrInstanceIcon;
+ 	std::string m_sAttrDecorator;
  
  	// store the list of references which refer to this

Index: FolderRep.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/Paradigms/MetaGME/MetaInterpreter2004/Rep/FolderRep.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** FolderRep.cpp	26 Apr 2004 17:13:38 -0000	1.6
--- FolderRep.cpp	16 Jul 2004 22:39:07 -0000	1.7
***************
*** 53,57 ****
  	else
  	{
! 		return m_ptr->getAttribute("DisplayedName")->getStringValue();//<!> modified from m_respPointer
  	}
  }
--- 53,57 ----
  	else
  	{
! 		return m_ptr->getAttribute( Any::DisplayedName_str)->getStringValue();//<!> modified from m_respPointer
  	}
  }
***************
*** 171,176 ****
  	
  	++ind;
  	// properties
! 	mmm += dumpDispName();
  	mmm += dumpConstraints();
  	--ind;
--- 171,180 ----
  	
  	++ind;
+ 
  	// properties
! 	std::string f_disp = getDispName();
! 	if (!f_disp.empty() && f_disp != getName()) // if not empty and not the same
! 		mmm += dumpDispName();
! 
  	mmm += dumpConstraints();
  	--ind;

Index: Sheet.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/Paradigms/MetaGME/MetaInterpreter2004/Rep/Sheet.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** Sheet.cpp	11 Mar 2004 15:39:38 -0000	1.5
--- Sheet.cpp	16 Jul 2004 22:39:07 -0000	1.6
***************
*** 10,15 ****
  
  Sheet * Sheet::m_theOnlyInstance = 0;
! BON::Folder Sheet::m_BON_Project_Root_Folder = BON::Folder();
! 
  Sheet::Sheet()
  : m_projName(""),
--- 10,14 ----
  
  Sheet * Sheet::m_theOnlyInstance = 0;
! /*static*/ BON::Folder Sheet::m_BON_Project_Root_Folder = BON::Folder(); // important: clear its content upon destruction
  Sheet::Sheet()
  : m_projName(""),
***************
*** 151,154 ****
--- 150,154 ----
  		&& doInheritance( FCO::IMPLEMENTATION))
  	{
+ 		init();
  		initRoleNames();
  		ret_val = true;
***************
*** 160,163 ****
--- 160,215 ----
  }
  
+ void Sheet::init()
+ {
+ 	{FcoRep_Iterator it0( m_fcoRepList.begin());
+ 	for( ; it0 != m_fcoRepList.end(); ++it0 )
+ 	{
+ 		(*it0)->initAttributes();
+ 		if ( isInRootFolder( *it0)) m_rootFolder.addRootElement( *it0);
+ 	}}
+ 
+ 	{AtomRep_Iterator it1 = m_atomList.begin();
+ 	for( ; it1 != m_atomList.end(); ++it1 )
+ 	{
+ 		(*it1)->initAttributes();
+ 		if ( isInRootFolder( *it1)) m_rootFolder.addRootElement( *it1);
+ 	}}
+ 
+ 	{ModelRep_Iterator it2 = m_modelList.begin();
+ 	for( ; it2 != m_modelList.end(); ++it2 )
+ 	{
+ 		(*it2)->initAttributes();
+ 		if ( isInRootFolder( *it2)) m_rootFolder.addRootElement( *it2);
+ 	}}
+ 
+ 	{ConnectionRep_Iterator it3 = m_connList.begin();
+ 	for( ; it3 != m_connList.end(); ++it3 )
+ 	{
+ 		(*it3)->initAttributes();
+ 		if ( isInRootFolder( *it3)) m_rootFolder.addRootElement( *it3);
+ 	}}
+ 
+ 	{SetRep_Iterator it4 = m_setList.begin();
+ 	for( ; it4 != m_setList.end(); ++it4 )
+ 	{
+ 		(*it4)->initAttributes();
+ 		if ( isInRootFolder( *it4)) m_rootFolder.addRootElement( *it4);
+ 	}}
+ 
+ 	{ReferenceRep_Iterator it5 = m_refList.begin();
+ 	for( ; it5 != m_refList.end(); ++it5 )
+ 	{
+ 		(*it5)->initAttributes();
+ 		if ( isInRootFolder( *it5)) m_rootFolder.addRootElement( *it5);
+ 	}}
+ 	
+ 	{FolderRep_Iterator it6 = m_folderList.begin();
+ 	for( ; it6 != m_folderList.end(); ++it6 )
+ 	{
+ 		(*it6)->initAttributes();
+ 		if ( isInRootFolder( *it6)) m_rootFolder.addSubFolder( *it6);
+ 	}}
+ }
+ 
  
  void Sheet::initRoleNames()
***************
*** 176,181 ****
  	FcoRep * ll = new FcoRep( ptr);
  	addFcoRep( ll);
- 	if ( isInRootFolder( ll)) 
- 		m_rootFolder.addRootElement( ll);
  	return ll;
  }
--- 228,231 ----
***************
*** 186,191 ****
  	AtomRep * ll = new AtomRep( ptr);
  	addAtomRep( ll);
- 	if ( isInRootFolder( ll)) 
- 		m_rootFolder.addRootElement( ll);
  	return ll;
  }
--- 236,239 ----
***************
*** 196,201 ****
  	ModelRep * ll = new ModelRep( ptr);
  	addModelRep( ll);
- 	if ( isInRootFolder( ll)) 
- 		m_rootFolder.addRootElement( ll);
  	return ll;
  }
--- 244,247 ----
***************
*** 206,211 ****
  	ConnectionRep * ll = new ConnectionRep( ptr);
  	addConnectionRep( ll);
- 	if ( isInRootFolder( ll)) 
- 		m_rootFolder.addRootElement( ll);
  	return ll;
  }
--- 252,255 ----
***************
*** 216,221 ****
  	SetRep * ll = new SetRep( ptr);
  	addSetRep( ll);
- 	if ( isInRootFolder( ll)) 
- 		m_rootFolder.addRootElement( ll);
  	return ll;
  }
--- 260,263 ----
***************
*** 226,231 ****
  	ReferenceRep * ll = new ReferenceRep( ptr);
  	addReferenceRep( ll);
- 	if ( isInRootFolder( ll))
- 		m_rootFolder.addRootElement( ll);
  	return ll;
  }
--- 268,271 ----
***************
*** 236,241 ****
  	FolderRep * ll = new FolderRep( ptr, resp_ptr);
  	addFolderRep( ll);
- 	if ( isInRootFolder( ll)) 
- 		m_rootFolder.addSubFolder( ll);
  	return ll;
  }
--- 276,279 ----
***************
*** 456,463 ****
  bool Sheet::isInRootFolder( Any * elem)
  {
! 	bool is_it;
! 	elem->getAttribute("InRootFolder", is_it);
! 
! 	return is_it;
  }
  
--- 494,498 ----
  bool Sheet::isInRootFolder( Any * elem)
  {
! 	return elem->isInRootFolder();
  }
  

Index: Sheet.h
===================================================================
RCS file: /var/lib/gme/GMESRC/Paradigms/MetaGME/MetaInterpreter2004/Rep/Sheet.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** Sheet.h	2 Mar 2004 19:21:12 -0000	1.3
--- Sheet.h	16 Jul 2004 22:39:07 -0000	1.4
***************
*** 57,61 ****
  	Any* findAny( const BON::FCO& ptr);
  
- 	//static void setProjectRootFolder( BON::Folder& p);
  	static BON::Folder m_BON_Project_Root_Folder;
  
--- 57,60 ----
***************
*** 112,115 ****
--- 111,115 ----
  
  private:
+ 	void init();
  	bool isInRootFolder( Any * elem);
  	void initRoleNames();



More information about the GME-commit mailing list