Exemplo n.º 1
0
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;
	}
Exemplo n.º 2
0
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);
	}
Exemplo n.º 3
0
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;
	}
Exemplo n.º 4
0
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());
}
Exemplo n.º 5
0
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;
	}
Exemplo n.º 6
0
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);
	}
Exemplo n.º 7
0
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 ();
	}
Exemplo n.º 8
0
void _UI2DViewFullActivateCBK (Widget widget,UI2DView *view,XmPushButtonCallbackStruct *callData)

	{
	if (callData->reason != XmCR_ACTIVATE) return;

	view->Set ((UIDataset ())->Extent ());
	}
Exemplo n.º 9
0
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 ();
	}
Exemplo n.º 10
0
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 ();
	}
Exemplo n.º 11
0
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 ();
	}
Exemplo n.º 12
0
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);
	}
Exemplo n.º 13
0
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;
	}
Exemplo n.º 14
0
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;
	}
Exemplo n.º 15
0
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 ();
	}
Exemplo n.º 16
0
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;
	}
Exemplo n.º 17
0
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);
	}
Exemplo n.º 18
0
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 ();
	}
Exemplo n.º 19
0
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);
}
Exemplo n.º 20
0
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;
	}
Exemplo n.º 21
0
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;
	}
Exemplo n.º 22
0
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 ();
	}
Exemplo n.º 23
0
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;
		}
	}
Exemplo n.º 24
0
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;
	}
Exemplo n.º 25
0
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 ();
	}
Exemplo n.º 26
0
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);
	}
Exemplo n.º 27
0
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 ();
	}
Exemplo n.º 28
0
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;
		}
	}
Exemplo n.º 29
0
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 ();
	}
Exemplo n.º 30
0
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 ();
	}