Esempio n. 1
0
static void _UISymbolLoadNamesCBK (Widget widget,Widget list,XmAnyCallbackStruct *callData)

	{
	int symbol, symNum, i, color, *selectPos, selectCount;
	FILE *file;
	char *fileName, buffer [1024], *token, delimit [3];
	static Widget select = NULL;
	UISymbol**editSymbols;
	XmString xmString [1];

	widget = widget; callData = callData;

	if (select == NULL)
		select = UIFileSelectionCreate ((char *) "Symbol Name file Selection",NULL,(char *) "*.txt",XmFILE_REGULAR);

	XtVaGetValues (list,XmNuserData, &editSymbols, NULL);
	XtVaGetValues (list,XmNitemCount, &symNum, NULL);

	if ((fileName =  UIFileSelection (select,true)) == NULL) return;

	if ((file =  fopen (fileName,"r")) == NULL)
		{ CMmsgPrint (CMmsgSysError, "File Openning Error in: %s %d",__FILE__,__LINE__); return; }

	sprintf (delimit,"%c%c",DBASCIISeparator,'\0');
	while (fgets (buffer,sizeof (buffer),file) != NULL)
		{
		token = strtok (buffer,delimit);
		sscanf (token,"%d",&symbol);
		for (i = 0;i < symNum; ++i)
			if (editSymbols [i]->SymbolID () == symbol)
				{
				if ((token = strtok ((char *) NULL,delimit)) != (char *) NULL)
					{
					if (token [0] == '\"' || token [0] == '\'')	{token [strlen (token) - 1] = '\0'; token++; }
					editSymbols [i]->Name (token);
					}
				if ((token = strtok ((char *) NULL,delimit)) != (char *) NULL)
					if (sscanf (token,"%d",&color) == 1)	editSymbols [i]->Foreground (color);
				if ((token = strtok ((char *) NULL,delimit)) != (char *) NULL)
					if (sscanf (token,"%d",&color) == 1)	editSymbols [i]->Background (color);
				xmString [0] = XmStringCreate (editSymbols [i]->Name (),UICharSetNormal);
				XmListReplaceItemsPos (list,xmString,1,i + 1);
				XmStringFree (xmString [0]);
				break;
				}
		}
	if (XmListGetSelectedPos (list,&selectPos,&selectCount))
		{
		XmTextFieldSetString (XtNameToWidget (XtParent (XtParent (XtParent (list))),UISymTextFieldName),editSymbols [selectPos [0]]->Name ());
		XtFree ((char *) selectPos);
		}
	}
Esempio n. 2
0
void UIAuxDirSelectCBK(Widget widget, Widget text, XmAnyCallbackStruct *callData) {
    static Widget select = (Widget) NULL;
    char *pattern, *dirName;
    DBInt selectMode;
    XmString string;

    if (select == NULL)
        select = UIFileSelectionCreate((char *) "Directory Selection", (char *) NULL, (char *) NULL, XmFILE_DIRECTORY);
    XtVaGetValues(text, XmNuserData, &pattern, NULL);
    XtVaGetValues(widget, XmNuserData, &selectMode, NULL);
    if (strlen(pattern) > 0) {
        string = XmStringCreate(pattern, UICharSetNormal);
        XtVaSetValues(select, XmNpattern, string, NULL);
        XmStringFree(string);
    }
    if ((dirName = UIFileSelection(select, selectMode)) != NULL)
        XmTextFieldSetString(text, dirName);
}
Esempio n. 3
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;
		}
	}
Esempio n. 4
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);
	}
Esempio n. 5
0
static void _RGISToolsImportASCIINetCBK (Widget widget,RGISWorkspace *workspace,XmAnyCallbackStruct *callData)

	{
	DBObjData *data = new DBObjData ("",DBTypeNetwork);
	static Widget fileSelect = NULL;

	widget = widget; callData = callData;
	if (fileSelect == NULL) fileSelect = UIFileSelectionCreate ((char *) "GHAAS Data Import",NULL,(char *) "*",XmFILE_REGULAR);
	data->Document (DBDocSubject,"STNetwork");
	if (UIDataHeaderForm (data))
		{
		char *fileName;

		if ((fileName = UIFileSelection (fileSelect,true)) == NULL) { delete data; return; }
		UIPauseDialogOpen ((char *) "Importing Networks");
		if (DBImportASCIINet (data,fileName) == DBFault)	delete data;
		else workspace->CurrentData (data);
		UIPauseDialogClose ();
		}
	else delete data;
	}
Esempio n. 6
0
static void _RGISARCInfoImportFileSelectCBK (Widget widget,Widget coverText,XmAnyCallbackStruct *callData)

	{
	static Widget fileSelect = NULL;
	char *infoFile;

	if (fileSelect == NULL)
		fileSelect = UIFileSelectionCreate ((char *) "ARC/Info Coverage",NULL,(char *) "*",XmFILE_DIRECTORY);

	if ((infoFile = UIFileSelection (fileSelect,true)) != NULL)
		{
		if (_RGISARCTempTable  != (DBObjTable *) NULL) delete _RGISARCTempTable;
		_RGISARCTempTable = new DBObjTable ((char *) "ARCImp Temporary Table");
		if (DBInfoGetFields (_RGISARCTempTable,DBInfoFileName (infoFile,_RGISARCDataType)) == DBFault)
			{ UIMessage ((char *) "Missing Attribute Table"); delete _RGISARCTempTable; _RGISARCTempTable = ( DBObjTable *) NULL; return; }
		XmTextFieldSetString (coverText,infoFile);
		}
	else
		{
		XmTextFieldSetString (coverText,(char *) "");
		if (_RGISARCTempTable != NULL) { delete _RGISARCTempTable; _RGISARCTempTable = NULL; }
		}
	}
Esempio n. 7
0
static void _RGISToolsExportARCInfoCBK (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 *) "ARC/INFO Workspace",NULL,(char *) "w_*",XmFILE_DIRECTORY)) == NULL) return; }
	if ((selection = UIFileSelection (dirSelect,True)) == NULL) return;
	switch (data->Type ())
		{
		case DBTypeVectorPoint: 			_RGISToolsPointExportARCInfo (data,selection);	break;
		case DBTypeVectorLine:				break;
		case DBTypeVectorPolygon:			break;
		case DBTypeGridDiscrete:
		case DBTypeGridContinuous:			_RGISToolsGridExportARCInfo  (data,selection);	break;
		case DBTypeNetwork: 					_RGISToolsNetworkExportARCInfo (data,selection); break;
		case DBTypeTable:						break;
		}
	}
Esempio n. 8
0
static void _RGISToolsImportASCIITableCBK (Widget widget,RGISWorkspace *workspace,XmAnyCallbackStruct *callData)

	{
	static Widget fileSelect = (Widget) NULL;
	DBObjData *data = new DBObjData ("",DBTypeTable);

	widget = widget; callData = callData;
	if (fileSelect == NULL) fileSelect = UIFileSelectionCreate ((char *) "ASCII Import",NULL,(char *) "*.*",XmFILE_REGULAR);

	if (UIDataHeaderForm (data))
		{
		char *fileName;

		if ((fileName = UIFileSelection (fileSelect,true)) == NULL) { delete data; return; }

		if (DBImportASCIITable (data->Table (DBrNItems),fileName) == DBFault)
			{ UIMessage ((char *) "Import failed!"); delete data; return; }

		if (UITableRedefineFields (data->Table (DBrNItems)) != true)	{ delete data;  return; }

		workspace->CurrentData  (data);
		}
	else delete data;
	}
Esempio n. 9
0
static void _RGISToolsExportNetworkCBK (Widget widget,RGISWorkspace *workspace,XmAnyCallbackStruct *callData)

	{
	char *selection;
	FILE *outFILE;
	DBInt cellID, fieldID, fieldNum = 0;
	DBCoordinate coord;
	DBObjRecord *cellRec,*toCellRec, *basinRec;
	DBDataset *dataset = UIDataset ();
	DBObjData *netData = dataset->Data ();
	DBNetworkIF *netIF = new DBNetworkIF (netData);
	DBObjTable *cellTable = netData->Table (DBrNCells);
	DBObjTableField *field, **fields = (DBObjTableField **) NULL;
	static Widget dirSelect = NULL;

	widget = widget; workspace = workspace; callData = callData;

	if (dirSelect == NULL)
		{ if ((dirSelect = UIFileSelectionCreate ((char *) "Network File",NULL,(char *) "*.txt",XmFILE_REGULAR)) == NULL) return; }
	if ((selection = UIFileSelection (dirSelect,False)) == NULL) return;

	if ((outFILE = fopen (selection,"w")) == (FILE *) NULL)
		{ CMmsgPrint (CMmsgSysError, "File Opening Error in: %s %d",__FILE__,__LINE__); return; }
	fprintf (outFILE,"\"CellID\"\t\"XCoord\"\t\"YCoord\"\t\"BasinID\"\t\"ToCell\"\t\"CellArea\"\t\"CellLength\"");
	for (fieldID = 0;fieldID < cellTable->FieldNum (); fieldID++)
		{
		if ((field = cellTable->Field (fieldID)) == (DBObjTableField *) NULL)
			{
			if (fields != (DBObjTableField **) NULL) free (fields);
			CMmsgPrint (CMmsgSysError, "Invalid field in: %s %d",__FILE__,__LINE__);
			return;
			}
		if (field->Required ()) continue;
		if ((fields = (DBObjTableField **) realloc (fields,(fieldNum + 1) * sizeof (DBObjTableField *))) == (DBObjTableField **) NULL)
			{ CMmsgPrint (CMmsgSysError, "Memory allocation error in: %s %d",__FILE__,__LINE__); return; }
		fields [fieldNum] = field;
		fprintf (outFILE,"\t\"%s\"",field->Name ());
		fieldNum++;
		}
	fprintf (outFILE,"\n");

	for (cellID = 0;cellID < netIF->CellNum (); cellID++)
		{
		cellRec = netIF->Cell (cellID);
		coord = netIF->Center (cellRec);
		basinRec = netIF->Basin (cellRec);
		toCellRec = netIF->ToCell (cellRec);
		fprintf (outFILE,"%d\t%f\t%f\t%d\t%d\t%f\t%f",cellRec->RowID () + 1,
														  coord.X, coord.Y,
														  basinRec->RowID () + 1,
														  toCellRec == (DBObjRecord *) NULL ? DBFault : toCellRec->RowID () + 1,
														  netIF->CellArea (cellRec),
														  netIF->CellLength (cellRec));
		for (fieldID = 0;fieldID < fieldNum; fieldID++)
			switch	(fields [fieldID]->Type ())
				{
				default:
				case DBTableFieldString: fprintf (outFILE,"%c\"%s\"",DBASCIISeparator,fields [fieldID]->String (cellRec)); break;
				case DBTableFieldInt:
					if (fields [fieldID]->Int (cellRec) == fields [fieldID]->IntNoData ())
						fprintf (outFILE,"%c",DBASCIISeparator);
					else	fprintf (outFILE,"%c%d",DBASCIISeparator,fields [fieldID]->Int (cellRec));
					break;
				case DBTableFieldFloat:
					if (CMmathEqualValues (fields [fieldID]->Float (cellRec),fields [fieldID]->FloatNoData ()))
						fprintf (outFILE,"%c",DBASCIISeparator);
					else	fprintf (outFILE,"%c%f",DBASCIISeparator,fields [fieldID]->Float (cellRec));
					break;
				case DBTableFieldDate:   fprintf (outFILE,"%c\"%s\"",DBASCIISeparator,fields [fieldID]->String(cellRec)); break;
				}
		fprintf (outFILE,"\n");
		}
	fclose (outFILE);
	}