//--------------------------------------------------------- void CVIEW_ScatterPlot::On_Parameters(wxCommandEvent &event) { if( DLG_Parameters(&m_Parameters) ) { _Update_Data(); } }
//--------------------------------------------------------- void CData_Source_PgSQL::Source_Open(const wxTreeItemId &Item) { CData_Source_PgSQL_Data *pData = Item.IsOk() ? (CData_Source_PgSQL_Data *)GetItemData(Item) : NULL; if( pData == NULL ) return; if( pData->Get_Type() == TYPE_ROOT || pData->Get_Type() == TYPE_SERVER ) { CSG_Module *pModule = SG_Get_Module_Library_Manager().Get_Module("db_pgsql", DB_PGSQL_Get_Connection); // CGet_Connection if( pModule && pModule->On_Before_Execution() ) { if( pData->Get_Type() == TYPE_SERVER ) { pModule->Set_Parameter("PG_HOST", pData->Get_Host()); pModule->Set_Parameter("PG_PORT", pData->Get_Port()); } if( DLG_Parameters(pModule->Get_Parameters()) ) { pModule->Execute(); } } } else if( pData->is_Connected() ) { Update_Source(Item); } else if( !Source_Open(pData, true) ) { DLG_Message_Show_Error(_TL("Could not connect to data source."), _TL("Connect to PostgreSQL")); } }
//--------------------------------------------------------- void CVIEW_Table_Control::On_Field_Del(wxCommandEvent &event) { int i; CSG_Parameters P; //----------------------------------------------------- P.Set_Name(_TL("Delete Fields")); for(i=0; i<m_pTable->Get_Field_Count(); i++) { P.Add_Value(NULL, SG_Get_String(i, 0), m_pTable->Get_Field_Name(i), _TL(""), PARAMETER_TYPE_Bool, false); } //----------------------------------------------------- if( DLG_Parameters(&P) ) { for(i=m_pTable->Get_Field_Count()-1; i>=0; i--) { if( P(SG_Get_String(i, 0))->asBool() ) { m_pTable->Del_Field(i); DeleteCols(i); } } g_pData->Update(m_pTable, NULL); } }
//--------------------------------------------------------- CVIEW_Map_3D::CVIEW_Map_3D(CWKSP_Map *pMap) : CVIEW_Base(pMap, ID_VIEW_MAP_3D, _TL("3D View"), ID_IMG_WND_MAP3D, false) { SetTitle(wxString::Format(wxT("%s [%s]"), pMap->Get_Name().c_str(), _TL("3D View"))); CreateStatusBar(MAP3D_STATUSBAR_COUNT); m_pPanel = new CVIEW_Map_3DPanel(this, pMap); m_pPanel->SetSize(GetClientSize()); //----------------------------------------------------- Parameters_Create(); if( DLG_Parameters(&m_Parameters) ) { Parameters_Update(false); Do_Show(); m_pPanel->SetFocus(); } else { Destroy(); } }
//--------------------------------------------------------- void CActive_Attributes_Control::On_Field_Del(wxCommandEvent &event) { if( !g_pActive->Get_Active_Data_Item() || g_pActive->Get_Active_Data_Item()->Get_Type() != WKSP_ITEM_Grids ) { return; } CSG_Grids *pGrids = ((CWKSP_Grids *)g_pActive->Get_Active_Data_Item())->Get_Grids(); //----------------------------------------------------- int i; CSG_Parameters P; //----------------------------------------------------- P.Set_Name(_TL("Delete Fields")); for(i=0; i<m_pTable->Get_Field_Count(); i++) { P.Add_Value(NULL, SG_Get_String(i), m_pTable->Get_Field_Name(i), _TL(""), PARAMETER_TYPE_Bool, false); } //----------------------------------------------------- if( DLG_Parameters(&P) ) { for(i=m_pTable->Get_Field_Count()-1; i>=0; i--) { if( P(SG_Get_String(i))->asBool() ) { pGrids->Get_Attributes_Ptr()->Del_Field(i); DeleteCols(i); } } g_pData->Update(pGrids, NULL); } }
//--------------------------------------------------------- void CActive_Attributes_Control::On_Field_Rename(wxCommandEvent &event) { if( !g_pActive->Get_Active_Data_Item() || g_pActive->Get_Active_Data_Item()->Get_Type() != WKSP_ITEM_Grids ) { return; } CSG_Grids *pGrids = ((CWKSP_Grids *)g_pActive->Get_Active_Data_Item())->Get_Grids(); //----------------------------------------------------- int i; CSG_Parameters P; P.Set_Name(_TL("Rename Fields")); for(i=0; i<m_pTable->Get_Field_Count(); i++) { P.Add_String(NULL, SG_Get_String(i), m_pTable->Get_Field_Name(i), _TL(""), m_pTable->Get_Field_Name(i)); } //----------------------------------------------------- if( DLG_Parameters(&P) ) { for(i=0; i<m_pTable->Get_Field_Count(); i++) { CSG_String s(P(i)->asString()); if( s.Length() > 0 && s.Cmp(m_pTable->Get_Field_Name(i)) ) { pGrids->Get_Attributes_Ptr()->Set_Field_Name(i, s); SetColLabelValue(i, s.c_str()); } } g_pData->Update(pGrids, NULL); } }
//--------------------------------------------------------- void CVIEW_Table_Control::On_Field_Rename(wxCommandEvent &event) { int i; CSG_Parameters P; P.Set_Name(_TL("Rename Fields")); for(i=0; i<m_pTable->Get_Field_Count(); i++) { P.Add_String(NULL, "", m_pTable->Get_Field_Name(i), _TL(""), m_pTable->Get_Field_Name(i)); } //----------------------------------------------------- if( DLG_Parameters(&P) ) { for(i=0; i<m_pTable->Get_Field_Count(); i++) { CSG_String s(P(i)->asString()); if( s.Length() > 0 && s.Cmp(m_pTable->Get_Field_Name(i)) ) { m_pTable->Set_Field_Name(i, s); SetColLabelValue(i, s.c_str()); } } g_pData->Update(m_pTable, NULL); } }
//--------------------------------------------------------- CVIEW_ScatterPlot::CVIEW_ScatterPlot(CWKSP_Data_Item *pItem) : CVIEW_Base(pItem, ID_VIEW_SCATTERPLOT, wxString::Format("%s: %s", _TL("Scatterplot"), pItem->Get_Object()->Get_Name()), ID_IMG_WND_SCATTERPLOT, false) { m_pItem = pItem; m_pGrid = NULL; m_pGrids = NULL; m_pTable = NULL; switch( m_pItem->Get_Type() ) { case WKSP_ITEM_Grid : m_pGrid = pItem->Get_Object()->asGrid (); break; case WKSP_ITEM_Grids : m_pGrids = pItem->Get_Object()->asGrids (); break; case WKSP_ITEM_Shapes : m_pTable = pItem->Get_Object()->asShapes (); break; case WKSP_ITEM_PointCloud: m_pTable = pItem->Get_Object()->asPointCloud(); break; default : m_pTable = pItem->Get_Object()->asTable (); break; } m_Parameters.Set_Name(CSG_String::Format("%s: %s", _TL("Scatterplot"), m_pItem->Get_Object()->Get_Name())); _On_Construction(); if( DLG_Parameters(&m_Parameters) ) { _Update_Data(); Do_Show(); } else { Destroy(); } }
//--------------------------------------------------------- bool CData_Source_PgSQL::Source_Create(const wxTreeItemId &Item) { CData_Source_PgSQL_Data *pData = Item.IsOk() ? (CData_Source_PgSQL_Data *)GetItemData(Item) : NULL; if( pData == NULL ) return( false ); if( pData->Get_Type() == TYPE_ROOT || pData->Get_Type() == TYPE_SERVER ) { CSG_Module *pModule = SG_Get_Module_Library_Manager().Get_Module("db_pgsql", DB_PGSQL_DB_Create); if( pModule && pModule->On_Before_Execution() ) { if( pData->Get_Type() == TYPE_SERVER ) { pModule->Set_Parameter("PG_HOST", pData->Get_Host()); pModule->Set_Parameter("PG_PORT", pData->Get_Port()); } if( DLG_Parameters(pModule->Get_Parameters()) ) { pModule->Execute(); } } } return( true ); }
//--------------------------------------------------------- bool PGSQL_Save_Shapes (CSG_Shapes *pShapes) { CSG_Module *pModule = SG_Get_Module_Library_Manager().Get_Module("db_pgsql", DB_PGSQL_Shapes_Save); if( pModule && pModule->On_Before_Execution() && pModule->Set_Parameter("SHAPES", pShapes) && DLG_Parameters(pModule->Get_Parameters()) && pModule->Execute() ) { return( true ); } return( false ); }
//--------------------------------------------------------- bool CVIEW_Map_3D::_Parms_Dlg(void) { if( DLG_Parameters(&m_Parameters) ) { _Parms_Update(true); m_pImage->Set_Image(); return( true ); } return( false ); }
//--------------------------------------------------------- bool PGSQL_Save_Grid (CSG_Grid *pGrid) { CSG_Module *pModule = SG_Get_Module_Library_Manager().Get_Module("db_pgsql", DB_PGSQL_Raster_Save); if( pModule && pModule->On_Before_Execution() && pModule->Set_Parameter("NAME", pGrid->Get_Name()) ) { pModule->Get_Parameters()->Get_Parameter("GRIDS")->asList()->Del_Items(); if( pModule->Get_Parameters()->Get_Parameter("GRIDS")->asList()->Add_Item(pGrid) && DLG_Parameters(pModule->Get_Parameters()) && pModule->Execute() ) { return( true ); } } return( false ); }
//--------------------------------------------------------- bool DLG_Table_Fields(const wxString &Caption, CSG_Parameter_Table_Fields *pFields) { CSG_Table *pTable = pFields->Get_Table(); if( pTable ) { int i; CSG_Parameters P; for(i=0; i<pTable->Get_Field_Count(); i++) { P.Add_Value(NULL, SG_Get_String(i), pTable->Get_Field_Name(i), _TL(""), PARAMETER_TYPE_Bool, false); } for(i=0; i<pFields->Get_Count(); i++) { CSG_Parameter *pParameter = P(pFields->Get_Index(i)); if( pParameter ) { pParameter->Set_Value(true); } } if( DLG_Parameters(&P) ) { CSG_String s; for(i=0; i<pTable->Get_Field_Count(); i++) { if( P(i)->asBool() ) { s += CSG_String::Format(s.Length() ? SG_T(",%d") : SG_T("%d"), i); } } pFields->Set_Value(s); return( true ); } } return( false ); }
//--------------------------------------------------------- void CVIEW_Table_Control::On_Field_Sort(wxCommandEvent &event) { CSG_String sFields, sOrder; CSG_Parameter *pNode; CSG_Parameters P; //----------------------------------------------------- for(int i=0; i<m_pTable->Get_Field_Count(); i++) { sFields.Append(m_pTable->Get_Field_Name(i)); sFields.Append('|'); } sOrder.Printf(SG_T("%s|%s|%s|"), _TL("unsorted"), _TL("ascending"), _TL("descending") ); //----------------------------------------------------- P.Set_Name(_TL("Sort Table")); pNode = P.Add_Choice(NULL , "FIELD_1" , _TL("Sort first by") , _TL(""), sFields , !m_pTable->is_Indexed() ? 0 : m_pTable->Get_Index_Field(0)); pNode = P.Add_Choice(pNode, "ORDER_1" , _TL("Direction") , _TL(""), sOrder , !m_pTable->is_Indexed() ? 1 : m_pTable->Get_Index_Order(0)); pNode = P.Add_Choice(NULL , "FIELD_2" , _TL("Sort second by") , _TL(""), sFields , !m_pTable->is_Indexed() ? 0 : m_pTable->Get_Index_Field(1)); pNode = P.Add_Choice(pNode, "ORDER_2" , _TL("Direction") , _TL(""), sOrder , !m_pTable->is_Indexed() ? 0 : m_pTable->Get_Index_Order(1)); pNode = P.Add_Choice(NULL , "FIELD_3" , _TL("Sort third by") , _TL(""), sFields , !m_pTable->is_Indexed() ? 0 : m_pTable->Get_Index_Field(2)); pNode = P.Add_Choice(pNode, "ORDER_3" , _TL("Direction") , _TL(""), sOrder , !m_pTable->is_Indexed() ? 0 : m_pTable->Get_Index_Order(2)); //----------------------------------------------------- if( DLG_Parameters(&P) ) { m_pTable->Set_Index( P("FIELD_1")->asInt(), P("ORDER_1")->asInt() == 1 ? TABLE_INDEX_Ascending : P("ORDER_1")->asInt() == 2 ? TABLE_INDEX_Descending : TABLE_INDEX_None, P("FIELD_2")->asInt(), P("ORDER_2")->asInt() == 1 ? TABLE_INDEX_Ascending : P("ORDER_2")->asInt() == 2 ? TABLE_INDEX_Descending : TABLE_INDEX_None, P("FIELD_3")->asInt(), P("ORDER_3")->asInt() == 1 ? TABLE_INDEX_Ascending : P("ORDER_3")->asInt() == 2 ? TABLE_INDEX_Descending : TABLE_INDEX_None ); _Set_Records(); } }
//--------------------------------------------------------- bool DLG_Login(wxString &Username, wxString &Password, const wxString &Caption) { CSG_Parameters Login(NULL, _TL("Login"), _TL("")); if( Caption.Length() > 0 ) { Login.Set_Name(&Caption); } Login.Add_String(NULL, "USERNAME", _TL("Username"), _TL(""), &Username, false, false); Login.Add_String(NULL, "PASSWORD", _TL("Password"), _TL(""), &Password, false, true ); if( DLG_Parameters(&Login) ) { Username = Login("USERNAME")->asString(); Password = Login("PASSWORD")->asString(); return( true ); } return( false ); }
//--------------------------------------------------------- int Callback(TSG_UI_Callback_ID ID, CSG_UI_Parameter &Param_1, CSG_UI_Parameter &Param_2) { int Result, *iArray; Result = 1; //----------------------------------------------------- switch( ID ) { default: Result = 0; break; /////////////////////////////////////////////////////// // // // // // // /////////////////////////////////////////////////////// //----------------------------------------------------- case CALLBACK_PROCESS_GET_OKAY: Result = PROCESS_Get_Okay(Param_1.True); break; //----------------------------------------------------- case CALLBACK_PROCESS_SET_OKAY: Result = PROCESS_Set_Okay(Param_1.True); break; //----------------------------------------------------- case CALLBACK_PROCESS_SET_PROGRESS: Result = PROGRESSBAR_Set_Position(Param_1.Number, Param_2.Number); break; //----------------------------------------------------- case CALLBACK_PROCESS_SET_READY: STATUSBAR_Set_Text(_TL("ready")); Result = PROGRESSBAR_Set_Position(0); break; //----------------------------------------------------- case CALLBACK_PROCESS_SET_TEXT: STATUSBAR_Set_Text(Param_1.String.c_str()); break; /////////////////////////////////////////////////////// // // // // // // /////////////////////////////////////////////////////// //----------------------------------------------------- case CALLBACK_STOP_EXECUTION: if( g_pModule && g_pModule->is_Executing() ) { Result = g_pModule->Execute(Param_1.True) ? 1 : 0; } else if( g_pModule && g_pModule->is_Interactive() ) { Result = g_pModule->Execute(Param_1.True) ? 1 : 0; } break; /////////////////////////////////////////////////////// // // // // // // /////////////////////////////////////////////////////// //----------------------------------------------------- case CALLBACK_MESSAGE_ADD: iArray = (int *)Param_2.Pointer; MSG_General_Add (Param_1.String.c_str(), iArray[0] != 0, iArray[0] != 0, (TSG_UI_MSG_STYLE)iArray[1]); break; //----------------------------------------------------- case CALLBACK_MESSAGE_ADD_ERROR: MSG_Error_Add (Param_1.String.c_str(), true); break; //----------------------------------------------------- case CALLBACK_MESSAGE_ADD_EXECUTION: iArray = (int *)Param_2.Pointer; MSG_Execution_Add (Param_1.String.c_str(), iArray[0] != 0, iArray[0] != 0, (TSG_UI_MSG_STYLE)iArray[1]); break; /////////////////////////////////////////////////////// // // // // // // /////////////////////////////////////////////////////// //----------------------------------------------------- case CALLBACK_DLG_MESSAGE: DLG_Message_Show(Param_1.String.c_str(), Param_2.String.c_str()); break; //----------------------------------------------------- case CALLBACK_DLG_CONTINUE: Result = DLG_Message_Confirm(Param_1.String.c_str(), Param_2.String.c_str()); break; //----------------------------------------------------- case CALLBACK_DLG_ERROR: Result = DLG_Message_Show_Error(Param_1.String.c_str(), Param_2.String.c_str()); break; /////////////////////////////////////////////////////// // // // // // // /////////////////////////////////////////////////////// //----------------------------------------------------- case CALLBACK_DLG_PARAMETERS: Result = DLG_Parameters((CSG_Parameters *)Param_1.Pointer, Param_2.String.c_str()) ? 1 : 0; break; /////////////////////////////////////////////////////// // // // // // // /////////////////////////////////////////////////////// //----------------------------------------------------- case CALLBACK_DATAOBJECT_ADD: Result = g_pData->Add((CSG_Data_Object *)Param_1.Pointer) ? 1 : 0; if( Result && Param_2.True ) { g_pData->Show((CSG_Data_Object *)Param_1.Pointer, false); } break; //----------------------------------------------------- case CALLBACK_DATAOBJECT_UPDATE: Result = g_pData->Update((CSG_Data_Object *)Param_1.Pointer, (CSG_Parameters *)Param_2.Pointer) ? 1 : 0; break; //----------------------------------------------------- case CALLBACK_DATAOBJECT_SHOW: Result = g_pData->Show((CSG_Data_Object *)Param_1.Pointer, (int)Param_2.Number) ? 1 : 0; break; //----------------------------------------------------- case CALLBACK_DATAOBJECT_ASIMAGE: Result = g_pData->asImage((CSG_Data_Object *)Param_1.Pointer, (CSG_Grid *)Param_2.Pointer) ? 1 : 0; break; //----------------------------------------------------- case CALLBACK_DATAOBJECT_COLORS_GET: Result = g_pData->Get_Colors((CSG_Data_Object *)Param_1.Pointer, (CSG_Colors *)Param_2.Pointer) ? 1 : 0; break; //----------------------------------------------------- case CALLBACK_DATAOBJECT_COLORS_SET: Result = g_pData->Set_Colors((CSG_Data_Object *)Param_1.Pointer, (CSG_Colors *)Param_2.Pointer) ? 1 : 0; break; //----------------------------------------------------- case CALLBACK_DATAOBJECT_PARAMS_GET: Result = g_pData->Get_Parameters((CSG_Data_Object *)Param_1.Pointer, (CSG_Parameters *)Param_2.Pointer) ? 1 : 0; break; //----------------------------------------------------- case CALLBACK_DATAOBJECT_PARAMS_SET: Result = g_pData->Set_Parameters((CSG_Data_Object *)Param_1.Pointer, (CSG_Parameters *)Param_2.Pointer) ? 1 : 0; break; //----------------------------------------------------- case CALLBACK_ODBC_UPDATE: Result = g_pData_Source->Update_ODBC_Source(Param_1.String.c_str()) ? 1 : 0; break; /////////////////////////////////////////////////////// // // // // // // /////////////////////////////////////////////////////// //----------------------------------------------------- case CALLBACK_GUI_GET_WINDOW: Param_1.Pointer = MDI_Get_Frame(); break; /////////////////////////////////////////////////////// // // // // // // /////////////////////////////////////////////////////// //----------------------------------------------------- } return( Result ); }
//--------------------------------------------------------- void CVIEW_Table_Control::On_Field_Type(wxCommandEvent &event) { int i, *Types = new int[m_pTable->Get_Field_Count()]; CSG_Parameters P; P.Set_Name(_TL("Change Field Type")); for(i=0; i<m_pTable->Get_Field_Count(); i++) { switch( m_pTable->Get_Field_Type(i) ) { default: case SG_DATATYPE_String: Types[i] = 0; break; case SG_DATATYPE_Date: Types[i] = 1; break; case SG_DATATYPE_Color: Types[i] = 2; break; case SG_DATATYPE_Byte: Types[i] = 3; break; case SG_DATATYPE_Char: Types[i] = 4; break; case SG_DATATYPE_Word: Types[i] = 5; break; case SG_DATATYPE_Short: Types[i] = 6; break; case SG_DATATYPE_DWord: Types[i] = 7; break; case SG_DATATYPE_Int: Types[i] = 8; break; case SG_DATATYPE_ULong: Types[i] = 9; break; case SG_DATATYPE_Long: Types[i] = 10; break; case SG_DATATYPE_Float: Types[i] = 11; break; case SG_DATATYPE_Double: Types[i] = 12; break; case SG_DATATYPE_Binary: Types[i] = 13; break; } P.Add_Choice(NULL, "", m_pTable->Get_Field_Name(i), _TL(""), CSG_String::Format(SG_T("%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|"), 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() ), Types[i] ); } //----------------------------------------------------- if( DLG_Parameters(&P) ) { bool bChanged = false; for(i=0; i<m_pTable->Get_Field_Count(); i++) { TSG_Data_Type Type; switch( P(i)->asInt() ) { default: case 0: Type = SG_DATATYPE_String; break; case 1: Type = SG_DATATYPE_Date; break; case 2: Type = SG_DATATYPE_Color; break; case 3: Type = SG_DATATYPE_Byte; break; case 4: Type = SG_DATATYPE_Char; break; case 5: Type = SG_DATATYPE_Word; break; case 6: Type = SG_DATATYPE_Short; break; case 7: Type = SG_DATATYPE_DWord; break; case 8: Type = SG_DATATYPE_Int; break; case 9: Type = SG_DATATYPE_ULong; break; case 10: Type = SG_DATATYPE_Long; break; case 11: Type = SG_DATATYPE_Float; break; case 12: Type = SG_DATATYPE_Double; break; case 13: Type = SG_DATATYPE_Binary; break; } if( Type != Types[i] ) { m_pTable->Set_Field_Type(i, Type); bChanged = true; } } if( bChanged ) { Update_Table(); g_pData->Update(m_pTable, NULL); } } }
//--------------------------------------------------------- void CActive_Attributes_Control::On_Field_Add(wxCommandEvent &event) { if( !g_pActive->Get_Active_Data_Item() || g_pActive->Get_Active_Data_Item()->Get_Type() != WKSP_ITEM_Grids ) { return; } CSG_Grids *pGrids = ((CWKSP_Grids *)g_pActive->Get_Active_Data_Item())->Get_Grids(); //----------------------------------------------------- CSG_String Fields; for(int i=0; i<m_pTable->Get_Field_Count(); i++) { Fields += m_pTable->Get_Field_Name(i) + CSG_String('|'); } //----------------------------------------------------- CSG_Parameters P(NULL, _TL("Add Field"), SG_T("")); P.Add_String( NULL , "NAME" , _TL("Name"), _TL(""), _TL("Field") ); P.Add_Choice( NULL , "TYPE" , _TL("Field Type"), _TL(""), CSG_String::Format("%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|", 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() ), 0 ); P.Add_Choice( NULL , "FIELD" , _TL("Insert Position"), _TL(""), Fields, m_pTable->Get_Field_Count() - 1 ); P.Add_Choice( NULL , "INSERT" , _TL("Insert Method"), _TL(""), CSG_String::Format(SG_T("%s|%s|"), _TL("before"), _TL("after") ), 1 ); //----------------------------------------------------- if( DLG_Parameters(&P) ) { int Position; TSG_Data_Type Type; switch( P("TYPE")->asInt() ) { default: case 0: Type = SG_DATATYPE_String; break; case 1: Type = SG_DATATYPE_Date ; break; case 2: Type = SG_DATATYPE_Color ; break; case 3: Type = SG_DATATYPE_Byte ; break; case 4: Type = SG_DATATYPE_Char ; break; case 5: Type = SG_DATATYPE_Word ; break; case 6: Type = SG_DATATYPE_Short ; break; case 7: Type = SG_DATATYPE_DWord ; break; case 8: Type = SG_DATATYPE_Int ; break; case 9: Type = SG_DATATYPE_ULong ; break; case 10: Type = SG_DATATYPE_Long ; break; case 11: Type = SG_DATATYPE_Float ; break; case 12: Type = SG_DATATYPE_Double; break; case 13: Type = SG_DATATYPE_Binary; break; } Position = P("FIELD")->asInt() + P("INSERT")->asInt(); pGrids->Add_Attribute(P("NAME")->asString(), Type, Position); g_pData->Update(pGrids, NULL); } }
//--------------------------------------------------------- void CActive_Attributes_Control::On_Field_Type(wxCommandEvent &event) { if( !g_pActive->Get_Active_Data_Item() || g_pActive->Get_Active_Data_Item()->Get_Type() != WKSP_ITEM_Grids ) { return; } CSG_Grids *pGrids = ((CWKSP_Grids *)g_pActive->Get_Active_Data_Item())->Get_Grids(); //----------------------------------------------------- int i, *Types = new int[m_pTable->Get_Field_Count()]; CSG_Parameters P; P.Set_Name(_TL("Change Field Type")); for(i=0; i<m_pTable->Get_Field_Count(); i++) { switch( m_pTable->Get_Field_Type(i) ) { default: case SG_DATATYPE_String: Types[i] = 0; break; case SG_DATATYPE_Date : Types[i] = 1; break; case SG_DATATYPE_Color : Types[i] = 2; break; case SG_DATATYPE_Byte : Types[i] = 3; break; case SG_DATATYPE_Char : Types[i] = 4; break; case SG_DATATYPE_Word : Types[i] = 5; break; case SG_DATATYPE_Short : Types[i] = 6; break; case SG_DATATYPE_DWord : Types[i] = 7; break; case SG_DATATYPE_Int : Types[i] = 8; break; case SG_DATATYPE_ULong : Types[i] = 9; break; case SG_DATATYPE_Long : Types[i] = 10; break; case SG_DATATYPE_Float : Types[i] = 11; break; case SG_DATATYPE_Double: Types[i] = 12; break; case SG_DATATYPE_Binary: Types[i] = 13; break; } P.Add_Choice("", SG_Get_String(i), m_pTable->Get_Field_Name(i), _TL(""), CSG_String::Format("%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|", 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() ), Types[i] ); } //----------------------------------------------------- if( DLG_Parameters(&P) ) { bool bChanged = false; for(i=0; i<m_pTable->Get_Field_Count(); i++) { TSG_Data_Type Type; switch( P(i)->asInt() ) { default: Type = SG_DATATYPE_String; break; case 1: Type = SG_DATATYPE_Date ; break; case 2: Type = SG_DATATYPE_Color ; break; case 3: Type = SG_DATATYPE_Byte ; break; case 4: Type = SG_DATATYPE_Char ; break; case 5: Type = SG_DATATYPE_Word ; break; case 6: Type = SG_DATATYPE_Short ; break; case 7: Type = SG_DATATYPE_DWord ; break; case 8: Type = SG_DATATYPE_Int ; break; case 9: Type = SG_DATATYPE_ULong ; break; case 10: Type = SG_DATATYPE_Long ; break; case 11: Type = SG_DATATYPE_Float ; break; case 12: Type = SG_DATATYPE_Double; break; case 13: Type = SG_DATATYPE_Binary; break; } if( Type != m_pTable->Get_Field_Type(i) ) { pGrids->Get_Attributes_Ptr()->Set_Field_Type(i, Type); bChanged = true; } } if( bChanged ) { Update_Table(); g_pData->Update(pGrids, NULL); } } }
//--------------------------------------------------------- void CVIEW_Table_Control::On_Field_Add(wxCommandEvent &event) { int i; CSG_String sFields; CSG_Parameters P; //----------------------------------------------------- for(i=0; i<m_pTable->Get_Field_Count(); i++) { sFields.Append(m_pTable->Get_Field_Name(i)); sFields.Append(wxT('|')); } //----------------------------------------------------- P.Set_Name(_TL("Add Field")); P.Add_String( NULL , "NAME" , _TL("Name"), _TL(""), _TL("Field") ); P.Add_Choice( NULL , "TYPE" , _TL("Field Type"), _TL(""), CSG_String::Format(SG_T("%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|%s|"), 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() ), 0 ); P.Add_Choice( NULL , "FIELD" , _TL("Insert Position"), _TL(""), sFields, m_pTable->Get_Field_Count() - 1 ); P.Add_Choice( NULL , "INSERT" , _TL("Insert Method"), _TL(""), CSG_String::Format(SG_T("%s|%s|"), _TL("before"), _TL("after") ), 1 ); //----------------------------------------------------- if( DLG_Parameters(&P) ) { int Position; TSG_Data_Type Type; switch( P("TYPE")->asInt() ) { default: case 0: Type = SG_DATATYPE_String; break; case 1: Type = SG_DATATYPE_Date; break; case 2: Type = SG_DATATYPE_Color; break; case 3: Type = SG_DATATYPE_Byte; break; case 4: Type = SG_DATATYPE_Char; break; case 5: Type = SG_DATATYPE_Word; break; case 6: Type = SG_DATATYPE_Short; break; case 7: Type = SG_DATATYPE_DWord; break; case 8: Type = SG_DATATYPE_Int; break; case 9: Type = SG_DATATYPE_ULong; break; case 10: Type = SG_DATATYPE_Long; break; case 11: Type = SG_DATATYPE_Float; break; case 12: Type = SG_DATATYPE_Double; break; case 13: Type = SG_DATATYPE_Binary; break; } Position = P("FIELD")->asInt() + P("INSERT")->asInt(); m_pTable->Add_Field(P("NAME")->asString(), Type, Position); g_pData->Update(m_pTable, NULL); } }
//--------------------------------------------------------- void CVIEW_Map_3D::On_Command(wxCommandEvent &event) { switch( event.GetId() ) { default: return; //----------------------------------------------------- case ID_CMD_MAP3D_PARAMETERS: { Parameters_Update(true); if( DLG_Parameters(&m_Parameters) ) { Parameters_Update(false); } } return; //----------------------------------------------------- case ID_CMD_MAP3D_SAVE: { int FileType; wxString FileName; CSG_Parameters P(NULL, _TL("Image Resolution"), _TL("")); P.Add_Value(NULL, "NX", _TL("Width" ), _TL(""), PARAMETER_TYPE_Int, m_pPanel->GetSize().x, 1, true); P.Add_Value(NULL, "NY", _TL("Height"), _TL(""), PARAMETER_TYPE_Int, m_pPanel->GetSize().y, 1, true); if( DLG_Image_Save(FileName, FileType) && DLG_Parameters(&P) ) { Set_Buisy_Cursor(true); if( P("NX")->asInt() == m_pPanel->GetSize().x && P("NY")->asInt() == m_pPanel->GetSize().y ) { m_pPanel->Save_asImage(&FileName); } else { wxSize Size(m_pPanel->GetSize()); Freeze(); m_pPanel->SetSize(P("NX")->asInt(), P("NY")->asInt()); m_pPanel->Save_asImage(&FileName); m_pPanel->SetSize(Size); Thaw(); } Set_Buisy_Cursor(false); } } return; //----------------------------------------------------- case ID_CMD_MAP3D_SEQ_POS_EDIT: { DLG_Table(_TL("Edit 3D-View Sequencer Positions"), m_pPanel->m_Parameters("PLAY")->asTable()); } return; //----------------------------------------------------- case ID_CMD_MAP3D_SEQ_POS_ADD : m_pPanel->Play_Pos_Add(); return; case ID_CMD_MAP3D_SEQ_POS_DEL : m_pPanel->Play_Pos_Del(); return; case ID_CMD_MAP3D_SEQ_POS_DEL_ALL: m_pPanel->Play_Pos_Clr(); return; case ID_CMD_MAP3D_SEQ_PLAY : m_pPanel->Play_Once (); return; case ID_CMD_MAP3D_SEQ_PLAY_LOOP : m_pPanel->Play_Loop (); return; case ID_CMD_MAP3D_SEQ_SAVE : { int Type; wxString File; if( DLG_Image_Save(File, Type) ) { m_pPanel->m_Parameters("PLAY_FILE")->Set_Value(File.wc_str()); m_pPanel->Play_Save(); } } return; //----------------------------------------------------- case ID_CMD_MAP3D_ROTATE_X_LESS : m_pPanel->Get_Projector().Set_xRotation(m_pPanel->Get_Projector().Get_xRotation() + 4.0 * M_DEG_TO_RAD); break; case ID_CMD_MAP3D_ROTATE_X_MORE : m_pPanel->Get_Projector().Set_xRotation(m_pPanel->Get_Projector().Get_xRotation() - 4.0 * M_DEG_TO_RAD); break; case ID_CMD_MAP3D_ROTATE_Y_LESS : m_pPanel->Get_Projector().Set_yRotation(m_pPanel->Get_Projector().Get_yRotation() + 4.0 * M_DEG_TO_RAD); break; case ID_CMD_MAP3D_ROTATE_Y_MORE : m_pPanel->Get_Projector().Set_yRotation(m_pPanel->Get_Projector().Get_yRotation() - 4.0 * M_DEG_TO_RAD); break; case ID_CMD_MAP3D_ROTATE_Z_LESS : m_pPanel->Get_Projector().Set_zRotation(m_pPanel->Get_Projector().Get_zRotation() + 4.0 * M_DEG_TO_RAD); break; case ID_CMD_MAP3D_ROTATE_Z_MORE : m_pPanel->Get_Projector().Set_zRotation(m_pPanel->Get_Projector().Get_zRotation() - 4.0 * M_DEG_TO_RAD); break; case ID_CMD_MAP3D_SHIFT_X_LESS : m_pPanel->Get_Projector().Set_xShift(m_pPanel->Get_Projector().Get_xShift() - 10.0); break; case ID_CMD_MAP3D_SHIFT_X_MORE : m_pPanel->Get_Projector().Set_xShift(m_pPanel->Get_Projector().Get_xShift() + 10.0); break; case ID_CMD_MAP3D_SHIFT_Y_LESS : m_pPanel->Get_Projector().Set_yShift(m_pPanel->Get_Projector().Get_yShift() + 10.0); break; case ID_CMD_MAP3D_SHIFT_Y_MORE : m_pPanel->Get_Projector().Set_yShift(m_pPanel->Get_Projector().Get_yShift() - 10.0); break; case ID_CMD_MAP3D_SHIFT_Z_LESS : m_pPanel->Get_Projector().Set_zShift(m_pPanel->Get_Projector().Get_zShift() - 10.0); break; case ID_CMD_MAP3D_SHIFT_Z_MORE : m_pPanel->Get_Projector().Set_zShift(m_pPanel->Get_Projector().Get_zShift() + 10.0); break; // case ID_CMD_MAP3D_DRAW_BOX : m_pPanel->m_Parameters("DRAW_BOX" )->Set_Value(m_pPanel->m_Parameters("DRAW_BOX" )->asBool() == true ); break; case ID_CMD_MAP3D_STEREO : m_pPanel->m_Parameters("STEREO" )->Set_Value(m_pPanel->m_Parameters("STEREO" )->asBool() == false ); break; case ID_CMD_MAP3D_STEREO_LESS : m_pPanel->m_Parameters("STEREO_DIST" )->Set_Value(m_pPanel->m_Parameters("STEREO_DIST" )->asDouble() - 2 ); break; case ID_CMD_MAP3D_STEREO_MORE : m_pPanel->m_Parameters("STEREO_DIST" )->Set_Value(m_pPanel->m_Parameters("STEREO_DIST" )->asDouble() + 2 ); break; case ID_CMD_MAP3D_CENTRAL : m_pPanel->m_Parameters("CENTRAL" )->Set_Value(m_pPanel->m_Parameters("CENTRAL" )->asBool() == false ); break; case ID_CMD_MAP3D_CENTRAL_LESS : m_pPanel->m_Parameters("CENTRAL_DIST")->Set_Value(m_pPanel->m_Parameters("CENTRAL_DIST")->asDouble() - 50 ); break; case ID_CMD_MAP3D_CENTRAL_MORE : m_pPanel->m_Parameters("CENTRAL_DIST")->Set_Value(m_pPanel->m_Parameters("CENTRAL_DIST")->asDouble() + 50 ); break; case ID_CMD_MAP3D_INTERPOLATED : m_pPanel->m_Parameters("DRAPE_MODE" )->Set_Value(m_pPanel->m_Parameters("DRAPE_MODE" )->asInt() == 0 ? 1 : 0 ); break; case ID_CMD_MAP3D_EXAGGERATE_LESS: m_pPanel->m_zScale -= 0.5; break; case ID_CMD_MAP3D_EXAGGERATE_MORE: m_pPanel->m_zScale += 0.5; break; // case ID_CMD_MAP3D_SRC_RES_LESS : m_pPanel->; break; // case ID_CMD_MAP3D_SRC_RES_MORE : m_pPanel->; break; } Parameters_Update(true); m_pPanel->Update_View(); }
//--------------------------------------------------------- void CWKSP_Module_Manager::_Make_HTML_Docs(void) { CSG_Parameters Options(NULL, LNG("Create HTML Documentation"), LNG("")); Options.Add_FilePath(NULL, "DIR", LNG("Choose Documentation Folder"), LNG(""), NULL, NULL, true, true); if( !DLG_Parameters(&Options) ) { return; } //----------------------------------------------------- bool bDirectory; CSG_File Stream_Module, Stream_Lib, Stream_Libs, Stream_List; wxString LibName, Directory, Main, s; wxFileName FileName; MSG_General_Add(wxString::Format(wxT("%s..."), LNG("Creating module documentation files")), true, true); bDirectory = wxDirExists(Options("DIR")->asString()); Directory = bDirectory ? Options("DIR")->asString() : SG_File_Get_Path(g_pSAGA->Get_App_Path()).c_str(); //----------------------------------------------------- FileName.AssignDir (Directory); FileName.SetExt (wxT("html")); FileName.SetName (wxT("index")); Stream_Libs.Open(FileName.GetFullPath().c_str(), SG_FILE_W, false); Stream_Libs.Printf(SG_T("<html><head><title>SAGA - System for Automated Geoscientific Analyses</title></head><body>")); Stream_Libs.Printf(SG_T("<h1><a href=\"http://www.saga-gis.org\">SAGA - System for Automated Geoscientific Analyses</a></h1>")); Stream_Libs.Printf(SG_T("<h2>%s</h2>\n<ul>\n"), LNG("Module Library Descriptions")); Main = FileName.GetFullPath(); //----------------------------------------------------- for(int i=0; i<Get_Count() && PROGRESSBAR_Set_Position(i, Get_Count()); i++) { LibName = SG_File_Get_Name(Get_Library(i)->Get_File_Name(), false).c_str(); FileName.AssignDir (bDirectory ? Directory.c_str() : SG_File_Get_Path(Get_Library(i)->Get_File_Name()).c_str()); FileName.AppendDir (LibName); FileName.SetExt (wxT("html")); if( wxDirExists(FileName.GetPath()) || wxMkdir(FileName.GetPath()) ) { //--------------------------------------------- // create a frame FileName.SetName(wxT("index")); if( Stream_Lib.Open(FileName.GetFullPath().c_str(), SG_FILE_W, false) ) { if( Stream_Libs.is_Open() ) { s = Get_FilePath_Relative(Directory.c_str(), FileName.GetFullPath().c_str()).c_str(); if( s[0] == '\\' ) s = s.AfterFirst('\\'); if(s[0]=='/') s = s.AfterFirst('/'); Stream_Libs.Printf(wxT("<li><a href=\"%s\">%s</a></li>\n"), s.c_str(), Get_Library(i)->Get_Name().c_str()); } Stream_Lib.Printf(SG_T("<html><head><title>SAGA - System for Automated Geoscientific Analyses</title></head>")); Stream_Lib.Printf(SG_T("<frameset cols=\"200,*\" frameborder=\"0\" framespacing=\"0\" border=\"0\">")); Stream_Lib.Printf(SG_T(" <frame frameborder=\"0\" noresize src=\"modules.html\" name=\"MODULES\">")); Stream_Lib.Printf(SG_T(" <frame frameborder=\"0\" noresize src=\"%s.html\" name=\"CONTENT\">") , LibName.c_str()); Stream_Lib.Printf(SG_T("</frameset></html>")); } //--------------------------------------------- // write the modules if( bDirectory ) s = wxT("./../index"); else s = Get_FilePath_Relative(Main.c_str(), FileName.GetFullPath().c_str()).c_str(); if( s[0] == '\\' ) s = s.AfterFirst('\\'); if(s[0]=='/') s = s.AfterFirst('/'); FileName.SetName(wxT("modules")); Stream_List.Open(FileName.GetFullPath().c_str(), SG_FILE_W, false); Stream_List.Printf(SG_T("<body bgcolor=\"#CCCCCC\">")); Stream_List.Printf(SG_T("<b><a target=\"_top\" href=\"http://www.saga-gis.org\">SAGA</a></b><hr>")); Stream_List.Printf(SG_T("<b><a target=\"_top\" href=\"%s.html\">%s</a></b><hr>"), s.c_str(), LNG("Library Overview")); Stream_List.Printf(SG_T("<b><a target=\"CONTENT\" href=\"%s.html\">%s</a></b><hr><ul>"), LibName.c_str(), Get_Library(i)->Get_Name().c_str()); FileName.SetName(LibName); if( Stream_Lib.Open(FileName.GetFullPath().c_str(), SG_FILE_W, false) ) { Stream_Lib.Printf(wxT("%s<hr><ul>"), Get_Library(i)->Get_Description().c_str()); for(int j=0; j<Get_Library(i)->Get_Count(); j++) { FileName.SetName(wxString::Format(wxT("%s_%02d"), LibName.c_str(), Get_Library(i)->Get_Module(j)->Get_Index())); if( Stream_Module.Open(FileName.GetFullPath().c_str(), SG_FILE_W, false) ) { Stream_Module.Printf(wxT("%s"), Get_Library(i)->Get_Module(j)->Get_Description().c_str()); Stream_Lib .Printf(wxT("<li><a target=\"CONTENT\" href=\"%s\">%s</a></li>"), FileName.GetFullName().c_str(), Get_Library(i)->Get_Module(j)->Get_Name().c_str()); Stream_List.Printf(wxT("<li><a target=\"CONTENT\" href=\"%s\">%s</a></li>"), FileName.GetFullName().c_str(), Get_Library(i)->Get_Module(j)->Get_Name().c_str()); } } } } } //----------------------------------------------------- if( Stream_Libs.is_Open() ) { Stream_Libs.Printf(wxT("</ul>")); } PROCESS_Set_Okay(true); MSG_General_Add(LNG("okay"), false, false, SG_UI_MSG_STYLE_SUCCESS); }