⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ssdr2line.c

📁 这个工具集提供以下结构化分析和UML分析中所用的图形化绘图工具:ER-diagrams, data and event flow diagrams and state-transition diagr
💻 C
字号:
//------------------------------------------------------------------------------//// This file is part of Toolkit for Conceptual Modeling (TCM).// (c) copyright 1999, Vrije Universiteit Amsterdam and University of Twente.// Author: Henk van de Zandschulp (henkz@cs.utwente.nl).// Author: Frank Dehne (frank@cs.vu.nl).//// TCM is free software; you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation; either version 2 of the License, or// (at your option) any later version.//// TCM is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with TCM; if not, write to the Free Software Foundation, Inc.,// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.//-----------------------------------------------------------------------------#include "inputfile.h"#include "outputfile.h"#include "grafport.h"#include "ssdobjectlinkedge.h"#include "ssdr2line.h"#include "lstring.h"#include <math.h>#include "erviewer.h"#include "updatereaddirectioncmd.h"SSDR2Line::SSDR2Line(ShapeView *v, Grafport *g, GShape *n1, GShape *n2, 		List<Point *> *aline, bool Curved): 			T2Line(v, g, n1, n2, aline, Curved) {	InitTextShapes();	CalcPositionTextShapes();}SSDR2Line::SSDR2Line(ShapeView *v, Grafport *g, GShape *n1, GShape *n2, 		bool Curved): T2Line(v, g, n1, n2, Curved) {	InitTextShapes();}void SSDR2Line::InitTextShapes() {	// names are always underlined.	GetName()->SetUnderlined(True);	GetTextShape1()->SetDescription("Role Name");	GetTextShape2()->SetDescription("Role Name");	SetT1Position(TL);	SetT2Position(TR);}bool SSDR2Line::SetAssocSubject(AssocList *al) {	if (!T2Line::SetAssocSubject(al))		return False;	if (check(GetSubject() && 	    GetSubject()->GetClassType()==Code::SSD_OBJECT_LINK_EDGE)) 		return True;	SetSubject(0);	return False;}void SSDR2Line::SetTextShape() {	T2Line::SetTextShape();	if (check(GetSubject() && 	    GetSubject()->GetClassType()==Code::SSD_OBJECT_LINK_EDGE)) {		GetTextShape1()->SetString(((SSDObjectLinkEdge *)GetSubject())->				GetRoleName1());		GetTextShape2()->SetString(((SSDObjectLinkEdge *)GetSubject())->				GetRoleName2());	}}TextShape *SSDR2Line::ChooseTextShape(int x, int y) {	Rectangle rect2(GetName()->GetRightMost(), 			GetName()->GetTopMost(),			16,			GetName()->GetHeight());	if (rect2.Inside(x, y)) {		if (GetName()->GetStringWidth() > 0) {	// toggle OK			int newDir = ((int) GetNameDirection() + 1) % 3;			ERViewer *erviewer = dynamic_cast<ERViewer *>(GetViewer());			if (erviewer)				erviewer->UpdateReadDirection((ReadDirection::Type) newDir);		}	//toggle OK		return GetName();	}	return T2Line::ChooseTextShape(x, y);}TextShape *SSDR2Line::HitTextShape(int x, int y) {	Rectangle rect2(GetName()->GetRightMost(), 			GetName()->GetTopMost(),			16,			GetName()->GetHeight());	if (GetNameDirection() != ReadDirection::NONE && rect2.Inside(x, y)) {		return GetName();	}	return T2Line::HitTextShape(x, y);}void SSDR2Line::DrawShape() {	T2Line::DrawShape();	DrawDirection();}void SSDR2Line::WriteMembers(OutputFile *ofile) {	T2Line::WriteMembers(ofile);	string s;	ReadDirection::Type2String(GetNameDirection(), &s);	(*ofile) << "\t{ NameDirection " << s << " }\n";}bool SSDR2Line::ReadMembers(InputFile *ifile, double format) {	if (!T2Line::ReadMembers(ifile, format))		return False;        if (format >= 1.31) {                string val;		if (!ifile->ReadAttribute("NameDirection", &val))			return False;		SetNameDirection(ReadDirection::String2Type(&val));	}        else                 SetNameDirection(ReadDirection::NONE);	return True;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -