83 Create(Name, Description, Identifier, bGrid_System);
91 Create(pOwner, Name, Description, Identifier, bGrid_System);
106 void CSG_Parameters::_On_Construction(
void)
118 m_pGrid_System = NULL;
126 m_pOwner = Parameters.m_pOwner;
127 m_pTool = Parameters.m_pTool;
128 m_pManager = Parameters.m_pManager;
130 m_Callback = Parameters.m_Callback;
131 m_bCallback = Parameters.m_bCallback;
138 for(
int i=0; i<Parameters.m_nParameters; i++)
140 _Add(Parameters.m_Parameters[i]);
143 if( Parameters.m_pGrid_System )
148 return( m_nParameters == Parameters.m_nParameters );
171 if(
Create(Name, Description, Identifier, bGrid_System) )
186 m_pGrid_System = NULL;
190 m_References.
Clear();
208 m_pManager = pManager;
226 if( !m_pGrid_System )
254 m_Identifier = Identifier;
264 return( m_Identifier.
Cmp(Identifier) == 0 );
284 m_Description = Description;
294 CSG_String Reference(
"<b>" + Authors +
" (" + Year +
"):</b> " + Title +
". " + Where);
298 Reference +=
CSG_String::Format(
" <a href=\"%s\">%s</a>.", Link, Link_Text && *Link_Text ? Link_Text : Link);
303 m_References += Reference;
328 m_References.
Clear();
338 for(
int i=0; i<m_nParameters; i++)
367 return( _Add(pParameter) );
387 return( _Add_Value(ParentID, ID, Name, Description,
false, Type, Value, Minimum, bMinimum, Maximum, bMaximum) );
392 return( _Add_Value(ParentID, ID, Name, Description,
true, Type, Value, 0.0,
false, 0.0,
false) );
434 return( _Add_Range(ParentID, ID, Name, Description,
false, Range_Min, Range_Max, Minimum, bMinimum, Maximum, bMaximum) );
439 return( _Add_Range(ParentID, ID, Name, Description,
true, Range_Min, Range_Max, 0.0,
false, 0.0,
false) );
460 return( pParameter );
475 return( pParameter );
485 return( pParameter );
491 return( _Add_String(ParentID, ID, Name, Description,
false, String, bLongText, bPassword) );
496 return( _Add_String(ParentID, ID, Name, Description,
true, String, bLongText,
false) );
514 return( pParameter );
524 if( pInit && *pInit )
532 return( pParameter );
544 return( pParameter );
558 return( pParameter );
578 return( pParameter );
592 else if( bSystem_Dependent && m_pGrid_System )
606 return( pParameter );
614 ((
CSG_Parameter_Grid *)pParameter)->Add_Default(Value, Minimum, bMinimum, Maximum, bMaximum);
616 return( pParameter );
628 return( pParameter );
649 return( pParameter );
668 else if( bSystem_Dependent && m_pGrid_System )
682 return( pParameter );
694 return( pParameter );
715 return( pParameter );
750 return( pParameter );
777 return( pParameter );
789 return( pParameter );
799 return( pParameter );
816 return( pParameter );
828 return( pParameter );
840 return( pParameter );
855 return( pParameter );
867 return( pParameter );
877 return( pParameter );
892 return( pParameter );
904 return( pParameter );
914 return( pParameter );
932 return( pParameter );
941 CSG_Parameter * CSG_Parameters::_Add_Value(
const CSG_String &ParentID,
const CSG_String &ID,
const CSG_String &Name,
const CSG_String &Description,
bool bInformation,
TSG_Parameter_Type Type,
double Value,
double Minimum,
bool bMinimum,
double Maximum,
bool bMaximum)
995 return( pParameter );
999 CSG_Parameter * CSG_Parameters::_Add_Range(
const CSG_String &ParentID,
const CSG_String &ID,
const CSG_String &Name,
const CSG_String &Description,
bool bInformation,
double Default_Min,
double Default_Max,
double Minimum,
bool bMinimum,
double Maximum,
bool bMaximum)
1002 if( Default_Min > Default_Max )
1004 double d = Default_Min;
1005 Default_Min = Default_Max;
1022 return( pParameter );
1039 return( pParameter );
1049 #include <wx/debug.h>
1050 #include <wx/string.h>
1057 wxASSERT_MSG(!ID.
is_Empty() , wxString::Format(
"CSG_Parameter::_Add(): Parameter ID is empty!"));
1058 wxASSERT_MSG(!
Get_Parameter(ID), wxString::Format(
"CSG_Parameter::_Add(): Parameter ID \"%s\" is already in use!", ID.
c_str()));
1111 m_Parameters[m_nParameters++] = pParameter;
1115 return( pParameter );
1127 pSource->m_Constraint
1132 pParameter->
Assign(pSource);
1135 return( pParameter );
1146 if( m_Parameters && !ID.
is_Empty() )
1148 for(
int i=0; i<m_nParameters; i++)
1152 return( m_Parameters[i] );
1157 if( ID.
Find(
'.') > 0 )
1193 if( m_Parameters && iParameter >= 0 && iParameter < m_nParameters )
1197 for(m_nParameters--; iParameter<m_nParameters; iParameter++)
1199 m_Parameters[iParameter] = m_Parameters[iParameter + 1];
1213 for(iParameter=0; iParameter<pParent->m_nChildren; iParameter++)
1215 if( pParent->m_Children[iParameter] == pParameter )
1217 pParent->m_nChildren--;
1219 for( ; iParameter<pParent->m_nChildren; iParameter++)
1221 pParent->m_Children[iParameter] = pParent->m_Children[iParameter + 1];
1240 if( m_Parameters && Identifier.
Length() )
1242 for(
int i=0; i<m_nParameters; i++)
1244 if( !m_Parameters[i]->m_Identifier.
Cmp(Identifier) )
1257 if( m_nParameters > 0 )
1259 m_pGrid_System = NULL;
1261 for(
int i=0; i<m_nParameters; i++)
1263 delete(m_Parameters[i]);
1268 m_Parameters = NULL;
1289 m_Callback = Callback;
1291 for(
int i=0; i<m_nParameters; i++)
1308 bool bPrevious = m_bCallback;
1310 m_bCallback = bActive;
1312 for(
int i=0; i<m_nParameters; i++)
1320 return( bPrevious );
1324 bool CSG_Parameters::_On_Parameter_Changed(
CSG_Parameter *pParameter,
int Flags)
1326 if( m_Callback && m_bCallback )
1330 m_Callback(pParameter, Flags);
1431 if( m_Parameters[i]->is_DataObject() )
1435 else if( m_Parameters[i]->is_DataObject_List() )
1455 return( pSource && pSource !=
this &&
Create(*pSource) );
1461 if( !pSource || pSource ==
this )
1469 for(
int i=0; i<pSource->
Get_Count(); i++)
1485 if( !pSource || pSource ==
this )
1493 for(
int i=0; i<pSource->m_nParameters; i++)
1495 _Add(pSource->m_Parameters[i]);
1498 if( pSource->m_pGrid_System )
1503 return( m_nParameters == pSource->m_nParameters );
1514 bool bResult =
true;
1521 if( m_Parameters[i]->Check(bSilent) == false )
1530 if( !bResult && !bSilent )
1539 bool CSG_Parameters::DataObjects_Create(
void)
1541 bool bResult =
true;
1543 for(
int i=0; bResult && i<
Get_Count(); i++)
1609 default : pObject = NULL ;
break;
1651 m_pManager->
Add(pObject);
1679 bool CSG_Parameters::DataObjects_Synchronize(
void)
1706 if( m_pManager && !m_pManager->Delete(pObject) )
1715 if( m_pManager && !m_pManager->Exists(pObject) )
1717 m_pManager->Add(pObject);
1728 for(
int j=0; j<p->
asList()->Get_Item_Count(); j++)
1732 if( m_pManager && !m_pManager->Exists(pObject) )
1734 m_pManager->Add(pObject);
1747 bool CSG_Parameters::DataObjects_Get_Projection(
CSG_Projection &Projection)
const
1757 p->
asParameters()->DataObjects_Get_Projection(Projection);
1778 return( Projection.
is_Okay() );
1782 bool CSG_Parameters::DataObjects_Set_Projection(
const CSG_Projection &Projection)
1797 p->
asParameters()->DataObjects_Set_Projection(Projection);
1829 bool bResult =
false;
1833 if( m_pGrid_System )
1866 bOptionsOnly ?
_TL(
"Options") :
_TL(
"Parameters")),
1903 else if( p->is_Parameters() )
1905 p->asParameters()->Set_History(MetaData,
true,
false);
1963 pEntry = pList->
Add_Child(*pList,
false);
2005 return( m_pGrid_System && m_pGrid_System->
asGrid_System() && m_pGrid_System->
Set_Value((
void *)&System) );
2039 if( pParameter && pParameter->
Serialize(*Data(i),
false) )
2092 while( Stream.
Read_Line(sLine) && sLine.
Cmp(
"[PARAMETER_ENTRIES_BEGIN]") );
2094 if( sLine.
Cmp(
"[PARAMETER_ENTRIES_BEGIN]") )
2100 while( Stream.
Read_Line(sLine) && sLine.
Cmp(
"[PARAMETER_ENTRIES_END]") )
2102 if( !sLine.
Cmp(
"[PARAMETER_ENTRY_BEGIN]")
2112 switch( sLine.
asInt() )
2139 while( Stream.
Read_Line(sLine) && sLine.
Cmp(
"[TEXT_ENTRY_END]") )
2147 Stream.
Read(&i,
sizeof(i));
2163 Stream.
Read(&d,
sizeof(d));
2164 Stream.
Read(&r,
sizeof(r));
2175 if( !sLine.
Cmp(
"[ENTRY_DATAOBJECT_CREATE]") )
2181 pParameter->
Set_Value(m_pManager ? m_pManager->Find(sLine) : NULL);
2190 while( Stream.
Read_Line(sLine) && sLine.
Cmp(
"[ENTRY_DATAOBJECTLIST_END]") )
2192 CSG_Data_Object *pObject = m_pManager ? m_pManager->Find(sLine) : NULL;