//--------------------------------------------------------- CTable_Create_Empty::CTable_Create_Empty(void) { //----------------------------------------------------- Set_Name (_TL("Create New Table")); Set_Author (SG_T("O. Conrad (c) 2005")); Set_Description (CSG_String::Format(_TW( "Creates a new empty table.\n\n" "Possible field types are:\n" "- %s\n- %s\n- %s\n- %s\n- %s\n- %s\n- %s\n- %s\n- %s\n- %s\n- %s\n- %s\n- %s\n- %s\n"), SG_Data_Type_Get_Name(SG_DATATYPE_String).c_str(), SG_Data_Type_Get_Name(SG_DATATYPE_Date ).c_str(), SG_Data_Type_Get_Name(SG_DATATYPE_Color ).c_str(), SG_Data_Type_Get_Name(SG_DATATYPE_Byte ).c_str(), SG_Data_Type_Get_Name(SG_DATATYPE_Char ).c_str(), SG_Data_Type_Get_Name(SG_DATATYPE_Word ).c_str(), SG_Data_Type_Get_Name(SG_DATATYPE_Short ).c_str(), SG_Data_Type_Get_Name(SG_DATATYPE_DWord ).c_str(), SG_Data_Type_Get_Name(SG_DATATYPE_Int ).c_str(), SG_Data_Type_Get_Name(SG_DATATYPE_ULong ).c_str(), SG_Data_Type_Get_Name(SG_DATATYPE_Long ).c_str(), SG_Data_Type_Get_Name(SG_DATATYPE_Float ).c_str(), SG_Data_Type_Get_Name(SG_DATATYPE_Double).c_str(), SG_Data_Type_Get_Name(SG_DATATYPE_Binary).c_str() )); //----------------------------------------------------- Parameters.Add_Table_Output( NULL , "TABLE" , _TL("Table"), _TL("") ); Parameters.Add_String( NULL , "NAME" , _TL("Name"), _TL(""), _TL("New Table") ); Parameters.Add_Value( NULL , "NFIELDS" , _TL("Number of Attributes"), _TL(""), PARAMETER_TYPE_Int , 2, 1, true ); Parameters.Add_Parameters( NULL , "FIELDS" , _TL("Attributes"), _TL("") ); //----------------------------------------------------- CSG_Parameters *pAttributes = Parameters("FIELDS")->asParameters(); _Set_Field_Count(pAttributes, Parameters("NFIELDS")->asInt()); pAttributes->Get_Parameter(GET_NAME(0))->Set_Value(_TL("ID")); pAttributes->Get_Parameter(GET_TYPE(0))->Set_Value(3); }
//--------------------------------------------------------- int CTable_Create_Empty::On_Parameter_Changed(CSG_Parameters *pParameters, CSG_Parameter *pParameter) { if( pParameter->Cmp_Identifier(SG_T("NFIELDS")) ) { _Set_Field_Count(pParameters->Get_Parameter("FIELDS")->asParameters(), pParameter->asInt()); return( true ); } return( false ); }
//--------------------------------------------------------- int CShapes_Create_Empty::On_Parameter_Changed(CSG_Parameters *pParameters, CSG_Parameter *pParameter) { if( !SG_STR_CMP(pParameter->Get_Identifier(), SG_T("NFIELDS")) ) { _Set_Field_Count(pParameters->Get_Parameter("FIELDS")->asParameters(), pParameter->asInt()); return( true ); } return( false ); }
//--------------------------------------------------------- CShapes_Create_Empty::CShapes_Create_Empty(void) { //----------------------------------------------------- Set_Name (_TL("Create New Shapes Layer")); Set_Author (SG_T("O. Conrad (c) 2008")); Set_Description (CSG_String::Format(_TW( "Creates a new empty shapes layer of given type, " "which might be either point, multipoint, line or polygon.\n\n" "Possible field types for the attributes table are:\n" "- %s\n- %s\n- %s\n- %s\n- %s\n- %s\n- %s\n- %s\n- %s\n- %s\n- %s\n- %s\n- %s\n- %s\n"), SG_Data_Type_Get_Name(SG_DATATYPE_String).c_str(), SG_Data_Type_Get_Name(SG_DATATYPE_Date ).c_str(), SG_Data_Type_Get_Name(SG_DATATYPE_Color ).c_str(), SG_Data_Type_Get_Name(SG_DATATYPE_Byte ).c_str(), SG_Data_Type_Get_Name(SG_DATATYPE_Char ).c_str(), SG_Data_Type_Get_Name(SG_DATATYPE_Word ).c_str(), SG_Data_Type_Get_Name(SG_DATATYPE_Short ).c_str(), SG_Data_Type_Get_Name(SG_DATATYPE_DWord ).c_str(), SG_Data_Type_Get_Name(SG_DATATYPE_Int ).c_str(), SG_Data_Type_Get_Name(SG_DATATYPE_ULong ).c_str(), SG_Data_Type_Get_Name(SG_DATATYPE_Long ).c_str(), SG_Data_Type_Get_Name(SG_DATATYPE_Float ).c_str(), SG_Data_Type_Get_Name(SG_DATATYPE_Double).c_str(), SG_Data_Type_Get_Name(SG_DATATYPE_Binary).c_str() )); //----------------------------------------------------- Parameters.Add_Shapes_Output( NULL , "SHAPES" , _TL("Shapes"), _TL("") ); Parameters.Add_String( NULL , "NAME" , _TL("Name"), _TL(""), _TL("New Shapes Layer") ); Parameters.Add_Choice( NULL , "TYPE" , _TL("Shape Type"), _TL(""), CSG_String::Format(SG_T("%s|%s|%s|%s|"), _TL("Point"), _TL("Multipoint"), _TL("Lines"), _TL("Polygon") ) ); Parameters.Add_Choice( NULL , "VERTEX" , _TL("Vertex Type"), _TL(""), CSG_String::Format(SG_T("%s|%s|%s|"), _TL("x, y"), _TL("x, y, z"), _TL("x, y, z, m") ) ); Parameters.Add_Value( NULL , "NFIELDS" , _TL("Number of Attributes"), _TL(""), PARAMETER_TYPE_Int , 2, 1, true ); Parameters.Add_Parameters( NULL , "FIELDS" , _TL("Attributes"), _TL("") ); //----------------------------------------------------- CSG_Parameters *pAttributes = Parameters("FIELDS")->asParameters(); _Set_Field_Count(pAttributes, Parameters("NFIELDS")->asInt()); pAttributes->Get_Parameter(GET_NAME(0))->Set_Value(_TL("ID")); pAttributes->Get_Parameter(GET_TYPE(0))->Set_Value(3); }