Version: 8.3.0
VisitorSaveGuiSchema.cxx
Go to the documentation of this file.
1 // Copyright (C) 2006-2016 CEA/DEN, EDF R&D
2 //
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19 
20 #include "VisitorSaveGuiSchema.hxx"
21 #include "Proc.hxx"
22 #include "QtGuiContext.hxx"
23 #include "guiObservers.hxx"
24 #include "SceneItem.hxx"
25 #include "SceneNodeItem.hxx"
26 
27 #include <cassert>
28 
29 //#define _DEVDEBUG_
30 #include "YacsTrace.hxx"
31 
32 using namespace std;
33 using namespace YACS::HMI;
34 using namespace YACS::ENGINE;
35 
36 VisitorSaveGuiSchema::VisitorSaveGuiSchema(YACS::ENGINE::Proc* proc)
37  : VisitorSaveSalomeSchema(proc), _proc(proc)
38 {
39  DEBTRACE("VisitorSaveGuiSchema::VisitorSaveGuiSchema");
40 }
41 
43 {
44  DEBTRACE("VisitorSaveGuiSchema::~VisitorSaveGuiSchema");
45 }
46 
48 {
49  DEBTRACE("VisitorSaveGuiSchema::visitProc");
50  VisitorSaveSalomeSchema::visitProc(_proc);
52 }
53 
55 {
56  DEBTRACE("VisitorSaveGuiSchema::writePresentation");
57  set<Node*> nodeSet = getAllNodes(_proc);
58 
59  for (set<Node*>::iterator iter = nodeSet.begin(); iter != nodeSet.end(); ++iter)
60  {
61  Node* node = *iter;
64  YASSERT(item);
65  SceneNodeItem* inode = dynamic_cast<SceneNodeItem*>(item);
66  YASSERT(inode);
67  writeItem(_proc->getChildName(node), inode);
68  }
69 
72  YASSERT(item);
73  SceneNodeItem* inode = dynamic_cast<SceneNodeItem*>(item);
74  YASSERT(inode);
75  writeItem("__ROOT__", inode);
76 }
77 
78  void VisitorSaveGuiSchema::writeItem(std::string name, SceneNodeItem* item)
79 {
80  int depth = 1;
81  _out << indent(depth) << "<presentation";
82  _out << " name=\"" << name << "\"";
83  _out << " x=\"" << item->x() << "\"";
84  _out << " y=\"" << item->y() << "\"";
85  _out << " width=\"" << item->getWidth() << "\"";
86  _out << " height=\"" << item->getHeight() << "\"";
87  _out << " expanded=\"" << item->isExpanded() << "\"";
88  _out << " expx=\"" << item->getExpandedX() << "\"";
89  _out << " expy=\"" << item->getExpandedY() << "\"";
90  _out << " expWidth=\"" << item->getExpandedWidth() << "\"";
91  _out << " expHeight=\"" << item->getExpandedHeight() << "\"";
92  _out << " shownState=\"" << item->getShownState() << "\"";
93  _out << "/>" << endl;
94 }