1 #include <IFSelect_ParamEditor.ixx>
2 #include <Interface_Static.hxx>
5 IFSelect_ParamEditor::IFSelect_ParamEditor
6 (const Standard_Integer nbmax, const Standard_CString label)
7 : IFSelect_Editor (nbmax) , thelabel (label)
10 if (thelabel.Length() == 0) thelabel.AssignCat ("Param Editor");
13 void IFSelect_ParamEditor::AddValue
14 (const Handle(Interface_TypedValue)& val, const Standard_CString shortname)
16 SetNbValues (NbValues() + 1);
17 SetValue (NbValues(), val, shortname);
20 void IFSelect_ParamEditor::AddConstantText
21 (const Standard_CString val, const Standard_CString shortname,
22 const Standard_CString longname)
24 Handle(Interface_TypedValue) tv = new Interface_TypedValue
25 (longname[0] == '\0' ? shortname : longname);
26 tv->SetCStringValue (val);
27 SetNbValues (NbValues() + 1);
28 SetValue (NbValues(), tv, shortname, IFSelect_EditRead);
32 TCollection_AsciiString IFSelect_ParamEditor::Label () const
35 Standard_Boolean IFSelect_ParamEditor::Recognize
36 (const Handle(IFSelect_EditForm)& form) const
37 { return Standard_True; } // pas de contrainte
39 Handle(TCollection_HAsciiString) IFSelect_ParamEditor::StringValue
40 (const Handle(IFSelect_EditForm)& form,const Standard_Integer num) const
41 { return TypedValue(num)->HStringValue(); }
44 Standard_Boolean IFSelect_ParamEditor::Load
45 (const Handle(IFSelect_EditForm)& form,
46 const Handle(Standard_Transient)& ent,
47 const Handle(Interface_InterfaceModel)& model) const
49 Standard_Integer i, nb = NbValues();
50 for (i = 1; i <= nb; i ++) form->LoadValue (i,TypedValue(i)->HStringValue());
56 Standard_Boolean IFSelect_ParamEditor::Apply
57 (const Handle(IFSelect_EditForm)& form,
58 const Handle(Standard_Transient)& ent,
59 const Handle(Interface_InterfaceModel)& model) const
61 Standard_Integer i, nb = NbValues();
62 for (i = 1; i <= nb; i ++)
63 if (form->IsModified(i))
64 TypedValue (i)->SetHStringValue (form->EditedValue(i));
69 Handle(IFSelect_ParamEditor) IFSelect_ParamEditor::StaticEditor
70 (const Handle(TColStd_HSequenceOfHAsciiString)& list,
71 const Standard_CString label)
73 Handle(IFSelect_ParamEditor) editor;
74 if (list.IsNull()) return editor;
75 Standard_Integer i,nb = list->Length();
76 // if (nb == 0) return editor;
77 editor = new IFSelect_ParamEditor (nb+10,label);
78 for (i = 1; i <= nb; i ++) {
79 Handle(Interface_Static) val = Interface_Static::Static
80 (list->Value(i)->ToCString());
81 if (!val.IsNull()) editor->AddValue(val);