void RGISAnNetworkBasinProfCBK (Widget widget,RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { DBDataset *dataset = UIDataset (); DBObjData *netData = dataset->Data (); DBObjData *gridData, *tblData; widget = widget; callData = callData; if ((gridData = netData->LinkedData ()) == (DBObjData *) NULL) { CMmsgPrint (CMmsgAppError, "Null Linked Data in: %s %d",__FILE__,__LINE__); return; } tblData = new DBObjData ("",DBTypeTable); tblData->Document (DBDocGeoDomain,netData->Document (DBDocGeoDomain)); tblData->Document (DBDocSubject,"Basin Profiles"); if (UIDataHeaderForm (tblData)) { UIPauseDialogOpen ((char *) "Creating Basin Profiles"); if (RGlibNetworkBasinProf (netData,gridData,tblData) == DBSuccess) workspace->CurrentData (tblData); else delete tblData; UIPauseDialogClose (); } else delete tblData; }
static void _UI2DViewScaleValueChangedCBK (Widget widget,UI2DView *view,XmScaleCallbackStruct *callData) { int value; double dval; DBCoordinate center, size; DBRegion extent, dataEXT = (UIDataset ())->Extent (), viewEXT = view->Extent (); if (callData->reason != XmCR_VALUE_CHANGED) return; value = callData->value; value = value > 0 ? value : 1; dval = (double) value / 100.0; center.X = (viewEXT.UpperRight.X + viewEXT.LowerLeft.X) / 2.0; center.Y = (viewEXT.UpperRight.Y + viewEXT.LowerLeft.Y) / 2.0; size.X = dataEXT.UpperRight.X - dataEXT.LowerLeft.X; size.Y = dataEXT.UpperRight.Y - dataEXT.LowerLeft.Y; size.X = size.X * dval; size.Y = size.Y * dval; center.X = dataEXT.LowerLeft.X + size.X / 2.0 > center.X ? dataEXT.LowerLeft.X + size.X / 2.0 : center.X; center.X = dataEXT.UpperRight.X - size.X / 2.0 < center.X ? dataEXT.UpperRight.X - size.X / 2.0 : center.X; center.Y = dataEXT.LowerLeft.Y + size.Y / 2.0 > center.Y ? dataEXT.LowerLeft.Y + size.Y / 2.0 : center.Y ; center.Y = dataEXT.UpperRight.Y - size.Y / 2.0 < center.Y ? dataEXT.UpperRight.Y - size.Y / 2.0 : center.Y ; viewEXT.LowerLeft.X = center.X - size.X / 2.0; viewEXT.LowerLeft.Y = center.Y - size.Y / 2.0; extent.LowerLeft = viewEXT.LowerLeft; viewEXT.UpperRight.X = center.X + size.X / 2.0; viewEXT.UpperRight.Y = center.Y + size.Y / 2.0; extent.UpperRight = viewEXT.UpperRight; view->Set (extent); }
void RGISAnNetworkCellSlopesCBK (Widget widget,RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { DBDataset *dataset = UIDataset (); DBObjData *netData = dataset->Data (); DBObjData *inGridData, *outGridData; widget = widget; callData = callData; if ((inGridData = netData->LinkedData ()) == (DBObjData *) NULL) { CMmsgPrint (CMmsgAppError,"Null Linked Data in: %s %d",__FILE__,__LINE__); return; } outGridData = DBNetworkToGrid (netData,DBTypeGridContinuous); outGridData->Document (DBDocGeoDomain,inGridData->Document (DBDocGeoDomain)); outGridData->Document (DBDocSubject,"Slope"); if (UIDataHeaderForm (outGridData)) { UIPauseDialogOpen ((char *) "Calculating Slopes"); if (RGlibNetworkCellSlopes (netData,inGridData,outGridData) == DBSuccess) workspace->CurrentData (outGridData); else delete outGridData; UIPauseDialogClose (); } else delete outGridData; }
static void _UI2DViewExtentActivateCBK(Widget widget, UI2DView *view, XmPushButtonCallbackStruct *callData) { DBObjData *data = (UIDataset())->Data(); if (callData->reason != XmCR_ACTIVATE) return; if (data == (DBObjData *) NULL) return; view->Set(data->Extent()); }
void RGISAnalysePointSubbasinHistCBK (Widget widget, RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { char *selection; DBDataset *dataset = UIDataset (); DBObjData *pntData = dataset->Data (); DBObjData *grdData = pntData->LinkedData (); DBObjData *netData; DBObjData *tblData; static Widget selectWidget = (Widget) NULL; if (selectWidget == (Widget) NULL) selectWidget = UISelectionCreate ((char *) "Select Network"); if ((selection = UISelectObject (selectWidget,(DBObjectLIST<DBObject> *) dataset->DataList (),_RGISAnalyseTestNetwork)) == (char *) NULL) return; if ((netData = dataset->Data (selection)) == (DBObjData *) NULL) { return; } tblData = new DBObjData ("",DBTypeTable); tblData->Document (DBDocGeoDomain,pntData->Document (DBDocGeoDomain)); tblData->Document (DBDocSubject,"Subbasin Histogram"); if (UIDataHeaderForm (tblData)) { UIPauseDialogOpen ((char *) "Calculating Histogram"); if (RGlibPointSubbasinHist (pntData,netData,grdData,tblData) == DBSuccess) workspace->CurrentData (tblData); else delete tblData; UIPauseDialogClose (); } else delete tblData; }
static void _RGISGrpPanelNewCBK (Widget widget,RGISGrpPanel *grpPanel,XmAnyCallbackStruct *callData) { char *groupName; DBDataset *dataset = UIDataset (); DBObjData *dbData = dataset->Data (); DBObjTable *groupTable = dbData->Table (DBrNGroups); DBObjTableField *group; DBObjRecord *record; if ((groupName = UIGetString ((char *) "Group Name",16)) == (char *) NULL) return; if (groupTable == (DBObjTable *) NULL) { DBObjTable *items = dbData->Table (DBrNItems); DBObjectLIST<DBObjTable> *tables = dbData->Tables (); DBTableFieldDefinition fieldDefs [] = { DBTableFieldDefinition (groupName, DBTableFieldInt,(char *) "%1d",sizeof (DBByte)), DBTableFieldDefinition () }; tables->Add (groupTable = new DBObjTable (DBrNGroups,fieldDefs)); grpPanel->Groups (groupTable->Fields ()); group = groupTable->Field (groupName); for (record = items->First ();record != (DBObjRecord *) NULL;record = items->Next ()) group->Int (groupTable->Add (record->Name ()),true); } else { groupTable->AddField (group = new DBObjTableField (groupName,DBTableFieldInt,"%1d",sizeof (DBByte))); for (record = groupTable->First ();record != (DBObjRecord *) NULL;record = groupTable->Next ()) group->Int (record,true); } grpPanel->Add (group); }
void RGISAnalysePointSTNCharCBK (Widget widget, RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { DBDataset *dataset = UIDataset (); DBObjData *dbData = dataset->Data (); DBObjTable *pointTable = dbData->Table (DBrNItems); DBObjTableField *cellIDFLD = pointTable->Field (RGlibCellID); DBObjTableField *basinFLD = pointTable->Field (DBrNBasin); DBObjTableField *basinNameFLD = pointTable->Field (RGlibBasinName); DBObjTableField *orderFLD = pointTable->Field (DBrNOrder); DBObjTableField *colorFLD = pointTable->Field (RGlibColor); DBObjTableField *basinCellsFLD = pointTable->Field (RGlibCellNum); DBObjTableField *basinLengthFLD = pointTable->Field (RGlibLength); DBObjTableField *basinAreaFLD = pointTable->Field (RGlibArea); DBObjTableField *interAreaFLD = pointTable->Field (RGlibInterStation); DBObjTableField *nextStationFLD = pointTable->Field (RGlibNextStation); UITable *tableCLS = (UITable *) dbData->Display (UITableName (dbData,pointTable)); UIPauseDialogOpen ((char *) "STN Characteristics"); if ((RGlibPointSTNCharacteristics (dbData) == DBSuccess) && (tableCLS != (UITable *) NULL)) { if (cellIDFLD == (DBObjTableField *) NULL) tableCLS->AddField (pointTable->Field (RGlibCellID)); if (basinFLD == (DBObjTableField *) NULL) tableCLS->AddField (pointTable->Field (DBrNBasin)); if (basinNameFLD == (DBObjTableField *) NULL) tableCLS->AddField (pointTable->Field (RGlibBasinName)); if (orderFLD == (DBObjTableField *) NULL) tableCLS->AddField (pointTable->Field (DBrNOrder)); if (colorFLD == (DBObjTableField *) NULL) tableCLS->AddField (pointTable->Field (RGlibColor)); if (basinCellsFLD == (DBObjTableField *) NULL) tableCLS->AddField (pointTable->Field (RGlibCellNum)); if (basinLengthFLD == (DBObjTableField *) NULL) tableCLS->AddField (pointTable->Field (RGlibLength)); if (basinAreaFLD == (DBObjTableField *) NULL) tableCLS->AddField (pointTable->Field (RGlibArea)); if (interAreaFLD == (DBObjTableField *) NULL) tableCLS->AddField (pointTable->Field (RGlibInterStation)); if (nextStationFLD == (DBObjTableField *) NULL) tableCLS->AddField (pointTable->Field (RGlibNextStation)); tableCLS->Draw (); } UIPauseDialogClose (); }
void _UI2DViewFullActivateCBK (Widget widget,UI2DView *view,XmPushButtonCallbackStruct *callData) { if (callData->reason != XmCR_ACTIVATE) return; view->Set ((UIDataset ())->Extent ()); }
void RGISAnNetworkToGridCBK (Widget widget,RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { char *selection; DBInt dataType; DBDataset *dataset = UIDataset (); DBObjData *netData = dataset->Data (); DBObjTable *cellTable = netData->Table (DBrNCells); DBObjTableField *field; DBObjData *grdData; static Widget select = NULL; if (select == NULL) select = UISelectionCreate ((char *) "Field Selection"); selection = UISelectObject (select,(DBObjectLIST<DBObject> *) (cellTable->Fields ()),DBTableFieldIsSimple); if (selection == (char *) NULL) return; if ((field = cellTable->Field (selection)) == (DBObjTableField *) NULL) { CMmsgPrint (CMmsgAppError,"Corrupt Network Dataset in: %s %d",__FILE__,__LINE__); return; } if (DBTableFieldIsCategory (field) && DBTableFieldIsNumeric (field)) { DBObjData *tmpData; tmpData = new DBObjData ("",DBTypeGrid); tmpData->Document (DBDocGeoDomain,netData->Document (DBDocGeoDomain)); tmpData->Document (DBDocSubject,field->Name ()); if (UIDataHeaderForm (tmpData)) { grdData = DBNetworkToGrid (netData,tmpData->Type ()); grdData->Name (tmpData->Name ()); grdData->Document (DBDocGeoDomain,tmpData->Document (DBDocGeoDomain)); grdData->Document (DBDocSubject,tmpData->Document (DBDocSubject)); grdData->Document (DBDocVersion,tmpData->Document (DBDocVersion)); grdData->Document (DBDocCitationRef,tmpData->Document (DBDocCitationRef)); grdData->Document (DBDocCitationInst,tmpData->Document (DBDocCitationInst)); grdData->Document (DBDocSourceInst,tmpData->Document (DBDocSourceInst)); grdData->Document (DBDocSourcePerson,tmpData->Document (DBDocSourcePerson)); grdData->Document (DBDocOwnerPerson,tmpData->Document (DBDocOwnerPerson)); grdData->Document (DBDocComment,tmpData->Document (DBDocComment)); delete tmpData; } else { return; } } else { if (DBTableFieldIsCategory (field)) dataType = DBTypeGridDiscrete; else if (DBTableFieldIsNumeric (field)) dataType = DBTypeGridContinuous; else { CMmsgPrint (CMmsgAppError,"Invalid field type in: %s %d",__FILE__,__LINE__); return; } grdData = DBNetworkToGrid (netData,dataType); if (UIDataHeaderForm (grdData) == false) { delete grdData; return; } } UIPauseDialogOpen ((char *) "Converting Network to Grid"); if (RGlibNetworkToGrid (netData,field,grdData) == DBSuccess) workspace->CurrentData (grdData); else delete grdData; UIPauseDialogClose (); }
void RGISAnNetworkCellSampleGridCBK (Widget widget, RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { DBDataset *dataset = UIDataset (); DBObjData *netData = dataset->Data (), *grdData = netData->LinkedData (); UIPauseDialogOpen ((char *) "Cell Sampling"); RGlibGridSampling (netData,grdData,true); UIPauseDialogClose (); }
void RGISEditGridRemovePitsCBK (Widget widget, RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { DBDataset *dataset = UIDataset (); DBObjData *grdData = dataset->Data (); DBObjData *netData = grdData->LinkedData (); UIPauseDialogOpen ((char *) "Removing Pits"); RGlibGridRemovePits (netData,grdData); UIPauseDialogClose (); }
static void _RGISMetaDBDeleteCBK (Widget widget,RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { char *subjectSTR = strlen (workspace->Subject ()) > 0 ? workspace->Subject () : (char *) NULL; char *domainSTR = strlen (workspace->Domain ()) > 0 ? workspace->Domain () : (char *) NULL; DBObjMetaEntry *metaEntry; DBDataset *dataset = UIDataset (); if ((metaEntry = UIDatasetMetaData (subjectSTR,domainSTR,DBFault)) != (DBObjMetaEntry *) NULL) dataset->DeleteMetaEntry (metaEntry); }
static void _RGISToolsDuplicateCBK (Widget widget,RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { DBDataset *dataset = UIDataset (); DBObjData *dbData = dataset->Data (), *newData; if (dbData == (DBObjData *) NULL) return; widget = widget; callData = callData; if (UIDataHeaderForm (newData = new DBObjData (*dbData))) workspace->CurrentData (newData); else delete newData; }
void RGISEditNetDistToOceanCBK (Widget widget, RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { DBDataset *dataset = UIDataset (); DBObjData *netData = dataset->Data (); DBNetworkIF *netIF = new DBNetworkIF (netData); UIPauseDialogOpen ((char *) "Calculate Distance to Ocean"); netIF->SetDistToOcean (); UIPauseDialogClose (); delete netIF; }
void RGISEditGridStatsCBK (Widget widget, RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { DBDataset *dataset = UIDataset (); DBObjData *dbData = dataset->Data (); DBGridIF *gridIF = new DBGridIF (dbData); UITable *tableCLS = (UITable *) dbData->Display (UITableName (dbData,dbData->Table (DBrNItems))); if (dbData->Type () == DBTypeGridContinuous) gridIF->RecalcStats (); else gridIF->DiscreteStats (); if (tableCLS != (UITable *) NULL) tableCLS->Draw (); }
void RGISEditNetBuildCBK (Widget widget,RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { DBDataset *dataset = UIDataset (); DBObjData *netData = dataset->Data (); DBNetworkIF *netIF = new DBNetworkIF (netData); UIPauseDialogOpen ((char *) "Building Topological Networks"); netIF->Build (); UIPauseDialogClose (); delete netIF; }
void RGISEditGridRenameLayerCBK (Widget widget, RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { char *layerName; DBDataset *dataset = UIDataset (); DBObjData *dbData = dataset->Data (); DBGridIF *gridIF; if ((layerName = UIGetString ((char *) "Layer Name",DBStringLength)) == (char *) NULL) return; gridIF= new DBGridIF (dbData); gridIF->RenameLayer (layerName); delete gridIF; workspace->CurrentData (dbData); }
void UI2DView::Set (DBRegion region) { int value, sliderSize; double freeLength, dVal; DBRegion dataEXT = (UIDataset ())->Extent (); SetExtent (region); SetActiveExtent (ViewEXT); sliderSize = (int) ((ViewEXT.UpperRight.X - ViewEXT.LowerLeft.X) * 100.0 / (dataEXT.UpperRight.X - dataEXT.LowerLeft.X)); sliderSize = sliderSize < 100 ? sliderSize : 100; sliderSize = sliderSize > 1 ? sliderSize : 1; freeLength = (dataEXT.UpperRight.X - dataEXT.LowerLeft.X) - (ViewEXT.UpperRight.X - ViewEXT.LowerLeft.X); if (freeLength == (double) 0.0) value = 0; else { value = (int) ((ViewEXT.LowerLeft.X - dataEXT.LowerLeft.X) * (100.0 - sliderSize) / freeLength); value = value < 100 - sliderSize ? value : 100 - sliderSize; value = value > 0 ? value : 0; } XmScrollBarSetValues (HorScrollBarW,value,sliderSize,(int) 0x0L,sliderSize,false); sliderSize = (int) ((ViewEXT.UpperRight.Y - ViewEXT.LowerLeft.Y) * 100.0 / (dataEXT.UpperRight.Y - dataEXT.LowerLeft.Y)); sliderSize = sliderSize < 100 ? sliderSize : 100; sliderSize = sliderSize > 1 ? sliderSize : 1; freeLength = (dataEXT.UpperRight.Y - dataEXT.LowerLeft.Y) - (ViewEXT.UpperRight.Y - ViewEXT.LowerLeft.Y); if (freeLength == (double) 0.0) value = 0; else { value = (int) ((dataEXT.UpperRight.Y - ViewEXT.UpperRight.Y) * (100.0 - sliderSize) / freeLength); value = value < 100 - sliderSize ? value : 100 - sliderSize; value = value > 0 ? value : 0; } XmScrollBarSetValues (VerScrollBarW,value,sliderSize,(int) 0x0L,sliderSize,false); dVal = (ViewEXT.UpperRight.X - ViewEXT.LowerLeft.X) / (dataEXT.UpperRight.X - dataEXT.LowerLeft.X) < (ViewEXT.UpperRight.Y - ViewEXT.LowerLeft.Y) / (dataEXT.UpperRight.Y - dataEXT.LowerLeft.Y) ? (ViewEXT.UpperRight.X - ViewEXT.LowerLeft.X) / (dataEXT.UpperRight.X - dataEXT.LowerLeft.X) : (ViewEXT.UpperRight.Y - ViewEXT.LowerLeft.Y) / (dataEXT.UpperRight.Y - dataEXT.LowerLeft.Y); value = (int) (dVal * 100.0); value = value < 100 ? value : 100; value = value > 0 ? value : 0; XmScaleSetValue (ScaleW,value); Draw (); }
static void _UI2DViewVerScrollBarValueChangedCBK(Widget widget, UI2DView *view, XmScrollBarCallbackStruct *callData) { int value, slider, incr, pgIncr; double deltaY, freeLength; DBRegion dataEXT = (UIDataset())->Extent(), viewEXT = view->Extent(); XmScrollBarGetValues(widget, &value, &slider, &incr, &pgIncr); freeLength = (dataEXT.UpperRight.Y - dataEXT.LowerLeft.Y) - (viewEXT.UpperRight.Y - viewEXT.LowerLeft.Y); deltaY = slider == 100 ? 0 : freeLength * value / (100.0 - slider); deltaY -= dataEXT.UpperRight.Y - viewEXT.UpperRight.Y; viewEXT.LowerLeft.Y = viewEXT.LowerLeft.Y - deltaY; viewEXT.UpperRight.Y = viewEXT.UpperRight.Y - deltaY; view->Set(viewEXT); }
void RGISAnalysePointSubbasinCBK (Widget widget, RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { DBDataset *dataset = UIDataset (); DBObjData *pntData = dataset->Data (); DBObjData *netData = pntData->LinkedData (); DBObjData *grdData = DBNetworkToGrid (netData,DBTypeGridDiscrete); grdData->Document (DBDocGeoDomain,netData->Document (DBDocGeoDomain)); grdData->Document (DBDocSubject,"Subbasins"); if (UIDataHeaderForm (grdData)) { UIPauseDialogOpen ((char *) "Creating Subbasin Grid"); if (DBPointToGrid (pntData,netData,grdData) == DBFault) delete grdData; else workspace->CurrentData (grdData); UIPauseDialogClose (); } else delete grdData; }
void RGISAnNetworkBasinGridCBK (Widget widget,RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { DBDataset *dataset = UIDataset (); DBObjData *netData = dataset->Data (); DBObjData *grdData; grdData = DBNetworkToGrid (netData,DBTypeGridDiscrete); grdData->Document (DBDocGeoDomain,netData->Document (DBDocGeoDomain)); grdData->Document (DBDocSubject,netData->Document (DBDocSubject)); if (UIDataHeaderForm (grdData)) { UIPauseDialogOpen ((char *) "Converting Network to Basin Grid"); if (RGlibNetworkBasinGrid (netData,grdData) == DBSuccess) workspace->CurrentData (grdData); else delete grdData; UIPauseDialogClose (); } else delete grdData; }
void RGISAnalysePointSubbasinCenterCBK (Widget widget, RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { DBDataset *dataset = UIDataset (); DBObjData *pntData =dataset->Data (); DBObjTable *pointTable = pntData->Table (DBrNItems); DBObjTableField *massCoordXFLD = pointTable->Field (RGlibMassCoordX); DBObjTableField *massCoordYFLD = pointTable->Field (RGlibMassCoordY); DBObjData *netData = pntData->LinkedData (); UITable *tableCLS = (UITable *) pntData->Display (UITableName (pntData,pointTable)); UIPauseDialogOpen ((char *) "Subbasin Centers"); if ((RGlibPointSubbasinCenter (pntData, netData) == DBSuccess) && (tableCLS != (UITable *) NULL)) { if (massCoordXFLD == NULL) tableCLS->AddField (pointTable->Field (RGlibMassCoordX)); if (massCoordYFLD == NULL) tableCLS->AddField (pointTable->Field (RGlibMassCoordY)); tableCLS->Draw (); } UIPauseDialogClose (); }
static void _RGISToolsExportDMCBK (Widget widget,RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { char *selection; DBDataset *dataset = UIDataset (); DBObjData *data = dataset->Data (); static Widget dirSelect = NULL; widget = widget; workspace = workspace; callData = callData; if (dirSelect == NULL) { if ((dirSelect = UIFileSelectionCreate ((char *) "DM Coverage",NULL,(char *) "M:*",XmFILE_REGULAR)) == NULL) return; } if ((selection = UIFileSelection (dirSelect,False)) == NULL) return; switch (data->Type ()) { case DBTypeGridDiscrete: case DBTypeGridContinuous: DBExportDMGrid (data,selection); break; } }
void RGISAnNetworkHistogramCBK (Widget widget,RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { DBDataset *dataset = UIDataset (); DBObjData *netData = dataset->Data (); DBObjData *grdData = netData->LinkedData (); DBObjData *tblData = new DBObjData ("",DBTypeTable); tblData->Document (DBDocGeoDomain,netData->Document (DBDocGeoDomain)); tblData->Document (DBDocSubject,"Elevation Distribution"); if (UIDataHeaderForm (tblData)) { UIPauseDialogOpen ((char *) "Calculating Histogram"); if (RGlibNetworkHistogram (netData,grdData,tblData) == DBSuccess) workspace->CurrentData (tblData); else delete tblData; UIPauseDialogClose (); } else delete tblData; }
void RGISEditNetAddBasinXYCBK (Widget widget, RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { DBInt basinID; DBDataset *dataset = UIDataset (); DBObjData *dbData =dataset->Data (); DBNetworkIF *netIF = new DBNetworkIF (dbData); DBObjTable *itemTable = dbData->Table (DBrNItems); DBObjTableField *xCoordFLD = itemTable->Field (RGISNetMouthXCoord); DBObjTableField *yCoordFLD = itemTable->Field (RGISNetMouthYCoord); DBCoordinate coord; DBObjRecord *basinRec; UITable *tableCLS = (UITable *) dbData->Display (UITableName (dbData,itemTable)); UIPauseDialogOpen ((char *) "Adding XY Coordinates"); if (xCoordFLD == NULL) { xCoordFLD = new DBObjTableField (RGISNetMouthXCoord,DBTableFieldFloat,(char *) "%10.3f",sizeof (DBFloat4)); itemTable->AddField (xCoordFLD); if (tableCLS != (UITable *) NULL) tableCLS->AddField (xCoordFLD); UIPause (40); } if (yCoordFLD == NULL) { yCoordFLD = new DBObjTableField (RGISNetMouthYCoord,DBTableFieldFloat,(char *) "%10.3f",sizeof (DBFloat4)); itemTable->AddField (yCoordFLD); if (tableCLS != (UITable *) NULL) tableCLS->AddField (yCoordFLD); UIPause (80); } for (basinID = 0;basinID < netIF->BasinNum ();++basinID) { basinRec = netIF->Basin (basinID); if (UIPause (80 + basinID * 20 / netIF->BasinNum ())) goto Stop; coord = netIF->Center (netIF->MouthCell (basinRec)); xCoordFLD->Float (basinRec,coord.X); yCoordFLD->Float (basinRec,coord.Y); } Stop: UIPauseDialogClose (); if (tableCLS != (UITable *) NULL) tableCLS->Draw (); }
static void _RGISToolsExportASCIICBK (Widget widget,RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { char *selection; DBDataset *dataset = UIDataset (); DBObjData *data = dataset->Data (); DBObjTable *table; static Widget fileSelect = NULL; static Widget tableSelect = (Widget) NULL; widget = widget; workspace = workspace; callData = callData; if (tableSelect == (Widget) NULL) tableSelect = UISelectionCreate ((char *) "Table Selection"); if (fileSelect == NULL) fileSelect = UIFileSelectionCreate ((char *) "ASCII Table",NULL,(char *) "*.txt",XmFILE_REGULAR); table = data->Table (UISelectObject (tableSelect,(DBObjectLIST<DBObject> *) data->Tables ())); if (table == (DBObjTable *) NULL) return; if ((selection = UIFileSelection (fileSelect,False)) == NULL) return; DBExportASCIITable (table, selection); }
void RGISEditPointAddXYCBK (Widget widget, RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { DBDataset *dataset = UIDataset (); DBObjData *dbData =dataset->Data (); DBVPointIF *pntIF = new DBVPointIF (dbData); DBObjTable *pointTable = dbData->Table (DBrNItems); DBObjTableField *xCoordFLD = pointTable->Field (RGISEditPointXCoord); DBObjTableField *yCoordFLD = pointTable->Field (RGISEditPointYCoord); DBCoordinate coord; DBObjRecord *pointRec; UITable *tableCLS = (UITable *) dbData->Display (UITableName (dbData,pointTable)); widget = widget; workspace = workspace; callData = callData; UIPauseDialogOpen ((char *) "Adding XY Coordinates"); if (xCoordFLD == NULL) { xCoordFLD = new DBObjTableField (RGISEditPointXCoord,DBTableFieldFloat,"%10.3f",sizeof (DBFloat4)); pointTable->AddField (xCoordFLD); if (tableCLS != (UITable *) NULL) tableCLS->AddField (xCoordFLD); UIPause (40); } if (yCoordFLD == NULL) { yCoordFLD = new DBObjTableField (RGISEditPointYCoord,DBTableFieldFloat,"%10.3f",sizeof (DBFloat4)); pointTable->AddField (yCoordFLD); if (tableCLS != (UITable *) NULL) tableCLS->AddField (yCoordFLD); UIPause (80); } for (pointRec = pntIF->FirstItem (); pointRec != (DBObjRecord *) NULL; pointRec = pntIF->NextItem ()) { if (UIPause (80 + pointRec->RowID () * 20 / pntIF->ItemNum ())) goto Stop; coord = pntIF->Coordinate (pointRec); xCoordFLD->Float (pointRec,coord.X); yCoordFLD->Float (pointRec,coord.Y); } Stop: UIPauseDialogClose (); if (tableCLS != (UITable *) NULL) tableCLS->Draw (); }
static void _RGISGrpPanelDeleteCBK (Widget widget,RGISGrpPanel *grpPanel,XmAnyCallbackStruct *callData) { DBDataset *dataset = UIDataset (); DBObjData *dbData = dataset->Data (); DBObjTable *groupTable = dbData->Table (DBrNGroups); DBObjTableField *group = grpPanel->Current (); static Widget fieldSelect = (Widget) NULL; if (fieldSelect == (Widget) NULL) fieldSelect = UISelectionCreate ((char *) "Group Selection"); if ((groupTable == (DBObjTable *) NULL) || (group == (DBObjTableField *) NULL)) return; if (groupTable->FieldNum () == 1) grpPanel->Groups ((DBObjectLIST<DBObjTableField> *) NULL); grpPanel->Remove (group); groupTable->DeleteField (group); if (groupTable->FieldNum () == 0) { DBObjectLIST<DBObjTable> *tables = dbData->Tables (); tables->Remove (groupTable); delete groupTable; } }
static void _RGISGrpPanelSaveCBK (Widget widget,RGISGrpPanel *grpPanel,XmAnyCallbackStruct *callData) { DBInt rowID; DBDataset *dataset= UIDataset (); DBObjData *dbData = dataset->Data (); DBObjTable *itemTable = dbData->Table (DBrNItems); DBObjTable *groupTable = dbData->Table (DBrNGroups); DBObjTableField *group; DBObjRecord *itemRec, *groupRec; UITable *tableCLS; if (groupTable == (DBObjTable *) NULL) return; group = grpPanel->Current (); for (rowID = 0;rowID < groupTable->ItemNum ();++rowID) { groupRec = groupTable->Item (rowID); itemRec = itemTable->Item (rowID); group->Int (groupRec,(itemRec->Flags () & DBObjectFlagSelected) == DBObjectFlagSelected ? true : false); } if ((tableCLS = (UITable *) dbData->Display (UITableName (dbData,groupTable))) != (UITable *) NULL) tableCLS->Draw (); }
void RGISAnalysePointInterStationTSCBK (Widget widget, RGISWorkspace *workspace,XmAnyCallbackStruct *callData) { char *selection; DBDataset *dataset = UIDataset (); DBObjMetaEntry *metaEntry; DBObjData *pntData = dataset->Data (), *tsData; DBObjTable *relateTBL = pntData->Table (DBrNRelations); DBObjRecord *relateRec; DBObjTableField *relDataFLD; DBObjTableField *relateFLD; DBObjTableField *joinFLD; static Widget selectWidget = (Widget) NULL; if (selectWidget == (Widget) NULL) selectWidget = UISelectionCreate ((char *) "Select Time Series"); if ((selection = UISelectObject (selectWidget,(DBObjectLIST<DBObject> *) relateTBL)) == (char *) NULL) return; if ((relateRec = relateTBL->Item (selection)) == (DBObjRecord *) NULL) { CMmsgPrint (CMmsgAppError, "Relate Record Error in: %s %d",__FILE__,__LINE__); return; } relDataFLD = relateTBL->Field (DBrNRelateData); relateFLD = relateTBL->Field (DBrNRelateField); joinFLD = relateTBL->Field (DBrNRelateJoinField); if ((tsData = dataset->Data (relDataFLD->String (relateRec))) == (DBObjData *) NULL) { if ((metaEntry = dataset->Meta (relDataFLD->String (relateRec))) == (DBObjMetaEntry *) NULL) { CMmsgPrint (CMmsgAppError, "Meta Enrty Finding Error in: %s %d",__FILE__,__LINE__); return; } tsData = new DBObjData (); if (tsData->Read (metaEntry->FileName ()) != DBSuccess) return; } workspace->CurrentData (tsData); UIPauseDialogOpen ((char *) "Calculating"); RGlibPointInterStationTS (pntData,tsData,relateFLD->String (relateRec),joinFLD->String (relateRec)); UIPauseDialogClose (); }