Salome HOME
mergefrom branch BR_V511_PR tag mergeto_trunk_03feb09
[modules/yacs.git] / src / genericgui / EditionContainer.cxx
1 //  Copyright (C) 2006-2008  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.
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 #include "EditionContainer.hxx"
20
21 //#define _DEVDEBUG_
22 #include "YacsTrace.hxx"
23
24 #include "FormContainer.hxx"
25 #include "QtGuiContext.hxx"
26 #include "Proc.hxx"
27
28 using namespace std;
29
30 using namespace YACS;
31 using namespace YACS::HMI;
32 using namespace YACS::ENGINE;
33
34 EditionContainer::EditionContainer(Subject* subject,
35                                    QWidget* parent,
36                                    const char* name)
37   : ItemEdition(subject, parent, name)
38 {
39   _wContainer = new FormContainer(this);
40   _wid->gridLayout1->addWidget(_wContainer);
41   connect(_wContainer->cb_host, SIGNAL(mousePressed()),
42           this, SLOT(fillContainerPanel()));
43   connect(_wContainer->tb_container, SIGNAL(toggled(bool)),
44           this, SLOT(fillContainerPanel())); // --- to update display of current selection
45   _wContainer->tb_container->toggle();
46 }
47
48 EditionContainer::~EditionContainer()
49 {
50 }
51
52 void EditionContainer::update(GuiEvent event, int type, Subject* son)
53 {
54   DEBTRACE("EditionContainer::update");
55   ItemEdition::update(event, type, son);
56   switch (event)
57     {
58     case RENAME:
59       _wContainer->le_name->setText((son->getName()).c_str());
60       fillContainerPanel();
61       break;
62     default:
63       ;
64     }
65 }
66
67 void EditionContainer::fillContainerPanel()
68 {
69   DEBTRACE("EditionContainer::fillContainerPanel");
70
71   _wContainer->le_name->setText(_subject->getName().c_str());
72   _wContainer->le_instance->setReadOnly(true);
73
74   _wContainer->cb_host->clear();
75   _wContainer->cb_host->addItem(""); // --- when no host selected
76
77   list<string> machines = QtGuiContext::getQtCurrent()->getGMain()->getMachineList();
78   list<string>::iterator itm = machines.begin();
79   for( ; itm != machines.end(); ++itm)
80     {
81       _wContainer->cb_host->addItem(QString((*itm).c_str()));
82     }
83 }