## class Diagram : public Document

> (abstract) diagram class.

## Inheritance:

### Public Fields

  static Sequence | sequence

### Public Methods

  | Diagram (Config *, DiagramWindow *, DiagramViewer *, Graph *)
  virtual | ~Diagram ()
  void | Initialize ()
  Graph* | GetGraph () const
  AssocList* | GetAssocList () const
  virtual Node* | CreateNode () Create a new node subject. Depends on current node type.
  virtual Edge* | CreateEdge (Subject *n1, Subject *n2) Create edge, checks if connection is allowed.
  virtual NodeShape* | CreateNodeShape (Node *node, int x, int y) Create a node shape at (x,y), with default size and node as subject.
  virtual Line* | CreateLine (Edge *edge, GShape *fromShape, GShape *toShape, List<Point *> *line) Create a line of lineType from fromShape to toShape via points.
  virtual void | UpdateNodeType (int num) set/reset current node shape type to/from num.
  virtual void | UpdateEdgeType (int num) set/reset current edge shape type to/from num.
  void | SetCurve (bool set) set/reset curved edge shapes.
  bool | IsCurve () const
  bool | CheckConnection (Subject *n1, Subject *n2) Check if connection between those two nodes is allowed.
  virtual void | AddSubject (Subject *s) Add node/edge to graph data structure.
  void | AddSubjects (List<Subject *> *s) Add nodes and edges to graph data structure.
  virtual void | RemoveSubject (Subject *s) Remove node/edge from graph data structure.
  void | RemoveSubjects (List<Subject *> *s) Remove nodes and edges from graph data structure.
  void | CompleteSubjects (List<Subject *> *subjects) add edges to subjects which connect the subjects in subjects.
  void | CompleteEdges (List<Subject *> *subjects) add subjects to subjects which are connected by edges in subjects.
  void | CompleteSubject (List<Subject *> *edges, Subject *subject) add to edges all edges of which subject is part.
  void | RemoveAll () Remove all nodes and edges.
  void | AnnotateSubject (Subject *s) Annotate subject via pop-up dialog.
  void | SetSubjectAnnotation (string *s) Annotate annotationSubject
  bool | RedirectEdge (Line *line, bool first, const Point *pt) Redirect line from first or last subject that covers point pt.
  void | Move (MoveType) move diagram in main window.
  void | SelectSubject (Subject *s) select all shapes of subject in current view.
  void | SelectSubjects (List<Subject *> *s) select all shapes of subjects in list in current view.
  virtual bool | SetText (TextShape *t, const string *s) Update the text of text shape t and the corresponding subject.
  void | FindAll (const string *s, bool send, bool substring, bool nameOnly)
  void | FindNext (const string *s, bool send, bool substring, bool nameOnly)
  void | ReplaceAll (const string *s1, const string *s2, bool send, bool substring, bool nameOnly)
  void | ReplaceNext (const string *s1, const string *s2, bool send, bool substring, bool nameOnly)
  virtual bool | HasIndexNode (int)
  virtual bool | HasIndexShape (int)
  void | Reindex ()
  void | SetNextIndex (Node *n) Give Node next index nr. and update shapes.

### Protected Methods

  DiagramViewer* | GetDiagramViewer () const
  int | GetNodeType () const
  void | SetNodeType (int n)
  int | GetEdgeType () const
  void | SetEdgeType (int n)
  int | GetNodeShapeType () const
  void | SetNodeShapeType (int n)
  void | SetLineType (int n)
  int | GetLineType () const
  LineStyle::Type | GetNodeLineStyle ()
  LineStyle::Type | GetEdgeLineStyle ()
  void | SetNodeLineStyle (LineStyle::Type n)
  void | SetEdgeLineStyle (LineStyle::Type e)
  LineEnd::Type | GetLineEnd1 ()
  LineEnd::Type | GetLineEnd2 ()
  void | SetLineEnd1 (LineEnd::Type t)
  void | SetLineEnd2 (LineEnd::Type t)
  bool | SetSubjectName (Subject *subject, const string *s) Sets name of subject to s. Checks if name is allowed.
  bool | SetIndex (Node *n, const string *index) Check and set index of a node.
  virtual void | PlaceShapes ()
  void | LoadEntries ()
  void | SaveEntries ()
  virtual Thing* | CreateThing (int classNr) Creates a new shape/subject depending on classNr.
  void | UpdateNameStrings (Subject *subject) update all name strings of shapes representing subject.

### Inherited from Document:

### Public Classes

enum MoveType

### Public Methods

void New()
virtual void Load()
virtual void Append()
void Save()
void SaveAs()
void SaveSelectionAs()
void Quit()
void ShowDocInfo()
void ShowSource()
void SaveSource()
virtual void ShowSummary()
virtual void CheckDocument()
virtual void ModelCheckDocument()
void Annotate()
void LoadSave(const string *file)
virtual void DoLoad(const string *file)
void DoSaveAs(const string *file)
void DoSaveSelectionAs(const string *file)
double GetLoadFormat() const
void NewFile(const string *file)
bool NewName(const string *newname)
void SetName(const string *newname)
const string* GetName() const
const string* GetDocType() const
const string* GetSuffix() const
const string* GetToolName() const
const string* GetAuthor() const
const string* GetCreationTime() const
bool IsDefault()
void NewDir(const string *newdir)
void SetDir(const string *newdir)
const string* GetDir() const
void SetFSDir()
void IncChanges()
void DecChanges()
int GetChanges() const
virtual void SetInlineEdit(bool)
bool IsModified() const
void SetModified(bool set)
bool IsLoaded() const
bool MayWrite(const string *path)
void SetStatus(const char *msg)
void SetStatus(const string *msg)
void SetAnnotation(const string *s)
virtual void Find()
virtual void Replace()
void UpdateWindow()
EditWindow* GetMainWindow() const
Config* GetConfig() const
Viewer* GetViewer() const
InputFile* GetInputFile() const
OutputFile* GetOutputFile() const
TextEditDialog* GetSourceEditDialog() const
TextEditDialog* GetDocAnnotationDialog() const
TextEditDialog* GetEltAnnotationDialog() const
FileSelectionDialog* GetFileSelectionDialog() const
FindDialog* GetFindDialog() const
ReplaceDialog* GetReplaceDialog() const

### Protected Fields

string chkbuf

### Protected Methods

bool IsAppending() const
bool IsSaveSelection() const
virtual void UpdateDirectory(const string *s)
void ShowDialog(MessageDialog::DialogType, const char *title, const char *text)
void ShowDialog(MessageDialog::DialogType, const char *title, const string *text)
void ReportCheck(int errors, const string *msg)
bool Save(const string *file)

## Documentation

> (abstract) diagram class.

`Diagram(Config *, DiagramWindow *, DiagramViewer *, Graph *)`

`virtual ~Diagram()`

`void Initialize()`

`Graph* GetGraph() const`

`AssocList* GetAssocList() const`

`virtual Node* CreateNode()`
  Create a new node subject. Depends on current node type.

`virtual Edge* CreateEdge(Subject *n1, Subject *n2)`
  Create edge, checks if connection is allowed.

`virtual NodeShape* CreateNodeShape(Node *node, int x, int y)`
  Create a node shape at (x,y), with default size and node as subject.

`virtual Line* CreateLine(Edge *edge, GShape *fromShape, GShape *toShape, List<Point *> *line)`
  Create a line of lineType from fromShape to toShape via points.

`virtual void UpdateNodeType(int num)`
  set/reset current node shape type to/from num.

`virtual void UpdateEdgeType(int num)`
  set/reset current edge shape type to/from num.

`void SetCurve(bool set)`
  set/reset curved edge shapes.

`bool IsCurve() const`

`bool CheckConnection(Subject *n1, Subject *n2)`
  Check if connection between those two nodes is allowed.

`virtual void AddSubject(Subject *s)`
  Add node/edge to graph data structure.

`void AddSubjects(List<Subject *> *s)`
  Add nodes and edges to graph data structure.

`virtual void RemoveSubject(Subject *s)`
  Remove node/edge from graph data structure.

`void RemoveSubjects(List<Subject *> *s)`
  Remove nodes and edges from graph data structure.

`void CompleteSubjects(List<Subject *> *subjects)`
  add edges to subjects which connect the subjects in subjects.

`void CompleteEdges(List<Subject *> *subjects)`
  add subjects to subjects which are connected by edges in subjects.

`void CompleteSubject(List<Subject *> *edges, Subject *subject)`
  add to edges all edges of which subject is part.

`void RemoveAll()`
  Remove all nodes and edges.

`void AnnotateSubject(Subject *s)`
  Annotate subject via pop-up dialog.

`void SetSubjectAnnotation(string *s)`
  Annotate annotationSubject

`bool RedirectEdge(Line *line, bool first, const Point *pt)`
  Redirect line from first or last subject that covers point pt.

`void Move(MoveType)`
  move diagram in main window.

`void SelectSubject(Subject *s)`
  select all shapes of subject in current view.

`void SelectSubjects(List<Subject *> *s)`
  select all shapes of subjects in list in current view.

`virtual bool SetText(TextShape *t, const string *s)`
  Update the text of text shape t and the corresponding subject.

`void FindAll(const string *s, bool send, bool substring, bool nameOnly)`

`void FindNext(const string *s, bool send, bool substring, bool nameOnly)`

`void ReplaceAll(const string *s1, const string *s2, bool send, bool substring, bool nameOnly)`

`void ReplaceNext(const string *s1, const string *s2, bool send, bool substring, bool nameOnly)`

`virtual bool HasIndexNode(int)`

`virtual bool HasIndexShape(int)`

`void Reindex()`

`void SetNextIndex(Node *n)`
  Give Node next index nr. and update shapes.

`static Sequence sequence`

`DiagramViewer* GetDiagramViewer() const`

`int GetNodeType() const`

`void SetNodeType(int n)`

`int GetEdgeType() const`

`void SetEdgeType(int n)`

`int GetNodeShapeType() const`

`void SetNodeShapeType(int n)`

`void SetLineType(int n)`

`int GetLineType() const`

`LineStyle::Type GetNodeLineStyle()`

`LineStyle::Type GetEdgeLineStyle()`

`void SetNodeLineStyle(LineStyle::Type n)`

`void SetEdgeLineStyle(LineStyle::Type e)`

`LineEnd::Type GetLineEnd1()`

`LineEnd::Type GetLineEnd2()`

`void SetLineEnd1(LineEnd::Type t)`

`void SetLineEnd2(LineEnd::Type t)`

`bool SetSubjectName(Subject *subject, const string *s)`
  Sets name of subject to s. Checks if name is allowed.

`bool SetIndex(Node *n, const string *index)`
  Check and set index of a node.

`virtual void PlaceShapes()`

`void LoadEntries()`

`void SaveEntries()`

`virtual Thing* CreateThing(int classNr)`
  Creates a new shape/subject depending on classNr.

`void UpdateNameStrings(Subject *subject)`
  update all name strings of shapes representing subject.

Direct child classes:
  TRDiagram
  STDiagram
  SNDiagram
  RPDiagram
  PSDiagram
  GDDiagram
  ERDiagram
  DFDiagram
  CPDiagram
  ATDiagram

alphabetic index hierarchy of classes

this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de