RVC Data File&,HQY`gmpsvy0D0(T >HyperIndexData Loggingl)6M&E |(||$|H84$8$\ , $$pX start1$@$@starwhitecircle$@$@starwhiterect$@$@staroutline$@$@staroutcircle$@$@star_in_rectang$@$@staroutinscirc$@$@starincircleng$@$@starfly1ectang$@$@star3dwhite1ng $@$@star3dwhite2ng $@$@starred3dctang $@$@starblack1tang $@$@starblack2tang $@$@starcircleoutg$@$@startbigcircle$@$@starbigcircsol$@$@starinbigcircl$@$@starinbigoutlin$@$@starandstarang$@$@startandstartr$@$@starandstarwhg$@$@P@P`0((0Starsset11different star symbols` '` '` 'Master.Easting de 1456456456  helptips_txtb b -b -HTS 6DH TcvDrhelp_htmlb 0b b XT=VTX-%%%8%`cn4MV8]I-,Ydqt P@P`0((0ToolBarIconb0#b0#b0#datalog1Data LoggingML Script cdromtb0"l)6l)6 F J<0RP X]PbdkDl no8`q08rtuwx{ |0~\H|<0hP|hitpZpMP,58 (7R43210/.-,+*>p@0$ >p" >p >p ?>pxh$D>pd>p" X>p>pXCE>pF(bP>pFPF 3H4>p" (>pHk$>p0ZKNWaf>p"  >p  >p( L5>p( FVpFd@0 [ G>pFF0 I V2_SRV_SETTINGSSettings for Single Record viewl -l -l -SML_ToolBarV2_SRV_SETTINGSSettings for Single Record viewl, l, l, SML_ToolBarV2_SRV_SETTINGSSettings for Single Record viewl ,l ,l ,SML_ToolBar { ShowStyle 0 StyleOnTop 0 StyleType 0 Height 39 Width 118 X 0 Y 0 } SRV_SETTINGSSettings for Single Record viewl l l SML_ToolBar { ShowStyle 0 StyleOnTop 0 StyleType 0 Height 39 Width 118 X 0 Y 0 } SRV_SETTINGSSettings for Single Record viewl l l SML_ToolBarSRV_SETTINGSSettings for Single Record viewl l l SML_ToolBarMode 1 Height 536 Width 735 X 641 Y 187 spacex 40 spacey 10 vertical 1 BackgroundColor 0 53247 53247 31872 DrawColor 0 0 0 31872 FillColor 0 65535 65535 31872 SelectedColor 0 57343 57343 31872 HiddenColor 0 57343 57343 31872 DisabledColor 57343 53247 53247 0 TextStyle { StyleFlags 0 FGColor 0 0 0 0 BGColor 0 0 0 0 GlyphRotation 0 GlyphAspect 0 Shear 0 Height 10 LineSpace 0 FontFlags 0 MapScale 0 Font stork.of HeightUnits 3 SpaceUnits 0 } #-------------------------------------------------------------- # Read all the settings for a single help tip out of the # helptips.txt resource. proc SetTip(class INIHANDLE ini, class ToolTip tip, tipgroup$, name$) { dftcolor$ = IniReadString(tipgroup$, "Color"); tipgroup$ = IniReadString(tipgroup$, name$); tip.Disabled = 1; # We'll reenable it, resetting it's timer later if (tipgroup$ != "") { tip.String = IniReadString(tipgroup$, "Tip"); color$ = IniReadString(tipgroup$, "Color"); if (color$ == "") color$ = dftcolor$; if (color$ == "") { tip.BackgroundColor = defaultTipColor; } else { tipcolor.Name = color$; tip.BackgroundColor = tipcolor; # The following will work shortly after 6.0 ships #tip.BackgroundColor.Name = color$; } duration = IniReadNumber(tipgroup$, "Duration", 5); tip.Delay = tipDelay * 1000; # Stored in seconds, tips want milliseconds tipDelay += duration; # delay for next tip tip.Disabled = 0; } } proc SetHelpTip(tracking) { pt = ViewTransPointViewToLayer(view, MasterLayer, point_tool.point); if (tracking == -1 || !inPointTool) { tipgroup$ = "NoTips"; nearpt = 0; } else if (!gpsport || GPSNumSources() < 1 || gpsport.Status != "Good") { tipgroup$ = "GPSNoSource"; } else if (gpsOffScreen) { tipgroup$ = "GPSOffScreen"; } else if (tracking) { tipgroup$ = "GPSTrackingOn"; } else { tipgroup$ = "GPSTrackingOff"; } if (tracking != -1) { nearpt = (point_tool.HasPosition && PinmapLayerFindClosest(MasterLayer, pt, 50, dist) > 0); } if (tipgroup$ != lasttipgroup$ || nearpt != lastnearpt) { lasttipgroup$ = tipgroup$; lastnearpt = nearpt; ini = IniOpenScriptResource("helptips.txt"); tipDelay = 2; # 2 seconds before first tip shows if (nearpt) { SetTip(ini, helptip0, "ToolNearPoint", "1"); } else { helptip0.Disabled = 1; } SetTip(ini, helptip1, tipgroup$, "1"); SetTip(ini, helptip2, tipgroup$, "2"); SetTip(ini, helptip3, tipgroup$, "3"); SetTip(ini, helptip4, tipgroup$, "4"); SetTip(ini, helptip5, tipgroup$, "5"); SetTip(ini, helptip6, tipgroup$, "6"); SetTip(ini, helptip7, tipgroup$, "7"); IniClose(ini); } } #-------------------------------------------------------------- # Check to see if the GPS is on screen or not. Set or clear # gpsOffScreen proc CheckGPS() { pt = TransPoint2D(gpsport.LastData.position, ViewGetTransMapToView(view, LatLonProj)); pt = TransPoint2D(pt, ViewGetTransViewToScreen(view)); gpsOffScreen = 0; if (pt.x < 0 || pt.y < 0 || pt.x >= view.DrawingArea.Width || pt.y >= view.DrawingArea.Height) { gpsOffScreen = 1; } } #-------------------------------------------------------------- # Function to call on GPS poll (once a second, moving or not) proc CB_GPSPoll() { # Set gpsOffScreen to 1 if it's off the screen CheckGPS(); if (lasttipgroup$ != "NoTips") { SetHelpTip(point_tool.TrackGPS); } } #-------------------------------------------------------------- # # The Record editing dialog # class DBEDITOR_SingleRecordWidget Editor; class XmForm EditMainForm; currentTable$ = ""; team$ = IniReadString("datalogger", "team"); proc EditRecordClose() { if (currentTable$ != "") { DialogClose(EditMainForm); MasterLayer.ActiveElem = 0; if (recordNum > 0){ ViewDrawPinmapElement(view, MasterLayer, recordNum); recordNum = 0; } editRecNum = 0; currentTable$ = ""; } SetHelpTip(point_tool.TrackGPS); } proc cbEditRecordOK() { rec = DBEditorSingleRecordWidgetSaveChanges(Editor); if (rec > 0) { # Note, need to get then from the Editor directly. pt.y = DBEditorSingleRecordWidgetGetFieldNum(Editor, "Northing"); pt.x = DBEditorSingleRecordWidgetGetFieldNum(Editor, "Easting"); layerIDNum = DBEditorSingleRecordWidgetGetFieldNum(Editor, "ID"); team$ = DBEditorSingleRecordWidgetGetFieldStr(Editor, "Team"); IniWriteString("datalogger", "team", team$); if(editRecNum == 0) { TableWriteRecord(MasterDBTInfo, 0, layerIDNum, pt.y, pt.x, currentTable$); } else { TableWriteRecord(MasterDBTInfo, layerIDNum, layerIDNum, pt.y, pt.x, currentTable$); } } EditRecordClose(); } proc cbEditRecordDelete() { if (PopupYesNo("Are you sure you want to delete this record?", 0)) { tinfo = DatabaseGetTableInfo(MasterDBase, currentTable$); RecordDelete(tinfo, editRecNum); RecordDelete(MasterDBTInfo, recordNum); EditRecordClose(); } } proc cbEditRecordCancel() { EditRecordClose(); } #----------------------------------------------------------------------- # # This opens the form # proc EditRecord(table$) { pt = ViewTransPointViewToLayer(view, MasterLayer, point_tool.point); SetHelpTip(-1); # Shut them off while editing. Too destracting layerIDNum = MasterDBTInfo.NumRecords + 1; if (editRecNum > 0) { MasterLayer.NoDrawActiveElem = 1; MasterLayer.ActiveElem = recordNum; ViewRedraw(view); } tinfo = DatabaseGetTableInfo(MasterDBase, table$); EditMainForm = CreateFormDialog(tinfo.Description); okitem = CreatePushButtonItem("OK", cbEditRecordOK); cancelitem = CreatePushButtonItem("Cancel", cbEditRecordCancel); if (editRecNum > 0) { deleteitem = CreatePushButtonItem("Delete", cbEditRecordDelete); buttonrow = CreateButtonRow(EditMainForm, okitem, deleteitem, cancelitem); } else { buttonrow = CreateButtonRow(EditMainForm, okitem, cancelitem); } buttonrow.LeftWidget = EditMainForm; buttonrow.RightWidget = EditMainForm; buttonrow.BottomWidget = EditMainForm; sep = CreateHorizontalSeparator(EditMainForm); sep.LeftWidget = EditMainForm; sep.RightWidget = EditMainForm; sep.BottomWidget = buttonrow; Editor = DBEditorSingleRecordWidgetCreate(MasterLayer.LayerManager.DBEditor, table$, EditMainForm); Editor.OKButton = okitem.widget; DBEditorSingleRecordWidgetSetRecord(Editor, editRecNum); DBEditorSingleRecordWidgetSetField(Editor, "Northing", pt.y); DBEditorSingleRecordWidgetSetField(Editor, "Easting", pt.x); if (!editRecNum) { DBEditorSingleRecordWidgetSetField(Editor, "Date", Date()); DBEditorSingleRecordWidgetSetField(Editor, "ID", layerIDNum); DBEditorSingleRecordWidgetSetField(Editor, "Team", team$); } Editor.TopWidget = EditMainForm; Editor.LeftWidget = EditMainForm; Editor.RightWidget = EditMainForm; Editor.BottomWidget = sep; currentTable$ = table$; DialogOpen(EditMainForm); } ################################################################ # # This is the callback function which will be called # when the exit button is pressed. # proc cbQuit(class widget widget) { GPSClose(gpsport); DialogClose(form); } ################################################################ # # This is the callback function which will be called # when the dialog goes away. This can happen either because # we called DialogClose() from our Quit callback or because # the user closed the dialog using the [X] icon on the title bar. # proc cbPopdown(class widget widget) { EditRecordClose(); ViewDestroy(view); LayoutDestroy(layout); DestroyWidget(form); Exit(); # Nothing else from here on! } #------------------------------------------------------------------ # Used to open the button bar should the user close it # proc cbOpenBarform(){ DialogOpen(barform); DialogToTop(barform); } #------------------------------------------------------------------ # # Callback for the database buttonbar. Tables are selected based # on the button's LabelString member # proc cbOpenDatabase(class XmPushButton button) { EditRecordClose(); # In case one was open before dbstring$ = left$(button.LabelString, 3) if(dbstring$ == "Pip") EditRecord("PO"); if(dbstring$ == "Exp") EditRecord("EP"); if(dbstring$ == "Cha") EditRecord("CH"); if(dbstring$ == "Fis") EditRecord("FB"); if(dbstring$ == "Ero") EditRecord("ES"); if(dbstring$ == "Ina") EditRecord("IB"); if(dbstring$ == "Unu") EditRecord("UC"); if(dbstring$ == "Tra") EditRecord("TD"); if(dbstring$ == "In ") EditRecord("IC"); if(dbstring$ == "Roa") EditRecord("RC"); if(dbstring$ == "Rep") EditRecord("RE"); } proc CB_GPSSourceManager() { GPSSourceManagerOpen(); } proc UseGPS() { if (GPSNumSources() > 0) { ToolSetGPS(point_tool, gpsport); point_tool.TrackGPS = 1; } SetHelpTip(point_tool.TrackGPS); # Set the help tip for tracking GPS } #------------------------------------------------------------------ # # Called when user right-clicks on a symbol. Finds which record # it is and pops up the editor for that record proc FindClosest() { EditRecordClose(); # In case one was open before pt = ViewTransPointViewToLayer(view, MasterLayer, point_tool.point); recordNum = PinmapLayerFindClosest(MasterLayer, pt, 50, dist); if (recordNum == 0) { # Nowhere near a point UseGPS(); } else { layerIDNum = TableReadFieldNum(MasterDBTInfo, "ID", recordNum); layerStr$ = TableReadFieldStr(MasterDBTInfo, "Table", recordNum); tinfo = DatabaseGetTableInfo(MasterDBase, layerStr$); editRecNum = TableKeyFieldLookup(tinfo, "ID", layerIDNum); EditRecord(layerStr$); } } #------------------------------------------------------------------ # Called when the point tool is moved. If a table is open, update # the northing/easting fields to the new location proc UpdatePosition() { if (currentTable$ != "") { pt = ViewTransPointViewToLayer(view, MasterLayer, point_tool.point); DBEditorSingleRecordWidgetSetField(Editor, "Northing", pt.y); DBEditorSingleRecordWidgetSetField(Editor, "Easting", pt.x); } SetHelpTip(point_tool.TrackGPS); } #------------------------------------------------------------------ # Called when the user deactivates the HyperIndex tool # proc StartPinmap() { group = layout.FirstGroup; layermanager = GroupOpenLayerManagerWindow(form, group); DialogToTop(form); pt = ViewTransPointViewToLayer(view, group.FirstLayer, view.Center); MasterLayer = GroupQuickAddDBPinmap(group, datafile$, "Tables", "Master", "Easting", "Northing"); MasterLayer.Projection = PinMapProj; MasterLayer.IgnoreExtents = 1; MasterLayer.PointStyle.xsize = 5; MasterLayer.PointStyle.ysize = 5; MasterLayer.PointStyle.MapScale = 10000; MasterLayer.StyleObject = OpenStyleObject(datafile$, "Stars"); MasterLayer.StyleByScript = 1; MasterLayer.Script = 'Symbol$ = "start1" if (Master.Table == "PO") DrawColor$ = "green" else if (Master.Table == "EP") DrawColor$ = "red" else if (Master.Table == "CH") DrawColor$ = "yellow" else if (Master.Table == "FB") DrawColor$ = "orange" else if (Master.Table == "ES") DrawColor$ = "turquoise3" else if (Master.Table == "IB") DrawColor$ = "blue" else if (Master.Table == "UC") DrawColor$ = "pink" else if (Master.Table == "TD") DrawColor$ = "skyblue" else if (Master.Table == "IC") DrawColor$ = "MidnightBlue" else if (Master.Table == "RC") DrawColor$ = "white" else if (Master.Table == "RE") DrawColor$ = "tan3" DrawSymbol = 1'; MasterDBase = PinmapLayerOpenDatabase(MasterLayer, "w"); MasterDBTInfo = DatabaseGetTableInfo(MasterDBase, "Master"); # These get wiped out by help tips, so way do we bother? MasterLayer.DataTip.Field = PinmapLayerGetFieldInfo(MasterLayer, "Master", "Table"); MasterLayer.DataTip.Shown = 1; MasterLayer.DataTipSearchDist = 100; MasterLayer.ShowDataTips = 1; GroupSetActiveLayer(group, MasterLayer); showfeaturesicon.widget.Sensitive = 1; DialogOpen(barform); DialogToTop(barform); ViewRedrawIfNeeded(view); } proc EndPinmap() { inPointTool = 0; showfeaturesicon.widget.Sensitive = 0; DialogClose(barform); MasterLayer = LayerDestroy(MasterLayer); point_tool.TrackGPS = 0; SetHelpTip(-1); } proc CB_PointManaged() { inPointTool = 1; StartPinmap(); point_tool.TransParm = ViewGetTransMapToView( view, PinMapProj ); if (!point_tool.HasPosition) { # Give it a default position point_tool.point = view.Center; # Center of the view } UseGPS(); } ################################################################ ################################################################ # # MAIN PROGRAM # form = CreateFormDialog("Data Logger"); #create the main form WidgetAddCallback(form.Shell.PopdownCallback, cbPopdown); layout = LayoutCreate(); needhyper = 1; if (layoutfile$ != "") { LayoutRead(layout, layoutfile$, layoutname$); group = layout.FirstGroup; } else { obj = SelectInputObject("RASTER,LAYOUT", "Select raster or display layout"); if (obj.Type == "RASTER") { OpenRasterObject(Rast, obj); group = DispCreate2DGroup("group1", layout); layer = GroupQuickAddRasterVar(group, Rast); if (SubObjectNumber(obj.Filename, obj.Number, "*", "HYPER") <= 0) { needhyper = 0; } } else { LayoutRead(layout, obj.Filename, obj.Name); group = layout.FirstGroup; } } view = LayoutCreateView(layout, form, "Data Logger", 640, 480); layermanager = GroupOpenLayerManagerWindow(form, group); view.form.TopWidget = form; view.form.LeftWidget = form; view.form.RightWidget = form; view.form.BottomWidget = form; view.AddGroupIcon.hidden = 1; view.ZoomToGroupIcon.hidden = 1; view.ZoomToLayerIcon.hidden = 1; view.PreviousZoomIcon.hidden = 1; view.ShowDataTips = 1; # 0=none, 1=active layer only, 2=all layers view.ScalePosVisible = 1; view.PositionProjection = LatLonProj; #----------------------------------------------------------------------- # # Buttons for database table icon bar # func class PushButtonItem MakeIcon(name$, color$, iconname$) { class PushButtonItem item; item = CreatePushButtonItem(name$, cbOpenDatabase); icon_color.Name = color$; item.IconClass = "advisor"; item.IconName = iconname$; item.BackgroundColor = icon_color; return(item); } barform = CreateFormDialog("Stream Features", view.IconBar); rc = CreateIconButtonRow(barform, MakeIcon("Pipe Outfall", "green", "op"), MakeIcon("Exposed or Leaking Pipe", "red", "lp"), MakeIcon("Channelization", "yellow", "cs"), MakeIcon("Fish Barrier", "orange", "fb"), MakeIcon("Erosion Site", "turquoise3", "es"), MakeIcon("Inadequate Buffer", "blue", "ib"), MakeIcon("Unusual Condition", "pink", "uc"), MakeIcon("Trash Dumping", "skyblue", "td"), MakeIcon("In or Near Stream Construction", "MidnightBlue", "ic"), MakeIcon("Road or Railroad Cro= "Horizontal"; EPmainRowColumn = CreateRowColumn(EPmainForm); EPmainRowColumn.TopWidget = EPtopRowColumn; EPmainRowColumn.TopOffset = 10; EPmainRowColumn.LeftWidget = EPmainForm; EPmainRowColumn.LeftOffset = 3; EPmainRowColumn.RightWidget = EPmainForm; EPmainRowColumn.RightOffset = 3; EP0promptNum = CreatePromptNum(EPtopRowColumn, "Northing", 12, 3, pt.y, -10000000, 10000000); EP1promptNum = CreatePromptNum(EPtopRowColumn, "Easting", 12, 3, pt.x, -10000000, 10000000); EP0promptStr = CreatePromptStr(EPtopRowColumn, "Date", 12, DateToString(Date())); EP1promptStr = CreatePromptStr(EPtopRowColumn, "Team", 11, "Name"); AlignWidgets(EP0promptNum.label, EP0promptStr.label, EP1promptNum.label, EP1promptStr.label); EP0optionMenu = CreateOptionMenu(EPmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("across bottom", EP0none), CreateMenuItem("along bank", EP0none), CreateMenuItem("manhole", EP0none), CreateMenuItem("Discharging Pipe", EP0none), CreateMenuItem("Other", EP0other)); EP0optionMenu.label.LabelString = "Pipe Is"; ep0str$ = "across bottom"; EP1optionMenu = CreateOptionMenu(EPmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("Earth Channel", EP1none), CreateMenuItem("Concrete Channel", EP1none), CreateMenuItem("Concrete Pipe", EP1none), CreateMenuItem("Smooth Metal", EP1none), CreateMenuItem("Corrugated Metal", EP1none), CreateMenuItem("Plastic", EP1none), CreateMenuItem("Other", EP1other)); EP1optionMenu.label.LabelString = "Type Of Pipe"; ep1str$ = "Earth Channel"; EP2promptNum = CreatePromptNum(EPmainRowColumn, "Pipe Diameter", 6, 2, 0, 0, 100); EP3promptNum = CreatePromptNum(EPmainRowColumn, " Channel Width", 6, 2, 0, 0, 100); EP2optionMenu = CreateOptionMenu(EPmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("Sewage", EP2none), CreateMenuItem("Water Supply", EP2none), CreateMenuItem("Stormwater", EP2none), CreateMenuItem("Unknown", EP2none), CreateMenuItem("Other", EP2other)); EP2optionMenu.label.LabelString = "Purpose of Pipe"; ep2str$ = "Sewage"; EP3optionMenu = CreateOptionMenu(EPmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("Yes", EP3none), CreateMenuItem("No", EP3none)); EP3optionMenu.label.LabelString = "Evidence of Discharge"; ep3str$ = "No"; EP4optionMenu = CreateOptionMenu(EPmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("Clear", EP4none), CreateMenuItem("medium brown", EP4none), CreateMenuItem("dark brown", EP4none), CreateMenuItem("green brown", EP4none), CreateMenuItem("yellow brown", EP4none), CreateMenuItem("green", EP4none), CreateMenuItem("Other", EP4other)); EP4optionMenu.label.LabelString = "Color"; ep4str$ = "Clear"; EP5optionMenu = CreateOptionMenu(EPmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("Sewage", EP5none), CreateMenuItem("oily", EP5none), CreateMenuItem("musky", EP5none), CreateMenuItem("fishy", EP5none), CreateMenuItem("rotton eggs", EP5none), CreateMenuItem("chlorine", EP5none), CreateMenuItem("none", EP5none), CreateMenuItem("Other", EP5other)); EP5optionMenu.label.LabelString = "Odor"; ep5str$ = "none"; EP6optionMenu = CreateOptionMenu(EPmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("1", EP6none), CreateMenuItem("2", EP6none), CreateMenuItem("3", EP6none), CreateMenuItem("4", EP6none), CreateMenuItem("5", EP6none)); EP6optionMenu.label.LabelString = "Severity"; ep6str$ = "1"; EP7optionMenu = CreateOptionMenu(EPmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("1", EP7none), CreateMenuItem("2", EP7none), CreateMenuItem("3", EP7none), CreateMenuItem("4", EP7none), CreateMenuItem("5", EP7none)); EP7optionMenu.label.LabelString = "Correctability"; ep7str$ = "1"; EP8optionMenu = CreateOptionMenu(EPmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("1", EP8none), CreateMenuItem("2", EP8none), CreateMenuItem("3", EP8none), CreateMenuItem("4", EP8none), CreateMenuItem("5", EP8none)); EP8optionMenu.label.LabelString = " !"#$%&'()*+,-./0123456789:;<=>?@ABAccess"; ep8str$ = "1"; EPbottomForm = CreateForm(EPmainForm); EPbottomForm.TopWidget = EPmainRowColumn; EPbottomForm.LeftWidget = EPmainForm; EPbottomForm.RightWidget = EPmainForm; EPbottomForm.LeftOffset = 3; EPbottomForm.RightOffset = 3; EPbottomForm.BottomOffset = 3; EPbottomForm.BottomWidget = EPmainForm; EP0button = CreatePushButton(EPbottomForm, "OK"); EP0button.Width = 50; EP0button.LeftWidget = EPbottomForm; EP0button.LeftOffset = 75; EP1button = CreatePushButton(EPbottomForm, "Cancel"); EP1button.Width = 50; EP1button.LeftWidget = EP0button; EP1button.LeftOffset = 50 WidgetAddCallback(EP0button.ActivateCallback, EPsure); WidgetAddCallback(EP1button.ActivateCallback, EPquit); AlignWidgets(EP1optionMenu.label, EP0optionMenu.label, EP2promptNum.label, EP3promptNum.label, EP2optionMenu.label, EP3optionMenu.label, EP4optionMenu.label, EP5optionMenu.label, EP6optionMenu.label, EP7optionMenu.label, EP8optionMenu.label); if (editRecNum > 0) { MasterLayer.NoDrawActiveElem = 1; MasterLayer.ActiveElem = recordNum; ViewRedraw(view); EP0promptNum.value = TableReadFieldNum(EPdbtinfo, 2, editRecNum); EP1promptNum.value = TableReadFieldNum(EPdbtinfo, 3, editRecNum); EP0promptStr.value = TableReadFieldStr(EPdbtinfo, 4, editRecNum); EP1promptStr.value = TableReadFieldStr(EPdbtinfo, 5, editRecNum); EP0optionMenu.value = TableReadFieldStr(EPdbtinfo, 6, editRecNum); EP1optionMenu.value = TableReadFieldStr(EPdbtinfo, 7, editRecNum); EP2optionMenu.value = TableReadFieldStr(EPdbtinfo, 8, editRecNum); EP2promptNum.value = TableReadFieldNum(EPdbtinfo, 9, editRecNum); EP3promptNum.value = TableReadFieldNum(EPdbtinfo, 10, editRecNum); EP3optionMenu.value = TableReadFieldStr(EPdbtinfo, 11, editRecNum); EP4optionMenu.value = TableReadFieldStr(EPdbtinfo, 12, editRecNum); EP5optionMenu.value = TableReadFieldStr(EPdbtinfo, 13, editRecNum); EP6optionMenu.value = TableReadFieldStr(EPdbtinfo, 14, editRecNum); EP7optionMenu.value = TableReadFieldStr(EPdbtinfo, 15, editRecNum); EP8optionMenu.value = TableReadFieldStr(EPdbtinfo, 16, editRecNum); ep0str$ = TableReadFieldStr(EPdbtinfo, 6, editRecNum); ep1str$ = TableReadFieldStr(EPdbtinfo, 7, editRecNum); ep2str$ = TableReadFieldStr(EPdbtinfo, 8, editRecNum); ep3str$ = TableReadFieldStr(EPdbtinfo, 11, editRecNum); ep4str$ = TableReadFieldStr(EPdbtinfo, 12, editRecNum); ep5str$ = TableReadFieldStr(EPdbtinfo, 13, editRecNum); ep6str$ = TableReadFieldStr(EPdbtinfo, 14, editRecNum); ep7str$ = TableReadFieldStr(EPdbtinfo, 15, editRecNum); ep8str$ = TableReadFieldStr(EPdbtinfo, 16, editRecNum); } DialogOpen(EPmainForm); } #-------------------------------------------------------------- # # The CH input form # class XmForm CHmainForm, CHbottomForm; class XmRowColumn CHtopRowColumn, CHmainRowColumn, CH0rowColumn, CH1rowColumn, CH2rowColumn, CHbottomRowColumn, CH3rowColumn, CH4rowColumn, CH5rowColumn, CH6rowColumn, CH7rowColumn, CH8rowColumn, CH9rowColumn; class XmOptionMenu CH0optionMenu, CH1optionMenu, CH2optionMenu, CH3optionMenu, CH4optionMenu, CH5optionMenu, CH6optionMenu, CH7optionMenu, CH8optionMenu, CH9optionMenu; class XmLabel CH0label, CH1label, CH2label, CHdummy; class XmPushButton CH0button, CH1button; class PromptNum CH0promptNum, CH1promptNum, CH2promptNum, CH3promptNum, CH4promptNum, CH5promptNum; class PromptStr CH0promptStr, CH1promptStr, CH2promptStr; proc CHquit() { DialogClose(CHmainForm); editRecNum = 0; MasterLayer.ActiveElem = 0; tableOpenNumber = 0; if (recordNum > 0){ ViewDrawPinmapElement(view, MasterLayer, recordNum); recordNum = 0; } } proc none() { } proc CHpopdown() { DestroyWidget(CHmainForm); Exit(); } proc CHsave() { if(editRecNum == 0){ layerIDNum = MasterDBTInfo.NumRecords + 1; TableWriteRecord(MasterDBTInfo, 0, layerIDNum, CH0promptNum.value, CH1promptNum.value, "CH"); } else { TableWriteRecord(MasterDBTInfo, layerIDNum, layerIDNum, CH0promptNum.value, CH1promptNum.value, "CH"); } TableWriteRecord(CHdbtinfo, editRecNum, layerIDNum, CH0promptNum.value, CH1promptNum.value, CH0promptStr.value, CH1promptStr.value, ch0str$, CH2promptNum.value, CH3promptNum.value, ch1str$, ch2str$, ch3str$, CH4promptNum.value, CH5promptNum.value, ch4str$, ch5str$, ch6str$); DialogClose(CHmainForm); editRecNum = 0; MasterLayer.ActiveElem = 0; tableOpenNumber = 0; if (recordNum > 0){ ViewDrawPinmapElement(view, MasterLayer, recordNum); recordNum = 0; } } proc CHsure() { if ((PopupYesNo("Save Record?", 0)) == 1) CHsave(); } #------------------------------------------------------------------------- # # These are the Option Menu callbacks used to implement the # Other option # proc CH0none() { ch0str$ = CH0optionMenu.value; } proc CH0other() { ch0str$ = PopupString("Other", "") } proc CH1none() { ch1str$ = CH1optionMenu.value; } proc CH1other() { ch1str$ = PopupString("Other", "") } proc CH2none() { ch2str$ = CH2optionMenu.value; } proc CH2other() { ch2str$ = PopupString("Other", "") } proc CH3none() { ch3str$ = CH3optionMenu.value; } proc CH3other() { ch3str$ = PopupString("Other", "") } proc CH4none() { ch4str$ = CH4optionMenu.value; } proc CH4other() { ch4str$ = PopupString("Other", "") } proc CH5none() { ch5str$ = CH5optionMenu.value; } proc CH5other() { ch5str$ = PopupString("Other", "") } proc CH6none() { ch6str$ = CH6optionMenu.value; } proc CH6other() { ch6str$ = PopupString("Other", "") } #----------------------------------------------------------------------- # # This opens the form # proc CHDialogOpen(){ tableOpenNumber = 3; pt = ViewTransPointViewToLayer(view, MasterLayer, point_tool.point); CHmainForm = CreateFormDialog("Channelization"); #WidgetAddCallback(CHmainForm.Shell.PopdownCallback, CHquit); CHtopRowColumn = CreateRowColumn(CHmainForm, 2); CHtopRowColumn.TopWidget = CHmainForm; CHtopRowColumn.LeftWidget = CHmainForm; CHtopRowColumn.RightWidget = CHmainForm; CHtopRowColumn.LeftOffset = 3; CHtopRowColumn.TopOffset = 3; CHtopRowColumn.RightOffset = 3; CHtopRowColumn.Orientation = "Horizontal"; CHmainRowColumn = CreateRowColumn(CHmainForm); CHmainRowColumn.TopWidget = CHtopRowColumn; CHmainRowColumn.TopOffset = 10; CHmainRowColumn.LeftWidget = CHmainForm; CHmainRowColumn.LeftOffset = 3; CHmainRowColumn.RightWidget = CHmainForm; CHmainRowColumn.RightOffset = 3; CH0promptNum = CreatePromptNum(CHtopRowColumn, "Northing", 12, 3, pt.y, -10000000, 10000000); CH1promptNum = CreatePromptNum(CHtopRowColumn, "Easting", 12, 3, pt.x, -10000000, 10000000); CH0promptStr = CreatePromptStr(CHtopRowColumn, "Date", 12, DateToString(Date())); CH1promptStr = CreatePromptStr(CHtopRowColumn, "Team", 11, "Name"); AlignWidgets(CH0promptNum.label, CH0promptStr.label, CH1promptNum.label, CH1promptStr.label); CH0optionMenu = CreateOptionMenu(CHmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("Concrete", CH0none), CreateMenuItem("Gabion", CH0none), CreateMenuItem("Rip-rap", CH0none), CreateMenuItem("Earth Channel", CH0none), CreateMenuItem("Other", CH0other)); CH0optionMenu.label.LabelString = "Type"; ch0str$ = "Concrete"; CH2promptNum = CreatePromptNum(CHmainRowColumn, "Bottom Width", 6, 2, 0, 0, 100); CH3promptNum = CreatePromptNum(CHmainRowColumn, " Length", 6, 2, 0, 0, 100); CH1optionMenu = CreateOptionMenu(CHmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("Yes", CH1none), CreateMenuItem("No", CH1none)); CH1optionMenu.label.LabelString = "Sediment Deposition"; ch1str$ = "Yes"; CH2optionMenu = CreateOptionMenu(CHmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("Yes", CH2none), CreateMenuItem("No", CH2none)); CH2optionMenu.label.LabelString = "Vegatation Growing"; ch2str$ = "Yes"; CH3optionMenu = CreateOptionMenu(CHmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("No", CH3none), CreateMenuItem("Above", CH3none), CreateMenuItem("Below", CH3none), CreateMenuItem("Both", CH3none)); CH3optionMenu.label.LabelString = "Part of Road Crossing"; ch3str$ = "No"; CH4promptNum = CreatePromptNum(CHmainRowColumn, "Length Above", 6, 2, 0, 0, 100); CH5promptNum = CreatePromptNum(CHmainRowColumn, "Length Below", 6, 2, 0, 0, 100); CH4optionMenu = CreateOptionMenu(CHmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("1", CH4none), CreateMenuItem("2", CH4none), CreateMenuItem("3", CH4none), CreateMenuItem("4", CH4none), CreateMenuItem("5", CH4none)); CH4optionMenu.label.LabelString = "Severity"; ch4str$ = "1"; CH5optionMenu = CreateOptionMenu(CHmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("1", CH5none), CreateMenuItem("2", CH5none), CreateMenuItem("3", CH5none), CreateMenuItem("4", CH5none), CreateMenuItem("5", CH5none)); CH5optionMenu.label.LabelString = "Correctability"; ch5str$ = "1"; CH6optionMenu = CreateOptionMenu(CHmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("1", CH6none), CreateMenuItem("2", CH6none), CreateMenuItem("3", CH6none), CreateMenuItem("4", CH6none), CreateMenuItem("5", CH6none)); CH6optionMenu.label.LabelString = "Access"; ch6str$ = "1"; CHbottomForm = CreateForm(CHmainForm); CHbottomForm.TopWidget = CHmainRowColumn; CHbottomForm.LeftWidget = CHmainForm; CHbottomForm.RightWidget = CHmainForm; CHbottomForm.LeftOffset = 3; CHbottomForm.RightOffset = 3; CHbottomForm.BottomOffset = 3; CHbottomForm.BottomWidget = CHmainForm; CH0button = CreatePushButton(CHbottomForm, "OK"); CH0button.Width = 50; CH0button.LeftWidget = CHbottomForm; CH0button.LeftOffset = 75; CH1button = CreatePushButton(CHbottomForm, "Cancel"); CH1button.Width = 50; CH1button.LeftWidget = CH0button; CH1button.LeftOffset = 50; CHdummy = CreateLabel(CHmainForm, "aaaaaaaaaaaaaaaaaaaaa"); WidgetAddCallback(CH0button.ActivateCallback, CHsure); WidgetAddCallback(CH1button.ActivateCallback, CHquit); AlignWidgets(CH1optionMenu.label, CH0optionMenu.label, CH2promptNum.label, CH3promptNum.label, CH4promptNum.label, CH5promptNum.label, CH2optionMenu.label, CH3optionMenu.label, CH4optionMenu.label, CH5optionMenu.label, CH6optionMenu.label, CHdummy); if (editRecNum > 0) { MasterLayer.NoDrawActiveElem = 1; MasterLayer.ActiveElem = recordNum; ViewRedraw(view); CH0promptNum.value = TableReadFieldNum(CHdbtinfo, 2, editRecNum); CH1promptNum.value = TableReadFieldNum(CHdbtinfo, 3, editRecNum); CH0promptStr.value = TableReadFieldStr(CHdbtinfo, 4, editRecNum); CH1promptStr.value = TableReadFieldStr(CHdbtinfo, 5, editRecNum); CH0optionMenu.value = TableReadFieldStr(CHdbtinfo, 6, editRecNum); CH2promptNum.value = TableReadFieldNum(CHdbtinfo, 7, editRecNum); CH3promptNum.value = TableReadFieldNum(CHdbtinfo, 8, editRecNum); CH1optionMenu.value = TableReadFieldStr(CHdbtinfo, 9, editRecNum); CH2optionMenu.value = TableReadFieldStr(CHdbtinfo, 10, editRecNum); CH3optionMenu.value = TableReadFieldStr(CHdbtinfo, 11, editRecNum); CH4promptNum.value = TableReadFieldNum(CHdbtinfo, 12, editRecNum); CH5promptNum.value = TableReadFieldNum(CHdbtinfo, 13, editRecNum); CH4optionMenu.value = TableReadFieldStr(CHdbtinfo, 14, editRecNum); CH5optionMenu.value = TableReadFieldStr(CHdbtinfo, 15, editRecNum); CH6optionMenu.value = TableReadFieldStr(CHdbtinfo, 16, editRecNum); ch0str$ = TableReadFieldStr(CHdbtinfo, 6, editRecNum); ch1str$ = TableReadFieldStr(CHdbtinfo, 7, editRecNum); ch2str$ = TableReadFieldStr(CHdbtinfo, 8, editRecNum); ch3str$ = TableReadFieldStr(CHdbtinfo, 13, editRecNum); ch4str$ = TableReadFieldStr(CHdbtinfo, 14, editRecNum); ch5str$ = TableReadFieldStr(CHdbtinfo, 15, editRecNum); ch6str$ = TableReadFieldStr(CHdbtinfo, 16, editRecNum); } DialogOpen(CHmainForm); } #-------------------------------------------------------------- # # The FB input form # class XmForm FBmainForm, FBbottomForm; class XmRowColumn FBtopRowColumn, FBmainRowColumn, FBbottomRowColumn; class XmOptionMenu FB0optionMenu, FB1optionMenu, FB2optionMenu, FB3optionMenu, FB4optionMenu, FB5optionMenu, FB6optionMenu, FB7optionMenu, FB8optionMenu, FB9optionMenu; class XmLabel FBdummy, FB0label, FB1label, FB2label; class XmPushButton FB0button, FB1button; class PromptNum FB0promptNum, FB1promptNum, FB2promptNum, FB3promptNum, FB4promptNum, FB5promptNum; class PromptStr FB0promptStr, FB1promptStr, FB2promptStr; proc FBquit() { DialogClose(FBmainForm); editRecNum = 0; MasterLayer.ActiveElem = 0; tableOpenNumber = 0; if (recordNum > 0){ ViewDrawPinmapElement(view, MasterLayer, recordNum); recordNum = 0; } } proc none() { } proc FBpopdown() { DestroyWidget(FBmainForm); Exit(); } proc FBsave() { if(editRecNum == 0){ layerIDNum = MasterDBTInfo.NumRecords + 1; TableWriteRecord(MasterDBTInfo, 0, layerIDNum, FB0promptNum.value, FB1promptNum.value, "FB"); } else { TableWriteRecord(MasterDBTInfo, layerIDNum, layerIDNum, FB0promptNum.value, FB1promptNum.value, "FB"); } TableWriteRecord(FBdbtinfo, editRecNum, layerIDNum, FB0promptNum.value, FB1promptNum.value, FB0promptStr.value, FB1promptStr.value, fb0str$, fb1str$, fb2str$, FB2promptNum.value, FB3promptNum.value, fb3str$, fb4str$, fb5str$); DialogClose(FBmainForm); editRecNum = 0; MasterLayer.ActiveElem = 0; tableOpenNumber = 0; if (recordNum > 0){ ViewDrawPinmapElement(view, MasterLayer, recordNum); recordNum = 0; } } proc FBsure() { if ((PopupYesNo("Save Record?", 0)) == 1) FBsave(); } #------------------------------------------------------------------------- # # These are the Option Menu callbacks used to implement the # Other option # proc FB0none() { fb0str$ = FB0optionMenu.value; } proc FB0other() { fb0str$ = PopupString("Other", "") } proc FB1none() { fb1str$ = FB1optionMenu.value; } proc FB1other() { fb1str$ = PopupString("Other", "") } proc FB2none() { fb2str$ = FB2optionMenu.value; } proc FB2other() { fb2str$ = PopupString("Other", "") } proc FB3none() { fb3str$ = FB3optionMenu.value; } proc FB3other() { fb3str$ = PopupString("Other", "") } proc FB4none() { fb4str$ = FB4optionMenu.value; } proc FB4other() { fb4str$ = PopupString("Other", "") } proc FB5none() { fb5str$ = FB5optionMenu.value; } proc FB5other() { fb5str$ = PopupString("Other", "") } #----------------------------------------------------------------------- # # This opens the form # proc FBDialogOpen(){ tableOpenNumber = 4; pt = ViewTransPointViewToLayer(view, MasterLayer, point_tool.point); FBmainForm = CreateFormDialog("Fish Barrier"); #WidgetAddCallback(FBmainForm.Shell.PopdownCallback, FBquit); FBtopRowColumn = CreateRowColumn(FBmainForm, 2); FBtopRowColumn.TopWidget = FBmainForm; FBtopRowColumn.LeftWidget = FBmainForm; FBtopRowColumn.RightWidget = FBmainForm; FBtopRowColumn.LeftOffset = 3; FBtopRowColumn.TopOffset = 3; FBtopRowColumn.RightOffset = 3; FBtopRowColumn.Orientation = "Horizontal"; FBmainRowColumn = CreateRowColumn(FBmainForm); FBmainRowColumn.TopWidget = FBtopRowColumn; FBmainRowColumn.TopOffset = 10; FBmainRowColumn.LeftWidget = FBmainForm; FBmainRowColumn.LeftOffset = 3; FBmainRowColumn.RightWidget = FBmainForm; FBmainRowColumn.RightOffset = 3; FB0promptNum = CreatePromptNum(FBtopRowColumn, "Northing", 12, 3, pt.y, -10000000, 10000000); FB1promptNum = CreatePromptNum(FBtopRowColumn, "Easting", 12, 3, pt.x, -10000000, 10000000); FB0promptStr = CreatePromptStr(FBtopRowColumn, "Date", 12, DateToString(Date())); FB1promptStr = CreatePromptStr(FBtopRowColumn, "Team", 11, "Name"); AlignWidgets(FB0promptNum.label, FB0promptStr.label, FB1promptNum.label, FB1promptStr.label); FB0optionMenu = CreateOptionMenu(FBmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("Partial", FB0none), CreateMenuItem("Total", FB0none), CreateMenuItem("Temporary", FB0none), CreateMenuItem("Unknown", FB0none)); FB0optionMenu.label.LabelString = "Type"; fb0str$ = "Total"; FB1optionMenu = CreateOptionMenu(FBmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("Dam", FB1none), CreateMenuItem("Road Crossing", FB1none), CreateMenuItem("Channelized", FB1none), CreateMenuItem("Pipe Crossing", FB1none), CreateMenuItem("Natural Falls", FB1none), CreateMenuItem("Beaver Dam", FB1none), CreateMenuItem("Instream Pond", FB1none), CreateMenuItem("Other", FB1other)); FB1optionMenu.label.LabelString = "Type of Barrier"; fb1str$ = "Dam"; FB2optionMenu = CreateOptionMenu(FBmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("Too High", FB2none), CreateMenuItem("Too shallow", FB2none), CreateMenuItem("Too fast", FB2none)); FB2optionMenu.label.LabelString = "Blockage Because"; fb2str$ = "Too High"; FB2promptNum = CreatePromptNum(FBmainRowColumn, "Water Drop", 6, 2, 0, 0, 100); FB3promptNum = CreatePromptNum(FBmainRowColumn, "Water Depth", 6, 2, 0, 0, 100); FB3optionMenu = CreateOptionMenu(FBmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("1", FB3none), CreateMenuItem("2", FB3none), CreateMenuItem("3", FB3none), CreateMenuItem("4", FB3none), CreateMenuItem("5", FB3none)); FB3optionMenu.label.LabelString = "Severity"; fb3str$ = "1"; FB4optionMenu = CreateOptionMenu(FBmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("1", FB4none), CreateMenuItem("2", FB4none), CreateMenuItem("3", FB4none), CreateMenuItem("4", FB4none), CreateMenuItem("5", FB4none)); FB4optionMenu.label.LabelString = "Correctability"; fb4str$ = "1"; FB5optionMenu = CreateOptionMenu(FBmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("1", FB5none), CreateMenuItem("2", FB5none), CreateMenuItem("3", FB5none), CreateMenuItem("4", FB5none), CreateMenuItem("5", FB5none)); FB5optionMenu.label.LabelString = "Access"; fb5str$ = "1"; FBbottomForm = CreateForm(FBmainForm); FBbottomForm.TopWidget = FBmainRowColumn; FBbottomForm.LeftWidget = FBmainForm; FBbottomForm.RightWidget = FBmainForm; FBbottomForm.LeftOffset = 3; FBbottomForm.RightOffset = 3; FBbottomForm.BottomOffset = 3; FBbottomForm.BottomWidget = FBmainForm; FB0button = CreatePushButton(FBbottomForm, "OK"); FB0button.Width = 50; FB0button.LeftWidget = FBbottomForm; FB0button.LeftOffset = 75; FB1button = CreatePushButton(FBbottomForm, "Cancel"); FB1button.Width = 50; FB1button.LeftWidget = FB0button; FB1button.LeftOffset = 50 WidgetAddCallback(FB0button.ActivateCallback, FBsure); WidgetAddCallback(FB1button.ActivateCallback, FBquit); FBdummy = CreateLabel(FBmainForm, "aaaaaaaaaaaaaaaaaaaa"); AlignWidgets(FB1optionMenu.label, FB0optionMenu.label, FB2promptNum.label, FB3promptNum.label, FB2optionMenu.label, FB3optionMenu.label, FB4optionMenu.label, FB5optionMenu.label, FBdummy); if (editRecNum > 0) { MasterLayer.NoDrawActiveElem = 1; MasterLayer.ActiveElem = recordNum; ViewRedraw(view); FB0promptNum.value = TableReadFieldNum(FBdbtinfo, 2, editRecNum); FB1promptNum.value = TableReadFieldNum(FBdbtinfo, 3, editRecNum); FB0promptStr.value = TableReadFieldStr(FBdbtinfo, 4, editRecNum); FB1promptStr.value = TableReadFieldStr(FBdbtinfo, 5, editRecNum); FB0optionMenu.value = TableReadFieldStr(FBdbtinfo,6, editRecNum); FB1optionMenu.value = TableReadFieldStr(FBdbtinfo, 7, editRecNum); FB2optionMenu.value = TableReadFieldStr(FBdbtinfo, 8, editRecNum); FB2promptNum.value = TableReadFieldNum(FBdbtinfo, 9, editRecNum); FB3promptNum.value = TableReadFieldNum(FBdbtinfo, 10, editRecNum); FB3optionMenu.value = TableReadFieldStr(FBdbtinfo, 11, editRecNum); FB4optionMenu.value = TableReadFieldStr(FBdbtinfo, 12, editRecNum); FB5optionMenu.value = TableReadFieldStr(FBdbtinfo, 13, editRecNum); fb0str$ = TableReadFieldStr(FBdbtinfo, 6, editRecNum); fb1str$ = TableReadFieldStr(FBdbtinfo, 7, editRecNum); fb2str$ = TableReadFieldStr(FBdbtinfo, 8, editRecNum); fb3str$ = TableReadFieldStr(FBdbtinfo, 11, editRecNum); fb4str$ = TableReadFieldStr(FBdbtinfo, 12, editRecNum); fb5str$ = TableReadFieldStr(FBdbtinfo, 13, editRecNum);} DialogOpen(FBmainForm); } #-------------------------------------------------------------- # # The ES input form # class XmForm ESmainForm, ESbottomForm; class XmRowColumn EStopRowColumn, ESmainRowColumn, ESbottomRowColumn; class XmOptionMenu ES0optionMenu, ES1optionMenu, ES2optionMenu, ES3optionMenu, ES4optionMenu, ES5optionMenu, ES6optionMenu, ES7optionMenu, ES8optionMenu, ES9optionMenu; class XmLabel ES0label, ES1label, ES2label, ESdummy; class XmPushButton ES0button, ES1button; class PromptNum ES0promptNum, ES1promptNum, ES2promptNum, ES3promptNum, ES4promptNum, ES5promptNum; class PromptStr ES0promptStr, ES1promptStr, ES2promptStr; proc ESquit() { DialogClose(ESmainForm); editRecNum = 0; MasterLayer.ActiveElem = 0; tableOpenNumber = 0; if (recordNum > 0){ ViewDrawPinmapElement(view, MasterLayer, recordNum); recordNum = 0; } } proc none() { } proc ESpopdown() { DestroyWidget(ESmainForm); Exit(); } proc ESsave() { if(editRecNum == 0){ layerIDNum = MasterDBTInfo.NumRecords + 1; TableWriteRecord(MasterDBTInfo, 0, layerIDNum, ES0promptNum.value, ES1promptNum.value, "ES"); } else { TableWriteRecord(MasterDBTInfo, layerIDNum, layerIDNum, ES0promptNum.value, ES1promptNum.value, "ES"); } TableWriteRecord(ESdbtinfo, editRecNum, layerIDNum, ES0promptNum.value, ES1promptNum.value, ES0promptStr.value, ES1promptStr.value, es0str$, es1str$, ES2promptNum.value, ES3promptNum.value, es2str$, es3str$, es4str$, es5str$, es6str$); DialogClose(ESmainForm); MasterLayer.ActiveElem = 0; editRecNum = 0; tableOpenNumber = 0; if (recordNum > 0){ ViewDrawPinmapElement(view, MasterLayer, recordNum); recordNum = 0; } } proc ESsure() { if ((PopupYesNo("Save Record?", 0)) == 1) ESsave(); } #------------------------------------------------------------------------- # # These are the Option Menu callbacks used to implement the # Other option # proc ES0none() { es0str$ = ES0optionMenu.value; } proc ES0other() { es0str$ = PopupString("Other", "") } proc ES1none() { es1str$ = ES1optionMenu.value } proc ES1other() { es1str$ = PopupString("Other", "") } proc ES2none() { es2str$ = ES2optionMenu.value; } proc ES2other() { es2str$ = PopupString("Other", "") } proc ES3none() { es3str$ = ES3optionMenu.value; } proc ES3other() { es3str$ = PopupString("Other", "") } proc ES4none() { es4str$ = ES4optionMenu.value; } proc ES4other() { es4str$ = PopupString("Other", "") } proc ES5none() { es5str$ = ES5optionMenu.value; } proc ES5other() { es5str$ = PopupString("Other", "") } proc ES6none() { es6str$ = ES6optionMenu.value; } proc ES6other() { es6str$ = PopupString("Other", "") } #----------------------------------------------------------------------- # # This opens the form # proc ESDialogOpen(){ tableOpenNumber = 5; pt = ViewTransPointViewToLayer(view, MasterLayer, point_tool.point); ESmainForm = CreateFormDialog("Erosion Site"); #WidgetAddCallback(ESmainForm.Shell.PopdownCallback, ESquit); EStopRowColumn = CreateRowColumn(ESmainForm, 2); EStopRowColumn.TopWidget = ESmainForm; EStopRowColumn.LeftWidget = ESmainForm; EStopRowColumn.RightWidget = ESmainForm; EStopRowColumn.LeftOffset = 3; EStopRowColumn.TopOffset = 3; EStopRowColumn.RightOffset = 3; EStopRowColumn.Orientation = "Horizontal"; ESmainRowColumn = CreateRowColumn(ESmainForm); ESmainRowColumn.TopWidget = EStopRowColumn; ESmainRowColumn.TopOffset = 10; ESmainRowColumn.LeftWidget = ESmainForm; ESmainRowColumn.LeftOffset = 3; ESmainRowColumn.RightWidget = ESmainForm; ESmainRowColumn.RightOffset = 3; ES0promptNum = CreatePromptNum(EStopRowColumn, "Northing", 12, 3, pt.y, -10000000, 10000000); ES1promptNum = CreatePromptNum(EStopRowColumn, "Easting", 12, 3, pt.x, -10000000, 10000000); ES0promptStr = CreatePromptStr(EStopRowColumn, "Date", 12, DateToString(Date())); ES1promptStr = CreatePromptStr(EStopRowColumn, "Team", 11, "Name"); AlignWidgets(ES0promptNum.label, ES0promptStr.label, ES1promptNum.label, ES1promptStr.label); ES0optionMenu = CreateOptionMenu(ESmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("Downcutting", ES0none), CreateMenuItem("Widening", ES0none), CreateMenuItem("Headcutting", ES0none)); ES0optionMenu.label.LabelString = "Type"; es0str$ = "Downcutting"; ES1optionMenu = CreateOptionMenu(ESmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("Bend at Steep Slope", ES1none), CreateMenuItem("Pipe Outfall", ES1none), CreateMenuItem("Below Channelization", ES1none), CreateMenuItem("Below Road Crossing", ES1none), CreateMenuItem("Livestock", ES1none), CreateMenuItem("Natural", ES1none), CreateMenuItem("Other", ES1other)); ES1optionMenu.label.LabelString = "Type of Barrier"; es1str$ = "Natural"; ES2promptNum = CreatePromptNum(ESmainRowColumn, "Length", 6, 2, 0, 0, 100); ES3promptNum = CreatePromptNum(ESmainRowColumn, "Average Bank Height", 6, 2, 0, 0, 100); ES2optionMenu = CreateOptionMenu(ESmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("Crop Field", ES2none), CreateMenuItem("Pasture", ES2none), CreateMenuItem("Lawn", ES2none), CreateMenuItem("Paved", ES2none), CreateMenuItem("Shrubs & Small Trees", ES2none), CreateMenuItem("Forest", ES2none), CreateMenuItem("Multiflora Rose", ES2none), CreateMenuItem("Other", ES2other)); ES2optionMenu.label.LabelString = "Land Use Left Side"; es2str$ = "Crop Field"; ES3optionMenu = CreateOptionMenu(ESmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("Crop Field", ES3none), CreateMenuItem("Pasture", ES3none), CreateMenuItem("Lawn", ES3none), CreateMenuItem("Paved", ES3none), CreateMenuItem("Shrubs & Small Trees", ES3none), CreateMenuItem("Forest", ES3none), CreateMenuItem("Multiflora Rose", ES3none), CreateMenuItem("Other", ES3other)); ES3optionMenu.label.LabelString = "Land Use Left Side"; es3str$ = "Crop Field"; ES4optionMenu = CreateOptionMenu(ESmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("1", ES4none), CreateMenuItem("2", ES4none), CreateMenuItem("3", ES4none), CreateMenuItem("4", ES4none), CreateMenuItem("5", ES4none)); ES4optionMenu.label.LabelString = "Severity"; es4str$ = "1"; ES5optionMenu = CreateOptionMenu(ESmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("1", ES5none), CreateMenuItem("2", ES5none), CreateMenuItem("3", ES5none), CreateMenuItem("4", ES5none), CreateMenuItem("5", ES5none)); ES5optionMenu.label.LabelString = "Correctability"; es5str$ = "1"; ES6optionMenu = CreateOptionMenu(ESmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("1", ES6none), CreateMenuItem("2", ES6none), CreateMenuItem("3", ES6none), CreateMenuItem("4", ES6none), CreateMenuItem("5", ES6none)); ES6optionMenu.label.LabelString = "Access"; es6str$ = "1"; ESbottomForm = CreateForm(ESmainForm); ESbottomForm.TopWidget = ESmainRowColumn; ESbottomForm.LeftWidget = ESmainForm; ESbottomForm.RightWidget = ESmainForm; ESbottomForm.LeftOffset = 3; ESbottomForm.RightOffset = 3; ESbottomForm.BottomOffset = 3; ESbottomForm.BottomWidget = ESmainForm; ES0button = CreatePushButton(ESbottomForm, "OK"); ES0button.Width = 50; ES0button.LeftWidget = ESbottomForm; ES0button.LeftOffset = 75; ES1button = CreatePushButton(ESbottomForm, "Cancel"); ES1button.Width = 50; ES1button.LeftWidget = ES0button; ES1button.LeftOffset = 50 WidgetAddCallback(ES0button.ActivateCallback, ESsure); WidgetAddCallback(ES1button.ActivateCallback, ESquit); ESdummy = CreateLabel(ESmainForm, "aaaaaaaaaaaaaaaaaaaaa"); AlignWidgets(ES1optionMenu.label, ES0optionMenu.label, ES2promptNum.label, ES3promptNum.label, ES2optionMenu.label, ES3optionMenu.label, ES4optionMenu.label, ES5optionMenu.label, ES6optionMenu.label); if (editRecNum > 0) { MasterLayer.NoDrawActiveElem = 1; MasterLayer.ActiveElem = recordNum; ViewRedraw(view); ES0promptNum.value = TableReadFieldNum(ESdbtinfo, 2, editRecNum); ES1promptNum.value = TableReadFieldNum(ESdbtinfo, 3, editRecNum); ES0promptStr.value = TableReadFieldStr(ESdbtinfo, 4, editRecNum); ES1promptStr.value = TableReadFieldStr(ESdbtinfo, 5, editRecNum); ES0optionMenu.value = TableReadFieldStr(ESdbtinfo,6, editRecNum); ES1optionMenu.value = TableReadFieldStr(ESdbtinfo, 7, editRecNum); ES2promptNum.value = TableReadFieldNum(ESdbtinfo, 8, editRecNum); ES3promptNum.value = TableReadFieldNum(ESdbtinfo, 9, editRecNum); ES2optionMenu.value = TableReadFieldStr(ESdbtinfo, 10, editRecNum); ES3optionMenu.value = TableReadFieldStr(ESdbtinfo, 11, editRecNum); ES4optionMenu.value = TableReadFieldStr(ESdbtinfo, 12, editRecNum); ES5optionMenu.value = TableReadFieldStr(ESdbtinfo, 13, editRecNum); ES6optionMenu.value = TableReadFieldStr(ESdbtinfo, 14, editRecNum); es0str$ = TableReadFieldStr(ESdbtinfo, 6, editRecNum); es1str$ = TableReadFieldStr(ESdbtinfo, 7, editRecNum); es2str$ = TableReadFieldStr(ESdbtinfo, 10, editRecNum); es3str$ = TableReadFieldStr(ESdbtinfo, 11, editRecNum); es4str$ = TableReadFieldStr(ESdbtinfo, 12, editRecNum); es5str$ = TableReadFieldStr(ESdbtinfo, 13, editRecNum); es6str$ = TableReadFieldStr(ESdbtinfo, 14, editRecNum);} DialogOpen(ESmainForm); } #-------------------------------------------------------------- # # The IB input form # class XmForm IBmainForm, IBbottomForm; class XmRowColumn IBtopRowColumn, IBmainRowColumn, IBbottomRowColumn; class XmOptionMenu IB0optionMenu, IB1optionMenu, IB2optionMenu, IB3optionMenu, IB4optionMenu, IB5optionMenu, IB6optionMenu, IB7optionMenu, IB8optionMenu, IB9optionMenu; class XmLabel IB0label, IB1label, IB2label, IBdummy; class XmPushButton IB0button, IB1button; class PromptNum IB0promptNum, IB1promptNum, IB2promptNum, IB3promptNum, IB4promptNum, IB5promptNum; class PromptStr IB0promptStr, IB1promptStr, IB2promptStr; proc IBquit() { DialogClose(IBmainForm); editRecNum = 0; MasterLayer.ActiveElem = 0; tableOpenNumber = 0; if (recordNum > 0){ ViewDrawPinmapElement(view, MasterLayer, recordNum); recordNum = 0; } } proc none() { } proc IBpopdown() { DestroyWidget(IBmainForm); Exit(); } proc IBsave() { if(editRecNum == 0){ layerIDNum = MasterDBTInfo.NumRecords + 1; TableWriteRecord(MasterDBTInfo, 0, layerIDNum, IB0promptNum.value, IB1promptNum.value, "IB"); } else { TableWriteRecord(MasterDBTInfo, layerIDNum, layerIDNum, IB0promptNum.value, IB1promptNum.value, "IB"); } TableWriteRecord(IBdbtinfo, editRecNum, layerIDNum, IB0promptNum.value, IB1promptNum.value, IB0promptStr.value, IB1promptStr.value, ib0str$, ib1str$, IB2promptNum.value, IB3promptNum.value, IB4promptNum.value, IB5promptNum.value, ib2str$, ib3str$, ib4str$, ib5str$, ib6str$, ib7str$, ib8str$); DialogClose(IBmainForm); editRecNum = 0; MasterLayer.ActiveElem = 0; tableOpenNumber = 0; if (recordNum > 0){ ViewDrawPinmapElement(view, MasterLayer, recordNum); recordNum = 0; } } proc IBsure() { if ((PopupYesNo("Save Record?", 0)) == 1) IBsave(); } #------------------------------------------------------------------------- # # These are the Option Menu callbacks used to implement the # Other option # proc IB0none() { ib0str$ = IB0optionMenu.value; } proc IB0other() { ib0str$ = PopupString("Other", "") } proc IB1none() { ib1str$ = IB1optionMenu.value; } proc IB1other() { ib1str$ = PopupString("Other", "") } proc IB2none() { ib2str$ = IB2optionMenu.value; } proc IB2other() { ib2str$ = PopupString("Other", "") } proc IB3none() { ib3str$ = IB3optionMenu.value; } proc IB3other() { ib3str$ = PopupString("Other", "") } proc IB4none() { ib4str$ = IB4optionMenu.value; } proc IB4other() { ib4str$ = PopupString("Other", "") } proc IB5none() { ib5str$ = IB5optionMenu.value; } proc IB5other() { ib5str$ = PopupString("Other", "") } proc IB6none() { ib6str$ = IB6optionMenu.value; } proc IB6other() { ib6str$ = PopupString("Other", "") } proc IB7none() { ib7str$ = IB7optionMenu.value; } proc IB7other() { ib7str$ = PopupString("Other", "") } proc IB8none() { ib8str$ = IB8optionMenu.value; } proc IB8other() { ib8str$ = PopupString("Other", "") } #----------------------------------------------------------------------- # # This opens the form # proc IBDialogOpen(){ tableOpenNumber = 6; pt = ViewTransPointViewToLayer(view, MasterLayer, point_tool.point); IBmainForm = CreateFormDialog("Inadequate Buffer"); #WidgetAddCallback(IBmainForm.Shell.PopdownCallback, IBquit); IBtopRowColumn = CreateRowColumn(IBmainForm, 2); IBtopRowColumn.TopWidget = IBmainForm; IBtopRowColumn.LeftWidget = IBmainForm; IBtopRowColumn.RightWidget = IBmainForm; IBtopRowColumn.LeftOffset = 3; IBtopRowColumn.TopOffset = 3; IBtopRowColumn.RightOffset = 3; IBtopRowColumn.Orientation = "Horizontal"; IBmainRowColumn = CreateRowColumn(IBmainForm); IBmainRowColumn.TopWidget = IBtopRowColumn; IBmainRowColumn.TopOffset = 10; IBmainRowColumn.LeftWidget = IBmainForm; IBmainRowColumn.LeftOffset = 3; IBmainRowColumn.RightWidget = IBmainForm; IBmainRowColumn.RightOffset = 3; IB0promptNum = CreatePromptNum(IBtopRowColumn, "Northing", 12, 3, pt.y, -10000000, 10000000); IB1promptNum = CreatePromptNum(IBtopRowColumn, "Easting", 12, 3, pt.x, -10000000, 10000000); IB0promptStr = CreatePromptStr(IBtopRowColumn, "Date", 12, DateToString(Date())); IB1promptStr = CreatePromptStr(IBtopRowColumn, "Team", 11, "Name"); AlignWidgets(IB0promptNum.label, IB0promptStr.label, IB1promptNum.label, IB1promptStr.label); IB0optionMenu = CreateOptionMenu(IBmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("left", IB0none), CreateMenuItem("right", IB0none), CreateMenuItem("both", IB0none)); IB0optionMenu.label.LabelString = "Buffer Inadequate On"; ib0str$ = "left"; IB1optionMenu = CreateOptionMenu(IBmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("left", IB1none), CreateMenuItem("right", IB1none), CreateMenuItem("both", IB1none)); IB1optionMenu.label.LabelString = "Is Stream Unshaded"; ib1str$ = "Natural"; IB2promptNum = CreatePromptNum(IBmainRowColumn, "Buffer Width Left", 6, 2, 0, 0, 100); IB3promptNum = CreatePromptNum(IBmainRowColumn, "Buffer Width Right", 6, 2, 0, 0, 100); IB4promptNum = CreatePromptNum(IBmainRowColumn, "Length Left", 6, 2, 0, 0, 100); IB5promptNum = CreatePromptNum(IBmainRowColumn, "Length Right", 6, 2, 0, 0, 100); IB2optionMenu = CreateOptionMenu(IBmainRowColumn, "aaaaaaaaaaaaaaaa", CreateMenuItem("Crop Field", IB2none), CreateMenuItem("Pasture", IB