You are on page 1of 1191

COOL:Plex Java for Dimwits (like me)

Table of Contents
TABLE OF CONTENTS......................................................................................................................................................................................................................1

INTRODUCTION TO THE COOL:PLEX JAVA CLASSES.......................................................................................................................................................12


OVERVIEW.........................................................................................................................................................................................................................................12
COPYRIGHT NOTICES, DISCLAIMERS, AND OTHER LEGAL MUMBO JUMBO......................................................................................................................................13
EVERYDAY TASKS USING THE COOL:PLEX JAVA GENERATOR....................................................................................................................................14
OVERVIEW.........................................................................................................................................................................................................................................14
GETTING COOL:PLEX TO COMPILE SOME JAVA..............................................................................................................................................................................15
THE MYSTERIOUS CLIENT PROPERTIES OBJECT...............................................................................................................................................................................22
CALLING A COOL:PLEX JAVA PROGRAM FROM A HAND CODED JAVA PROGRAM.........................................................................................................................25
CALLING A HAND CODED JAVA PROGRAM FROM A COOL:PLEX JAVA PROGRAM.........................................................................................................................27
DEPLOYING PLEX JAVA APPLICATIONS.............................................................................................................................................................................................30
Java Application...........................................................................................................................................................................................................................30
Deploying Class Files...................................................................................................................................................................................................................................... 30
Deploying a JAR File...................................................................................................................................................................................................................................... 31
Tips on Creating JAR Files............................................................................................................................................................................................................................. 34
Java Applet Web Delivered.......................................................................................................................................................................................................34
Setup on the Server.......................................................................................................................................................................................................................................... 35
Modifications to the HTML............................................................................................................................................................................................................................ 35
Modifications to ob400client.properties.......................................................................................................................................................................................................... 35
MYSTERIOUS ERROR MESSAGES, UFOS AND OTHER ENCOUNTERS OF THE THIRD KIND [OR FOURTH OR FIFTH].....................................................................36
JDK 1.2.2 and Beyond..................................................................................................................................................................................................................36
For Lemmings Only......................................................................................................................................................................................................................37
Multiple JDKs on the Same PC....................................................................................................................................................................................................38
THE COOL:PLEX JAVA CLASS HIERARCHY..........................................................................................................................................................................39
OVERVIEW.........................................................................................................................................................................................................................................39
OBBLDMGR.......................................................................................................................................................................................................................................39
ObBuildClient...............................................................................................................................................................................................................................39
ObBuildConnection......................................................................................................................................................................................................................42
ObBuildInfo..................................................................................................................................................................................................................................44
ObBuildJDBC...............................................................................................................................................................................................................................46
ObBuildManager..........................................................................................................................................................................................................................47
ObBuildQueue..............................................................................................................................................................................................................................49
ObBuildRequest............................................................................................................................................................................................................................50
ObBuildSchema............................................................................................................................................................................................................................51

Page: 1 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObBuildSocketStream...................................................................................................................................................................................................................52
ObBuildStatus...............................................................................................................................................................................................................................53
ObBuildStatusInfo.........................................................................................................................................................................................................................54
ObCompileJava............................................................................................................................................................................................................................56
ObCompileRequest.......................................................................................................................................................................................................................57
ObCompileSource.........................................................................................................................................................................................................................58
ObParseGeneratedSQL................................................................................................................................................................................................................59
ObRetrieveLstFile.........................................................................................................................................................................................................................61
ObRmtBuildRequest......................................................................................................................................................................................................................62
ObSourceFile................................................................................................................................................................................................................................63
ObSQLBuildOption.......................................................................................................................................................................................................................64
OBFUNCTION.....................................................................................................................................................................................................................................65
ObServerApp.................................................................................................................................................................................................................................65
ObVariable...................................................................................................................................................................................................................................66
OBRUN..............................................................................................................................................................................................................................................67
ObComms.....................................................................................................................................................................................................................................67
ObAS400Conversation.................................................................................................................................................................................................................................... 67
ObAS400SocketStream................................................................................................................................................................................................................................... 69
ObAS400SocketStream$AS400DataReading.................................................................................................................................................................................................. 73
ObAS400SocketStream$AS400ErrorHandling............................................................................................................................................................................................... 74
ObAS400SocketStream$ObAS400CallInfo.................................................................................................................................................................................................... 75
ObClientConnect............................................................................................................................................................................................................................................. 76
ObClientListen................................................................................................................................................................................................................................................ 78
ObClientType.................................................................................................................................................................................................................................................. 79
ObConversation............................................................................................................................................................................................................................................... 80
ObDataSocketStream...................................................................................................................................................................................................................................... 81
ObDispatchSocketStream................................................................................................................................................................................................................................ 82
ObNotifyConnect............................................................................................................................................................................................................................................ 83
ObNotifyEvent................................................................................................................................................................................................................................................ 84
ObObjectConversation.................................................................................................................................................................................................................................... 85
ObObjectSocketStream................................................................................................................................................................................................................................... 86
ObRemoteException....................................................................................................................................................................................................................................... 87
ObService........................................................................................................................................................................................................................................................ 88
ObSocketListen............................................................................................................................................................................................................................................... 89
ObSocketService............................................................................................................................................................................................................................................. 90
ObDatabase..................................................................................................................................................................................................................................92
ObDatabaseConnection................................................................................................................................................................................................................................... 92
ObDatabaseMgr.............................................................................................................................................................................................................................................. 93
ObSocketStream.............................................................................................................................................................................................................................................. 95
ObSQLDataTypes........................................................................................................................................................................................................................................... 96
ObSQLTypeConversion.................................................................................................................................................................................................................................. 97
ObValidSQLType........................................................................................................................................................................................................................................... 98
ObEnvironment.............................................................................................................................................................................................................................99

Page: 2 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObException.................................................................................................................................................................................................................................................... 99
ObJavaApi..................................................................................................................................................................................................................................................... 100
ObLog........................................................................................................................................................................................................................................................... 101
ObODBCOptionValues................................................................................................................................................................................................................................. 102
ObOptionsElement........................................................................................................................................................................................................................................ 103
ObOptionsList............................................................................................................................................................................................................................................... 104
ObRunOptions............................................................................................................................................................................................................................................... 105
ObStringResource......................................................................................................................................................................................................................................... 106
ObView......................................................................................................................................................................................................................................................... 107
ObFunction.................................................................................................................................................................................................................................108
ObApplication............................................................................................................................................................................................................................................... 108
ObCall........................................................................................................................................................................................................................................................... 111
ObCallInfo..................................................................................................................................................................................................................................................... 112
ObCallMgr.................................................................................................................................................................................................................................................... 113
ObClientApp................................................................................................................................................................................................................................................. 114
ObFncParameter............................................................................................................................................................................................................................................ 115
ObFunction.................................................................................................................................................................................................................................................... 117
ObFunctionHandler....................................................................................................................................................................................................................................... 119
ObLocalJavaCall........................................................................................................................................................................................................................................... 120
ObMessageLog.............................................................................................................................................................................................................................................. 121
ObMessageLog$ObMenuListener................................................................................................................................................................................................................. 123
ObPanel......................................................................................................................................................................................................................................................... 124
ObRemoteJavaCall........................................................................................................................................................................................................................................ 126
ObRemoteRPGCall....................................................................................................................................................................................................................................... 127
ObServerApp................................................................................................................................................................................................................................................. 128
ObValidElement............................................................................................................................................................................................................................................ 129
ObVariable.................................................................................................................................................................................................................................................... 130
ObVariableGroup.......................................................................................................................................................................................................................................... 131
ObPanel......................................................................................................................................................................................................................................133
ObCtrlData.................................................................................................................................................................................................................................................... 133
ObBeanData.............................................................................................................................................................................................................................................. 133
ObCheckboxData...................................................................................................................................................................................................................................... 134
ObColumnHeadingData............................................................................................................................................................................................................................ 135
ObComboData.......................................................................................................................................................................................................................................... 136
ObControlState......................................................................................................................................................................................................................................... 137
ObCtrlData................................................................................................................................................................................................................................................ 138
ObDialogData........................................................................................................................................................................................................................................... 141
ObEditData............................................................................................................................................................................................................................................... 142
ObEventMap............................................................................................................................................................................................................................................. 143
ObGridData............................................................................................................................................................................................................................................... 144
ObKeyStrokeMap..................................................................................................................................................................................................................................... 145
ObKeyStrokeMap$ObKeyDetails............................................................................................................................................................................................................. 146
ObLabelData............................................................................................................................................................................................................................................. 147
ObListData................................................................................................................................................................................................................................................ 148
ObLogicalEvents....................................................................................................................................................................................................................................... 149

Page: 3 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMenubarData........................................................................................................................................................................................................................................ 150
ObMenuData............................................................................................................................................................................................................................................. 151
ObMenuitemData...................................................................................................................................................................................................................................... 152
ObMultilineEditData................................................................................................................................................................................................................................. 153
ObPasswordData....................................................................................................................................................................................................................................... 154
ObPictureData........................................................................................................................................................................................................................................... 155
ObPushbuttonData.................................................................................................................................................................................................................................... 156
ObRadiobuttonData.................................................................................................................................................................................................................................. 157
ObSeparatorData....................................................................................................................................................................................................................................... 158
ObSpinData............................................................................................................................................................................................................................................... 159
ObStaticData............................................................................................................................................................................................................................................. 160
ObStatusbarData....................................................................................................................................................................................................................................... 161
ObToolbarbuttonData............................................................................................................................................................................................................................... 162
ObToolbarData......................................................................................................................................................................................................................................... 163
ObTopAppData......................................................................................................................................................................................................................................... 164
ObUserAPI................................................................................................................................................................................................................................................ 165
ObValuePairList....................................................................................................................................................................................................................................... 166
ObValuePairList$ObValuePair................................................................................................................................................................................................................. 168
ObWindowData........................................................................................................................................................................................................................................ 169
ObCtrlGui...................................................................................................................................................................................................................................................... 172
ObBackgroundPanel................................................................................................................................................................................................................................. 172
ObBaseGridEditorDelegate....................................................................................................................................................................................................................... 173
ObBasicTreeCellRenderer........................................................................................................................................................................................................................ 174
ObBeanGui............................................................................................................................................................................................................................................... 175
ObButton................................................................................................................................................................................................................................................... 176
ObCheckboxGridEditorDelegate.............................................................................................................................................................................................................. 177
ObCheckboxGui....................................................................................................................................................................................................................................... 178
ObCheckBoxTreeCellRenderer................................................................................................................................................................................................................. 180
ObClockTick............................................................................................................................................................................................................................................. 181
ObColumnHeadingGui............................................................................................................................................................................................................................. 182
ObComboGridEditorDelegate................................................................................................................................................................................................................... 183
ObComboGui............................................................................................................................................................................................................................................ 184
ObCtrlGui................................................................................................................................................................................................................................................. 186
ObCtrlGui$1............................................................................................................................................................................................................................................. 194
ObCtrlGui$ObDateDocument................................................................................................................................................................................................................... 195
ObCtrlGui$ObLowerCaseDocument........................................................................................................................................................................................................ 196
ObCtrlGui$ObNumericDocument............................................................................................................................................................................................................. 197
ObCtrlGui$ObPopupItem......................................................................................................................................................................................................................... 198
ObCtrlGui$ObTimeDocument.................................................................................................................................................................................................................. 199
ObCtrlGui$ObTimeStampDocument........................................................................................................................................................................................................ 200
ObCtrlGui$ObUpperCaseDocument......................................................................................................................................................................................................... 201
ObDialogGui............................................................................................................................................................................................................................................. 202
ObEditGridEditorDelegate........................................................................................................................................................................................................................ 204
ObEditGui................................................................................................................................................................................................................................................. 205
ObGridCellEditor...................................................................................................................................................................................................................................... 207

Page: 4 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObGridCellEditor$ObMouseAdapter........................................................................................................................................................................................................ 209
ObGridGui................................................................................................................................................................................................................................................ 210
ObGridGui$ObGridColumnListener......................................................................................................................................................................................................... 216
ObGridGui$ObTableListener.................................................................................................................................................................................................................... 217
ObGridModel............................................................................................................................................................................................................................................ 218
ObLabelGui.............................................................................................................................................................................................................................................. 220
ObLabelGui$ObLabel............................................................................................................................................................................................................................... 222
ObListGui................................................................................................................................................................................................................................................. 223
ObMenubarGui......................................................................................................................................................................................................................................... 225
ObMenuGui.............................................................................................................................................................................................................................................. 226
ObMenuitemGui....................................................................................................................................................................................................................................... 227
ObMultilineEditGui.................................................................................................................................................................................................................................. 228
ObMultilineEditGui$1.............................................................................................................................................................................................................................. 231
ObMultilineEditGui$2.............................................................................................................................................................................................................................. 232
ObMultilineEditGui$3.............................................................................................................................................................................................................................. 233
ObMultilineEditGui$4.............................................................................................................................................................................................................................. 234
ObMultilineEditGui$5.............................................................................................................................................................................................................................. 235
ObMultilineEditGui$6.............................................................................................................................................................................................................................. 236
ObMultilineEditGui$7.............................................................................................................................................................................................................................. 237
ObMultilineEditGui$UndoHandler........................................................................................................................................................................................................... 238
ObPasswordGridEditorDelegate............................................................................................................................................................................................................... 239
ObPasswordGui........................................................................................................................................................................................................................................ 240
ObPictureGridEditorDelegate................................................................................................................................................................................................................... 242
ObPictureGui............................................................................................................................................................................................................................................ 243
ObPushbuttonGui...................................................................................................................................................................................................................................... 245
ObRadiobuttonGui.................................................................................................................................................................................................................................... 247
ObSeparatorGui........................................................................................................................................................................................................................................ 249
ObSpinGui................................................................................................................................................................................................................................................ 250
ObStaticGui.............................................................................................................................................................................................................................................. 253
ObStaticGui$ObStatic............................................................................................................................................................................................................................... 255
ObStatusbarGui......................................................................................................................................................................................................................................... 256
ObTabSequence........................................................................................................................................................................................................................................ 257
ObToolbarbuttonGui................................................................................................................................................................................................................................. 258
ObToolbarGui........................................................................................................................................................................................................................................... 259
ObTopAppGui.......................................................................................................................................................................................................................................... 260
ObWindowGui.......................................................................................................................................................................................................................................... 262
ObLaunch...................................................................................................................................................................................................................................................... 264
ObLaunch$ObApplet.................................................................................................................................................................................................................................... 266
ObPanelUtils................................................................................................................................................................................................................................................. 267
ObPanelResource...................................................................................................................................................................................................................................... 267
ObXYLayoutManager............................................................................................................................................................................................................................... 268
XYConstraint............................................................................................................................................................................................................................................ 269
ObVersionInfo............................................................................................................................................................................................................................................... 270
ObRTTypes.................................................................................................................................................................................................................................271
ObByteFld..................................................................................................................................................................................................................................................... 271

Page: 5 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCharFld..................................................................................................................................................................................................................................................... 273
ObDateFld..................................................................................................................................................................................................................................................... 275
ObDblFld...................................................................................................................................................................................................................................................... 277
ObField.......................................................................................................................................................................................................................................................... 279
ObFieldSQLTypes......................................................................................................................................................................................................................................... 283
ObFixedDecFld............................................................................................................................................................................................................................................. 284
ObIntFld........................................................................................................................................................................................................................................................ 286
ObLongDblFld.............................................................................................................................................................................................................................................. 288
ObLongFld.................................................................................................................................................................................................................................................... 290
ObPanelUtils................................................................................................................................................................................................................................................. 292
ObXYLayoutManager............................................................................................................................................................................................................................... 292
XYConstraint............................................................................................................................................................................................................................................ 293
ObSglFld....................................................................................................................................................................................................................................................... 294
ObSpecialVal................................................................................................................................................................................................................................................ 296
ObStructuredFld............................................................................................................................................................................................................................................ 297
ObTimeFld.................................................................................................................................................................................................................................................... 298
ObTimeStampFld.......................................................................................................................................................................................................................................... 300
THE COOL:PLEX JAVA SOURCES............................................................................................................................................................................................303
OVERVIEW.......................................................................................................................................................................................................................................303
OBBLDMGR.....................................................................................................................................................................................................................................303
ObBuildClient.............................................................................................................................................................................................................................303
ObBuildConnection....................................................................................................................................................................................................................315
ObBuildInfo................................................................................................................................................................................................................................321
ObBuildJDBC.............................................................................................................................................................................................................................325
ObBuildManager........................................................................................................................................................................................................................329
ObBuildQueue............................................................................................................................................................................................................................338
ObBuildRequest..........................................................................................................................................................................................................................339
ObBuildSchema..........................................................................................................................................................................................................................342
ObBuildSocketStream.................................................................................................................................................................................................................344
ObBuildStatus.............................................................................................................................................................................................................................345
ObBuildStatusInfo.......................................................................................................................................................................................................................348
ObCompileJava..........................................................................................................................................................................................................................351
ObCompileRequest.....................................................................................................................................................................................................................354
ObCompileSource.......................................................................................................................................................................................................................356
ObParseGeneratedSQL..............................................................................................................................................................................................................360
ObRetrieveLstFile.......................................................................................................................................................................................................................368
ObRmtBuildRequest....................................................................................................................................................................................................................373
ObSourceFile..............................................................................................................................................................................................................................375
ObSQLBuildOption.....................................................................................................................................................................................................................378
OBFUNCTION...................................................................................................................................................................................................................................381
ObServerApp...............................................................................................................................................................................................................................381

Page: 6 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObVariable.................................................................................................................................................................................................................................382
OBRUN............................................................................................................................................................................................................................................386
ObComms...................................................................................................................................................................................................................................386
ObAS400Conversation.................................................................................................................................................................................................................................. 386
ObAS400SocketStream................................................................................................................................................................................................................................. 396
ObAS400SocketStream$AS400DataReading................................................................................................................................................................................................ 413
ObAS400SocketStream$AS400ErrorHandling............................................................................................................................................................................................. 414
ObAS400SocketStream$ObAS400CallInfo.................................................................................................................................................................................................. 415
ObClientConnect........................................................................................................................................................................................................................................... 419
ObClientListen.............................................................................................................................................................................................................................................. 425
ObClientType................................................................................................................................................................................................................................................ 426
ObConversation............................................................................................................................................................................................................................................. 428
ObDataSocketStream.................................................................................................................................................................................................................................... 430
ObDispatchSocketStream.............................................................................................................................................................................................................................. 432
ObNotifyConnect.......................................................................................................................................................................................................................................... 436
ObNotifyEvent.............................................................................................................................................................................................................................................. 438
ObObjectConversation.................................................................................................................................................................................................................................. 439
ObObjectSocketStream................................................................................................................................................................................................................................. 442
ObRemoteException...................................................................................................................................................................................................................................... 445
Full name of class: ObRun.ObComms.ObRemoteException.class...................................................................................................................................................445
ObService...................................................................................................................................................................................................................................................... 446
ObSocketListen............................................................................................................................................................................................................................................. 449
ObSocketService........................................................................................................................................................................................................................................... 452
ObDatabase................................................................................................................................................................................................................................460
ObDatabaseConnection................................................................................................................................................................................................................................. 460
ObDatabaseMgr............................................................................................................................................................................................................................................ 468
ObSocketStream............................................................................................................................................................................................................................................ 476
ObSQLDataTypes......................................................................................................................................................................................................................................... 480
ObSQLTypeConversion................................................................................................................................................................................................................................ 483
ObValidSQLType......................................................................................................................................................................................................................................... 485
ObEnvironment...........................................................................................................................................................................................................................487
ObException.................................................................................................................................................................................................................................................. 487
ObJavaApi..................................................................................................................................................................................................................................................... 488
ObLog........................................................................................................................................................................................................................................................... 489
ObODBCOptionValues................................................................................................................................................................................................................................. 491
ObOptionsElement........................................................................................................................................................................................................................................ 495
ObOptionsList............................................................................................................................................................................................................................................... 497
ObRunOptions............................................................................................................................................................................................................................................... 500
ObStringResource......................................................................................................................................................................................................................................... 505
ObView......................................................................................................................................................................................................................................................... 506
ObFunction.................................................................................................................................................................................................................................509
ObApplication............................................................................................................................................................................................................................................... 509
ObCall........................................................................................................................................................................................................................................................... 521
ObCallInfo..................................................................................................................................................................................................................................................... 523

Page: 7 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCallMgr.................................................................................................................................................................................................................................................... 526
ObClientApp................................................................................................................................................................................................................................................. 530
ObFncParameter............................................................................................................................................................................................................................................ 531
ObFunction.................................................................................................................................................................................................................................................... 534
ObFunctionHandler....................................................................................................................................................................................................................................... 543
ObLocalJavaCall........................................................................................................................................................................................................................................... 544
ObMessageLog.............................................................................................................................................................................................................................................. 546
ObMessageLog$ObMenuListener................................................................................................................................................................................................................. 549
ObPanel......................................................................................................................................................................................................................................................... 550
ObRemoteJavaCall........................................................................................................................................................................................................................................ 558
ObRemoteRPGCall....................................................................................................................................................................................................................................... 560
ObServerApp................................................................................................................................................................................................................................................. 562
ObValidElement............................................................................................................................................................................................................................................ 563
ObVariable.................................................................................................................................................................................................................................................... 564
ObVariableGroup.......................................................................................................................................................................................................................................... 568
ObPanel......................................................................................................................................................................................................................................586
ObCtrlData.................................................................................................................................................................................................................................................... 586
ObBeanData.............................................................................................................................................................................................................................................. 586
ObCheckboxData...................................................................................................................................................................................................................................... 587
ObColumnHeadingData............................................................................................................................................................................................................................ 589
ObComboData.......................................................................................................................................................................................................................................... 590
ObControlState......................................................................................................................................................................................................................................... 592
ObCtrlData................................................................................................................................................................................................................................................ 594
ObDialogData........................................................................................................................................................................................................................................... 609
ObEditData............................................................................................................................................................................................................................................... 611
ObEventMap............................................................................................................................................................................................................................................. 612
ObGridData............................................................................................................................................................................................................................................... 614
ObKeyStrokeMap..................................................................................................................................................................................................................................... 617
ObKeyStrokeMap$ObKeyDetails............................................................................................................................................................................................................. 619
ObLabelData............................................................................................................................................................................................................................................. 620
ObListData................................................................................................................................................................................................................................................ 621
ObLogicalEvents....................................................................................................................................................................................................................................... 623
ObMenubarData........................................................................................................................................................................................................................................ 624
ObMenuData............................................................................................................................................................................................................................................. 625
ObMenuitemData...................................................................................................................................................................................................................................... 626
ObMultilineEditData................................................................................................................................................................................................................................. 627
ObPasswordData....................................................................................................................................................................................................................................... 628
ObPictureData........................................................................................................................................................................................................................................... 629
ObPushbuttonData.................................................................................................................................................................................................................................... 630
ObRadiobuttonData.................................................................................................................................................................................................................................. 631
ObSeparatorData....................................................................................................................................................................................................................................... 633
ObSpinData............................................................................................................................................................................................................................................... 634
ObStaticData............................................................................................................................................................................................................................................. 635
ObStatusbarData....................................................................................................................................................................................................................................... 636
ObToolbarbuttonData............................................................................................................................................................................................................................... 637

Page: 8 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObToolbarData......................................................................................................................................................................................................................................... 638
ObTopAppData......................................................................................................................................................................................................................................... 639
ObUserAPI................................................................................................................................................................................................................................................ 641
ObValuePairList....................................................................................................................................................................................................................................... 650
ObValuePairList$ObValuePair................................................................................................................................................................................................................. 654
ObWindowData........................................................................................................................................................................................................................................ 655
ObCtrlGui...................................................................................................................................................................................................................................................... 667
ObBackgroundPanel................................................................................................................................................................................................................................. 667
ObBaseGridEditorDelegate....................................................................................................................................................................................................................... 669
ObBasicTreeCellRenderer........................................................................................................................................................................................................................ 671
ObBeanGui............................................................................................................................................................................................................................................... 672
ObButton................................................................................................................................................................................................................................................... 674
ObCheckboxGridEditorDelegate.............................................................................................................................................................................................................. 677
ObCheckboxGui....................................................................................................................................................................................................................................... 679
ObCheckBoxTreeCellRenderer................................................................................................................................................................................................................. 685
ObClockTick............................................................................................................................................................................................................................................. 686
ObColumnHeadingGui............................................................................................................................................................................................................................. 687
ObComboGridEditorDelegate................................................................................................................................................................................................................... 690
ObComboGui............................................................................................................................................................................................................................................ 692
ObCtrlGui................................................................................................................................................................................................................................................. 698
ObCtrlGui$1............................................................................................................................................................................................................................................. 756
ObCtrlGui$ObDateDocument................................................................................................................................................................................................................... 757
ObCtrlGui$ObLowerCaseDocument........................................................................................................................................................................................................ 758
ObCtrlGui$ObNumericDocument............................................................................................................................................................................................................. 759
ObCtrlGui$ObPopupItem......................................................................................................................................................................................................................... 760
ObCtrlGui$ObTimeDocument.................................................................................................................................................................................................................. 762
ObCtrlGui$ObTimeStampDocument........................................................................................................................................................................................................ 764
ObCtrlGui$ObUpperCaseDocument......................................................................................................................................................................................................... 766
ObDialogGui............................................................................................................................................................................................................................................. 767
ObEditGridEditorDelegate........................................................................................................................................................................................................................ 773
ObEditGui................................................................................................................................................................................................................................................. 775
ObGridCellEditor...................................................................................................................................................................................................................................... 786
ObGridCellEditor$ObMouseAdapter........................................................................................................................................................................................................ 792
ObGridGui................................................................................................................................................................................................................................................ 793
ObGridGui$ObGridColumnListener......................................................................................................................................................................................................... 815
ObGridGui$ObTableListener.................................................................................................................................................................................................................... 817
ObGridModel............................................................................................................................................................................................................................................ 819
ObLabelGui.............................................................................................................................................................................................................................................. 830
ObLabelGui$ObLabel............................................................................................................................................................................................................................... 838
ObListGui................................................................................................................................................................................................................................................. 840
ObMenubarGui......................................................................................................................................................................................................................................... 850
ObMenuGui.............................................................................................................................................................................................................................................. 852
ObMenuitemGui....................................................................................................................................................................................................................................... 855
ObMultilineEditGui.................................................................................................................................................................................................................................. 859
ObMultilineEditGui$1.............................................................................................................................................................................................................................. 876

Page: 9 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMultilineEditGui$2.............................................................................................................................................................................................................................. 877
ObMultilineEditGui$3.............................................................................................................................................................................................................................. 878
ObMultilineEditGui$4.............................................................................................................................................................................................................................. 879
ObMultilineEditGui$5.............................................................................................................................................................................................................................. 880
ObMultilineEditGui$6.............................................................................................................................................................................................................................. 881
ObMultilineEditGui$7.............................................................................................................................................................................................................................. 882
ObMultilineEditGui$UndoHandler........................................................................................................................................................................................................... 883
ObPasswordGridEditorDelegate............................................................................................................................................................................................................... 884
ObPasswordGui........................................................................................................................................................................................................................................ 886
ObPictureGridEditorDelegate................................................................................................................................................................................................................... 897
ObPictureGui............................................................................................................................................................................................................................................ 899
ObPushbuttonGui...................................................................................................................................................................................................................................... 906
ObRadiobuttonGui.................................................................................................................................................................................................................................... 914
ObSeparatorGui........................................................................................................................................................................................................................................ 920
ObSpinGui................................................................................................................................................................................................................................................ 921
ObStaticGui.............................................................................................................................................................................................................................................. 950
ObStaticGui$ObStatic............................................................................................................................................................................................................................... 958
ObStatusbarGui......................................................................................................................................................................................................................................... 960
ObTabSequence........................................................................................................................................................................................................................................ 961
ObToolbarbuttonGui................................................................................................................................................................................................................................. 962
ObToolbarGui........................................................................................................................................................................................................................................... 966
ObTopAppGui.......................................................................................................................................................................................................................................... 968
ObWindowGui.......................................................................................................................................................................................................................................... 976
ObLaunch...................................................................................................................................................................................................................................................... 990
ObLaunch$ObApplet.................................................................................................................................................................................................................................... 993
ObPanelUtils................................................................................................................................................................................................................................................. 995
ObPanelResource...................................................................................................................................................................................................................................... 995
ObXYLayoutManager............................................................................................................................................................................................................................... 997
XYConstraint.......................................................................................................................................................................................................................................... 1001
ObVersionInfo............................................................................................................................................................................................................................................. 1002
ObRTTypes...............................................................................................................................................................................................................................1004
ObByteFld................................................................................................................................................................................................................................................... 1004
ObCharFld................................................................................................................................................................................................................................................... 1015
ObDateFld................................................................................................................................................................................................................................................... 1026
ObDblFld..................................................................................................................................................................................................................................................... 1040
ObField........................................................................................................................................................................................................................................................ 1051
ObFieldSQLTypes....................................................................................................................................................................................................................................... 1069
ObFixedDecFld........................................................................................................................................................................................................................................... 1072
ObIntFld...................................................................................................................................................................................................................................................... 1085
ObLongDblFld............................................................................................................................................................................................................................................ 1096
ObLongFld.................................................................................................................................................................................................................................................. 1107
ObPanelUtils............................................................................................................................................................................................................................................... 1118
ObXYLayoutManager............................................................................................................................................................................................................................. 1118
XYConstraint.......................................................................................................................................................................................................................................... 1122
ObSglFld..................................................................................................................................................................................................................................................... 1123

Page: 10 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObSpecialVal.............................................................................................................................................................................................................................................. 1134
ObStructuredFld.......................................................................................................................................................................................................................................... 1145
ObTimeFld.................................................................................................................................................................................................................................................. 1149
ObTimeStampFld........................................................................................................................................................................................................................................ 1163
FIGURE 1 THE FULL LIST OF QUALIFIED CLASS NAMES..........................................................................................................................................1179

FIGURE 2 THE HIERARCHICAL LIST OF CLASS NAMES ............................................................................................................................................1185

Page: 11 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Introduction to the COOL:Plex Java Classes

Overview

This document has two purposes:

1) To give some real-world examples of how accomplish common tasks using COOL:Plex Java generated code

2) To expose the COOL:Plex 4.0 build 131 ObRun.class to the extent this possible without prying into code intentionally hidden by
the owner of COOL:Plex. Class exposure is common in the Java world, but the vendor of COOL:Plex has not yet done this, for
budgetary reasons.

Upon first glance, you may think this document is enormous and unwieldy. So? Well, thats not the point. Most of this document is
reference material for look something things up. Only the first major section, Everyday Tasks Using The COOL:Plex Java
Generator, bears reading all the way throughunless, of course, you are desperately in need of sleep. If you are, may I suggest the
section titled The COOL:Plex Java Sources. This section gives James Michener a run for his money, and makes War and Peace look
live a Stephen King novella.

Page: 12 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Copyright Notices, Disclaimers, and other Legal Mumbo Jumbo

The Java classes contained in the ObRun.jar are copyrighted by the owner of COOL:Plex, whoever that happens to be this week
and I recognize their copyright here. Only the information left in plain view by the owner of COOL:Plex has been documented, and
no attempts have been made to delve deeper than that.

Various other odd words, phrases, command names, etc. are copyrighted by Sun Microsystems, at least until CA buys them. I
recognize their copyrights here.

Mark Phippard contributed the section named, Deploying Plex Java Applications. If you want to know who owns the copyright on
that part, please ask Mark at MarkP@softlanding.com.

This document, with the above exceptions, is Copyright 2000 by Louis H. Kurrelmeyer, Jr. The price for a copy of this document is
US$10, which goes into a Maxwell House can to pay for production and distribution costs. If you get a copy of this document and find
it useful, please pay for it. If you have contributed something that has been included in this document, you are entitled to a free copy.

Louis H. Kurrelmeyer, Jr.


Sole Proprietor
Kurrelmeyer Konsulting
245 Starr Ridge Road
Brewster, NY 10509
LouKur@Earthlink.net
(914)278-2663

The information in this document is believed to be correct, but is supplied on an as-is, best-effort basis, with absolutely, positively no
warranties expressed or implied. So, dont plan on suing meever. Not even if you use something from this document and it makes
your computer melt and run through the cracks in your raised floor.

Page: 13 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Everyday Tasks Using the COOL:Plex Java Generator

Overview

Ive been using COOL:Plex since before it was released, and have always found the generated C++ code absolutely incomprehensible.
Then again, I find MSVC++ absolutely incomprehensible in general. Over the years, I have figured out how to coerce COOL:Plex into
performing native Windows and MSVC++ tasks. You know, the really bizarre stuff, like calling another program or sending
somebody an e-mail.

COOL:Plex Java is not like the C++. It is much easier to make COOL:Plex Java do things like calling other programs, be called by
other programs etc.

This document sets out some examples of how to get COOL:Plex to do these types of things.

If you have any cool stuff you want me to add (pun always intended), send it alongand if it looks like it might work, Ill add it to
this document and give you the blame.

Page: 14 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Getting COOL:Plex to Compile Some Java

Sounds easy? Guess again. There is a ton of stuff you have to do before you can even think about compiling.

Here are the steps:

1) Get the Sun Java JDK (Java Development Kit) from Sun Microsystems at www.Sun.com. Its a free download. You can order a
CD for $39.95, but it comes about as fast as those free things we used to get by cutting out coupons from the back of cereal boxes.
Im still waiting for my Captain Midnight decoder ring. Get the right version. COOL:Plex Java 4.0 needs Sun JDK 1.1.8. I tried
JDK 1.2.2, and learned the hard way this is NOT a good idea.

2) Install the JDK into a folder named jdk118, say C:\jdk118. Dont use the default JDK-1.1.8. Java doesnt understand Windows
long directory names, and you will wind up interpreting JDK-1.1.8 into its DOS name, being JDK11~1.8. Cool? NOT! Stop,
make a note right now and pin it up on the wall of your cubicle or on the forehead of that other programmer that never seems to
move. The note should read, JAVA does not understand Windows long file namesUse DOS 8 letter names at all cost. If theat
other programmer still hasnt moved, pin this on their forehead too, There are no such things as spaces in Java names.

3) Do not waste your time downloading the JRE (Java Runtime Engine). You already have it. It is in C:\jdk118\bin. Add that to
you Windows path statement. Mine looks likes this:

SET PATH=%PATH%;C:\PLEX\BIN;F:\jdk118\bin;F:\SQLANY50\WIN32;~~~(etc.)

4) Download the Swing Class version 1.1.1 from Sun. The latest intelligence report is this down-load is hidden at
http://java.sun.com/products/jfc, but Sun has a habit of moving it every time somebody finds it. (See CD for $39.95 above.) When
you are done getting this monstrous >11mb download, install it in a directory named Swing111 (notice the clever use of all 8
characters). You need 1 object from this. Its called swingall.jar. You can delete the rest of the 11mb now unless you plan on
hand coding Java screens.

Page: 15 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

5) Create a directory called Java. Say C:\Java. Add a lib sub-folder to it. That is C:\Java\lib. Find the following three objects and
put them in C:\Java\Lib:

classes.zip
swingall.jar
ObRun.jar

6) Add three sub-folders to you normal GEN folder. You know, the GEN\WIN\Release feller. You will need GEN\CLIENT,
GEN\SERVER and GEN\MISC. NOTE! These names are case sensitive. If that idiot is still standing around doing nothing while you
do all the work like usual, pin this note to their forehead too, Java is more Case sensitive than all the Lawyers and Doctors on
Earth, put together. If not, your cubicle wall will do. By the way, if the idiot wandered off, tackle them and hold them down long
enough to get your first two notes back.

7) Add a ClassPath statement to your AutoExec.bat file or equivalent. It might look like this:

SET ClassPath=C:\Java\Lib\ObRun.jar;C:\Java\Lib\classes.zip;C:\Java\Lib\swingall.jar;C:\feller\GEN;E:\
feller\GEN\CLIENT;E:\feller\GEN\SERVER;E:\feller\GEN\MISC

Where feller is the root of the folders you Gen to.

NOTE: The ClassPath statement must be entered absolutely letter perfect including UPPER/lower case. If not, the COOL:Plex
Java generator will run to completion, give no error messages, and build ABSOLUTELY NOTHING. Nada. Zip. Youll tear your
hair out looking for you .class bytecode files. They wont exist. Get a yellow sticky, and write The road to Java Hell is in
having a misspelled ClassPath statement, and stick it to the center of you monitor. Not the side. The center. Its a little hard to see
things after that, but at least you wont forget to check you ClassPath statement when something doesnt workand, believe me,
this WILL happen.

Page: 16 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

8) Fire up good ole COOL:Plex and open up a local model you want to use for your first Java frontal lobotomy. Set your variants so
they look like this:

This is an AS/400 example. The libraries off the page are set to Base. Notice I am using the Pattern libraries. Really notice.

Page: 17 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

9) Open a Generate and Build window, so you can set the Generate and build options. Go to the Java Generation Options and make it
look like this:

The CLIENT, SERVER, and MISC parts must match your ClassPath statement exactly. (Print this out if youre having trouble seeing
around the yellow sticky in the middle of you screen.)

The C:\PLEX\OBJAVA\DEFAULT.TPL will work as is, if you installed Plex on your C: drive.

The C:\Plex\ObJava setting for the client properties file specifies the location of the ob400client.properties file that is used
for generating and compiling. Use the one in C:\Plex\ObJava for generating and compiling. Make a copy of it somewhere else
for testing. Say, C:\feller\GEN. You dont want the same ob400client.properties for both Generating & Compiling and Testing.

Page: 18 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

The C:\PROGRA~1\INTERN~1\IEXPLORE.EXE is the Javaesque way of telling COOL:Plex where your web browser is.

The rest of the screen depends on what you going to do. In the example I am going to generate an Application, as opposed to an
Applet. Applets run from Web browsers or the Java plug-in. Applications dont require a Web browser or plug-in. The first time a
Web browser encounters a Sun Java Applet, it must download over 2mb of Sun Java stuff before your Applet will run. You can
distribute the plug-ins for Applets or all the run-time objects needed for an Application. NOTE for IF or CW (Idiots Forehead or
Cubicle Wall): How many Browser users are going to wait for a 2mb download from Sun so they can run my 3k program?

10) Switch to the System Definitions section, highlight your PC and Click on Properties:

Page: 19 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

11) Set up the Java Build section of the next screen to look like this:

The Nmake directory is where your C++ compiler is, again in Javaesque format. Dont ask me why you need to do this, unless you
want to guess along with me that this is important for C++ to call Java or the other way around. If you installed MSVC++ on you
C: drive, this should work. If you are a Java-only programmer and dont have a C++ compiler, call up whoever owns COOL:Plex
this week and whine pitifully until they tell you what to do.

C:\PROGRA~1\MICROS~3\VC98\BIN

If you are using your C: drive, you will probably want C:\jdk118\bin\Javac.exe for the Compiler location.

Page: 20 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

The JDK Classes line reads, E:\Java\Lib\classes.zip;E:\Java\Lib\swingall.jar. Change the drive letter to where you put
them.

12) You can now generate and build.

NOTES:____________________________________________________________________________________________________

___________________________________________________________________________________________________________

___________________________________________________________________________________________________________

___________________________________________________________________________________________________________

___________________________________________________________________________________________________________

___________________________________________________________________________________________________________

___________________________________________________________________________________________________________

___________________________________________________________________________________________________________

___________________________________________________________________________________________________________

___________________________________________________________________________________________________________

___________________________________________________________________________________________________________

___________________________________________________________________________________________________________

___________________________________________________________________________________________________________

___________________________________________________________________________________________________________

___________________________________________________________________________________________________________

Page: 21 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

The Mysterious Client Properties Object

When you call a COOL:Plex Java program, one of the call parameters is the location of the Client Properties file. If COOL:Plex cant
find this, you will get some mysterious error message about a null pointer. The Client Properties file tells COOL:Plex where to find
your Panel Resources file, the server you want to connect to, where Jimmy Hoffa is buried, etc. At release level 4.0 of COOL:Plex, the
Client Properties file MUST be named ob400client.properties. Heres the picture:

java ObRun.ObPanel.ObLaunch MyCleverJavaProgram Path=C:\MyClientPropertiesFolder


|
| ob400client.properties
|
| MyCleverJavaProgram.panelresource
| The Server I want
| James R. Hoffas Burial Location, etc.

You need at least one ob400client.properties for compiling and one more for testing/production. You probably want one
ob400client.properties for each different test/production environment. Leave the one in C:\Plex\ObJava alone and check the
box that says Update client properties file on the Java Generation Options panel. This makes Plex update that one to match what
youre doing, and will let you run Java programs using the Run option from a Gen and Build window.

Heres whats in the ob400client.properties: (My notations start # LK - and are on the line above what they are talking about.
I added the line numbers of the original lines so I can reference them):

01 #-----------------------------------------------------------------------------------------
02 # COOL:Plex Java runtime client options file
03 #-----------------------------------------------------------------------------------------

# LK Must match the environment name on lines 10-40.


04 Environment=Default
# LK Should Applets frame inside a web browser or not.
05 Applet.UseFrame=No
06 UseMouseOverCursor=Yes

07 DefaultFont=sansserif
08 CourierNew=monospaced

09 # COOL:Plex Environment Options:

Page: 22 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

10 Environment.Default.Driver=sun.jdbc.odbc.JdbcOdbcDriver
11 Environment.Default.DataSource=jdbc:odbc:
12 Environment.Default.User=
13 Environment.Default.Password=
14 Environment.Default.Package=CLIENT
15 Environment.Default.PackageList= MISC CLIENT SERVER SERVER
# LK The location of the Panel Resources file. For example, MyCleverJavaProgram.panelresource
# LK The file:C:\\ notation is when a web server is not used. This changes to http: for a web server
# LK The closing \\ is essential. You will get strange error messages if you leave it off.
16 Environment.Default.Resources=file:C:\\TeleMar\\
# LK The location of any GIFs you are using in you application. Same notes as previous line.
17 Environment.Default.ImagePath=file:C:\\TeleMar\\
# LK The COOL:Plex docoument does not tell us how to make this Native meaning Java look and feel.
# LK System look and feel means Windows look and feel on a Windows client.
18 Environment.Default.LookAndFeel=System
19 Environment.Default.AutoCommit=Yes
20 Environment.Default.ReadOnlyAccess=No
21 Environment.Default.TransactionIsolation=TRANSACTION_NONE
22 Environment.Default.DefaultDateMask=MM/dd/yy
23 Environment.Default.DefaultTimeMask=hh:mm:ss a
24 Environment.Default.DefaultTimeStampMask=MM/dd/yy hh:mm:ss a
25 Environment.Default.MenuFont=Regular 8 MS Sans Serif
26 Environment.Default.UseUncheckedMenuImage=Yes
27 Environment.Default.CharacterHighValue=z
28 Environment.Default.CharacterLowValue=
29 Environment.Default.CharacterEmptyValue=
30 Environment.Default.DateHighValue=9999-12-31
31 Environment.Default.DateLowValue=0001-01-01
32 Environment.Default.DateEmptyValue=0001-01-01
33 Environment.Default.TimeHighValue=23:59:59
34 Environment.Default.TimeLowValue=00:00:00
35 Environment.Default.TimeEmptyValue=00:00:00
36 Environment.Default.TimestampHighValue=9999-12-31 23:59:59
37 Environment.Default.TimestampLowValue=0001-01-01 00:00:00
38 Environment.Default.TimestampEmptyValue=0001-01-01 00:00:00
39 Environment.Default.ClearResourceCache=No
40 Environment.Default.HeightAdjustment=0

Page: 23 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

41 # Remote function calls

# LK The IP name of your AS/400 if you are using one. Two examples are shown. Only use one of them.
42 DefaultAS400.System=192.168.1.1
or
42 DefaultAS400.System=MyAS400.MyCompany.Com
# LK RCP may work, but I wouldnt try it. Suggest always using AS400TCPIP
43 DefaultAS400.Protocol=AS400TCPIP
# LK The IP port your AS/400 YOBLISTEN job (program YOBSYTCP) is listening on.
44 DefaultAS400.Port=40000
# LK Cp037 is US English(ENU), Cp285 is UK English (ENG). If your not sure what to use,
# LK Display your YOBLISTEN job and look for the code page it is using.
45 DefaultAS400.Encoding=Cp037
46 DefaultAS400.User=
47 DefaultAS400.Password=
48 DefaultAS400.JobDescription=MyLib/MyJobd
49 DefaultAS400.BypassAppletLogin=No

50 DefaultServer.System=*THIS
51 DefaultServer.Port=
52 DefaultServer.Environment=

53 DefaultMisc.System=*THIS
54 DefaultMisc.Port=
55 DefaultMisc.Environment=

56 MyLocation.System=
57 MyLocation.Port=
58 MyLocation.Environment=
59 FunctionLocation.YourFunction=

60 # Locale information

61 Locale.language=en
62 Locale.country=
63 Locale.variant=

64 James.R.Hoffa.=Burried@Somplace Near Carbondale Illinois

Page: 24 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Calling a COOL:Plex Java Program from a Hand Coded Java Program

The parameters are the tricky part. What the manual doesnt tell you is that COOL:Plex Java programs pass the input parameters back
to you as the first output parameters.

In native Java, calls look like OutputParms = MyCleverProgram(InputParms), where both OutputParms and InputParms are
String arrays, or String[] in Java. Notice I am so brainwashed on capitalization that I now write String instead of string even in
documentation. Wait until you get Byte and byte mixed up and spend the better part of a day wondering why you are getting all these
weird compiler error messages.

Lets say we wrote a COOL:Plex Java program that has three input parameters and two output parameters. When COOL:Plex is done
generating and building, you actually have a program with three input parameters and five output parameters. The first three output
parameters are the input parameters being sent back to you. Below is a sample hand coded Java program that calls a COOL:Plex Java
program:

public class CallPlexJavaProgram


{
public static String[] main(String[] args)
{
String[] ParmsOut = new String[5];
String[] ReturnParms = new String[2];
String FunctionName = "PlexJavaProgram";
String ProfilePath = "C:\\Java";
String EnvironmentName = "Default";
ParmsOut = ObRun.ObPanel.ObLaunch.callFunction(FunctionName, ProfilePath, args, EnvironmentName);
ReturnParms[0] = ParmsOut[3];
ReturnParms[1] = ParmsOut[4];
return ReturnParms;
}
}

The args coming in are used to fill in the three input parameters the COOL:Plex Java program wants as input. Trust me, args is the
perfect name. If youre like me, you will wind up arguing [yelling mostly] at the Java compiler ever time it spits out some error
message that makes you want to drive to Sun Microsystems HQ and strangle someone.

Page: 25 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Java makes you declare arrays with the number of elements, but references them starting at 0. That is 0 is the first array element. The
ReturnParms in this program are picking out the two real output parameters from the combined Input and Output in the ParmsOut
String array from the COOL:Plex Java program and passing them back to a caller. If the number of parameters ever changes, you get
to renumber this code each and every time.

Page: 26 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Calling a Hand Coded Java Program from a COOL:Plex Java Program

The parameters are the tricky part. Dj vu? You betcha. The data conversions are much easier than C+++, because Java wants
everything to a String. All the Obxxx types have String conversion methods.

Here is a screen shot of a call to a hand coded Java program:

Cool huh?

SC_FullPath is a VaryCharacter, size 1024.


ScanResult is a char, size 1.
ScanString is a VaryCharacter, size 32,767.

Notice all the casting is handled with the .toString and .fromString methods written as part of COOL:Plex for Java. Also
notice that both the input and output parameters are numbered staring with 0. This hand coded Java program does not pass back the
input parameters are the first output parameters, which is typical of native Java programs.

The program this calls is shown partially on the next page. The package MISC; line had to be included or the COOL:Plex initiated Java
compile wont find the FreqHex class. Youll get an error message saying that FreqHex is not part of the class you are compiling, like
you didnt already know that. Also, put the compiled object for the hand-coded program in the C:\feller\Gen\xxx folder. In this
case, the FreqHex.class object you got when you compiled FreqHex.java needs to be put into the C:\feller\Gen\MISC folder.

Page: 27 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

package MISC;
import java.io.*;
public class FreqHex
{
public static FileInputStream ObjectIn = null;
public static Map ByteMap;
public static int iScanResult;
public static String[] main(String[] args)
{
iScanResult = 1;
Integer ScanResult;
String[] ScanReturn = new String[2];
ByteMap = new HashMap();
try
{
ObjectIn = new FileInputStream(args[0]);
Freq2Bytes();
}
catch (FileNotFoundException FileErrorMessage)
{
System.out.println("FileNotFoundException: " + FileErrorMessage);
iScanResult = 2;
}
finally
{
if (ObjectIn != null)
{
CloseObject();
}
ScanResult = new Integer(iScanResult);
ScanReturn[0] = ScanResult.toString();
ScanReturn[1] = ByteMap.toString();
System.out.println(ScanReturn[0]);
System.out.println(ScanReturn[1]);
return ScanReturn;
}
}
}

Page: 28 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

When you see all the crazy data conversions being done above, youll come to appreciate how much work COOL:Plex Java is doing
for you. For that matter, look at the gillion or so lines that make up a panel resource file, that COOL:Plex generates for you. And we
all though DDS was bad

Page: 29 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Deploying Plex Java Applications

This section describes the process needed for deploying a Plex generated Java client application. It does not go into the steps required
for deploying the server-side as that is already well documented in the Plex documentation.

Two scenarios are described, running the application as a standalone Java Application, and as an Applet running in a browser. We
will assume that the machine that the application will run on has the Java 2 JRE or JDK installed already.

Java Application

One decision that you will need to make is whether you are going to package all of your class files into a Java Archive, or JAR file, or
whether you will deploy the class files themselves.

Deploying Class Files

What do you need to deploy?

Plex Runtime (ObRun.zip)


All of your .class files
All of your .panelresource files
The ob400client.properties file
Any resources that are needed at runtime such as GIF files
Pattern zip files (OBCLJAVA.ZIP and/or OBPTJAVA.ZIP)
Any external class files that you used

When deploying your class files individually, it is important to note that the class files must be deployed into the proper directory
names based on the Package they belonged to when they were built in Plex.

Page: 30 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

For example, we will assume that you are going to install your application into a directory named APPROOT on the users C: drive.
This would likely result in a directory structure that looked like this:

APPROOT
|--- PACKAGE1
|--- PACKAGE2
|--- PACKAGE3
|--- IMAGES

The PACKAGEx directory names would be based on the output from your Plex build. They would contain the class files that were
built from Plex.

The APPROOT directory should contain all of the zip and jar files that you are deploying, all of the panelresource files and the
ob400client.properties file.

It is a common convention in Java applications to store your images in a directory named IMAGES, but you can in fact name this
anything you desire. However, it does make sense for it to be a sub-directory of the applications root directory.

To run the application, a shortcut should be created with the following command-line:

javaw.exe cp C:\APPROOT\OBRUN.ZIP;C:\APPROOT\OBCLJAVA.ZIP ObRun.ObPanel.ObLaunch YOURAPP Path=C:\APPROOT

Where YOURAPP is the implementation name of the initial function that should be called. Notice that the cp or CLASSPATH
option does not need to specify the location of the Java classes, this is a new feature in Java 2. In addition, it is preferable to use this
approach, rather than specifying the values in the CLASSPATH environment variable.

Deploying a JAR File

What do you need to deploy?

JAR file
All of your .panelresource files
The ob400client.properties file

Page: 31 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Any resources that are needed at runtime such as GIF files


Any external class files that you used, such as the pattern library zip files.

When you are deploying a JAR file you must create a single JAR file that contains not only your class files, but also all of the Plex
runtime class files. In addition, when creating the JAR file you must have special information inserted into the manifest file that
indicates which class is the Main class to be called in this JAR. To do this, you create a simple text file that contains the following
line:

Main-Class: ObRun.ObPanel.ObLaunch

When you create the JAR file you use the m switch to indicate that these extensions to the manifest file must be added. For example,
the JAR command would look something like this:

jar cfm filename.jar manifest.txt *.*

Where manifest.txt is the name of the text file you created. The above command would create a JAR file containing all of the files in
the current directory and all sub-directories, and the relevant information would be added to the manifest file that was created. See the
tips on creating JAR files later in this document for more information.

Again, we will assume that you are going to install your application into a directory named APPROOT on the users C: drive. This
would likely result in a directory structure that looked like this:

APPROOT
|---IMAGES

The APPROOT directory should contain the JAR file that you are deploying, all of the panelresource files and the
ob400client.properties file. The IMAGES directory would contain all of your graphic files.

To run the application, a shortcut should be created with the following command-line:

javaw.exe -jar filename.jar YOURAPP Path=C:\APPROOT

Where YOURAPP is the implementation name of the initial function that should be called. If you were deploying additional JAR or
ZIP files, such as from the pattern libraries, you would include them in the CLASSPATH using the cp option. For example:

Page: 32 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

javaw.exe cp C:\APPROOT\OBCLJAVA.ZIP -jar filename.jar YOURAPP Path=C:\APPROOT

Page: 33 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Tips on Creating JAR Files

Create a new directory named APPJAR as an example. Then copy all of your Package directories from your build location to this
directory. The reason for this is to have a clean directory structure that contains nothing but class files.

Using a tool such as WinZip, extract the ObRun.zip file to this directory. Be sure that you use the option that maintains the folder
names when extracting. In WinZip this is a check box named Use folder named. This should result in a directory structure that
looks like this:

APPJAR
|---ObRun
|---Package1
|---Package2

If desired, you can use this same technique to extract the pattern zip files into this directory as well.

Before creating the JAR file, refer to the previous section and create the text file to be used in the manifest that is created in the JAR
file. We will assume that you will name this file manifest.txt and locate it in the APPJAR directory.

The next step is to open a DOS prompt and change to the APPJAR directory. Then execute the following command:

jar cfm filename.jar manifest.txt *.*

If you do not have the JDK directory in your path, then you will need to qualify the JAR command such as:

c:\jdk1.2\bin\jar cfm filename.jar manifest.txt *.*

Java Applet Web Delivered

There are lots of ways that applications can be delivered via the browser, for example, you might require the user to download some of
the Plex runtime files, install them and put them in their CLASSPATH. However, for this document, we will assume that we want to
be able to deploy and run the application on demand. In other words, the only thing that the user would need installed is the Java 2
JRE. The HTML that is generated to load the plug-in deals with this issue for us automatically.

Page: 34 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

There are only two ways that a Java application can be delivered via a browser. Either all class files, including the runtime, need to be
packaged into a single JAR file, or all class files need to be delivered on-demand. This means that even the runtime class files must
be delivered in this manner.

Setup on the Server

The setup on the server actually follows the same basic process that was described in the previous section on Java applications. The
exceptions are, that either the JAR file must be made to include all class files that will be used, or the runtime files must all be
unzipped and stored in subdirectories of the application root. There are also other considerations relating to the web server. Most web
servers will only serve files out of a specific directory structure, so you must deploy your APPROOT within this structure to make
the files available to be served.

Modifications to the HTML

If you decide to deploy your application as a single JAR file, then you must modify the HTML that was generated from Plex to
include the name of the JAR file. The tag for this is ARCHIVE = filename.jar and it must be placed within the APPLET tag.

Modifications to ob400client.properties

You must modify the properties file to specify the URL containing your panelresource files and graphic files, since they will still need
to be accessed by your application. For example:

Environment.Default.Resources=http://www.cool.sterling.com/approot
Environment.Default.ImagePath=http://www.cool.sterling.com/approot/images

Page: 35 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Mysterious Error Messages, UFOs and Other Encounters of the Third Kind [or Fourth or Fifth]

Take a picture of yourself before you start working with Java. Notice how much hair you have and what color it is. When youre down
to 2 or 3 hairs or it has all turned gray, you can declare yourself a Java expert. Until then, you may find some of the below information
useful.

JDK 1.2.2 and Beyond

Sun has released JDK 1.2.2 and has beta versions of later releases available. There is a tremendous temptation to use the latest
releases, because they have lots of new stuff in them and because we technical types are all lemmings when it comes to new releases.
WARNING LEMMINGSCLIFF AHEAD, OCEAN BELOW.

I tried Suns JDK 1.2.2 with COOL:Plex 4.0b 131, and it worked fine until I tried to connect an NT client to an AS/400 server. I then
started getting this mysterious error message, pictured below:

Page: 36 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

I checked this against the alien markings from the Roswel, NM crash site and the Area 51 archives, but no luck. The program worked
perfectly when I used a Windows 98 SE client. So whats wrong with NT? I never did figure this out. What I did figure out was what
the, @@@LKURREL @@K gibberish was. It was EBCDIC characters from the AS/400 that had not been translated to
ASCII, so that the PC could display them properly. It decoded to, CPF2204 User profile LKURREL not found. Huh?
Noticed the LKURREL user profile is in the clear in the gibberish version of the error message. What I deduced was that the ASCII to
EBCDIC translation process was not working properly. I made the assumption that, since the, CPF2204 User profile xxxxxxxxxx
not found. part was not translating properly back to the client PC, then the LKURREL part was probably not translating properly on
its way to the AS/400 security check. This probably means the problem is in the YOBSYTCP program running on the AS/400, but
may be somewhere in between.

I switched to JDK version 1.1.8, recompiled my program and re-deployed it to the NT client. The problem went away.

NOTE for IF/CW, Do not use versions of the JDK that are not supported.

For Lemmings Only

Okay Lemmings, I know youre all ready to try JDK 1.2.2 anyway, so here are the details.

With JDK 1.1.8, you have to deploy the classes.zip and swingall.jar class libraries. With Suns JDK 1.2.2, the Swing
classes have been incorporated into the same class object as the rest of the base Java classes. The new name is rt.jar. Sun has
added a separate object for National Language Support (NLS) called i18n.jar. By the way, when I was having my problems
with EBCDIC to ASCII, several people told me that my problem was not having i18n.jar in my ClassPath statement. I tried
adding it, but the problem persisted.

Below is an example ClassPath statement for JDK 1.2.2, which has been modeled after the JDK 1.1.8 example shown earlier in the
"Getting COOL:Plex to Compile Some Java" section of this document:

SET ClassPath=C:\Java\Lib\ObRun.jar;C:\Java\Lib\rt.jar;C:\Java\Lib\i18n.jar;C:\feller\GEN;E:\
feller\GEN\CLIENT;E:\feller\GEN\SERVER;E:\feller\GEN\MISC

That is the only change other than needing to install the 1.2.2 version of the JDK.

Page: 37 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Multiple JDKs on the Same PC

If youve ever tried to have two versions of the MSVC++ compiler on one PC at the same time, you know this is about as possible as
World Peace, finding and Honest Politician, and validated the phase, Military Intelligence. Having two versions of the JDK is not
only possible, its childs play. So, go find a childyoull need one. I use my 16-year old. He hates working, but he hates losing his
Internet connection to Microsofts Gaming Zone even more.

If you have read through the SUN documentation, you may have noticed that ClassPath statements can be included on all commands
that need them, like the commands JAVA, JAVAP, JRE, etc. To run multiple JDKs on the same PC you will need to start using these.

There are two changes you have to make to your PC to run multiple JDK versions:

1) Remove the ClassPath statement from your AutoExec.bat file.

2) Remove the Java portion of your Path statement from your AutoExec.bat file if you have this.

When you need to run a Java command, you will now have to fully qualify it: for example:

C:\JDK118\Bin\Java ~~~ or C:\JDK122\Bin\Java [Lemmings]~~~

You will also have to include a ClassPath Statement in the command. Its gotta be perfect just like that NOTE THAT HAD BETTER
STILL BE STUCK TO THE MIDDLE OF YOU SCREEN says. For example

C:\JDK122\Bin\Java classpath C:\Java\Lib\ObRun.jar;C:\Java\Lib\rt.jar;C:\Java\Lib\i18n.jar;~~~

The classpath part can be abbreviated cp:

C:\JDK122\Bin\Java cp C:\Java\Lib\ObRun.jar;C:\Java\Lib\rt.jar;C:\Java\Lib\i18n.jar;~~~

I use .bat files to run compiles and tests so I dont have to keep typing these things perfectly. If you use a .bat file, you can
transplant the SET statements as is from your AutoExec.bat files and forget about the classpath parameters on the Java commands.

Page: 38 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

The COOL:Plex Java Class Hierarchy

Overview

This is the exposable information about the classes in ObRun.jar version 4.0, and is not complete in all cases. Only that information
which are is hidden from plain view by the owner of COOL:Plex is shown.

The purpose of this section is to show you what methods and variables you can and cant get at.

ObBldMgr

ObBuildClient

Full name of class: ObBldMgr.ObBuildClient.class

Formal parameters:

None

Compiled from ObBuildClient.java

public synchronized class ObBldMgr/ObBuildClient extends java.lang.Thread


{
private static int m_clientId;
private ObBldMgr.ObBuildManager m_bldManager;
private java.net.Socket m_socket;
private java.lang.ThreadGroup m_threadGroup;
private ObBldMgr.ObBuildSocketStream m_socketStream;
private java.util.Date m_startTime;
private int m_transfers;
private int m_compiles;
private int m_tblBuilds;
private ObBldMgr.ObBuildInfo m_buildInfo;
private ObBldMgr.ObBuildQueue m_compileQueue;
private ObBldMgr.ObBuildQueue m_buildQueue;
private ObBldMgr.ObBuildQueue m_compileRequests;
Page: 39 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)
all rights reserved.
COOL:Plex Java for Dimwits (like me)

private ObBldMgr.ObBuildQueue m_buildRequests;


private ObBldMgr.ObSourceFile m_sourceFile;
private ObBldMgr.ObBuildStatus m_buildStatus;
private boolean m_toomanyClients;
private java.lang.Integer m_maxClients;
private java.lang.String m_clientVersion;
private java.lang.String m_clientName;
private ObBldMgr.ObRetrieveLstFile m_lstFile;
static static {};
public
ObBldMgr/ObBuildClient(ObBldMgr.ObBuildManager,java.net.Socket,java.lang.ThreadGroup,boolean,java.lang.Inte
ger);
protected synchronized void addBuildRequest(ObBldMgr.ObBuildRequest);
protected void addCompile();
protected synchronized void addCompileRequest(ObBldMgr.ObCompileRequest);
protected void addJDBC();
protected void closeClient();
protected void createBuildRequest(ObBldMgr.ObBuildInfo);
protected void createCompileRequest();
protected void deleteJobStatus();
protected void deleteSuccessfulJobs();
protected void endClient();
protected void endJobStatus();
protected boolean endTransferSource();
public ObBldMgr.ObBuildManager getBuildManager();
public java.lang.String getClientAddress();
public java.lang.String getClientName();
protected java.lang.String getFullFileName();
public synchronized ObBldMgr.ObBuildRequest getLastBuildRequest(ObBldMgr.ObBuildRequest);
public synchronized ObBldMgr.ObCompileRequest getLastCompileRequest(ObBldMgr.ObCompileRequest);
protected void jobStatus();
protected void openClient();
protected void raiseError(java.lang.String);
public synchronized void removeBuildRequest(ObBldMgr.ObBuildRequest);
public synchronized void removeCompileRequest(ObBldMgr.ObCompileRequest);
protected void reportStatistics();
protected boolean retrieveFile();
public void run();
protected void startBuildRequest();
protected void startCompileRequest();
protected void startJobStatus();

Page: 40 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

protected boolean startTransferSource();


protected boolean transferSource();
protected boolean validateClient();
}

Page: 41 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObBuildConnection

Full name of class: ObBldMgr.ObBuildConnection.class

Formal parameters:

None

Compiled from ObBuildConnection.java


public abstract synchronized class ObBldMgr/ObBuildConnection extends java.lang.Object
{
private static final java.lang.String m_defaultDataSource;
private static final java.lang.String m_defaultUser;
private static final java.lang.String m_defaultPassword;
protected java.lang.String m_databaseDriver;
protected java.lang.String m_dataSource;
protected java.lang.String m_dataSourceUser;
protected java.lang.String m_dataSourcePassword;
protected java.sql.Connection m_databaseConnection;
protected ObBldMgr.ObBuildManager m_buildManager;
protected java.util.Hashtable m_typeConverter;
protected boolean m_MoneyDatatype;
static static {};
public
ObBldMgr/ObBuildConnection(ObBldMgr.ObBuildManager,java.lang.String,java.lang.String,java.lang.String);
public ObBldMgr/ObBuildConnection(java.lang.String,java.lang.String,java.lang.String);
public void clearReferences();
public boolean connect();
public void convertDataTypes();
public java.lang.String convertPrecision(java.lang.String);
public java.lang.String convertType(java.lang.String);
public boolean disconnect();
public boolean dropPrecision(java.lang.String);
public java.sql.Connection getConnection();
public java.lang.String getDataSource();
public java.lang.String getDataSourcePassword();
public java.lang.String getDataSourceUser();
public java.lang.String getDatabaseDriver();
public java.lang.String getRuntimeType(java.lang.String);
protected void init(java.lang.String, java.lang.String, java.lang.String);

Page: 42 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Page: 43 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObBuildInfo

Full name of class: ObBldMgr.ObBuildInfo.class


Formal parameters:

None

Compiled from ObBuildInfo.java


public synchronized class ObBldMgr/ObBuildInfo extends java.lang.Object implements java.io.Serializable ,
java.lang.Cloneable
{
public static final java.lang.String OBBUILD_OPEN;
public static final java.lang.String OBBUILD_CLOSE;
public static final java.lang.String OBBUILD_TRANSFER_START;
public static final java.lang.String OBBUILD_TRANSFER;
public static final java.lang.String OBBUILD_TRANSFER_END;
public static final java.lang.String OBBUILD_JAVA_START;
public static final java.lang.String OBBUILD_JAVA;
public static final java.lang.String OBBUILD_JAVA_END;
public static final java.lang.String OBBUILD_JDBC_START;
public static final java.lang.String OBBUILD_JDBC;
public static final java.lang.String OBBUILD_JDBC_END;
public static final java.lang.String OBBUILD_STATUS_START;
public static final java.lang.String OBBUILD_STATUS;
public static final java.lang.String OBBUILD_STATUS_END;
public static final java.lang.String OBBUILD_STATUS_DELETE;
public static final java.lang.String OBBUILD_STATUS_DELETE_ALL;
public static final java.lang.String OBBUILD_RETRIEVE_FILE;
public java.lang.String m_fileName;
public java.lang.String m_designName;
public java.lang.String m_sourceDirectory;
public java.lang.String m_operation;
public java.lang.String m_userId;
public java.lang.String m_dataLength;
public java.lang.String m_debug;
public java.lang.String m_groupModel;
public java.lang.String m_version;

Page: 44 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public java.lang.String m_level;


public java.lang.String m_variant;
public java.lang.String m_language;
public java.lang.String m_jobId;
public java.lang.String m_sqlOptions;
public java.lang.String m_netId;
public java.lang.String m_builddbDriver;
public java.lang.String m_builddbName;
public java.lang.String m_builddbUserid;
public java.lang.String m_builddbPassword;
public ObRun.ObFunction.ObVersionInfo m_verInfo;
public ObRun.ObComms.ObRemoteException m_rmtExcept;
static static {};
public ObBldMgr/ObBuildInfo();
public ObBldMgr/ObBuildInfo(java.lang.String);
public java.lang.Object clone();
private void init();
private void readObject(java.io.ObjectInputStream);
private void writeObject(java.io.ObjectOutputStream);
}

Page: 45 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObBuildJDBC

Full name of class: ObBldMgr.ObBuildJDBC.class

Formal parameters:

None

Compiled from ObBuildJDBC.java


public synchronized class ObBldMgr/ObBuildJDBC extends ObBldMgr.ObCompileSource
{
private ObBldMgr.ObBuildSchema m_buildSchema;
private java.lang.String m_sqlOptions;
public
ObBldMgr/ObBuildJDBC(ObBldMgr.ObBuildManager,java.lang.String,java.lang.String,java.lang.String,java.lang.S
tring);
public boolean compile(ObBldMgr.ObBuildStatus, ObBldMgr.ObBuildInfo);
public boolean compile(ObBldMgr.ObBuildStatus, ObBldMgr.ObBuildInfo, ObBldMgr.ObBuildSchema);
public boolean dropTable(ObBldMgr.ObBuildStatus, ObBldMgr.ObBuildSchema, ObBldMgr.ObBuildInfo);
public void endCompile();
public boolean submit(java.lang.String);
}

Page: 46 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObBuildManager

Full name of class: ObBldMgr.ObBuildManager.class

Formal parameters:

None

Compiled from ObBuildManager.java


public synchronized class ObBldMgr/ObBuildManager extends ObRun.ObComms.ObSocketService
{
protected static final java.lang.Integer m_defaultPort;
private static final java.lang.String m_defaultOptions;
private static final java.lang.String m_jobNumberFile;
private java.lang.String m_sourceDirectory;
private java.lang.String m_compiler;
private java.lang.String m_classPath;
private java.lang.String m_databaseDriver;
private java.lang.String m_statusDataSource;
private java.lang.String m_dataSourceUser;
private java.lang.String m_dataSourcePassword;
private java.lang.Integer m_maxConcurrentCompiles;
private java.lang.Integer m_maxConcurrentBuilds;
private java.util.Vector m_runningCompiles;
private java.util.Vector m_runningBuilds;
private ObBldMgr.ObBuildQueue m_compileQueue;
private ObBldMgr.ObBuildQueue m_buildQueue;
private java.lang.String m_serverVersion;
static static {};
public ObBldMgr/ObBuildManager(int,java.lang.String,java.lang.String);
public synchronized void addToBuildQueue(ObBldMgr.ObBuildRequest);
public synchronized void addToCompileQueue(ObBldMgr.ObCompileRequest);
public synchronized boolean allowBuild();
public synchronized boolean allowCompile();
public synchronized void compileStarted(ObBldMgr.ObCompileRequest);
public void createNewClient(java.net.Socket, boolean, java.lang.Integer);
public synchronized void endAllBuilds();
public synchronized void endAllCompiles();
public synchronized void finishBuild(ObBldMgr.ObBuildRequest);
public synchronized void finishCompile(ObBldMgr.ObCompileRequest);

Page: 47 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public java.lang.String getClassPath();


public java.lang.String getCompiler();
public java.lang.String getDataSource();
public java.lang.String getDataSourcePassword();
public java.lang.String getDataSourceUser();
public java.lang.String getDatabaseDriver();
public java.lang.String getServerVersion();
public java.lang.String getSourceDirectory();
private void init();
protected void initJobNumber();
public void logServiceStart();
public static void main(java.lang.String[]);
protected void saveJobNumber();
protected void setServiceParms();
public synchronized void startNextBuild();
public synchronized void startNextCompile();
public void stopService();
}

Page: 48 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObBuildQueue

Full name of class: ObBldMgr.ObBuildQueue.class

Formal parameters:

None

Compiled from ObBuildQueue.java


public synchronized class ObBldMgr/ObBuildQueue extends java.util.Stack
{
public ObBldMgr/ObBuildQueue();
public int addItem(java.lang.Object);
public void copy(ObBldMgr/ObBuildQueue);
public java.lang.Object peekTop();
}

Page: 49 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObBuildRequest

Full name of class: ObBldMgr.ObBuildRequest.class

Formal parameters:

None

Compiled from ObBuildRequest.java


public synchronized class ObBldMgr/ObBuildRequest extends ObBldMgr.ObRmtBuildRequest
{
private ObBldMgr.ObBuildSchema m_buildSchema;
private java.lang.String m_databaseDriver;
private java.lang.String m_buildDataSource;
private java.lang.String m_buildDataSourceUser;
private java.lang.String m_buildDataSourcePassword;
public ObBldMgr/ObBuildRequest(ObBldMgr.ObBuildClient,ObBldMgr.ObBuildQueue,ObBldMgr.ObBuildInfo);
protected void addToQueue();
protected boolean canRun();
public void clearReferences();
public boolean compile();
public boolean dropTables();
protected void finished();
protected ObBldMgr.ObRmtBuildRequest getLastRequest();
private void init();
public void run();
}

Page: 50 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObBuildSchema

Full name of class: ObBldMgr.ObBuildSchema.class

Formal parameters:

None

Compiled from ObBuildSchema.java


public synchronized class ObBldMgr/ObBuildSchema extends ObBldMgr.ObBuildConnection
{
private ObBldMgr.ObBuildStatus m_buildStatus;
private ObBldMgr.ObBuildClient m_buildClient;
public
ObBldMgr/ObBuildSchema(java.lang.String,java.lang.String,java.lang.String,java.lang.String,ObBldMgr.ObBuild
Status,ObBldMgr.ObBuildClient);
public java.sql.Connection getConnection();
protected void init(java.lang.String, java.lang.String, java.lang.String);
}

Page: 51 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObBuildSocketStream

Formal parameters:

None

Full name of class: ObBldMgr.ObBuildSocketStream.class

Compiled from ObBuildSocketStream.java


public synchronized class ObBldMgr/ObBuildSocketStream extends ObRun.ObComms.ObDataSocketStream
{
public ObBldMgr/ObBuildSocketStream();
public ObBldMgr/ObBuildSocketStream(java.lang.String,java.lang.Integer);
public java.lang.Object read();
public ObBldMgr.ObBuildInfo readBuildInfo();
public ObBldMgr.ObBuildInfo readCompileInfo();
public ObBldMgr.ObBuildInfo readDeleteJob();
public ObBldMgr.ObBuildInfo readFileInfo();
public boolean readJobStatus();
public ObBldMgr.ObBuildInfo readStatusInfo();
public java.lang.String readVersion();
public void write(java.lang.Object);
public void writeErrorMessage(java.lang.String);
}

Page: 52 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObBuildStatus

Full name of class: ObBldMgr.ObBuildStatus.class

Formal parameters:

None

Compiled from ObBuildStatus.java


public synchronized class ObBldMgr/ObBuildStatus extends ObBldMgr.ObBuildConnection
{
private static final java.lang.String m_statusTable;
private java.sql.ResultSet m_resultSet;
static static {};
public
ObBldMgr/ObBuildStatus(ObBldMgr.ObBuildManager,java.lang.String,java.lang.String,java.lang.String);
public ObBldMgr/ObBuildStatus(java.lang.String,java.lang.String,java.lang.String);
public boolean createDatabase();
protected java.lang.String createDeleteStatement(ObBldMgr.ObBuildInfo);
protected java.lang.String createDeleteSuccessStatement(ObBldMgr.ObBuildInfo);
protected java.lang.String createInsertStatement(ObBldMgr.ObBuildStatusInfo);
protected java.lang.String createQueryStatement(ObBldMgr.ObBuildInfo);
protected boolean createStatus(ObBldMgr.ObBuildStatusInfo);
protected java.lang.String createTableDefinition();
protected java.lang.String createUpdateStatement(ObBldMgr.ObBuildStatusInfo);
public boolean deleteJobStatus(ObBldMgr.ObBuildInfo);
public boolean deleteSuccessfulJobs(ObBldMgr.ObBuildInfo);
protected void init(java.lang.String, java.lang.String, java.lang.String);
public boolean queryJobStatus(ObBldMgr.ObBuildInfo);
protected boolean updateStatus(ObBldMgr.ObBuildStatusInfo);
protected boolean writeCharsToStream(java.io.BufferedWriter, java.lang.String, int);
public boolean writeStatusToStream(java.io.BufferedWriter);
}

Page: 53 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObBuildStatusInfo

Full name of class: ObBldMgr.ObBuildStatusInfo.class

Formal parameters:

None

Compiled from ObBuildStatusInfo.java


public synchronized class ObBldMgr/ObBuildStatusInfo extends java.lang.Object
{
private static int m_jobNumber;
private static final int ON_QUEUE;
private static final int START_FAILED;
private static final int ACTIVE;
private static final int ABNORMAL_END;
private static final int COMPLETED_ERROR;
private static final int COMPLETED_SUCCESS;
private static final int ENDED_BY_USER;
private static final int COMPLETED_WARNING;
public java.lang.String m_user;
public java.lang.String m_groupModel;
public java.lang.Integer m_version;
public java.lang.Integer m_level;
public java.lang.Integer m_variant;
public java.lang.Integer m_language;
public java.lang.String m_jobId;
public java.lang.Integer m_jobStatus;
public java.sql.Date m_date;
public java.sql.Time m_time;
public java.lang.String m_designName;
public java.lang.String m_className;
static static {};
public ObBldMgr/ObBuildStatusInfo();
public static ObBldMgr/ObBuildStatusInfo buildFailed(ObBldMgr.ObBuildInfo);
public static ObBldMgr/ObBuildStatusInfo buildStartFailed(ObBldMgr.ObBuildInfo);
public static ObBldMgr/ObBuildStatusInfo buildSucceeded(ObBldMgr.ObBuildInfo);
public static ObBldMgr/ObBuildStatusInfo compileStarted(ObBldMgr.ObBuildInfo);
protected void copyBuildInfo(ObBldMgr.ObBuildInfo);
public static ObBldMgr/ObBuildStatusInfo createStatusInfo(ObBldMgr.ObBuildInfo, int);

Page: 54 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public static synchronized int getJobId();


public static synchronized int getNextJobId();
private void init();
public static ObBldMgr/ObBuildStatusInfo onQueue(ObBldMgr.ObBuildInfo);
public static synchronized void setJobId(int);
}

Page: 55 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCompileJava

Full name of class: ObBldMgr.ObCompileJava.class

Formal parameters:

None

Compiled from ObCompileJava.java


public synchronized class ObBldMgr/ObCompileJava extends ObBldMgr.ObCompileSource
{
private boolean m_debug;
private java.lang.Process m_compileProcess;
private java.lang.String m_sourceDirectory;
public
ObBldMgr/ObCompileJava(ObBldMgr.ObBuildManager,java.lang.String,java.lang.String,java.lang.String,java.lang
.String,boolean);
public boolean compile(ObBldMgr.ObBuildStatus, ObBldMgr.ObBuildInfo);
public void endCompile();
public boolean onQueueStatus(ObBldMgr.ObBuildStatus, ObBldMgr.ObBuildInfo);
public boolean submit(java.lang.String);
}

Page: 56 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCompileRequest

Full name of class: ObBldMgr.ObCompileRequest.class

Formal parameters:

None

Compiled from ObCompileRequest.java


public synchronized class ObBldMgr/ObCompileRequest extends ObBldMgr.ObRmtBuildRequest
{
public ObBldMgr/ObCompileRequest(ObBldMgr.ObBuildClient,ObBldMgr.ObBuildQueue,ObBldMgr.ObBuildInfo);
protected void addToQueue();
protected boolean canRun();
public boolean compile();
protected void finished();
protected ObBldMgr.ObRmtBuildRequest getLastRequest();
}

Page: 57 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCompileSource

Full name of class: ObBldMgr.ObCompileSource.class

Formal parameters:

None

Compiled from ObCompileSource.java


public abstract synchronized class ObBldMgr/ObCompileSource extends java.lang.Object
{
protected ObBldMgr.ObBuildManager m_buildManager;
protected java.lang.String m_sourceFile;
protected java.lang.String m_designName;
protected java.lang.String m_className;
protected ObBldMgr.ObBuildStatus m_buildStatus;
protected ObBldMgr.ObBuildInfo m_buildInfo;
protected int m_jobId;
protected java.lang.String m_sourceLstFile;
protected java.io.BufferedWriter m_errorFileStream;
public
ObBldMgr/ObCompileSource(ObBldMgr.ObBuildManager,java.lang.String,java.lang.String,java.lang.String);
protected java.lang.String addLstExtension(java.lang.String);
protected boolean closeLstFile();
public abstract boolean compile(ObBldMgr.ObBuildStatus, ObBldMgr.ObBuildInfo);
protected boolean deleteLstFile();
public abstract void endCompile();
protected boolean openLstFile();
protected void setBuildInfo();
public abstract boolean submit(java.lang.String);
protected boolean updateLstFile(java.lang.String);
protected void updateStatus(int);
}

Page: 58 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObParseGeneratedSQL

Full name of class: ObBldMgr.ObParseGeneratedSQL.class

Formal parameters:

None

Compiled from ObParseGeneratedSQL.java


public synchronized class ObBldMgr/ObParseGeneratedSQL extends java.lang.Object
{
private java.lang.String m_sourceFile;
private java.io.BufferedReader m_inputFile;
private ObBldMgr.ObBuildQueue m_generatedSQL;
private java.util.Stack m_buildOptions;
private ObBldMgr.ObBuildQueue m_subStatements;
private ObBldMgr.ObBuildQueue m_sqlStatements;
private ObBldMgr.ObBuildConnection m_connection;
private java.lang.String m_lastStatement;
private java.lang.String m_enabledOptions;
private java.lang.String m_databaseName;
private boolean m_ignoreStatements;
public static final java.lang.String COND_IF;
public static final java.lang.String COND_ELSE;
public static final java.lang.String COND_ENDIF;
public static final java.lang.String SQL_SERVER_NAME;
static static {};
public ObBldMgr/ObParseGeneratedSQL(ObBldMgr.ObBuildConnection,java.lang.String,java.lang.String);
public void addOption(java.lang.String, boolean);
public void assembleStatement();
public boolean builtStatement(java.lang.String);
public java.lang.String checkForCondSyntax(java.lang.String);
public java.lang.String convertDataTypes(java.lang.String);
public java.util.Vector createDropStatement();
public boolean endOption(java.lang.String);
public java.lang.String getDatabaseName();
public boolean isOptionEnabled(java.lang.String);
public boolean newOption(java.lang.String);
public boolean newStatement(java.lang.String);
public boolean openFile();

Page: 59 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObBldMgr.ObBuildQueue parseStatement();


public void printStatements();
public boolean readFile();
public void removeHeader();
public void removeOption();
}

Page: 60 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObRetrieveLstFile

Full name of class: ObBldMgr.ObRetrieveLstFile.class

Formal parameters:

None

Compiled from ObRetrieveLstFile.java


public synchronized class ObBldMgr/ObRetrieveLstFile extends java.lang.Object
{
private static int m_srcBufSize;
private java.io.BufferedReader m_inputStream;
private java.io.BufferedReader m_inFileStream;
private java.io.BufferedWriter m_outputStream;
private java.lang.String m_more;
private java.lang.String m_fileName;
private java.lang.String m_sourceDir;
private java.lang.String m_sourceFileBytes;
private java.lang.String m_byteTransferCount;
private java.lang.String m_fullFileName;
static static {};
public ObBldMgr/ObRetrieveLstFile(java.io.BufferedReader,java.io.BufferedWriter);
public boolean closeFile();
public boolean endWriteToStream();
public boolean openFile(java.lang.String);
public boolean readFromFile();
public void readFromStream();
}

Page: 61 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObRmtBuildRequest

Full name of class: ObBldMgr.ObRmtBuildRequest.class

Formal parameters:

None

Compiled from ObRmtBuildRequest.java


public abstract synchronized class ObBldMgr/ObRmtBuildRequest extends java.lang.Thread
{
protected ObBldMgr.ObBuildClient m_buildClient;
protected ObBldMgr.ObBuildQueue m_compileQueue;
protected ObBldMgr.ObBuildStatus m_buildStatus;
protected ObBldMgr.ObBuildInfo m_buildInfo;
public ObBldMgr/ObRmtBuildRequest(ObBldMgr.ObBuildClient,ObBldMgr.ObBuildQueue,ObBldMgr.ObBuildInfo);
protected abstract void addToQueue();
protected abstract boolean canRun();
public void clearReferences();
public abstract boolean compile();
protected abstract void finished();
protected abstract ObBldMgr/ObRmtBuildRequest getLastRequest();
protected void joinRequest();
public void run();
}

Page: 62 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObSourceFile

Full name of class: ObBldMgr.ObSourceFile.class

Formal parameters:

None

Compiled from ObSourceFile.java


public synchronized class ObBldMgr/ObSourceFile extends java.lang.Object
{
private java.lang.String m_fileName;
private java.io.BufferedReader m_inputStream;
private java.io.BufferedWriter m_outputStream;
private java.io.BufferedWriter m_socketStream;
public ObBldMgr/ObSourceFile(java.lang.String,java.io.BufferedReader,java.io.BufferedWriter);
public boolean closeFile();
private void init();
public boolean openFile();
public boolean writeFromStream();
}

Page: 63 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObSQLBuildOption

Full name of class: ObBldMgr.ObSQLBuildOption.class

Formal parameters:

None

Compiled from ObParseGeneratedSQL.java


synchronized class ObBldMgr/ObSQLBuildOption extends java.lang.Object
{
public static final java.lang.String PRIMARY_KEY;
public static final java.lang.String FOREIGN_KEY;
public static final java.lang.String DEFAULT_VALUES;
public static final java.lang.String CHECK_CONSTRAINTS;
public static final java.lang.String LONG_NAMES;
public static final java.lang.String NAMED_CONSTRAINTS;
public static final java.lang.String DATA_SOURCE;
public static final java.lang.String TRIGGERS;
public static final java.lang.String BEGIN;
public static final java.lang.String END;
public static final java.lang.String OPTION;
public static final java.lang.String END_OPTION;
private ObBldMgr.ObParseGeneratedSQL m_parser;
private java.lang.String m_statement;
private java.lang.String m_option;
static static {};
public ObBldMgr/ObSQLBuildOption(ObBldMgr.ObParseGeneratedSQL,java.lang.String);
public void add(java.lang.String);
public boolean enabled();
public java.lang.String getEnabledText();
public java.lang.String getOption();
public java.lang.String getText();
public boolean isBegin();
}

Page: 64 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObFunction

ObServerApp

Full name of class: ObFunction.ObServerApp.class

The Javap command does not reveal any facts about this class.

Page: 65 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObVariable

Full name of class: ObFunction.ObVariable.class

The Javap command does not reveal any facts about this class.

Page: 66 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObRun

ObComms

ObAS400Conversation

Full name of class: ObRun.ObComms.ObAS400Conversation.class

Formal parameters:

java.lang.String m_userId;
java.lang.String m_password;
java.lang.String m_encoding;
boolean m_bypassLogin;
boolean m_forceLoginDialog;

Compiled from ObAS400Conversation.java


public final synchronized class ObRun/ObComms/ObAS400Conversation extends ObRun.ObComms.ObConversation
implements java.awt.event.KeyListener
{
public ObRun.ObComms.ObAS400SocketStream m_socket;
java.lang.String m_userId;
java.lang.String m_password;
java.lang.String m_encoding;
public static int m_encryptBufferSize;
private javax.swing.JDialog m_loginDialog;
boolean m_bypassLogin;
boolean m_forceLoginDialog;
static static {};
public ObRun/ObComms/ObAS400Conversation(java.lang.String,java.lang.String);
public boolean allocate();
public boolean callFunction(java.lang.String, java.lang.String, ObRun.ObFunction.ObFncParameter);
public boolean deAllocate();
private java.lang.String encryptPassword(java.lang.String);
public int getChangePasswordInformation();
public boolean getLoginInformation();
private int getRandomValue(java.util.Random);
private boolean isPositionUsed(int, int, byte[]);
public void keyPressed(java.awt.event.KeyEvent);
Page: 67 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)
all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void keyReleased(java.awt.event.KeyEvent);


public void keyTyped(java.awt.event.KeyEvent);
public boolean openRequest();
private void setRunOption(java.lang.String, java.lang.String);
}

Page: 68 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObAS400SocketStream

Full name of class: ObRun.ObComms.ObAS400SocketStream.class

Formal parameters:

None

Compiled from ObAS400SocketStream.java


public final synchronized class ObRun/ObComms/ObAS400SocketStream extends ObRun.ObComms.ObSocketStream
{
private java.lang.String m_strFunction;
private java.lang.String m_location;
private java.lang.String m_user;
private java.lang.String m_password;
private java.lang.String m_newPassword;
private java.lang.String m_jobDescription;
private java.lang.String m_jobDescriptionLibrary;
private java.lang.String m_errorPort;
private java.lang.String m_dataPort;
protected java.net.ServerSocket m_errorSocket;
protected java.net.ServerSocket m_dataSocket;
private ObRun/ObComms/ObAS400SocketStream. ObAS400CallInfo m_as400Call;
protected java.net.Socket m_errSocket;
protected ObRun/ObComms/ObAS400SocketStream. AS400DataReading m_dataReadThread;
protected byte m_byteArray[];
public java.lang.String m_errString;
protected java.lang.String m_encoding;
protected java.io.DataOutputStream m_outputStream;
protected java.io.DataInputStream m_inputStream;
protected java.io.DataInputStream m_errorStream;
private static int EBCDIC_TOP_D;
private static int EBCDIC_TOP_F;
private static int EBCDIC_BOT_0;
private static int EBCDIC_BOT_1;
private static int EBCDIC_BOT_2;
private static int EBCDIC_BOT_3;
private static int EBCDIC_BOT_4;
private static int EBCDIC_BOT_5;
private static int EBCDIC_BOT_6;

Page: 69 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

private static int EBCDIC_BOT_7;


private static int EBCDIC_BOT_8;
private static int EBCDIC_BOT_9;
static static {};
public ObRun/ObComms/ObAS400SocketStream();
public
ObRun/ObComms/ObAS400SocketStream(java.lang.String,java.lang.Integer,java.lang.String,java.lang.String,java
.lang.String,java.lang.String);
static java.lang.String access$0(ObRun/ObComms/ObAS400SocketStream);
static java.lang.String access$1(ObRun/ObComms/ObAS400SocketStream);
static java.lang.String access$2(ObRun/ObComms/ObAS400SocketStream);
static java.lang.String access$3(ObRun/ObComms/ObAS400SocketStream);
public void closeErrorSocket();
public boolean connectClient();
public static char convertAsciiToZoned(java.lang.String, int, int)[];
public static char convertPackedToZoned(char[], int, int)[];
public static java.lang.String convertZonedToAscii(char[], int, int);
public static char convertZonedToPacked(char[], int, int)[];
public static java.lang.String createFixLengthString(java.lang.String, int);
public boolean createStreams();
public static java.lang.String decode(byte[], java.lang.String);
public static byte encode(java.lang.String, java.lang.String)[];
public java.lang.Object read();
public byte read(int)[];
public void setNewPassword(java.lang.String);
public void write(java.lang.Object);
public void write(java.lang.Object, long, long);

synchronized class ObRun/ObComms/ObAS400SocketStream. ObAS400CallInfo extends java.lang.Object


{
private final ObRun/ObComms/ObAS400SocketStream this$0;
public java.lang.String m_program;
public java.lang.String m_programLib;
public int m_operation;
public int m_paramLen;
public java.lang.String m_userId;
public java.lang.String m_jobd;
public java.lang.String m_jobdLib;
public short m_versionInfo;
public short m_version;
public short m_release;

Page: 70 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public short m_level;


public short m_fixLevel;
public short m_debugBuild;
public java.lang.String m_padding;
public int m_inputLen;
public ObRun/ObComms/ObAS400SocketStream. ObAS400CallInfo(ObRun/ObComms/ObAS400SocketStream);
public byte getAllBytes()[];
}

synchronized class ObRun/ObComms/ObAS400SocketStream. AS400ErrorHandling extends java.lang.Thread


{
private final ObRun/ObComms/ObAS400SocketStream this$0;
ObRun/ObComms/ObAS400SocketStream. AS400ErrorHandling(ObRun/ObComms/ObAS400SocketStream);
public void run();
}

synchronized class ObRun/ObComms/ObAS400SocketStream. AS400DataReading extends java.lang.Thread


{
private final ObRun/ObComms/ObAS400SocketStream this$0;
ObRun/ObComms/ObAS400SocketStream. AS400DataReading(ObRun/ObComms/ObAS400SocketStream);
public void run();
}

synchronized class ObRun/ObComms/ObAS400SocketStream. ObAS400CallInfo extends java.lang.Object


{
private final ObRun/ObComms/ObAS400SocketStream this$0;
public java.lang.String m_program;
public java.lang.String m_programLib;
public int m_operation;
public int m_paramLen;
public java.lang.String m_userId;
public java.lang.String m_jobd;
public java.lang.String m_jobdLib;
public short m_versionInfo;
public short m_version;
public short m_release;
public short m_level;
public short m_fixLevel;
public short m_debugBuild;
public java.lang.String m_padding;
public int m_inputLen;

Page: 71 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObRun/ObComms/ObAS400SocketStream. ObAS400CallInfo(ObRun/ObComms/ObAS400SocketStream);


public byte getAllBytes()[];
}

synchronized class ObRun/ObComms/ObAS400SocketStream. AS400ErrorHandling extends java.lang.Thread


{
private final ObRun/ObComms/ObAS400SocketStream this$0;
ObRun/ObComms/ObAS400SocketStream. AS400ErrorHandling(ObRun/ObComms/ObAS400SocketStream);
public void run();
}

synchronized class ObRun/ObComms/ObAS400SocketStream. AS400DataReading extends java.lang.Thread


{
private final ObRun/ObComms/ObAS400SocketStream this$0;
ObRun/ObComms/ObAS400SocketStream. AS400DataReading(ObRun/ObComms/ObAS400SocketStream);
public void run();
}
}

Page: 72 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObAS400SocketStream$AS400DataReading

Full name of class: ObRun.ObComms.ObAS400SocketStream$AS400DataReading.class

Formal parameters:

None

Compiled from ObAS400SocketStream.java


synchronized class ObRun.ObComms.ObAS400SocketStream. AS400DataReading extends java.lang.Thread
{
private final ObRun.ObComms.ObAS400SocketStream this$0;
ObRun.ObComms.ObAS400SocketStream. AS400DataReading(ObRun.ObComms.ObAS400SocketStream);
public void run();
}

Page: 73 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObAS400SocketStream$AS400ErrorHandling

Full name of class: ObRun.ObComms.ObAS400SocketStream$AS400ErrorHandling.class

Formal parameters:

None

Compiled from ObAS400SocketStream.java


synchronized class ObRun.ObComms.ObAS400SocketStream. AS400ErrorHandling extends java.lang.Thread
{
private final ObRun.ObComms.ObAS400SocketStream this$0;
ObRun.ObComms.ObAS400SocketStream. AS400ErrorHandling(ObRun.ObComms.ObAS400SocketStream);
public void run();
}

Page: 74 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObAS400SocketStream$ObAS400CallInfo

Full name of class: ObRun.ObComms.ObAS400SocketStream$ObAS400CallInfo.class

Formal parameters:

None

Compiled from ObAS400SocketStream.java


synchronized class ObRun.ObComms.ObAS400SocketStream. ObAS400CallInfo extends java.lang.Object
{
private final ObRun.ObComms.ObAS400SocketStream this$0;
public java.lang.String m_program;
public java.lang.String m_programLib;
public int m_operation;
public int m_paramLen;
public java.lang.String m_userId;
public java.lang.String m_jobd;
public java.lang.String m_jobdLib;
public short m_versionInfo;
public short m_version;
public short m_release;
public short m_level;
public short m_fixLevel;
public short m_debugBuild;
public java.lang.String m_padding;
public int m_inputLen;
public ObRun.ObComms.ObAS400SocketStream. ObAS400CallInfo(ObRun.ObComms.ObAS400SocketStream);
public byte getAllBytes()[];
}

Page: 75 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObClientConnect

Full name of class: ObRun.ObComms.ObClientConnect.class

Formal parameters:

None

Compiled from ObClientConnect.java


public final synchronized class ObRun/ObComms/ObClientConnect extends java.lang.Thread
{
private static int m_clientId;
private ObRun.ObComms.ObService m_service;
private java.net.Socket m_socket;
private java.lang.ThreadGroup m_threadGroup;
private ObRun.ObComms.ObSocketStream m_socketStream;
private java.util.Date m_startTime;
private int m_callsMade;
private ObRun.ObFunction.ObApplication m_app;
private ObRun.ObFunction.ObCallInfo m_callInfo;
private java.lang.String m_clientName;
private java.lang.String m_functionName;
private boolean m_isJavaClient;
private boolean m_toomanyClients;
private java.lang.Integer m_maxClients;
static static {};
public
ObRun/ObComms/ObClientConnect(ObRun.ObComms.ObService,java.net.Socket,java.lang.ThreadGroup,boolean,java.la
ng.Integer);
protected void callFunction();
protected void closeClient();
protected void endClient();
public java.lang.String getClientAddress();
public java.lang.String getClientName();
public java.lang.String getCurrentFunction();
public boolean isJavaClient();
protected void openClient();
protected void raiseError(java.lang.String);
protected void registerNotifications();
protected void reportStatistics();

Page: 76 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void run();


public void terminate();
}

Page: 77 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObClientListen

Full name of class: ObRun.ObComms.ObClientListen.class

Formal parameters:

None

Compiled from ObClientListen.java


public final synchronized class ObRun/ObComms/ObClientListen extends ObRun.ObComms.ObSocketListen
{
public ObRun/ObComms/ObClientListen(int);
public void createNewClient(java.net.Socket, boolean, java.lang.Integer);
protected void reportStatistics();
}

Page: 78 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObClientType

Full name of class: ObRun.ObComms.ObClientType.class

Formal parameters:

None

Compiled from ObClientConnect.java


synchronized class ObRun/ObComms/ObClientType extends java.lang.Object
{
public java.io.DataInputStream m_inputStream;
public java.io.DataOutputStream m_outputStream;
public ObRun/ObComms/ObClientType();
public boolean isJavaClient(java.net.Socket);
}

Page: 79 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObConversation

Full name of class: ObRun.ObComms.ObConversation.class

Formal parameters:

None

Compiled from ObConversation.java


public abstract synchronized class ObRun/ObComms/ObConversation extends java.lang.Object
{
protected java.lang.String m_location;
protected java.lang.String m_system;
protected java.lang.Integer m_port;
protected boolean m_allocated;
protected ObRun.ObFunction.ObCallInfo m_callInfo;
public ObRun/ObComms/ObConversation(java.lang.String,java.lang.String);
public abstract boolean allocate();
public boolean allocated();
public abstract boolean deAllocate();
public java.lang.Integer getPort();
public java.lang.String getSystem();
}

Page: 80 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObDataSocketStream

Full name of class: ObRun.ObComms.ObDataSocketStream.class

Formal parameters:

None

Compiled from ObDataSocketStream.java


public abstract synchronized class ObRun/ObComms/ObDataSocketStream extends ObRun.ObComms.ObSocketStream
{
protected java.io.BufferedWriter m_outputStream;
protected java.io.BufferedReader m_inputStream;
protected int m_dataLength;
public ObRun/ObComms/ObDataSocketStream();
public ObRun/ObComms/ObDataSocketStream(java.lang.String,java.lang.Integer);
public boolean createStreams();
public static synchronized void dumpBuffer(char[]);
public java.io.BufferedReader getInputStream();
public java.io.BufferedWriter getOutputStream();
public abstract java.lang.Object read();
public abstract void write(java.lang.Object);
}

Page: 81 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObDispatchSocketStream

Full name of class: ObRun.ObComms.ObDispatchSocketStream.class

Formal parameters:

None

Compiled from ObDispatchSocketStream.java


public final synchronized class ObRun/ObComms/ObDispatchSocketStream extends
ObRun.ObComms.ObDataSocketStream
{
private java.lang.String m_strFunction;
private java.lang.String m_strEnv;
public ObRun/ObComms/ObDispatchSocketStream();
public ObRun/ObComms/ObDispatchSocketStream(java.lang.String,java.lang.Integer);
public java.lang.Object read();
public void write(java.lang.Object);
}

Page: 82 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObNotifyConnect

Full name of class: ObRun.ObComms.ObNotifyConnect.class

Formal parameters:

None

Compiled from ObNotifyConnect.java


public final synchronized class ObRun/ObComms/ObNotifyConnect extends java.lang.Thread
{
private static int m_serverId;
private ObRun.ObComms.ObClientListen m_listener;
private java.net.Socket m_socket;
private java.lang.ThreadGroup m_threadGroup;
private ObRun.ObComms.ObObjectSocketStream m_socketStream;
private boolean m_toomanyClients;
private java.lang.Integer m_maxClients;
static static {};
public
ObRun/ObComms/ObNotifyConnect(ObRun.ObComms.ObClientListen,java.net.Socket,java.lang.ThreadGroup,boolean,ja
va.lang.Integer);
public void endConnect();
public void run();
}

Page: 83 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObNotifyEvent

Full name of class: ObRun.ObComms.ObNotifyEvent.class

Formal parameters:

None

Compiled from ObNotifyEvent.java


public final synchronized class ObRun/ObComms/ObNotifyEvent extends java.lang.Object
{
private java.lang.String m_eventName;
private java.lang.String m_serverName;
public ObRun/ObComms/ObNotifyEvent(java.lang.String,java.lang.String);
public java.lang.String getServerName();
}

Page: 84 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObObjectConversation

Full name of class: ObRun.ObComms.ObObjectConversation.class

Formal parameters:

None

Compiled from ObObjectConversation.java


public final synchronized class ObRun/ObComms/ObObjectConversation extends ObRun.ObComms.ObConversation
{
public ObRun.ObComms.ObObjectSocketStream m_socket;
protected java.lang.String m_environment;
public ObRun/ObComms/ObObjectConversation(java.lang.String,java.lang.String);
public boolean allocate();
public void callFunction(java.lang.String, ObRun.ObFunction.ObFncParameter);
public boolean deAllocate();
public java.lang.String getEnvironment();
}

Page: 85 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObObjectSocketStream

Full name of class: ObRun.ObComms.ObObjectSocketStream.class

Formal parameters:

None

Compiled from ObObjectSocketStream.java


public final synchronized class ObRun/ObComms/ObObjectSocketStream extends ObRun.ObComms.ObSocketStream
{
private java.io.ObjectOutputStream m_outputStream;
private java.io.ObjectInputStream m_inputStream;
public ObRun/ObComms/ObObjectSocketStream();
public ObRun/ObComms/ObObjectSocketStream(java.lang.String,java.lang.Integer);
public boolean createStreams();
public java.lang.Object read();
public void write(java.lang.Object);
}

Page: 86 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObRemoteException

Full name of class: ObRun.ObComms.ObRemoteException.class

Formal parameters:

None

Compiled from ObRemoteException.java


public final synchronized class ObRun/ObComms/ObRemoteException extends ObRun.ObEnvironment.ObException
{
protected java.lang.String m_systemName;
public ObRun/ObComms/ObRemoteException(java.lang.String);
public java.lang.String toString();
}

Page: 87 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObService

Full name of class: ObRun.ObComms.ObService.class

Formal parameters:

None

Compiled from ObService.java


public final synchronized class ObRun/ObComms/ObService extends ObRun.ObComms.ObSocketService
{
protected static final java.lang.Integer m_defaultPort;
private static final java.lang.String m_defaultOptions;
static static {};
public ObRun/ObComms/ObService(int,java.lang.String,java.lang.String);
public void createNewClient(java.net.Socket, boolean, java.lang.Integer);
public void logServiceStart();
public static void main(java.lang.String[]);
protected void reportStatistics();
}

Page: 88 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObSocketListen

Full name of class: ObRun.ObComms.ObSocketListen.class

Formal parameters:

None

Compiled from ObSocketListen.java


public abstract synchronized class ObRun/ObComms/ObSocketListen extends java.lang.Thread
{
protected java.lang.Integer m_port;
protected java.net.ServerSocket m_serverSocket;
protected java.lang.ThreadGroup m_threadGroup;
protected java.util.Vector m_clientVector;
protected java.lang.Integer m_clientLimit;
protected java.util.Hashtable m_currentClients;
protected boolean m_keepWaiting;
public static final int DEFAULTCLIENTLIMIT;
public static final int DEFAULTPORT;
public ObRun/ObComms/ObSocketListen(int);
public synchronized void addClient(java.lang.Object);
public java.util.Enumeration clients();
public abstract void createNewClient(java.net.Socket, boolean, java.lang.Integer);
public java.lang.Integer getPort();
protected void log(java.lang.String, int);
public synchronized void removeClient(java.lang.Object);
protected abstract void reportStatistics();
public void run();
public void stopListening();
public void terminateClient();
}

Page: 89 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObSocketService

Full name of class: ObRun.ObComms.ObSocketService.class

Formal parameters:

None

Compiled from ObSocketService.java


public abstract synchronized class ObRun/ObComms/ObSocketService extends ObRun.ObComms.ObSocketListen
{
protected java.lang.String m_logFileName;
protected java.lang.String m_optionsFileName;
protected java.lang.String m_optionsFilePath;
protected java.util.Date m_startTime;
protected int m_clientsServiced;
protected ObRun.ObEnvironment.ObLog m_logFile;
protected ObRun.ObEnvironment.ObRunOptions m_runOptions;
protected java.util.ResourceBundle m_stringResources;
protected java.util.Locale m_locale;
private java.lang.Integer m_loggingLevel;
private boolean m_useLog;
private java.lang.Integer m_securityLevel;
private boolean m_useSecurity;
private byte m_status;
protected java.lang.String m_logPrefix;
public static final byte NOTSTARTED;
public static final byte STARTED;
public static final byte ENDED;
public static final byte SUSPENDED;
public ObRun/ObComms/ObSocketService(int,java.lang.String,java.lang.String);
public synchronized void addClient(java.lang.Object);
public abstract void createNewClient(java.net.Socket, boolean, java.lang.Integer);
public java.lang.Integer getClientLimit();
public java.lang.Integer getClients();
public java.lang.String getLogFileName();
public int getLoggingLevel();
public java.lang.String getOptionsFile();
public java.lang.String getResourceString(java.lang.String);
public int getSecurityLevel();

Page: 90 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public byte getStatus();


private void initService(int);
public boolean isEnded();
public boolean isStarted();
public boolean isSuspended();
public boolean loadResources();
public void log(int, java.lang.String);
public void log(int, java.lang.String, java.lang.String);
public void log(java.lang.String, int);
public abstract void logServiceStart();
public void removeClient(java.lang.Object);
protected void reportStatistics();
public void resumeService();
public void setClientLimit(int);
public void setLog(boolean);
public void setLoggingLevel(int);
public void setOptionsFile(java.lang.String);
private void setParms();
public void setSecurity(boolean);
public void setSecurityLevel(int);
protected void setServiceParms();
public void startService();
public void stopService();
public void suspendService();
public boolean useLog();
public boolean useSecurity();
}

Page: 91 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObDatabase

ObDatabaseConnection

Full name of class: ObRun.ObDatabase.ObDatabaseConnection.class

Formal parameters:

None

Compiled from ObDatabaseConnection.java


public final synchronized class ObRun/ObDatabase/ObDatabaseConnection extends java.lang.Object
{
private java.sql.Connection m_connection;
private java.lang.String m_url;
private java.lang.String m_dataSource;
private java.lang.String m_password;
private java.lang.String m_user;
private java.util.Hashtable m_views;
public ObRun.ObDatabase.ObDatabaseMgr m_dbMgr;
private java.util.Hashtable m_typeConverter;
private boolean m_ODBC;
ObRun/ObDatabase/ObDatabaseConnection(java.lang.String,java.lang.String,java.lang.String,java.lang.Stri
ng);
public void clearReferences();
public void commit();
public java.sql.PreparedStatement createStatement(java.lang.String);
public void disconnect();
public void endCommit();
public int getAcceptedSQLType(java.lang.String);
public ObRun.ObDatabase.ObView getView(java.lang.String, boolean);
public void removeView(java.lang.String);
public void rollback();
public void setConnectionOptions(java.lang.String);
private void setSQLTypeConversions();
public void setStatementOptions(java.sql.Statement);
public void startCommit();
public boolean supportsSQLNull(java.lang.String);
}

Page: 92 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObDatabaseMgr

Full name of class: ObRun.ObDatabase.ObDatabaseMgr.class

Formal parameters:

None

Compiled from ObDatabaseMgr.java


public final synchronized class ObRun/ObDatabase/ObDatabaseMgr extends java.lang.Object
{
private ObRun.ObEnvironment.ObODBCOptionValues m_options;
private ObRun.ObDatabase.ObDatabaseConnection m_connection;
private ObRun.ObFunction.ObApplication m_app;
private int m_commitCount;
public static final java.lang.String VIO_OK;
public static final java.lang.String VIO_EOV;
public static final java.lang.String VIO_ERR;
public static final java.lang.String VIO_INF;
static static {};
public ObRun/ObDatabase/ObDatabaseMgr();
public ObRun/ObDatabase/ObDatabaseMgr(ObRun.ObFunction.ObApplication);
public void clearReferences();
public static synchronized void closeViewIO(ObRun.ObFunction.ObFunction);
public static synchronized void commit();
public static synchronized void connect();
protected ObRun.ObDatabase.ObDatabaseConnection connect(java.lang.String);
public static synchronized void delete(java.lang.String, java.util.Vector, ObRun.ObFunction.ObFunction);
public static synchronized void disconnect();
public void endCommit();
public static synchronized void endCommitControl();
public static synchronized void execSQL(java.lang.String, java.lang.Object[], java.util.Vector,
ObRun.ObFunction.ObFunction);
public static synchronized void fetch(java.lang.String, java.util.Vector, ObRun.ObFunction.ObVariable,
int, ObRun.ObFunction.ObFunction);
public static synchronized void fetchNext(ObRun.ObFunction.ObVariable, ObRun.ObFunction.ObFunction);
public static synchronized void fetchNext(ObRun.ObFunction.ObVariable, ObRun.ObFunction.ObFunction,
java.util.Vector);
public ObRun.ObDatabase.ObDatabaseConnection getConnection();

Page: 93 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public static synchronized java.lang.String getKey(ObRun.ObFunction.ObFunction);


private ObRun.ObDatabase.ObView getView(ObRun.ObFunction.ObFunction, boolean);
public static synchronized void insert(java.lang.String, java.util.Vector, ObRun.ObFunction.ObFunction);
private void insertOrDelete(java.lang.String, ObRun.ObFunction.ObFunction, java.util.Vector);
protected java.util.Vector orderFields(java.util.Vector, ObRun.ObFunction.ObFunction);
public static synchronized void position(java.lang.String, java.util.Vector,
ObRun.ObFunction.ObVariable, int, ObRun.ObFunction.ObFunction);
public static synchronized void rollback();
public static synchronized void setKeySequence(java.util.Vector, ObRun.ObFunction.ObFunction);
public static synchronized void setKeySequence(java.util.Vector, ObRun.ObFunction.ObPanel);
public static synchronized java.lang.String setViewIOStatus(ObRun.ObFunction.ObFunction);
public static synchronized java.lang.String setViewIOStatus(ObRun.ObRTTypes.ObCharFld,
ObRun.ObFunction.ObFunction);
public void startCommit();
public static synchronized void startCommitControl();
private void update(java.lang.String, ObRun.ObFunction.ObFunction, java.util.Vector);
public static synchronized void update(java.lang.String, java.util.Vector, ObRun.ObFunction.ObFunction);
}

Page: 94 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObSocketStream

Full name of class: ObRun.ObDatabase.ObSocketStream.class

The Javap command does not reveal any facts about this class.

Page: 95 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObSQLDataTypes

Full name of class: ObRun.ObDatabase.ObSQLDataTypes.class

Formal parameters:

None

Compiled from ObSQLDataTypes.java


public final synchronized class ObRun/ObDatabase/ObSQLDataTypes extends java.lang.Object
{
private java.sql.Connection m_connection;
private boolean m_moneyDatatype;
public ObRun/ObDatabase/ObSQLDataTypes(java.sql.Connection);
public void convert(java.util.Hashtable);
protected void createTypeConverter(java.util.Hashtable);
protected java.util.Hashtable getMetaData();
public boolean isMoneyDatatype();
}

Page: 96 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObSQLTypeConversion

Full name of class: ObRun.ObDatabase.ObSQLTypeConversion.class

Formal parameters:

None

Compiled from ObSQLTypeConversion.java


public final synchronized class ObRun/ObDatabase/ObSQLTypeConversion extends java.lang.Object
{
private ObRun.ObRTTypes.ObField m_field;
private int m_acceptedType;
private java.lang.String m_typeName;
private boolean m_isNullable;
private boolean m_isFixedPrecision;
ObRun/ObDatabase/ObSQLTypeConversion(ObRun.ObRTTypes.ObField);
public boolean convertPrecision();
public int getAcceptedType();
public java.lang.String getTypeName();
public boolean isFixedPrecision();
public boolean isNullable();
public void setAcceptedType(java.util.Hashtable);
}

Page: 97 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObValidSQLType

Full name of class: ObRun.ObDatabase.ObValidSQLType.class

Formal parameters:

None

Compiled from ObSQLTypeConversion.java


synchronized class ObRun/ObDatabase/ObValidSQLType extends java.lang.Object
{
private java.lang.String m_typeName;
private short m_dataType;
private int m_precision;
private short m_isNullable;
private boolean m_isFixedPrecision;
ObRun/ObDatabase/ObValidSQLType();
ObRun/ObDatabase/ObValidSQLType(java.lang.String,short,int,short,boolean);
protected short getDataType();
protected java.lang.String getTypeName();
protected boolean isFixedPrecision();
protected boolean isNullable();
}

Page: 98 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObEnvironment

ObException

Full name of class: ObRun.ObEnvironment.ObException.class

Formal parameters:

None

Compiled from ObException.java


public synchronized class ObRun/ObEnvironment/ObException extends java.lang.Exception
{
private static final java.lang.String m_defaultMessage;
protected java.lang.String m_message;
static static {};
public ObRun/ObEnvironment/ObException();
public ObRun/ObEnvironment/ObException(java.lang.String);
public java.lang.String toString();
}

Page: 99 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObJavaApi

Full name of class: ObRun.ObEnvironment.ObJavaApi.class

Formal parameters:

None

Compiled from ObJavaApi.java


public final synchronized class ObRun/ObEnvironment/ObJavaApi extends java.lang.Object
{
public ObRun/ObEnvironment/ObJavaApi();
public static synchronized java.lang.String getClientName();
}

Page: 100 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObLog

Full name of class: ObRun.ObEnvironment.ObLog.class

Formal parameters:

None

Compiled from ObLog.java


public final synchronized class ObRun/ObEnvironment/ObLog extends java.lang.Object
{
public static final int ERROR;
public static final int WARNING;
public static final int INFO;
public static final int TRACE;
private int m_loggingLevel;
private java.io.FileOutputStream m_fileOutput;
private java.io.PrintStream m_logFile;
public ObRun/ObEnvironment/ObLog(int);
public void clearReferences();
public void log(int, java.lang.String);
public void log(int, java.lang.String, java.lang.String);
public boolean open(java.lang.String);
public void setLoggingLevel(int);
}

Page: 101 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObODBCOptionValues

Full name of class: ObRun.ObEnvironment.ObODBCOptionValues.class

Formal parameters:

None

Compiled from ObODBCOptionValues.java


public final synchronized class ObRun/ObEnvironment/ObODBCOptionValues extends java.lang.Object
{
private ObRun.ObEnvironment.ObOptionsList m_connectList;
private ObRun.ObEnvironment.ObOptionsList m_stmtList;
public ObRun/ObEnvironment/ObODBCOptionValues();
public java.util.Vector GetValuesList(java.lang.String);
public ObRun.ObEnvironment.ObOptionsList getConnectOptions();
public ObRun.ObEnvironment.ObOptionsList getStmtOptions();
private void loadConnectOptions();
private void loadStmtOptions();
}

Page: 102 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObOptionsElement

Full name of class: ObRun.ObEnvironment.ObOptionsElement.class

Formal parameters:

None

Compiled from ObOptionsElement.java


public synchronized class ObRun/ObEnvironment/ObOptionsElement extends java.lang.Object
{
protected java.lang.String m_option;
protected java.lang.String m_value;
public ObRun/ObEnvironment/ObOptionsElement(java.lang.String);
public ObRun/ObEnvironment/ObOptionsElement(java.lang.String,java.lang.String);
public java.lang.String getName();
public java.lang.String getOption();
public void setOption(java.lang.String);
public boolean writeLine(java.io.BufferedWriter);
}

Page: 103 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObOptionsList

Full name of class: ObRun.ObEnvironment.ObOptionsList.class

Formal parameters:

None

Compiled from ObOptionsList.java


public final synchronized class ObRun/ObEnvironment/ObOptionsList extends java.lang.Object
{
protected java.lang.String m_listName;
protected java.util.Vector m_optionElements;
public ObRun/ObEnvironment/ObOptionsList(java.lang.String);
public synchronized void addElement(ObRun.ObEnvironment.ObOptionsElement);
public void clearReferences();
public java.util.Enumeration elements();
public ObRun.ObEnvironment.ObOptionsElement findElement(java.lang.String);
public java.lang.String getName();
public java.lang.String getOption(java.lang.String);
public void setOption(java.lang.String, java.lang.String);
public boolean writeLine(java.io.BufferedWriter);
}

Page: 104 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObRunOptions

Full name of class: ObRun.ObEnvironment.ObRunOptions.class

Formal parameters:

None

Compiled from ObRunOptions.java


public final synchronized class ObRun/ObEnvironment/ObRunOptions extends java.util.Properties
{
private static final java.lang.String m_header;
private java.net.URL m_optionsURL;
private java.net.URLConnection m_connectURL;
static static {};
public ObRun/ObEnvironment/ObRunOptions();
private void createPropertyLine(java.lang.String, java.lang.String, java.io.BufferedWriter);
public java.lang.String getProperty(java.lang.String);
public boolean load(java.lang.String);
public boolean saveLoginInfo(java.lang.String, boolean, boolean, boolean);
public void setPropertyValue(java.lang.String, java.lang.String);
private java.lang.String updatePropertyLine(java.lang.String, java.lang.String, java.lang.String);
}

Page: 105 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObStringResource

Full name of class: ObRun.ObEnvironment.ObStringResource.class

Formal parameters:

None

Compiled from ObStringResource.java


public final synchronized class ObRun/ObEnvironment/ObStringResource extends
java.util.PropertyResourceBundle
{
public ObRun/ObEnvironment/ObStringResource();
public ObRun/ObEnvironment/ObStringResource(java.io.InputStream);
}

Page: 106 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObView

Full name of class: ObRun.ObEnvironment.ObView.class

The Javap command does not reveal any facts about this class.

Page: 107 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObFunction

ObApplication

Full name of class: ObRun.ObFunction.ObApplication.class

Formal parameters:

None

Compiled from ObApplication.java


public abstract synchronized class ObRun/ObFunction/ObApplication extends java.lang.Object
{
protected static ObRun/ObFunction/ObApplication m_app;
protected ObRun.ObEnvironment.ObRunOptions m_runOptions;
protected static java.util.Hashtable m_clientApps;
public ObRun.ObFunction.ObCallMgr m_callMgr;
public ObRun.ObDatabase.ObDatabaseMgr m_dbMgr;
protected java.util.ResourceBundle m_stringResources;
protected java.util.Locale m_locale;
protected java.lang.String m_environment;
protected javax.swing.JApplet m_applet;
protected java.lang.Boolean m_useFrame;
protected ObRun.ObFunction.ObFunction m_currentFunction;
public static final int DIALOG;
public static final int ENQUIRY;
public static final int LOG;
public static final int STATUS;
public static final int DEFAULT;
static static {};
public ObRun/ObFunction/ObApplication();
protected static synchronized void addApp(ObRun/ObFunction/ObApplication);
public void clearReferences();
public java.lang.String clientName();
public static synchronized ObRun/ObFunction/ObApplication findApp();
public static synchronized ObRun.ObFunction.ObCallMgr findCallMgr();
public static synchronized ObRun.ObDatabase.ObDatabaseMgr findDbMgr(boolean);
public javax.swing.JApplet getApplet();

Page: 108 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public static synchronized java.net.URL getCodeBase();


public ObRun.ObFunction.ObFunction getCurrentFunction();
public static synchronized java.lang.String getEnvironment();
public java.awt.Font getLoadedFont(java.lang.String);
public java.lang.String getMessageBoxTitle();
public static synchronized java.lang.String getNewLine();
public abstract java.lang.String getOptionsURL();
public static java.lang.String getResString(java.lang.String);
public java.lang.String getResourceString(java.lang.String);
public static synchronized java.lang.String getRunOptionValue(java.lang.String);
public static synchronized ObRun.ObEnvironment.ObRunOptions getRunOptions();
public static java.lang.String getString(java.lang.String);
public void handleException(java.lang.Exception);
public static synchronized boolean isApplet();
public void loadOptions();
public boolean loadResources();
public static synchronized int log(int, java.lang.String);
public static int log(int, java.lang.String, int);
public static synchronized int log(int, java.lang.String, java.lang.String);
public static synchronized int log(int, java.lang.String, java.lang.Object[]);
public static synchronized int log(int, java.lang.String, java.lang.Object[], int);
public static synchronized int log(int, java.lang.String, java.lang.Object[], java.lang.String);
public static synchronized int log(java.lang.String);
public static int log(java.lang.String, int);
public static synchronized int log(java.lang.String, java.lang.Object[]);
public static int log(java.lang.String, java.lang.Object[], int);
public int logError(int, java.lang.String);
public int logError(int, java.lang.String, int);
public int logError(int, java.lang.String, java.lang.String);
public static synchronized void logException(java.lang.Exception);
public static void obCallFunction(ObRun.ObFunction.ObFncParameter, java.lang.String, java.lang.String,
java.lang.String, java.lang.String);
public static void obCallFunction(ObRun.ObFunction.ObFunction, ObRun.ObFunction.ObVariableGroup,
ObRun.ObFunction.ObVariableGroup, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
public static java.lang.String obCallFunction(java.lang.String[], java.lang.String, java.lang.String)[];
protected static synchronized void removeApp();
public static synchronized void saveLoginInfo(java.lang.String, boolean, boolean, boolean);
public void setApplet(javax.swing.JApplet);
public void setCurrentFunction(ObRun.ObFunction.ObFunction);
public void setEnvironment(java.lang.String);
public void setLoadedFont(java.lang.String, java.awt.Font);

Page: 109 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public static synchronized void setRunOptionValue(java.lang.String, java.lang.String);


public static synchronized boolean useAppletFrame();
}

Page: 110 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCall

Full name of class: ObRun.ObFunction.ObCall.class


Formal parameters:

None

Compiled from ObCall.java


public abstract synchronized class ObRun/ObFunction/ObCall extends java.lang.Object
{
public ObRun.ObFunction.ObCallMgr m_callMgr;
public ObRun/ObFunction/ObCall(ObRun.ObFunction.ObCallMgr);
abstract void call(ObRun.ObFunction.ObFncParameter, java.lang.String, java.lang.String);
static synchronized ObRun/ObFunction/ObCall getCallType(ObRun.ObFunction.ObFncParameter,
java.lang.String, java.lang.String, java.lang.String, java.lang.String, ObRun.ObFunction.ObCallMgr);
private static java.lang.String getFunctionLocation(java.lang.String, java.lang.String);
}

Page: 111 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCallInfo

Full name of class: ObRun.ObFunction.ObCallInfo.class

Formal parameters:

None

Compiled from ObCallInfo.java


public final synchronized class ObRun/ObFunction/ObCallInfo extends java.lang.Object implements
java.io.Serializable
{
public static final java.lang.String OBCALL_OPEN;
public static final java.lang.String OBCALL_FUNCTION;
public static final java.lang.String OBCALL_CLOSE;
public java.lang.String m_functionName;
public java.lang.String m_location;
public java.lang.String m_operation;
public java.lang.String m_userId;
public java.lang.String m_envDesc;
public java.lang.String m_envLib;
public java.lang.String m_environment;
public ObRun.ObFunction.ObVersionInfo m_verInfo;
public ObRun.ObComms.ObRemoteException m_rmtExcept;
public ObRun.ObComms.ObNotifyEvent m_notify;
static static {};
public ObRun/ObFunction/ObCallInfo();
public ObRun/ObFunction/ObCallInfo(java.lang.String);
public static ObRun/ObFunction/ObCallInfo createCallRequest(java.lang.String);
public static ObRun/ObFunction/ObCallInfo createCloseRequest();
public static ObRun/ObFunction/ObCallInfo createOpenRequest(java.lang.String);
private void init();
private void readObject(java.io.ObjectInputStream);
private void writeObject(java.io.ObjectOutputStream);
}

Page: 112 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCallMgr

Full name of class: ObRun.ObFunction.ObCallMgr.class

Formal parameters:

None

Compiled from ObCallMgr.java


public final synchronized class ObRun/ObFunction/ObCallMgr extends java.lang.Object
{
protected java.util.Hashtable m_remoteConvs;
private ObRun.ObFunction.ObApplication m_app;
private java.util.Hashtable m_children;
private java.util.Hashtable m_packages;
public static final java.lang.String CALLOK;
public static final java.lang.String CALLERROR;
static static {};
public ObRun/ObFunction/ObCallMgr();
public ObRun/ObFunction/ObCallMgr(ObRun.ObFunction.ObApplication);
public void addChild(ObRun.ObFunction.ObFunction);
public void addRemoteConversation(java.lang.String, java.lang.Object);
public void cleanUp();
public void clearReferences();
public ObRun.ObFunction.ObFunction findFunction(java.lang.String);
public ObRun.ObFunction.ObFunction getFunction(java.lang.String);
public java.lang.String getPackage(java.lang.String, java.lang.String);
public java.lang.Object getRemoteConversation(java.lang.String);
public void obCallFunction(ObRun.ObFunction.ObFncParameter, java.lang.String, java.lang.String,
java.lang.String, java.lang.String);
public void obCallFunction(ObRun.ObFunction.ObFunction, ObRun.ObFunction.ObVariableGroup,
ObRun.ObFunction.ObVariableGroup, java.lang.String, java.lang.String, java.lang.String, java.lang.String);
public void removeChild(ObRun.ObFunction.ObFunction);
public void removeRemoteConversation(java.lang.String);
}

Page: 113 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObClientApp

Full name of class: ObRun.ObFunction.ObClientApp.class

Formal parameters:

java.lang.String m_pathName;

Compiled from ObClientApp.java


public final synchronized class ObRun/ObFunction/ObClientApp extends ObRun.ObFunction.ObApplication
{
private ObRun.ObFunction.ObMessageLog m_messageLog;
private boolean m_ConsumeFocusEvent;
java.lang.String m_pathName;
private java.util.Hashtable m_loadedFontsTable;
public ObRun/ObFunction/ObClientApp();
public ObRun/ObFunction/ObClientApp(java.lang.String);
public ObRun/ObFunction/ObClientApp(javax.swing.JApplet,java.lang.String);
public void clearReferences();
public boolean getConsumeFocusEvent();
public java.awt.Component getCurrentWindow();
public java.awt.Font getLoadedFont(java.lang.String);
public java.lang.String getOptionsURL();
public void handleException(java.lang.Exception);
public int logError(int, java.lang.String);
public int logError(int, java.lang.String, int);
public static void main(java.lang.String[]);
public int processMessage(int, java.lang.String, int);
public void setConsumeFocusEvent(boolean);
public void setLoadedFont(java.lang.String, java.awt.Font);
public void setMessageLog(ObRun.ObFunction.ObMessageLog);
}

Page: 114 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObFncParameter

Full name of class: ObRun.ObFunction.ObFncParameter.class

Formal parameters:

None

Compiled from ObFncParameter.java


public final synchronized class ObRun/ObFunction/ObFncParameter extends java.lang.Object implements
java.io.Serializable
{
public transient ObRun.ObFunction.ObFunction m_calledFncData;
public transient ObRun.ObFunction.ObFunction m_callerFncData;
public ObRun.ObFunction.ObVariableGroup m_in;
public ObRun.ObFunction.ObVariableGroup m_out;
public ObRun.ObRTTypes.ObCharFld m_returned;
public ObRun.ObRTTypes.ObCharFld m_returning;
public java.lang.Boolean m_functionCall;
public java.lang.String m_environment;
public ObRun/ObFunction/ObFncParameter();
public
ObRun/ObFunction/ObFncParameter(ObRun.ObFunction.ObFunction,ObRun.ObFunction.ObVariableGroup,ObRun.ObFuncti
on.ObVariableGroup);
public void SetCallerFncData(ObRun.ObFunction.ObFunction);
public void clearReferences();
public static synchronized ObRun/ObFunction/ObFncParameter createFromStream(java.io.BufferedReader,
int, java.lang.String, java.lang.String);
public static synchronized ObRun/ObFunction/ObFncParameter createFromStringArray(java.lang.String[],
java.lang.String, java.lang.String);
public ObRun.ObFunction.ObFunction getCalledFncData();
public ObRun.ObFunction.ObFunction getCallerFncData();
private void readObject(java.io.ObjectInputStream);
public void readRPGBytes(byte[], int, java.lang.String, boolean);
public static synchronized void readStream(java.io.BufferedReader, int, int, char[]);
public void setCallStatus(boolean);
public void setCalledFncData(ObRun.ObFunction.ObFunction);
public void setReturnedStatus();
public void setReturningStatus(ObRun.ObRTTypes.ObCharFld);

Page: 115 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

private void writeObject(java.io.ObjectOutputStream);


public void writeRPGBytes(byte[], int, java.lang.String, boolean);
public void writeToStream(java.io.BufferedWriter, int);
public java.lang.String writeToStringArray()[];
}

Page: 116 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObFunction

Full name of class: ObRun.ObFunction.ObFunction.class

Formal parameters:

None

Compiled from ObFunction.java


public synchronized class ObRun/ObFunction/ObFunction extends java.lang.Object implements
java.io.Serializable
{
public ObRun/ObFunction/ObFunction m_parentFunctionData;
public ObRun.ObFunction.ObVariableGroup m_in;
public ObRun.ObFunction.ObVariableGroup m_out;
public ObRun.ObFunction.ObVariableGroup m_locVariable;
public ObRun.ObFunction.ObFncParameter m_parameter;
private ObRun.ObFunction.ObCallMgr m_parent;
public java.util.Vector m_children;
private boolean m_hasReturned;
private boolean m_hasTerminated;
public ObRun.ObFunction.ObFunctionHandler m_handler;
public boolean m_isInternal;
public java.util.Vector m_keySequence;
protected ObRun.ObFunction.ObPanel m_panel;
private java.lang.String m_functionName;
boolean m_stopped;
public ObRun/ObFunction/ObFunction();
public void ObRun();
public void addChild(ObRun.ObFunction.ObVariableGroup);
public void clearReferences();
public void detachParameter();
public boolean entry();
public boolean exit();
public void exitPanel();
public ObRun/ObFunction/ObFunction getCaller();
public ObRun.ObFunction.ObVariableGroup getDatVariable();
public java.lang.String getFunctionName();
public ObRun.ObFunction.ObVariableGroup getInVariable();

Page: 117 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObRun.ObFunction.ObVariableGroup getOutVariable();


public ObRun.ObFunction.ObPanel getPanel();
public ObRun.ObRTTypes.ObCharFld getReturningStatus();
public boolean hasReturned();
public boolean isInternal();
public boolean isRootFunction();
public static synchronized ObRun/ObFunction/ObFunction loadFunction(java.lang.String, boolean);
public static synchronized java.lang.String locatePackage(java.lang.String, java.lang.String);
private void readObject(java.io.ObjectInputStream);
public void removeChild(ObRun.ObFunction.ObVariableGroup);
public void setCallMgr(ObRun.ObFunction.ObCallMgr);
public void setCallStatus(ObRun.ObRTTypes.ObCharFld);
public void setFunctionName(java.lang.String);
public void setFunctionParameters(ObRun.ObFunction.ObFncParameter);
public void setLocalVariable(ObRun.ObFunction.ObVariableGroup);
public void setPanel(ObRun.ObFunction.ObPanel);
public void setReturn();
public void setReturnedStatus(ObRun.ObRTTypes.ObCharFld);
public void setReturningStatus(ObRun.ObRTTypes.ObCharFld);
public void setTerminate();
public synchronized void startWait();
public synchronized void stopWait();
private void writeObject(java.io.ObjectOutputStream);
}

Page: 118 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObFunctionHandler

Full name of class: ObRun.ObFunction.ObFunctionHandler.class

Compiled from ObFunctionHandler.java


public final synchronized class ObRun/ObFunction/ObFunctionHandler extends java.lang.Object
{
ObRun.ObFunction.ObFunction m_function;
public ObRun/ObFunction/ObFunctionHandler(ObRun.ObFunction.ObFunction);
public void clearReferences();
}

Page: 119 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObLocalJavaCall

Full name of class: ObRun.ObFunction.ObLocalJavaCall.class

Formal parameters:

None

Compiled from ObCall.java


final synchronized class ObRun/ObFunction/ObLocalJavaCall extends ObRun.ObFunction.ObCall
{
public ObRun/ObFunction/ObLocalJavaCall(ObRun.ObFunction.ObCallMgr);
public void call(ObRun.ObFunction.ObFncParameter, java.lang.String, java.lang.String);
}

Page: 120 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMessageLog

Full name of class: ObRun.ObFunction.ObMessageLog.class

Formal parameters:

None

Compiled from ObMessageLog.java


public final synchronized class ObRun/ObFunction/ObMessageLog extends java.lang.Object implements
java.awt.event.WindowListener
{
private ObRun.ObFunction.ObClientApp m_app;
private javax.swing.JFrame m_messageLog;
private javax.swing.JList m_list;
private boolean m_alwaysOnTop;
private java.lang.String m_messages[];
public ObRun/ObFunction/ObMessageLog(ObRun.ObFunction.ObClientApp);
public void addMessage(java.lang.String);
public void clearMessages();
public void clearReferences();
public void windowActivated(java.awt.event.WindowEvent);
public void windowClosed(java.awt.event.WindowEvent);
public void windowClosing(java.awt.event.WindowEvent);
public void windowDeactivated(java.awt.event.WindowEvent);
public void windowDeiconified(java.awt.event.WindowEvent);
public void windowIconified(java.awt.event.WindowEvent);
public void windowOpened(java.awt.event.WindowEvent);

synchronized class ObRun/ObFunction/ObMessageLog. ObMenuListener extends java.lang.Object implements


java.awt.event.ActionListener
{
private final ObRun/ObFunction/ObMessageLog this$0;
ObRun/ObFunction/ObMessageLog. ObMenuListener(ObRun/ObFunction/ObMessageLog);
public void actionPerformed(java.awt.event.ActionEvent);
}

synchronized class ObRun/ObFunction/ObMessageLog. ObMenuListener extends java.lang.Object implements


java.awt.event.ActionListener

Page: 121 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
private final ObRun/ObFunction/ObMessageLog this$0;
ObRun/ObFunction/ObMessageLog. ObMenuListener(ObRun/ObFunction/ObMessageLog);
public void actionPerformed(java.awt.event.ActionEvent);
}
}

Page: 122 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMessageLog$ObMenuListener

Full name of class: ObRun.ObFunction.ObMessageLog$ObMenuListener.class

Formal parameters:

None

Compiled from ObMessageLog.java


synchronized class ObRun.ObFunction.ObMessageLog. ObMenuListener extends java.lang.Object implements
java.awt.event.ActionListener
{
private final ObRun.ObFunction.ObMessageLog this$0;
ObRun.ObFunction.ObMessageLog. ObMenuListener(ObRun.ObFunction.ObMessageLog);
public void actionPerformed(java.awt.event.ActionEvent);
}

Page: 123 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObPanel

Full name of class: ObRun.ObFunction.ObPanel.class

Formal parameters:

None

Compiled from ObPanel.java


public abstract synchronized class ObRun/ObFunction/ObPanel extends java.lang.Thread
{
private boolean m_flag;
private ObRun.ObFunction.ObFunction m_owningFunction;
private ObRun.ObPanel.ObPanelUtils.ObPanelResource m_resource;
private java.lang.String m_language;
private ObRun.ObPanel.ObCtrlData.ObWindowData m_panelData;
private java.lang.String m_panelName;
private int m_currentAction;
private boolean m_mouseOver;
private java.lang.String m_name;
public ObRun/ObFunction/ObPanel(ObRun.ObFunction.ObFunction,java.lang.String,int,java.lang.String);
public ObRun.ObPanel.ObCtrlData.ObCtrlData bindControl(int);
public ObRun.ObPanel.ObCtrlData.ObCtrlData bindControl(int, int);
public ObRun.ObPanel.ObCtrlData.ObCtrlData bindControl(int, ObRun.ObRTTypes.ObField);
public void clearReferences();
public abstract void eventsHandler();
public void exitPanel();
public int getCurrentAction();
public ObRun.ObFunction.ObFunction getFunction();
public java.lang.String getImplName();
public java.lang.String getLanguage();
public ObRun.ObPanel.ObCtrlData.ObWindowData getPanelData();
public java.lang.String getPanelName();
public java.lang.String getProperty(java.lang.String);
public boolean getShouldShowMouseOver();
protected void initResources();
public void layout();
public void layoutWindow();
public void load();

Page: 124 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void notifyFunction(boolean);


public void postProcess();
public void run();
public void setCurrentAction(int);
public void setExitPanel();
protected void setShouldShowMouseOver();
public void setState(int);
public void show();
}

Page: 125 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObRemoteJavaCall

Full name of class: ObRun.ObFunction.ObRemoteJavaCall.class

Formal parameters:

java.lang.String m_logicalLocation;
java.lang.String m_remoteMachine;

Compiled from ObCall.java


final synchronized class ObRun/ObFunction/ObRemoteJavaCall extends ObRun.ObFunction.ObCall
{
java.lang.String m_logicalLocation;
java.lang.String m_remoteMachine;
public ObRun/ObFunction/ObRemoteJavaCall(java.lang.String,java.lang.String,ObRun.ObFunction.ObCallMgr);
public void call(ObRun.ObFunction.ObFncParameter, java.lang.String, java.lang.String);
}

Page: 126 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObRemoteRPGCall

Full name of class: ObRun.ObFunction.ObRemoteRPGCall.class

Formal parameters:

java.lang.String m_logicalLocation;
java.lang.String m_remoteMachine;

Compiled from ObCall.java


final synchronized class ObRun/ObFunction/ObRemoteRPGCall extends ObRun.ObFunction.ObCall
{
java.lang.String m_logicalLocation;
java.lang.String m_remoteMachine;
public ObRun/ObFunction/ObRemoteRPGCall(java.lang.String,java.lang.String,ObRun.ObFunction.ObCallMgr);
public void call(ObRun.ObFunction.ObFncParameter, java.lang.String, java.lang.String);
}

Page: 127 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObServerApp

Full name of class: ObRun.ObFunction.ObServerApp.class

Formal parameters:

None

Compiled from ObServerApp.java


public final synchronized class ObRun/ObFunction/ObServerApp extends ObRun.ObFunction.ObApplication
{
protected ObRun.ObComms.ObService m_service;
protected java.lang.String m_clientName;
public ObRun/ObFunction/ObServerApp(ObRun.ObComms.ObService);
public ObRun/ObFunction/ObServerApp(ObRun.ObComms.ObService,java.lang.String);
public java.lang.String clientName();
public java.lang.String getOptionsURL();
public void handleException(java.lang.Exception);
public synchronized int logError(int, java.lang.String);
public int logError(int, java.lang.String, int);
public synchronized int logError(int, java.lang.String, java.lang.String);
}

Page: 128 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObValidElement

Full name of class: ObRun.ObFunction.ObValidElement.class

The Javap command does not reveal any facts about this class.

Page: 129 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObVariable

Full name of class: ObRun.ObFunction.ObVariable.class

Formal parameters:

None

Compiled from ObVariable.java


public synchronized class ObRun/ObFunction/ObVariable extends java.lang.Object implements
java.io.Serializable
{
private ObRun.ObFunction.ObVariableGroup m_parent;
public ObRun/ObFunction/ObVariable();
public ObRun/ObFunction/ObVariable(ObRun.ObFunction.ObVariableGroup);
public void clearReferences();
public java.lang.Object getArrayObj(java.lang.reflect.Field)[];
public int getFieldCount();
public ObRun.ObRTTypes.ObField getObFields()[];
public java.lang.Object getObj(java.lang.reflect.Field);
public ObRun.ObFunction.ObVariableGroup getOwner();
private void readObject(java.io.ObjectInputStream);
public void setOwner(ObRun.ObFunction.ObVariableGroup);
private void writeObject(java.io.ObjectOutputStream);
}

Page: 130 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObVariableGroup

Full name of class: ObRun.ObFunction.ObVariableGroup.class

Formal parameters:

None

Compiled from ObVariableGroup.java


public synchronized class ObRun/ObFunction/ObVariableGroup extends java.lang.Object implements
java.io.Serializable , java.lang.Cloneable
{
public static transient java.lang.String VT_INPUT;
public static transient java.lang.String VT_OUTPUT;
public static transient java.lang.String VT_LOCAL;
public static transient java.lang.String VT_CALLS;
public static transient java.lang.String VT_ENVIRONMENT;
protected transient ObRun.ObFunction.ObFunction m_parent;
public transient java.lang.String m_groupType;
public transient java.util.Vector m_children;
static static {};
public ObRun/ObFunction/ObVariableGroup();
public ObRun/ObFunction/ObVariableGroup(java.lang.String,ObRun.ObFunction.ObFunction);
public void addChild(ObRun.ObFunction.ObVariable);
public int addToHeader(int[], int, int, boolean);
public void clearReferences();
public java.lang.Object clone();
public void copy(ObRun/ObFunction/ObVariableGroup);
public int countFields();
public int countVariables(boolean);
public java.lang.String fieldValueFromStream(char[], int);
public java.lang.Object getArrayObj(java.lang.reflect.Field)[];
public int getLength(boolean);
public ObRun.ObRTTypes.ObField getObFieldsFromVar(int)[];
public java.lang.Object getObj(java.lang.reflect.Field);
public ObRun.ObFunction.ObFunction getOwnerFncData();
private void readObject(java.io.ObjectInputStream);
public int readRPGVariables(byte[], int, java.lang.String, boolean);
public void readVariables(char[], int);

Page: 131 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void readVariables(java.lang.String[]);


public void removeChild(ObRun.ObFunction.ObVariable);
public void setOwnerFncData(ObRun.ObFunction.ObFunction);
public void setReturnedStatus(ObRun.ObRTTypes.ObCharFld);
public byte specialValueFromStream(char[], int);
private void writeObject(java.io.ObjectOutputStream);
public void writeRPGVariables(byte[], int, java.lang.String, boolean);
public void writeVariables(java.io.CharArrayWriter);
public void writeVariables(java.util.Vector);
}

Page: 132 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObPanel

ObCtrlData

ObBeanData

Full name of class: ObRun.ObPanel.ObCtrlData.ObBeanData.class

Formal parameters:

None

Compiled from ObBeanData.java


public final synchronized class ObRun/ObPanel/ObCtrlData/ObBeanData extends
ObRun.ObPanel.ObCtrlData.ObCtrlData
{
public ObRun/ObPanel/ObCtrlData/ObBeanData();
public void clearReferences();
public void init(int);
}

Page: 133 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCheckboxData

Full name of class: ObRun.ObPanel.ObCtrlData.ObCheckboxData.class

Formal parameters:

None

Compiled from ObCheckboxData.java


public final synchronized class ObRun/ObPanel/ObCtrlData/ObCheckboxData extends
ObRun.ObPanel.ObCtrlData.ObCtrlData
{
private ObRun.ObPanel.ObCtrlData.ObValuePairList m_valuePairs;
public ObRun/ObPanel/ObCtrlData/ObCheckboxData();
public void addValuePair(java.lang.Object, java.lang.Object);
public void clearReferences();
public void finishValues();
public java.lang.Object getAValue(java.lang.Object);
public java.lang.Object getBValue(java.lang.Object);
public void init(int);
}

Page: 134 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObColumnHeadingData

Full name of class: ObRun.ObPanel.ObCtrlData.ObColumnHeadingData.class

Formal parameters:

None

Compiled from ObColumnHeadingData.java


public final synchronized class ObRun/ObPanel/ObCtrlData/ObColumnHeadingData extends
ObRun.ObPanel.ObCtrlData.ObCtrlData
{
public ObRun/ObPanel/ObCtrlData/ObColumnHeadingData();
public void init(int);
}

Page: 135 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObComboData

Full name of class: ObRun.ObPanel.ObCtrlData.ObComboData.class

Formal parameters:

None

Compiled from ObComboData.java


public final synchronized class ObRun/ObPanel/ObCtrlData/ObComboData extends
ObRun.ObPanel.ObCtrlData.ObCtrlData
{
private ObRun.ObPanel.ObCtrlData.ObValuePairList m_valuePairs;
public ObRun/ObPanel/ObCtrlData/ObComboData();
public void addValuePair(java.lang.Object, java.lang.Object);
public void clearReferences();
public void clearValues();
public void finishValues();
public java.lang.Object getAValue(java.lang.Object);
public java.lang.Object getBValue(java.lang.Object);
public void init(int);
public void removeValue(java.lang.Object);
}

Page: 136 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObControlState

Full name of class: ObRun.ObPanel.ObCtrlData.ObControlState.class

Formal parameters:

None

Compiled from ObControlState.java


public final synchronized class ObRun/ObPanel/ObCtrlData/ObControlState extends java.lang.Object
{
private java.util.Hashtable m_controlTable;
public ObRun/ObPanel/ObCtrlData/ObControlState();
private void addPropertyValue(int, java.lang.String, java.lang.String);
public void clearReferences();
void dump();
public boolean isChangedPropertyValue(int, java.lang.String, java.lang.String);
}

Page: 137 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCtrlData

Full name of class: ObRun.ObPanel.ObCtrlData.ObCtrlData.class

Formal parameters:

None

Compiled from ObCtrlData.java


public abstract synchronized class ObRun/ObPanel/ObCtrlData/ObCtrlData extends java.lang.Object
{
protected ObRun.ObPanel.ObCtrlGui.ObCtrlGui m_guiCtrl;
protected ObRun/ObPanel/ObCtrlData/ObCtrlData m_parent;
protected java.util.Vector m_children;
private ObRun.ObPanel.ObCtrlData.ObWindowData m_panel;
private int m_id;
private java.lang.String m_state;
private java.util.Hashtable m_gridRowPropertyTable;
private java.util.Hashtable m_propTable;
private java.util.Hashtable m_methodsTable;
private ObRun.ObPanel.ObCtrlData.ObEventMap m_eventMap;
private ObRun.ObRTTypes.ObField m_field;
private boolean m_inWrite;
private boolean m_ignoreEvents;
public static final byte NONE;
public static final byte READ;
public static final byte WRITE;
public static final byte CLEAR;
public static final byte REFRESH;
public static final byte INSERT;
public static final byte GRIDENDOFF;
public static final byte GRIDENDON;
public static final byte REMOVE;
public static final byte BEFOREIMAGE;
public static final byte AFTERIMAGE;
public static final byte SETMODIFIED;
public static final byte SETUNMODIFIED;
public static final byte LOCATE;
public static final byte SETFOCUS;

Page: 138 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public static final byte IFFOCUS;


public static final byte IFEDITABLE;
public static final int GRIDLOAD;
public static final int GRIDSELECTION;
public static final int MENUSELECTION;
public static final int FOCUSGAINED;
public static final int FOCUSLOST;
public static final int MODIFIED;
public static final int UPDATED;
public static final int MOUSEDOWN;
public static final int MOUSEUP;
public static final int MOUSEMOVE;
public static final int DOUBLECLICK;
public static final int PRESSED;
public static final int CLOCKTICK;
public static final int NOTIFIED;
public static final int QUERYCLOSE;
public static final int DECREMENT;
public static final int INCREMENT;
public static final int MAXIMUM;
public static final int MINIMUM;
public static final int ACTIVATED;
public static final int DEACTIVATED;
public static final int PROPERTYCHANGE;
public static final int VETOABLECHANGE;
public static final int MOUSE_ENTERED;
public static final int MOUSE_EXITED;
public static final int COMPONENT_RESIZED;
public static final int COMPONENT_MOVED;
public static final int COMPONENT_SHOWN;
public static final int COMPONENT_HIDDEN;
public static final int KEY_TYPED;
public static final int KEY_PRESSED;
public static final int KEY_RELEASED;
public static final int ITEM_STATE_CHANGED;
public static final int SELECTED;
public static final int DESELECTED;
public static final java.lang.String OK;
public static final java.lang.String NOTFOUND;
public ObRun/ObPanel/ObCtrlData/ObCtrlData();
public ObRun/ObPanel/ObCtrlData/ObCtrlData(ObRun.ObPanel.ObCtrlGui.ObCtrlGui);

Page: 139 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void addChild(ObRun/ObPanel/ObCtrlData/ObCtrlData);


public void addValuePair(java.lang.Object, java.lang.Object);
public void clearReferences();
public int decRecurseCount();
public boolean exchangeData(byte, ObRun.ObRTTypes.ObField);
public void finishValues();
public ObRun.ObRTTypes.ObField getField();
public java.util.Hashtable getGridRowPropertyTable();
public ObRun.ObPanel.ObCtrlGui.ObCtrlGui getGuiCtrl();
public int getID();
public ObRun.ObPanel.ObCtrlData.ObWindowData getPanel();
public ObRun/ObPanel/ObCtrlData/ObCtrlData getParent();
public java.lang.String getProperty(java.lang.String, boolean);
public int getRecurseCount();
public java.lang.String getState();
public boolean inWrite();
public int incRecurseCount();
public abstract void init(int);
public void loadChildren();
protected ObRun/ObPanel/ObCtrlData/ObCtrlData loadControlbyClass(java.lang.String);
private ObRun/ObPanel/ObCtrlData/ObCtrlData loadControlbyString(java.lang.String);
public void registerEvent(int, int, java.lang.String);
public void removeChild(ObRun/ObPanel/ObCtrlData/ObCtrlData);
public void removeValue(java.lang.Object);
public final void render(java.util.Hashtable);
public void setField(ObRun.ObRTTypes.ObField);
public void setID(int);
public void setIgnoreEvents(boolean);
public void setPanel(ObRun.ObPanel.ObCtrlData.ObWindowData);
public void setParent(ObRun/ObPanel/ObCtrlData/ObCtrlData);
public void setState(int);
public boolean testEvent(int);
public static synchronized java.awt.Color whatColor(java.lang.String);
public static synchronized byte whatEditType(java.lang.String);
}

Page: 140 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObDialogData

Full name of class: ObRun.ObPanel.ObCtrlData.ObDialogData.class

Formal parameters:

None

Compiled from ObDialogData.java


public final synchronized class ObRun/ObPanel/ObCtrlData/ObDialogData extends
ObRun.ObPanel.ObCtrlData.ObWindowData
{
public
ObRun/ObPanel/ObCtrlData/ObDialogData(ObRun.ObFunction.ObPanel,java.lang.String,int,ObRun.ObPanel.ObCtrlDat
a.ObWindowData);
public void closeWindow();
public ObRun.ObPanel.ObCtrlGui.ObDialogGui getWindowGui();
public void layout();
public void setEnabled(boolean);
public void setResizable(boolean);
public void setTitle(java.lang.String);
public void setVisible(boolean);
public void show();
}

Page: 141 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObEditData

Full name of class: ObRun.ObPanel.ObCtrlData.ObEditData.class

Formal parameters:

None

Compiled from ObEditData.java


public final synchronized class ObRun/ObPanel/ObCtrlData/ObEditData extends
ObRun.ObPanel.ObCtrlData.ObCtrlData
{
public ObRun/ObPanel/ObCtrlData/ObEditData();
public void init(int);
}

Page: 142 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObEventMap

Full name of class: ObRun.ObPanel.ObCtrlData.ObEventMap.class

Formal parameters:

java.util.Hashtable m_eventPairs;

Compiled from ObCtrlData.java


final synchronized class ObRun/ObPanel/ObCtrlData/ObEventMap extends java.lang.Object
{
private ObRun.ObPanel.ObCtrlData.ObCtrlData m_ctrl;
private int m_lastpID;
private int m_lastlID;
java.util.Hashtable m_eventPairs;
public ObRun/ObPanel/ObCtrlData/ObEventMap(ObRun.ObPanel.ObCtrlData.ObCtrlData,int,int);
public void addEvent(int, int);
public void clearReferences();
public int getLogicalID(int);
}

Page: 143 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObGridData

Full name of class: ObRun.ObPanel.ObCtrlData.ObGridData.class

Formal parameters:

None

Compiled from ObGridData.java


public final synchronized class ObRun/ObPanel/ObCtrlData/ObGridData extends
ObRun.ObPanel.ObCtrlData.ObCtrlData
{
public ObRun/ObPanel/ObCtrlData/ObGridData();
public void complete();
public void endAccess(byte);
public byte getFieldAccessMode(byte);
public boolean getFirstModified();
public boolean getFirstRecord();
public boolean getFirstSelected();
public boolean getNextModified();
public boolean getNextRecord();
public boolean getNextSelected();
public void init(int);
public void startAccess(byte);
}

Page: 144 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObKeyStrokeMap

Full name of class: ObRun.ObPanel.ObCtrlData.ObKeyStrokeMap.class

Formal parameters:

java.util.Hashtable m_keyPairs;

Compiled from ObWindowData.java


final synchronized class ObRun/ObPanel/ObCtrlData/ObKeyStrokeMap extends java.lang.Object
{
java.util.Hashtable m_keyPairs;
public ObRun/ObPanel/ObCtrlData/ObKeyStrokeMap();
public void addKeyStroke(javax.swing.KeyStroke, int, boolean);
public void enableKeyStroke(javax.swing.KeyStroke, boolean);
public int getLogicalID(javax.swing.KeyStroke);

final synchronized class ObRun/ObPanel/ObCtrlData/ObKeyStrokeMap. ObKeyDetails extends java.lang.Object


{
private final ObRun/ObPanel/ObCtrlData/ObKeyStrokeMap this$0;
public int m_logicalEvent;
public boolean m_enabled;
public ObRun/ObPanel/ObCtrlData/ObKeyStrokeMap.
ObKeyDetails(ObRun/ObPanel/ObCtrlData/ObKeyStrokeMap,int,boolean);
}

final synchronized class ObRun/ObPanel/ObCtrlData/ObKeyStrokeMap. ObKeyDetails extends java.lang.Object


{
private final ObRun/ObPanel/ObCtrlData/ObKeyStrokeMap this$0;
public int m_logicalEvent;
public boolean m_enabled;
public ObRun/ObPanel/ObCtrlData/ObKeyStrokeMap.
ObKeyDetails(ObRun/ObPanel/ObCtrlData/ObKeyStrokeMap,int,boolean);
}
}

Page: 145 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObKeyStrokeMap$ObKeyDetails

Full name of class: ObRun.ObPanel.ObCtrlData.ObKeyStrokeMap$ObKeyDetails.class

Formal parameters:

None

Compiled from ObWindowData.java


final synchronized class ObRun.ObPanel.ObCtrlData.ObKeyStrokeMap. ObKeyDetails extends java.lang.Object
{
private final ObRun.ObPanel.ObCtrlData.ObKeyStrokeMap this$0;
public int m_logicalEvent;
public boolean m_enabled;
public ObRun.ObPanel.ObCtrlData.ObKeyStrokeMap.
ObKeyDetails(ObRun.ObPanel.ObCtrlData.ObKeyStrokeMap,int,boolean);
}

Page: 146 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObLabelData

Full name of class: ObRun.ObPanel.ObCtrlData.ObLabelData.class

Formal parameters:

None

Compiled from ObLabelData.java


public final synchronized class ObRun/ObPanel/ObCtrlData/ObLabelData extends
ObRun.ObPanel.ObCtrlData.ObCtrlData
{
public ObRun/ObPanel/ObCtrlData/ObLabelData();
public void init(int);
}

Page: 147 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObListData

Full name of class: ObRun.ObPanel.ObCtrlData.ObListData.class

Formal parameters:

None

Compiled from ObListData.java


public final synchronized class ObRun/ObPanel/ObCtrlData/ObListData extends
ObRun.ObPanel.ObCtrlData.ObCtrlData
{
private ObRun.ObPanel.ObCtrlData.ObValuePairList m_valuePairs;
public ObRun/ObPanel/ObCtrlData/ObListData();
public void addValuePair(java.lang.Object, java.lang.Object);
public void clearReferences();
public void clearValues();
public void finishValues();
public java.lang.Object getAValue(java.lang.Object);
public java.lang.Object getBValue(java.lang.Object);
public void init(int);
public void removeValue(java.lang.Object);
}

Page: 148 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObLogicalEvents

Full name of class: ObRun.ObPanel.ObCtrlData.ObLogicalEvents.class

Formal parameters:

None

Compiled from ObWindowData.java


final synchronized class ObRun/ObPanel/ObCtrlData/ObLogicalEvents extends java.lang.Object
{
public int m_ID;
public java.lang.String m_name;
public boolean m_enabled;
public ObRun/ObPanel/ObCtrlData/ObLogicalEvents(int,java.lang.String);
}

Page: 149 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMenubarData

Full name of class: ObRun.ObPanel.ObCtrlData.ObMenubarData.class

Formal parameters:

None

Compiled from ObMenubarData.java


public final synchronized class ObRun/ObPanel/ObCtrlData/ObMenubarData extends
ObRun.ObPanel.ObCtrlData.ObCtrlData
{
public ObRun/ObPanel/ObCtrlData/ObMenubarData();
public void init(int);
}

Page: 150 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMenuData

Full name of class: ObRun.ObPanel.ObCtrlData.ObMenuData.class

Formal parameters:

None

Compiled from ObMenuData.java


public final synchronized class ObRun/ObPanel/ObCtrlData/ObMenuData extends
ObRun.ObPanel.ObCtrlData.ObCtrlData
{
public ObRun/ObPanel/ObCtrlData/ObMenuData();
public void init(int);
}

Page: 151 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMenuitemData

Full name of class: ObRun.ObPanel.ObCtrlData.ObMenuitemData.class

Formal parameters:

None

Compiled from ObMenuitemData.java


public final synchronized class ObRun/ObPanel/ObCtrlData/ObMenuitemData extends
ObRun.ObPanel.ObCtrlData.ObCtrlData
{
public ObRun/ObPanel/ObCtrlData/ObMenuitemData();
public void init(int);
}

Page: 152 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMultilineEditData

Formal parameters:

None

Full name of class: ObRun.ObPanel.ObCtrlData.ObMultilineEditData.class

Compiled from ObMultilineEditData.java


public final synchronized class ObRun/ObPanel/ObCtrlData/ObMultilineEditData extends
ObRun.ObPanel.ObCtrlData.ObCtrlData
{
public ObRun/ObPanel/ObCtrlData/ObMultilineEditData();
public void init(int);
}

Page: 153 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObPasswordData

Full name of class: ObRun.ObPanel.ObCtrlData.ObPasswordData.class

Formal parameters:

None

Compiled from ObPasswordData.java


public final synchronized class ObRun/ObPanel/ObCtrlData/ObPasswordData extends
ObRun.ObPanel.ObCtrlData.ObCtrlData
{
public ObRun/ObPanel/ObCtrlData/ObPasswordData();
public void init(int);
}

Page: 154 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObPictureData

Full name of class: ObRun.ObPanel.ObCtrlData.ObPictureData.class

Formal parameters:

None

Compiled from ObPictureData.java


public final synchronized class ObRun/ObPanel/ObCtrlData/ObPictureData extends
ObRun.ObPanel.ObCtrlData.ObCtrlData
{
public ObRun/ObPanel/ObCtrlData/ObPictureData();
public void init(int);
}

Page: 155 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObPushbuttonData

Full name of class: ObRun.ObPanel.ObCtrlData.ObPushbuttonData.class

Formal parameters:

None

Compiled from ObPushbuttonData.java


public final synchronized class ObRun/ObPanel/ObCtrlData/ObPushbuttonData extends
ObRun.ObPanel.ObCtrlData.ObCtrlData
{
public ObRun/ObPanel/ObCtrlData/ObPushbuttonData();
public void init(int);
}

Page: 156 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObRadiobuttonData

Full name of class: ObRun.ObPanel.ObCtrlData.ObRadiobuttonData.class

Formal parameters:

None

Compiled from ObRadiobuttonData.java


public final synchronized class ObRun/ObPanel/ObCtrlData/ObRadiobuttonData extends
ObRun.ObPanel.ObCtrlData.ObCtrlData
{
private ObRun.ObPanel.ObCtrlData.ObValuePairList m_valuePairs;
public ObRun/ObPanel/ObCtrlData/ObRadiobuttonData();
public void addValuePair(java.lang.Object, java.lang.Object);
public void clearReferences();
public void finishValues();
public java.lang.Object getAValue(java.lang.Object);
public java.lang.Object getBValue(java.lang.Object);
public void init(int);
}

Page: 157 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObSeparatorData

Full name of class: ObRun.ObPanel.ObCtrlData.ObSeparatorData.class

Formal parameters:

None

Compiled from ObSeparatorData.java


public final synchronized class ObRun/ObPanel/ObCtrlData/ObSeparatorData extends
ObRun.ObPanel.ObCtrlData.ObCtrlData
{
public ObRun/ObPanel/ObCtrlData/ObSeparatorData();
public void init(int);
}

Page: 158 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObSpinData

Full name of class: ObRun.ObPanel.ObCtrlData.ObSpinData.class

Formal parameters:

None

Compiled from ObSpinData.java


public final synchronized class ObRun/ObPanel/ObCtrlData/ObSpinData extends
ObRun.ObPanel.ObCtrlData.ObCtrlData
{
public ObRun/ObPanel/ObCtrlData/ObSpinData();
public void init(int);
}

Page: 159 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObStaticData

Full name of class: ObRun.ObPanel.ObCtrlData.ObStaticData.class

Formal parameters:

None

Compiled from ObStaticData.java


public final synchronized class ObRun/ObPanel/ObCtrlData/ObStaticData extends
ObRun.ObPanel.ObCtrlData.ObCtrlData
{
public ObRun/ObPanel/ObCtrlData/ObStaticData();
public void init(int);
}

Page: 160 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObStatusbarData

Full name of class: ObRun.ObPanel.ObCtrlData.ObStatusbarData.class

Formal parameters:

None

Compiled from ObStatusbarData.java


public final synchronized class ObRun/ObPanel/ObCtrlData/ObStatusbarData extends
ObRun.ObPanel.ObCtrlData.ObCtrlData
{
public ObRun/ObPanel/ObCtrlData/ObStatusbarData();
public void init(int);
}

Page: 161 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObToolbarbuttonData

Full name of class: ObRun.ObPanel.ObCtrlData.ObToolbarbuttonData.class

Formal parameters:

None

Compiled from ObToolbarbuttonData.java


public final synchronized class ObRun/ObPanel/ObCtrlData/ObToolbarbuttonData extends
ObRun.ObPanel.ObCtrlData.ObCtrlData
{
public ObRun/ObPanel/ObCtrlData/ObToolbarbuttonData();
public void init(int);
}

Page: 162 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObToolbarData

Full name of class: ObRun.ObPanel.ObCtrlData.ObToolbarData.class

Formal parameters:

None

Compiled from ObToolbarData.java


public final synchronized class ObRun/ObPanel/ObCtrlData/ObToolbarData extends
ObRun.ObPanel.ObCtrlData.ObCtrlData
{
public ObRun/ObPanel/ObCtrlData/ObToolbarData();
public void init(int);
}

Page: 163 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObTopAppData

Full name of class: ObRun.ObPanel.ObCtrlData.ObTopAppData.class

Formal parameters:

None

Compiled from ObTopAppData.java


public final synchronized class ObRun/ObPanel/ObCtrlData/ObTopAppData extends
ObRun.ObPanel.ObCtrlData.ObWindowData
{
public ObRun/ObPanel/ObCtrlData/ObTopAppData(ObRun.ObFunction.ObPanel,java.lang.String,int);
public void closeWindow();
public ObRun.ObPanel.ObCtrlGui.ObTopAppGui getWindowGui();
public void layout();
public void setEnabled(boolean);
public void setResizable(boolean);
public void setTitle(java.lang.String);
public void setVisible(boolean);
public void show();
}

Page: 164 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObUserAPI

Full name of class: ObRun.ObPanel.ObCtrlData.ObUserAPI.class

Formal parameters:

None

Compiled from ObUserAPI.java


public final synchronized class ObRun/ObPanel/ObCtrlData/ObUserAPI extends java.lang.Object
{
public ObRun/ObPanel/ObCtrlData/ObUserAPI();
public static void callMethod(java.lang.String, java.lang.String);
public static void callMethod(java.lang.String, java.lang.String, java.lang.Object);
public static void callMethod(java.lang.String, java.lang.String, java.lang.Object, java.lang.Object);
public static java.lang.Object convertDataType(java.lang.Class, java.lang.Object);
public static void enableLogicalEvent(ObRun.ObPanel.ObCtrlData.ObWindowData, ObRun.ObRTTypes.ObCharFld,
ObRun.ObRTTypes.ObLongFld);
public static boolean execProcess(java.lang.String, java.lang.String, boolean);
public static void executeMethod(ObRun.ObPanel.ObCtrlData.ObCtrlData, java.lang.String,
java.lang.Object[]);
public static ObRun.ObPanel.ObCtrlGui.ObCtrlGui getControlByName(java.lang.String);
public static ObRun.ObPanel.ObCtrlData.ObWindowData getCurrentPanel();
public static java.lang.Object getPlexBasicType(java.lang.Object);
public static void getProperty(java.lang.String, java.lang.String, java.lang.Object);
public static java.lang.String padString(java.lang.String, int);
public static ObRun.ObRTTypes.ObCharFld processLogicalEvent(ObRun.ObRTTypes.ObCharFld,
ObRun.ObRTTypes.ObCharFld);
public static void setControlText(java.lang.String, java.lang.String);
public static void setProperty(java.lang.String, java.lang.String, java.lang.Object);
public static void setWindowTitle(java.lang.String);
public static boolean showURL(java.lang.String, java.lang.String, boolean);
}

Page: 165 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObValuePairList

Full name of class: ObRun.ObPanel.ObCtrlData.ObValuePairList.class

Formal parameters:

None

Compiled from ObValuePairList.java


final synchronized class ObRun/ObPanel/ObCtrlData/ObValuePairList extends java.lang.Object
{
private java.util.Vector m_pairs;
public ObRun/ObPanel/ObCtrlData/ObValuePairList();
public void addPair(java.lang.Object, java.lang.Object);
public void clearReferences();
public void clearValues();
public java.lang.Object getAValue(java.lang.Object);
public java.lang.Object getBValue(java.lang.Object);
public void removeValue(java.lang.Object);
public java.lang.Object toAArray()[];
public java.lang.Object toAArraySorted()[];
public java.lang.Object toArrayPairs()[];
public java.lang.Object toBArray()[];

final synchronized class ObRun/ObPanel/ObCtrlData/ObValuePairList. ObValuePair extends java.lang.Object


{
private final ObRun/ObPanel/ObCtrlData/ObValuePairList this$0;
public java.lang.Object m_a;
public java.lang.Object m_b;
public ObRun/ObPanel/ObCtrlData/ObValuePairList.
ObValuePair(ObRun/ObPanel/ObCtrlData/ObValuePairList,java.lang.Object,java.lang.Object);
public void clearReferences();
}

final synchronized class ObRun/ObPanel/ObCtrlData/ObValuePairList. ObValuePair extends java.lang.Object


{
private final ObRun/ObPanel/ObCtrlData/ObValuePairList this$0;
public java.lang.Object m_a;
public java.lang.Object m_b;

Page: 166 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObRun/ObPanel/ObCtrlData/ObValuePairList.
ObValuePair(ObRun/ObPanel/ObCtrlData/ObValuePairList,java.lang.Object,java.lang.Object);
public void clearReferences();
}
}

Page: 167 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObValuePairList$ObValuePair

Full name of class: ObRun.ObPanel.ObCtrlData.ObValuePairList$ObValuePair.class

Formal parameters:

None

Compiled from ObValuePairList.java


final synchronized class ObRun.ObPanel.ObCtrlData.ObValuePairList. ObValuePair extends java.lang.Object
{
private final ObRun.ObPanel.ObCtrlData.ObValuePairList this$0;
public java.lang.Object m_a;
public java.lang.Object m_b;
public ObRun.ObPanel.ObCtrlData.ObValuePairList.
ObValuePair(ObRun.ObPanel.ObCtrlData.ObValuePairList,java.lang.Object,java.lang.Object);
public void clearReferences();
}

Page: 168 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObWindowData

Full name of class: ObRun.ObPanel.ObCtrlData.ObWindowData.class

Formal parameters:

int m_lastEvt;

Compiled from ObWindowData.java


public abstract synchronized class ObRun/ObPanel/ObCtrlData/ObWindowData extends
ObRun.ObPanel.ObCtrlData.ObCtrlData
{
private java.util.Hashtable m_compByID;
private java.util.Hashtable m_compByName;
protected ObRun.ObFunction.ObPanel m_owner;
private java.lang.String m_title;
private boolean m_resizable;
private int m_width;
private int m_height;
private int m_xpos;
private int m_ypos;
private boolean m_visible;
private boolean m_enabled;
protected int m_currentFocus;
private ObRun.ObPanel.ObCtrlData.ObKeyStrokeMap m_keyMap;
private ObRun.ObPanel.ObCtrlData.ObControlState m_controlState;
private java.util.Vector m_logicalEvents;
private java.util.Hashtable controlTypeMethodsTable;
protected boolean m_isDialogType;
public int m_recurseCount;
int m_lastEvt;
public ObRun/ObPanel/ObCtrlData/ObWindowData(ObRun.ObPanel.ObCtrlGui.ObCtrlGui);
public ObRun.ObPanel.ObCtrlData.ObCtrlData bindControl(int);
public ObRun.ObPanel.ObCtrlData.ObCtrlData bindControl(int, int);
public ObRun.ObPanel.ObCtrlData.ObCtrlData bindControl(int, ObRun.ObRTTypes.ObField);
public void clearReferences();
public void closeWindow();
public void enableKeyBoardState(java.lang.String, int);
public void enableLogicalEvent(java.lang.String, boolean);

Page: 169 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void exitPanel();


public void finishButtonGroup();
public java.util.Enumeration getAllControls();
public ObRun.ObPanel.ObCtrlData.ObCtrlData getCompByID(java.lang.Integer);
public ObRun.ObPanel.ObCtrlData.ObCtrlData getCompByName(java.lang.String);
public ObRun.ObPanel.ObCtrlData.ObControlState getControlStateTable();
public static javax.swing.KeyStroke getKeyStroke(java.lang.String);
public java.lang.String getLanguage();
public int getLogicalEventID(java.lang.String);
public java.lang.reflect.Method getMethods(java.lang.String)[];
public ObRun.ObFunction.ObPanel getOwner();
public int getPositionX();
public int getPositionY();
public boolean getShouldShowMouseOver();
public int getSizeHeight();
public int getSizeWidth();
public java.lang.String getTitle();
public void init(int);
public boolean isDialog();
public boolean isEnabled();
public boolean isLogicalEventEnabled(int);
public boolean isResizable();
public boolean isVisible();
public void layout();
public void processKeyEvent(java.awt.event.KeyEvent);
public void recalculateConstraints();
public void registerKeyboardEvent(java.lang.String, int);
public void registerLogicalEvent(int, java.lang.String);
protected void removeCompByID(java.lang.Integer);
public void setCurrentFocus(int);
protected void setEnabled(boolean);
public void setMethods(java.lang.String, java.lang.reflect.Method[]);
protected void setPosition(int, int);
protected void setResizable(boolean);
public void setSize(int, int);
protected void setTitle(java.lang.String);
protected void setVisible(boolean);
public void show();
public void startFocusProcess();
protected void storeCompByID(java.lang.Integer, ObRun.ObPanel.ObCtrlData.ObCtrlData);
public void storeCompByName(java.lang.String, ObRun.ObPanel.ObCtrlData.ObCtrlData);

Page: 170 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void testEvent(javax.swing.KeyStroke);


public void testLogicalEvent(int);
public int whoHasFocus();
}

Page: 171 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCtrlGui

ObBackgroundPanel

Formal parameters:

int m_imageWidth;
int m_imageHeight;
int m_myWidth;
int m_myHeight;
ObRun.ObPanel.ObCtrlGui.ObWindowGui m_guiObject;

Full name of class: ObRun.ObPanel.ObCtrlGui.ObBackgroundPanel.class

Compiled from ObWindowGui.java


final synchronized class ObRun/ObPanel/ObCtrlGui/ObBackgroundPanel extends javax.swing.JPanel
{
int m_imageWidth;
int m_imageHeight;
int m_myWidth;
int m_myHeight;
ObRun.ObPanel.ObCtrlGui.ObWindowGui m_guiObject;
public ObRun/ObPanel/ObCtrlGui/ObBackgroundPanel(ObRun.ObPanel.ObCtrlGui.ObWindowGui);
public void clearReferences();
public void paint(java.awt.Graphics);
}

Page: 172 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObBaseGridEditorDelegate

Full name of class: ObRun.ObPanel.ObCtrlGui.ObBaseGridEditorDelegate.class

Formal parameters:

None

Compiled from ObGridCellEditor.java


synchronized class ObRun/ObPanel/ObCtrlGui/ObBaseGridEditorDelegate extends java.lang.Object implements
java.awt.event.ActionListener , java.awt.event.ItemListener
{
protected java.lang.Object value;
protected ObRun.ObPanel.ObCtrlGui.ObGridCellEditor m_editor;
protected ObRun/ObPanel/ObCtrlGui/ObBaseGridEditorDelegate(ObRun.ObPanel.ObCtrlGui.ObGridCellEditor);
public void actionPerformed(java.awt.event.ActionEvent);
public void cancelCellEditing();
public void clearReferences();
public java.lang.Object getCellEditorValue();
public boolean isCellEditable(java.util.EventObject);
public void itemStateChanged(java.awt.event.ItemEvent);
public void setValue(java.lang.Object);
public boolean startCellEditing(java.util.EventObject);
public boolean stopCellEditing();
}

Page: 173 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObBasicTreeCellRenderer

Full name of class: ObRun.ObPanel.ObCtrlGui.ObBasicTreeCellRenderer.class

Formal parameters:

None

Compiled from ObCtrlGui.java


synchronized class ObRun/ObPanel/ObCtrlGui/ObBasicTreeCellRenderer extends javax.swing.JLabel
{
ObRun/ObPanel/ObCtrlGui/ObBasicTreeCellRenderer();
}

Page: 174 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObBeanGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObBeanGui.class

Formal parameters:

None

Compiled from ObBeanGui.java


public final synchronized class ObRun/ObPanel/ObCtrlGui/ObBeanGui extends ObRun.ObPanel.ObCtrlGui.ObCtrlGui
{
public ObRun/ObPanel/ObCtrlGui/ObBeanGui(java.lang.String);
public void setControlName(java.lang.String);
public void setPosition(java.lang.String);
public void setSize(java.lang.String);
}

Page: 175 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObButton

Full name of class: ObRun.ObPanel.ObCtrlGui.ObButton.class

Formal parameters:

None

Compiled from ObPushbuttonGui.java


synchronized class ObRun/ObPanel/ObCtrlGui/ObButton extends javax.swing.JButton
{
private ObRun.ObPanel.ObCtrlGui.ObPushbuttonGui m_parent;
public ObRun/ObPanel/ObCtrlGui/ObButton(ObRun.ObPanel.ObCtrlGui.ObPushbuttonGui);
public void clearReferences();
public void paintComponent(java.awt.Graphics);
}

Page: 176 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCheckboxGridEditorDelegate

Full name of class: ObRun.ObPanel.ObCtrlGui.ObCheckboxGridEditorDelegate.class

Formal parameters:

None

Compiled from ObGridCellEditor.java


synchronized class ObRun/ObPanel/ObCtrlGui/ObCheckboxGridEditorDelegate extends
ObRun.ObPanel.ObCtrlGui.ObBaseGridEditorDelegate
{
protected
ObRun/ObPanel/ObCtrlGui/ObCheckboxGridEditorDelegate(ObRun.ObPanel.ObCtrlGui.ObGridCellEditor);
public java.lang.Object getCellEditorValue();
public boolean isCellEditable(java.util.EventObject);
public void setValue(java.lang.Object);
public boolean startCellEditing(java.util.EventObject);
public boolean stopCellEditing();
}

Page: 177 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCheckboxGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObCheckboxGui.class

Formal parameters:

None

Compiled from ObCheckboxGui.java


public final synchronized class ObRun/ObPanel/ObCtrlGui/ObCheckboxGui extends
ObRun.ObPanel.ObCtrlGui.ObCtrlGui
{
private java.lang.Object m_checkedValue;
private java.lang.Object m_uncheckedValue;
public ObRun/ObPanel/ObCtrlGui/ObCheckboxGui();
public void addItems(java.lang.Object[]);
public void clearReferences();
protected void createRenderer();
public java.lang.Object getCheckedValue();
public java.lang.Object getUnCheckedValue();
public java.lang.String getValue();
public void setBackgroundColor(java.lang.String);
public void setColumnHeading(java.lang.String);
public void setControlName(java.lang.String);
public void setDisabled(java.lang.String);
public void setFixBottom(java.lang.String);
public void setFixLeft(java.lang.String);
public void setFixRight(java.lang.String);
public void setFixTop(java.lang.String);
public void setFont(java.lang.String);
public void setGridText(java.lang.String);
public void setGridValue(java.lang.String);
public void setLeftContextMenu(java.lang.String);
public void setMode(java.lang.String);
public void setPosition(java.lang.String);
public void setRightContextMenu(java.lang.String);
public void setSize(java.lang.String);
public void setTabSequence(java.lang.String);
public void setTabStop(java.lang.String);

Page: 178 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setText(java.lang.String);


public void setTextColor(java.lang.String);
public void setValue(java.lang.String);
public void setVisible(java.lang.String);
}

Page: 179 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCheckBoxTreeCellRenderer

Full name of class: ObRun.ObPanel.ObCtrlGui.ObCheckBoxTreeCellRenderer.class

Formal parameters:

None

Compiled from ObCheckboxGui.java


synchronized class ObRun/ObPanel/ObCtrlGui/ObCheckBoxTreeCellRenderer extends javax.swing.JCheckBox
{
ObRun/ObPanel/ObCtrlGui/ObCheckBoxTreeCellRenderer();
}

Page: 180 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObClockTick

Full name of class: ObRun.ObPanel.ObCtrlGui.ObClockTick.class

Formal parameters:

None

Compiled from ObCtrlGui.java


synchronized class ObRun/ObPanel/ObCtrlGui/ObClockTick extends java.lang.Object implements
java.awt.event.ActionListener
{
private ObRun.ObPanel.ObCtrlGui.ObWindowGui m_panelGui;
ObRun/ObPanel/ObCtrlGui/ObClockTick(ObRun.ObPanel.ObCtrlGui.ObWindowGui);
public void actionPerformed(java.awt.event.ActionEvent);
}

Page: 181 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObColumnHeadingGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObColumnHeadingGui.class

Formal parameters:

None

Compiled from ObColumnHeadingGui.java


public final synchronized class ObRun/ObPanel/ObCtrlGui/ObColumnHeadingGui extends
ObRun.ObPanel.ObCtrlGui.ObCtrlGui
{
private java.lang.String m_value;
private int m_width;
private int m_column;
private boolean m_visible;
public ObRun/ObPanel/ObCtrlGui/ObColumnHeadingGui();
public void clearReferences();
public int getColumn();
public java.lang.String getValue();
public int getWidth();
public boolean isVisible();
public void setColumn(int);
public void setText(java.lang.String);
public void setValue(java.lang.String);
public void setVisible(java.lang.String);
public void setWidth(java.lang.String);
public java.lang.String toString();
}

Page: 182 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObComboGridEditorDelegate

Full name of class: ObRun.ObPanel.ObCtrlGui.ObComboGridEditorDelegate.class

Formal parameters:

None

Compiled from ObGridCellEditor.java


synchronized class ObRun/ObPanel/ObCtrlGui/ObComboGridEditorDelegate extends
ObRun.ObPanel.ObCtrlGui.ObBaseGridEditorDelegate
{
protected ObRun/ObPanel/ObCtrlGui/ObComboGridEditorDelegate(ObRun.ObPanel.ObCtrlGui.ObGridCellEditor);
public java.lang.Object getCellEditorValue();
public boolean isCellEditable(java.util.EventObject);
public void setValue(java.lang.Object);
public boolean startCellEditing(java.util.EventObject);
public boolean stopCellEditing();
}

Page: 183 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObComboGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObComboGui.class

Formal parameters:

None

Compiled from ObComboGui.java


public final synchronized class ObRun/ObPanel/ObCtrlGui/ObComboGui extends
ObRun.ObPanel.ObCtrlGui.ObCtrlGui
{
private boolean m_sorted;
public ObRun/ObPanel/ObCtrlGui/ObComboGui();
public void addItems(java.lang.Object[]);
public void clear();
public java.lang.String getValue();
public boolean isSorted();
public void setBackgroundColor(java.lang.String);
public void setBorder(java.lang.String);
public void setColumnHeading(java.lang.String);
public void setControlName(java.lang.String);
public void setDisabled(java.lang.String);
public void setFixBottom(java.lang.String);
public void setFixLeft(java.lang.String);
public void setFixRight(java.lang.String);
public void setFixTop(java.lang.String);
public void setFont(java.lang.String);
public void setLeftContextMenu(java.lang.String);
public void setMode(java.lang.String);
public void setPosition(java.lang.String);
public void setRightContextMenu(java.lang.String);
public void setSize(java.lang.String);
public void setSorted(java.lang.String);
public void setTabSequence(java.lang.String);
public void setTabStop(java.lang.String);
public void setTextColor(java.lang.String);
public void setValue(java.lang.String);
public void setVisible(java.lang.String);

Page: 184 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Page: 185 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCtrlGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObCtrlGui.class

Formal parameters:

boolean m_componentListener;
boolean m_focusListener;
boolean m_keyListener;
boolean m_mouseListener;
boolean m_mouseMotionListener;
boolean m_windowListener;
boolean m_itemListener;
boolean m_textListener;
boolean m_listDataListener;
boolean m_modifiedEvent;
boolean m_actionListener;
boolean m_propertyChangeListener;
boolean m_vetoableChangeListener;

Compiled from ObCtrlGui.java


public synchronized class ObRun/ObPanel/ObCtrlGui/ObCtrlGui extends java.lang.Object implements
java.awt.event.ComponentListener , java.awt.event.FocusListener , java.awt.event.KeyListener ,
java.awt.event.MouseListener , java.awt.event.MouseMotionListener , java.awt.event.WindowListener ,
java.awt.event.ItemListener , java.awt.event.TextListener , javax.swing.table.TableCellRenderer ,
java.beans.PropertyChangeListener , java.beans.VetoableChangeListener
{
protected ObRun.ObPanel.ObCtrlData.ObCtrlData m_dataCtrl;
protected java.awt.Component m_ctrl;
protected java.util.Vector m_children;
protected ObRun/ObPanel/ObCtrlGui/ObCtrlGui m_parent;
protected ObRun.ObPanel.ObCtrlGui.ObWindowGui m_panel;
protected javax.swing.text.PlainDocument m_document;
boolean m_componentListener;
boolean m_focusListener;
boolean m_keyListener;
boolean m_mouseListener;
boolean m_mouseMotionListener;
boolean m_windowListener;

Page: 186 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

boolean m_itemListener;
boolean m_textListener;
boolean m_listDataListener;
boolean m_modifiedEvent;
boolean m_actionListener;
boolean m_propertyChangeListener;
boolean m_vetoableChangeListener;
protected java.lang.String m_ctrlName;
protected ObRun.ObPanel.ObCtrlGui.ObColumnHeadingGui m_columnHeading;
protected java.awt.Component m_renderer;
protected ObRun.ObPanel.ObCtrlGui.ObGridCellEditor m_editor;
protected java.lang.String m_initialValue;
protected ObRun.ObFunction.ObClientApp m_clientApp;
protected boolean m_inApplet;
protected ObRun.ObPanel.ObCtrlGui.ObTabSequence m_tab;
protected boolean m_tabStop;
protected boolean m_fixLeft;
protected boolean m_fixRight;
protected boolean m_fixTop;
protected boolean m_fixBottom;
protected int m_leftMenuID;
protected int m_rightMenuID;
public static final byte MIXED;
public static final byte UPPER;
public static final byte LOWER;
public static final byte UNINITIALIZED;
public static final byte CHAR;
public static final byte NUMERIC;
public static final byte NUMERIC_NO_DECIMALS;
public static final byte DATE;
public static final byte TIME;
public static final byte TIMESTAMP;
protected boolean m_mousePressedMapped;
protected static java.awt.SystemColor m_javaCol[];
private java.awt.Cursor m_handCursor;
static static {};
public ObRun/ObPanel/ObCtrlGui/ObCtrlGui();
public void addChild(ObRun/ObPanel/ObCtrlGui/ObCtrlGui);
public void clear();
public void clearReferences();
public void componentHidden(java.awt.event.ComponentEvent);

Page: 187 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void componentMoved(java.awt.event.ComponentEvent);


public void componentResized(java.awt.event.ComponentEvent);
public void componentShown(java.awt.event.ComponentEvent);
protected int countDecimalDigits(java.lang.String);
protected int countFractionalDigits(java.lang.String);
public javax.swing.JComponent createPopupMenu(int, boolean);
protected void createRenderer();
public void focusGained(java.awt.event.FocusEvent);
public void focusLost(java.awt.event.FocusEvent);
protected java.lang.String formatCharacterForDisplay(java.lang.String, java.lang.String);
protected java.lang.String formatCharacterForInternal(java.lang.String, java.lang.String);
public java.lang.String formatDateForDisplay(java.lang.String, java.lang.String);
protected java.lang.String formatDateForInternal(java.lang.String, java.lang.String);
public java.lang.String formatForDisplay(java.lang.String);
public java.lang.String formatForInternal(java.lang.String);
protected java.lang.String formatNumericForDisplay(java.lang.String, java.lang.String);
protected java.lang.String formatNumericForInternal(java.lang.String, java.lang.String);
public java.lang.String formatTimeForDisplay(java.lang.String, java.lang.String);
protected java.lang.String formatTimeForInternal(java.lang.String, java.lang.String);
public java.lang.String formatTimeStampForDisplay(java.lang.String, java.lang.String);
protected java.lang.String formatTimeStampForInternal(java.lang.String, java.lang.String);
public java.awt.Component getComponent();
public ObRun.ObPanel.ObCtrlData.ObCtrlData getData();
public javax.swing.table.TableCellEditor getEditor();
public java.lang.String getGridValue();
public java.lang.String getInitialValue();
public java.lang.Integer getIntegers(java.lang.String)[];
public static int getKeyCode(java.lang.String);
public ObRun.ObPanel.ObCtrlGui.ObWindowGui getPanel();
public ObRun/ObPanel/ObCtrlGui/ObCtrlGui getParent();
public java.lang.String getStrings(java.lang.String)[];
public int getTabSequence();
public java.awt.Component getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean,
boolean, int, int);
public java.lang.String getValue();
public boolean ifFocus();
public boolean inGrid();
protected boolean isDigit(char);
public boolean isEditable();
public boolean isFixBottom();
public boolean isFixLeft();

Page: 188 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public boolean isFixRight();


public boolean isFixTop();
public boolean isModifiedEvent();
public boolean isTabStop();
public void itemStateChanged(java.awt.event.ItemEvent);
public void keyPressed(java.awt.event.KeyEvent);
public void keyReleased(java.awt.event.KeyEvent);
public void keyTyped(java.awt.event.KeyEvent);
public static javax.swing.ImageIcon loadBitmapFile(java.lang.String);
public java.awt.Font loadFont(java.lang.String);
public void mouseClicked(java.awt.event.MouseEvent);
public void mouseDragged(java.awt.event.MouseEvent);
public void mouseEntered(java.awt.event.MouseEvent);
public void mouseExited(java.awt.event.MouseEvent);
public void mouseMoved(java.awt.event.MouseEvent);
public void mousePressed(java.awt.event.MouseEvent);
public void mouseReleased(java.awt.event.MouseEvent);
public void propertyChange(java.beans.PropertyChangeEvent);
public void registerEvent(int);
protected java.lang.String removeCharMask(java.lang.String, java.lang.String);
public void removeChild(ObRun/ObPanel/ObCtrlGui/ObCtrlGui);
protected java.lang.String removeNonNumerics(java.lang.String);
public void setBackgroundColor(java.lang.String);
public void setBackgroundImage();
public void setColumnHeading(java.lang.String);
public void setControlName(java.lang.String);
public void setData(ObRun.ObPanel.ObCtrlData.ObCtrlData);
protected void setFieldDetails(boolean, java.lang.String);
public void setFixBottom(java.lang.String);
public void setFixLeft(java.lang.String);
public void setFixRight(java.lang.String);
public void setFixTop(java.lang.String);
public void setFocus();
public void setFocusToCurrent();
public void setFont(java.lang.String);
public void setGridText(java.lang.String);
public void setGridValue(java.lang.String);
public void setInitialValue();
public void setLeftContextMenu(java.lang.String);
public void setMouseOverCursor();
public void setNotMouseOverCursor();

Page: 189 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setPanel(ObRun.ObPanel.ObCtrlGui.ObWindowGui);


public void setPosition(java.lang.String);
public void setRendererBackgroundColor(java.lang.String);
public void setRendererDisabled(java.lang.String);
public void setRendererForegroundColor(java.lang.String);
public void setRightContextMenu(java.lang.String);
public void setSize(java.lang.String);
public void setTabSequence(java.lang.String);
public void setTabStop(java.lang.String);
public void setText(java.lang.String);
public void setTextColor(java.awt.Color);
public void setTextColor(java.lang.String);
protected void setValidationMembers(int, int, java.lang.String, java.awt.Color, java.awt.Color);
public void setValue(java.lang.String);
public void storeGridValue(java.lang.String);
public void textValueChanged(java.awt.event.TextEvent);
protected void validateCharacterEntry(java.lang.String, java.lang.String, java.awt.event.KeyEvent, int,
int, java.lang.String);
protected void validateDateEntry(java.lang.String, java.lang.String, java.awt.event.KeyEvent, int, int,
java.lang.String);
protected void validateNumericEntry(java.lang.String, int, int, java.awt.event.KeyEvent, int,
java.lang.String);
protected void validateTimeEntry(java.lang.String, java.lang.String, java.awt.event.KeyEvent, int, int,
java.lang.String);
protected void validateTimeStampEntry(java.lang.String, java.lang.String, java.awt.event.KeyEvent, int,
int, java.lang.String);
public void vetoableChange(java.beans.PropertyChangeEvent);
public void windowActivated(java.awt.event.WindowEvent);
public void windowClosed(java.awt.event.WindowEvent);
public void windowClosing(java.awt.event.WindowEvent);
public void windowDeactivated(java.awt.event.WindowEvent);
public void windowDeiconified(java.awt.event.WindowEvent);
public void windowIconified(java.awt.event.WindowEvent);
public void windowOpened(java.awt.event.WindowEvent);
Compiled from ObCtrlGui.java
synchronized class ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObPopupItem extends java.lang.Object
{
private final ObRun/ObPanel/ObCtrlGui/ObCtrlGui this$0;
private javax.swing.JMenuItem m_item;
private java.lang.Integer m_itemID;

Page: 190 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObRun/ObPanel/ObCtrlGui/ObCtrlGui.
ObPopupItem(ObRun/ObPanel/ObCtrlGui/ObCtrlGui,javax.swing.JMenuItem,java.lang.Integer);
static ObRun/ObPanel/ObCtrlGui/ObCtrlGui access$0(ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObPopupItem);
static java.lang.Integer access$1(ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObPopupItem);
public javax.swing.JMenuItem getMenuItem();
public void setMenuItemProperties(ObRun.ObPanel.ObCtrlGui.ObMenuitemGui);
}

static synchronized class ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObNumericDocument extends


javax.swing.text.PlainDocument
{
ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObNumericDocument();
public void insertString(int, java.lang.String, javax.swing.text.AttributeSet);
}

static synchronized class ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObUpperCaseDocument extends


javax.swing.text.PlainDocument
{
ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObUpperCaseDocument();
public void insertString(int, java.lang.String, javax.swing.text.AttributeSet);
}

static synchronized class ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObLowerCaseDocument extends


javax.swing.text.PlainDocument
{
ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObLowerCaseDocument();
public void insertString(int, java.lang.String, javax.swing.text.AttributeSet);
}

static synchronized class ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObDateDocument extends


javax.swing.text.PlainDocument
{
ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObDateDocument();
public void insertString(int, java.lang.String, javax.swing.text.AttributeSet);
}

static synchronized class ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObTimeDocument extends


javax.swing.text.PlainDocument
{
ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObTimeDocument();
public void insertString(int, java.lang.String, javax.swing.text.AttributeSet);

Page: 191 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

static synchronized class ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObTimeStampDocument extends


javax.swing.text.PlainDocument
{
ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObTimeStampDocument();
public void insertString(int, java.lang.String, javax.swing.text.AttributeSet);
}

synchronized class ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObPopupItem extends java.lang.Object


{
private final ObRun/ObPanel/ObCtrlGui/ObCtrlGui this$0;
private javax.swing.JMenuItem m_item;
private java.lang.Integer m_itemID;
ObRun/ObPanel/ObCtrlGui/ObCtrlGui.
ObPopupItem(ObRun/ObPanel/ObCtrlGui/ObCtrlGui,javax.swing.JMenuItem,java.lang.Integer);
static ObRun/ObPanel/ObCtrlGui/ObCtrlGui access$0(ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObPopupItem);
static java.lang.Integer access$1(ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObPopupItem);
public javax.swing.JMenuItem getMenuItem();
public void setMenuItemProperties(ObRun.ObPanel.ObCtrlGui.ObMenuitemGui);
}

static synchronized class ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObNumericDocument extends


javax.swing.text.PlainDocument
{
ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObNumericDocument();
public void insertString(int, java.lang.String, javax.swing.text.AttributeSet);
}

static synchronized class ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObUpperCaseDocument extends


javax.swing.text.PlainDocument
{
ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObUpperCaseDocument();
public void insertString(int, java.lang.String, javax.swing.text.AttributeSet);
}

static synchronized class ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObLowerCaseDocument extends


javax.swing.text.PlainDocument
{
ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObLowerCaseDocument();
public void insertString(int, java.lang.String, javax.swing.text.AttributeSet);

Page: 192 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

static synchronized class ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObDateDocument extends


javax.swing.text.PlainDocument
{
ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObDateDocument();
public void insertString(int, java.lang.String, javax.swing.text.AttributeSet);
}

static synchronized class ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObTimeDocument extends


javax.swing.text.PlainDocument
{
ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObTimeDocument();
public void insertString(int, java.lang.String, javax.swing.text.AttributeSet);
}

static synchronized class ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObTimeStampDocument extends


javax.swing.text.PlainDocument
{
ObRun/ObPanel/ObCtrlGui/ObCtrlGui. ObTimeStampDocument();
public void insertString(int, java.lang.String, javax.swing.text.AttributeSet);
}
}

Page: 193 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCtrlGui$1

Full name of class: ObRun.ObPanel.ObCtrlGui.ObCtrlGui$1.class

Formal parameters:

None

Compiled from ObCtrlGui.java


final synchronized class ObRun/ObPanel/ObCtrlGui/ObCtrlGui$1 extends java.lang.Object implements
java.awt.event.ActionListener
{
private final ObRun.ObPanel.ObCtrlGui.ObCtrlGui. ObPopupItem this$1;
ObRun/ObPanel/ObCtrlGui/ObCtrlGui$1(ObRun.ObPanel.ObCtrlGui.ObCtrlGui. ObPopupItem);
public void actionPerformed(java.awt.event.ActionEvent);
}

Page: 194 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCtrlGui$ObDateDocument

Full name of class: ObRun.ObPanel.ObCtrlGui.ObCtrlGui$ObDateDocument.class

Formal parameters:

None

Compiled from ObCtrlGui.java


static synchronized class ObRun.ObPanel.ObCtrlGui.ObCtrlGui. ObDateDocument extends
javax.swing.text.PlainDocument
{
ObRun.ObPanel.ObCtrlGui.ObCtrlGui. ObDateDocument();
public void insertString(int, java.lang.String, javax.swing.text.AttributeSet);
}

Page: 195 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCtrlGui$ObLowerCaseDocument

Full name of class: ObRun.ObPanel.ObCtrlGui.ObCtrlGui$ObLowerCaseDocument.class

Formal parameters:

None

Compiled from ObCtrlGui.java


static synchronized class ObRun.ObPanel.ObCtrlGui.ObCtrlGui. ObLowerCaseDocument extends
javax.swing.text.PlainDocument
{
ObRun.ObPanel.ObCtrlGui.ObCtrlGui. ObLowerCaseDocument();
public void insertString(int, java.lang.String, javax.swing.text.AttributeSet);
}

Page: 196 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCtrlGui$ObNumericDocument

Full name of class: ObRun.ObPanel.ObCtrlGui.ObCtrlGui$ObNumericDocument.class

Formal parameters:

None

Compiled from ObCtrlGui.java


static synchronized class ObRun.ObPanel.ObCtrlGui.ObCtrlGui. ObNumericDocument extends
javax.swing.text.PlainDocument
{
ObRun.ObPanel.ObCtrlGui.ObCtrlGui. ObNumericDocument();
public void insertString(int, java.lang.String, javax.swing.text.AttributeSet);
}

Page: 197 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCtrlGui$ObPopupItem

Full name of class: ObRun.ObPanel.ObCtrlGui.ObCtrlGui$ObPopupItem.class

Formal parameters:

None

Compiled from ObCtrlGui.java


synchronized class ObRun.ObPanel.ObCtrlGui.ObCtrlGui. ObPopupItem extends java.lang.Object
{
private final ObRun.ObPanel.ObCtrlGui.ObCtrlGui this$0;
private javax.swing.JMenuItem m_item;
private java.lang.Integer m_itemID;
ObRun.ObPanel.ObCtrlGui.ObCtrlGui.
ObPopupItem(ObRun.ObPanel.ObCtrlGui.ObCtrlGui,javax.swing.JMenuItem,java.lang.Integer);
static ObRun.ObPanel.ObCtrlGui.ObCtrlGui access$0(ObRun.ObPanel.ObCtrlGui.ObCtrlGui. ObPopupItem);
static java.lang.Integer access$1(ObRun.ObPanel.ObCtrlGui.ObCtrlGui. ObPopupItem);
public javax.swing.JMenuItem getMenuItem();
public void setMenuItemProperties(ObRun.ObPanel.ObCtrlGui.ObMenuitemGui);
}

Page: 198 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCtrlGui$ObTimeDocument

Full name of class: ObRun.ObPanel.ObCtrlGui.ObCtrlGui$ObTimeDocument.class

Formal parameters:

None

Compiled from ObCtrlGui.java


static synchronized class ObRun.ObPanel.ObCtrlGui.ObCtrlGui. ObTimeDocument extends
javax.swing.text.PlainDocument
{
ObRun.ObPanel.ObCtrlGui.ObCtrlGui. ObTimeDocument();
public void insertString(int, java.lang.String, javax.swing.text.AttributeSet);
}

Page: 199 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCtrlGui$ObTimeStampDocument

Full name of class: ObRun.ObPanel.ObCtrlGui.ObCtrlGui$ObTimeStampDocument.class

Formal parameters:

None

Compiled from ObCtrlGui.java


static synchronized class ObRun.ObPanel.ObCtrlGui.ObCtrlGui. ObTimeStampDocument extends
javax.swing.text.PlainDocument
{
ObRun.ObPanel.ObCtrlGui.ObCtrlGui. ObTimeStampDocument();
public void insertString(int, java.lang.String, javax.swing.text.AttributeSet);
}

Page: 200 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCtrlGui$ObUpperCaseDocument

Full name of class: ObRun.ObPanel.ObCtrlGui.ObCtrlGui$ObUpperCaseDocument.class

Formal parameters:

None

Compiled from ObCtrlGui.java


static synchronized class ObRun.ObPanel.ObCtrlGui.ObCtrlGui. ObUpperCaseDocument extends
javax.swing.text.PlainDocument
{
ObRun.ObPanel.ObCtrlGui.ObCtrlGui. ObUpperCaseDocument();
public void insertString(int, java.lang.String, javax.swing.text.AttributeSet);
}

Page: 201 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObDialogGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObDialogGui.class

Formal parameters:

boolean m_componentListener;

Compiled from ObDialogGui.java


public final synchronized class ObRun/ObPanel/ObCtrlGui/ObDialogGui extends
ObRun.ObPanel.ObCtrlGui.ObWindowGui
{
protected boolean m_internalFrame;
boolean m_componentListener;
public ObRun/ObPanel/ObCtrlGui/ObDialogGui(ObRun.ObPanel.ObCtrlData.ObWindowData);
public void closeWindow();
public java.awt.Container getContentPane();
public javax.swing.JDialog getFrame();
public java.awt.Component getGlassPane();
public java.lang.String getTitle();
public boolean hasInternalFrame();
public boolean isEnabled();
public boolean isResizable();
public boolean isVisible();
public void layout();
public void setBackgroundColor(java.lang.String);
public void setBackgroundImage(java.lang.String);
public void setEnabled(boolean);
public void setInternalFrame(boolean);
public void setLayoutManager(java.awt.LayoutManager);
public void setLeftContextMenu(java.lang.String);
public void setPosition(java.lang.String);
public void setResizable(java.lang.String);
public void setResize(boolean);
public void setRightContextMenu(java.lang.String);
public void setSize(java.lang.String);
public void setTitle(java.lang.String);
public void setVisible(boolean);
public void show();

Page: 202 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void windowOpened(java.awt.event.WindowEvent);


}

Page: 203 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObEditGridEditorDelegate

Full name of class: ObRun.ObPanel.ObCtrlGui.ObEditGridEditorDelegate.class

Formal parameters:

None

Compiled from ObGridCellEditor.java


synchronized class ObRun/ObPanel/ObCtrlGui/ObEditGridEditorDelegate extends
ObRun.ObPanel.ObCtrlGui.ObBaseGridEditorDelegate
{
protected ObRun/ObPanel/ObCtrlGui/ObEditGridEditorDelegate(ObRun.ObPanel.ObCtrlGui.ObGridCellEditor);
public java.lang.Object getCellEditorValue();
public boolean isCellEditable(java.util.EventObject);
public void setValue(java.lang.Object);
public boolean startCellEditing(java.util.EventObject);
public boolean stopCellEditing();
}

Page: 204 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObEditGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObEditGui.class

Formal parameters:

None

Compiled from ObEditGui.java


public final synchronized class ObRun/ObPanel/ObCtrlGui/ObEditGui extends ObRun.ObPanel.ObCtrlGui.ObCtrlGui
{
private boolean m_hiliteOnFocus;
private java.awt.Color m_backgroundColor;
private java.lang.String m_editMask;
private int m_maxLength;
private int m_maxFractions;
private java.awt.Color m_positiveColor;
private java.awt.Color m_negativeColor;
private java.lang.String m_lastString;
private byte m_case;
private boolean m_fieldDefined;
public ObRun/ObPanel/ObCtrlGui/ObEditGui();
public void clearReferences();
public void focusGained(java.awt.event.FocusEvent);
public void focusLost(java.awt.event.FocusEvent);
public java.lang.String formatForDisplay(java.lang.String);
public java.lang.String formatForInternal(java.lang.String);
public java.lang.String getValue();
public void keyPressed(java.awt.event.KeyEvent);
public void keyTyped(java.awt.event.KeyEvent);
public void mouseClicked(java.awt.event.MouseEvent);
public void pasteFromClipboard();
public void setBackgroundColor(java.lang.String);
public void setBorder(java.lang.String);
public void setCase(java.lang.String);
public void setColumnHeading(java.lang.String);
public void setControlName(java.lang.String);
public void setDisabled(java.lang.String);
public void setEditMask(java.lang.String);

Page: 205 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

protected void setFieldDetails(boolean, java.lang.String);


public void setFixBottom(java.lang.String);
public void setFixLeft(java.lang.String);
public void setFixRight(java.lang.String);
public void setFixTop(java.lang.String);
public void setFont(java.lang.String);
public void setHiliteOnFocus(java.lang.String);
public void setInitialValue();
public void setLeftContextMenu(java.lang.String);
public void setMode(java.lang.String);
public void setPosition(java.lang.String);
public void setRightContextMenu(java.lang.String);
public void setSize(java.lang.String);
public void setTabSequence(java.lang.String);
public void setTabStop(java.lang.String);
public void setText(java.lang.String);
public void setTextAlignment(java.lang.String);
public void setTextColor(java.lang.String);
protected void setValidationMembers(int, int, java.lang.String, java.awt.Color, java.awt.Color);
public void setValue(java.lang.String);
public void setVisible(java.lang.String);
}

Page: 206 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObGridCellEditor

Full name of class: ObRun.ObPanel.ObCtrlGui.ObGridCellEditor.class

Formal parameters:

None

Compiled from ObGridCellEditor.java


public final synchronized class ObRun/ObPanel/ObCtrlGui/ObGridCellEditor extends java.lang.Object
implements javax.swing.table.TableCellEditor , java.awt.event.FocusListener
{
protected javax.swing.event.EventListenerList m_listenerList;
protected javax.swing.event.ChangeEvent m_changeEvent;
protected javax.swing.JComponent m_editorComponent;
protected ObRun.ObPanel.ObCtrlGui.ObBaseGridEditorDelegate m_delegate;
protected int m_clickCountToStart;
protected ObRun.ObFunction.ObClientApp m_clientApp;
protected ObRun.ObPanel.ObCtrlData.ObCtrlData m_dataCtrl;
protected ObRun.ObPanel.ObCtrlGui.ObGridGui m_grid;
static java.lang.Class class$javax$swing$event$CellEditorListener;
public ObRun/ObPanel/ObCtrlGui/ObGridCellEditor(ObRun.ObPanel.ObCtrlGui.ObCtrlGui);
public void addCellEditorListener(javax.swing.event.CellEditorListener);
public void cancelCellEditing();
static java.lang.Class class$(java.lang.String);
public void clearReferences();
protected void fireEditingCanceled();
protected void fireEditingStopped();
public void focusGained(java.awt.event.FocusEvent);
public void focusLost(java.awt.event.FocusEvent);
public java.lang.Object getCellEditorValue();
public int getClickCountToStart();
public java.awt.Component getComponent();
public java.awt.Component getTableCellEditorComponent(javax.swing.JTable, java.lang.Object, boolean,
int, int);
public boolean isCellEditable(java.util.EventObject);
public void removeCellEditorListener(javax.swing.event.CellEditorListener);
public void setClickCountToStart(int);
public boolean shouldSelectCell(java.util.EventObject);

Page: 207 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public boolean stopCellEditing();


Compiled from ObGridCellEditor.java
synchronized class ObRun/ObPanel/ObCtrlGui/ObGridCellEditor. ObMouseAdapter extends
java.awt.event.MouseAdapter
{
private final ObRun/ObPanel/ObCtrlGui/ObGridCellEditor this$0;
ObRun/ObPanel/ObCtrlGui/ObGridCellEditor. ObMouseAdapter(ObRun/ObPanel/ObCtrlGui/ObGridCellEditor);
}

synchronized class ObRun/ObPanel/ObCtrlGui/ObGridCellEditor. ObMouseAdapter extends


java.awt.event.MouseAdapter
{
private final ObRun/ObPanel/ObCtrlGui/ObGridCellEditor this$0;
ObRun/ObPanel/ObCtrlGui/ObGridCellEditor. ObMouseAdapter(ObRun/ObPanel/ObCtrlGui/ObGridCellEditor);
}
}

Page: 208 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObGridCellEditor$ObMouseAdapter

Full name of class: ObRun.ObPanel.ObCtrlGui.ObGridCellEditor$ObMouseAdapter.class

Formal parameters:

None

Compiled from ObGridCellEditor.java


synchronized class ObRun.ObPanel.ObCtrlGui.ObGridCellEditor. ObMouseAdapter extends
java.awt.event.MouseAdapter
{
private final ObRun.ObPanel.ObCtrlGui.ObGridCellEditor this$0;
ObRun.ObPanel.ObCtrlGui.ObGridCellEditor. ObMouseAdapter(ObRun.ObPanel.ObCtrlGui.ObGridCellEditor);
}

Page: 209 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObGridGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObGridGui.class

Formal parameters:

Vary by subclass

Compiled from ObGridGui.java


public final synchronized class ObRun/ObPanel/ObCtrlGui/ObGridGui extends ObRun.ObPanel.ObCtrlGui.ObCtrlGui
implements javax.swing.event.ListSelectionListener
{
private ObRun.ObPanel.ObCtrlGui.ObGridModel m_model;
protected javax.swing.JTable m_grid;
private boolean m_complete;
private boolean m_gridend;
private boolean m_justCleared;
private java.util.Vector m_cells;
private byte m_accessMode;
private java.util.Vector m_renderersEditors;
private int m_pageSize;
protected int m_GridInitialHeight;
private java.awt.Font m_font;
private boolean m_sortable;
public static final byte UNSORTED;
public static final byte ASCENDING;
public static final byte DESCENDING;
private byte m_sortMode[];
protected java.lang.Class m_fieldTypes[];
protected int m_fieldCount;
protected boolean m_readOnly;
private int m_currentRow;
private int m_currentRowCount;
private int m_gridRowSel;
private int m_gridColumnSel;
private boolean m_inForLoop;
private int m_paging;
private boolean m_ignoreEvents;
private ObRun.ObPanel.ObCtrlGui.ObCtrlGui m_lastEdited;

Page: 210 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

protected boolean m_fireChanged;


protected ObRun/ObPanel/ObCtrlGui/ObGridGui. ObGridColumnListener m_headingListener;
public ObRun/ObPanel/ObCtrlGui/ObGridGui();
static ObRun.ObPanel.ObCtrlGui.ObGridModel access$0(ObRun/ObPanel/ObCtrlGui/ObGridGui);
public void addCell(java.lang.String, ObRun.ObRTTypes.ObField, int);
public boolean canSort();
public void clearReferences();
public void columnWidthChanged(int, int);
public void endAccess(byte);
public java.lang.Class getColumnClass(int);
public int getCurrentRow();
public ObRun.ObPanel.ObCtrlGui.ObGridModel getDataModel();
protected javax.swing.table.TableCellEditor getEditor(int);
public boolean getFirstModified();
public boolean getFirstRecord();
public boolean getFirstSelected();
public java.awt.Font getFont();
public javax.swing.JTable getGrid();
public int getGridColumnSel();
public int getGridRowCount();
public int getGridRowSel();
public boolean getIgnoreEvents();
public boolean getNextModified();
public boolean getNextRecord();
public boolean getNextSelected();
public int getPaging();
public boolean getReadOnly();
protected javax.swing.table.TableCellRenderer getRenderer(int);
public byte getSortMode(int);
protected boolean justCleared();
public void loadComplete();
protected boolean locateNextModified();
public void mouseClicked(java.awt.event.MouseEvent);
public void notifyColumnControl(ObRun.ObPanel.ObCtrlGui.ObCtrlGui);
public boolean notifyGridEnd();
protected void populateControlsFromData();
public void populateGridFromFields();
protected void resetSortModes();
public void setBackgroundColor(java.lang.String);
public void setColumnHeadings(java.lang.String);
public void setColumnResequencing(java.lang.String);

Page: 211 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setColumnResizing(java.lang.String);


public void setDisabled(java.lang.String);
public void setFixBottom(java.lang.String);
public void setFixLeft(java.lang.String);
public void setFixRight(java.lang.String);
public void setFixTop(java.lang.String);
public void setFont(java.lang.String);
public void setGridColumnSel(int);
public void setGridRowSel(int);
public void setHeadingHeight(java.lang.String);
public void setIgnoreEvents(boolean);
protected void setJustCleared(boolean);
public void setLastEdited(ObRun.ObPanel.ObCtrlGui.ObCtrlGui);
public void setLeftContextMenu(java.lang.String);
public void setMode(java.lang.String);
protected void setModified(boolean);
public void setNoGridLines(java.lang.String);
public void setPageSize(java.lang.String);
public void setPaging(int);
public void setPosition(java.lang.String);
public void setReadOnly(boolean);
public void setRightContextMenu(java.lang.String);
public void setRowHeight(java.lang.String);
public void setSize(java.lang.String);
public void setSortMode(byte, int);
public void setSortable(java.lang.String);
public void setTabSequence(java.lang.String);
public void setTabStop(java.lang.String);
public void setTextColor(java.lang.String);
public void setVisible(java.lang.String);
public void setWholeRowSelection(java.lang.String);
protected void sortData(int);
public void startAccess(byte);
public void valueChanged(javax.swing.event.ListSelectionEvent);

Formal parameters:

ObRun/ObPanel/ObCtrlGui/ObGridGui m_gui;

synchronized class ObRun/ObPanel/ObCtrlGui/ObGridGui. ObGridColumnListener extends


java.awt.event.MouseAdapter implements java.awt.event.MouseMotionListener

Page: 212 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
private final ObRun/ObPanel/ObCtrlGui/ObGridGui this$0;
ObRun/ObPanel/ObCtrlGui/ObGridGui m_gui;
public ObRun/ObPanel/ObCtrlGui/ObGridGui.
ObGridColumnListener(ObRun/ObPanel/ObCtrlGui/ObGridGui,ObRun/ObPanel/ObCtrlGui/ObGridGui);
public void mouseClicked(java.awt.event.MouseEvent);
public void mouseDragged(java.awt.event.MouseEvent);
public void mouseMoved(java.awt.event.MouseEvent);
}

Page: 213 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Formal parameters:

javax.swing.JScrollBar m_scroll;
ObRun/ObPanel/ObCtrlGui/ObGridGui m_gui;

synchronized class ObRun/ObPanel/ObCtrlGui/ObGridGui. ObTableListener extends java.lang.Object


implements java.awt.event.AdjustmentListener
{
private final ObRun/ObPanel/ObCtrlGui/ObGridGui this$0;
javax.swing.JScrollBar m_scroll;
ObRun/ObPanel/ObCtrlGui/ObGridGui m_gui;
public ObRun/ObPanel/ObCtrlGui/ObGridGui.
ObTableListener(ObRun/ObPanel/ObCtrlGui/ObGridGui,javax.swing.JScrollBar,ObRun/ObPanel/ObCtrlGui/ObGridGui);
public void adjustmentValueChanged(java.awt.event.AdjustmentEvent);
}

Formal parameters:

ObRun/ObPanel/ObCtrlGui/ObGridGui m_gui;

synchronized class ObRun/ObPanel/ObCtrlGui/ObGridGui. ObGridColumnListener extends


java.awt.event.MouseAdapter implements java.awt.event.MouseMotionListener
{
private final ObRun/ObPanel/ObCtrlGui/ObGridGui this$0;
ObRun/ObPanel/ObCtrlGui/ObGridGui m_gui;
public ObRun/ObPanel/ObCtrlGui/ObGridGui.
ObGridColumnListener(ObRun/ObPanel/ObCtrlGui/ObGridGui,ObRun/ObPanel/ObCtrlGui/ObGridGui);
public void mouseClicked(java.awt.event.MouseEvent);
public void mouseDragged(java.awt.event.MouseEvent);
public void mouseMoved(java.awt.event.MouseEvent);
}

Formal parameters:

javax.swing.JScrollBar m_scroll;
ObRun/ObPanel/ObCtrlGui/ObGridGui m_gui;

synchronized class ObRun/ObPanel/ObCtrlGui/ObGridGui. ObTableListener extends java.lang.Object


implements java.awt.event.AdjustmentListener
{

Page: 214 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

private final ObRun/ObPanel/ObCtrlGui/ObGridGui this$0;


javax.swing.JScrollBar m_scroll;
ObRun/ObPanel/ObCtrlGui/ObGridGui m_gui;
public ObRun/ObPanel/ObCtrlGui/ObGridGui.
ObTableListener(ObRun/ObPanel/ObCtrlGui/ObGridGui,javax.swing.JScrollBar,ObRun/ObPanel/ObCtrlGui/ObGridGui);
public void adjustmentValueChanged(java.awt.event.AdjustmentEvent);
}
}

Page: 215 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObGridGui$ObGridColumnListener

Full name of class: ObRun.ObPanel.ObCtrlGui.ObGridGui$ObGridColumnListener.class

Formal parameters:

ObRun.ObPanel.ObCtrlGui.ObGridGui m_gui;

Compiled from ObGridGui.java


synchronized class ObRun.ObPanel.ObCtrlGui.ObGridGui. ObGridColumnListener extends
java.awt.event.MouseAdapter implements java.awt.event.MouseMotionListener
{
private final ObRun.ObPanel.ObCtrlGui.ObGridGui this$0;
ObRun.ObPanel.ObCtrlGui.ObGridGui m_gui;
public ObRun.ObPanel.ObCtrlGui.ObGridGui.
ObGridColumnListener(ObRun.ObPanel.ObCtrlGui.ObGridGui,ObRun.ObPanel.ObCtrlGui.ObGridGui);
public void mouseClicked(java.awt.event.MouseEvent);
public void mouseDragged(java.awt.event.MouseEvent);
public void mouseMoved(java.awt.event.MouseEvent);
}

Page: 216 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObGridGui$ObTableListener

Full name of class: ObRun.ObPanel.ObCtrlGui.ObGridGui$ObTableListener.class

Formal parameters:

javax.swing.JScrollBar m_scroll;
ObRun.ObPanel.ObCtrlGui.ObGridGui m_gui;

Compiled from ObGridGui.java


synchronized class ObRun.ObPanel.ObCtrlGui.ObGridGui. ObTableListener extends java.lang.Object implements
java.awt.event.AdjustmentListener
{
private final ObRun.ObPanel.ObCtrlGui.ObGridGui this$0;
javax.swing.JScrollBar m_scroll;
ObRun.ObPanel.ObCtrlGui.ObGridGui m_gui;
public ObRun.ObPanel.ObCtrlGui.ObGridGui.
ObTableListener(ObRun.ObPanel.ObCtrlGui.ObGridGui,javax.swing.JScrollBar,ObRun.ObPanel.ObCtrlGui.ObGridGui);
public void adjustmentValueChanged(java.awt.event.AdjustmentEvent);
}

Page: 217 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObGridModel

Full name of class: ObRun.ObPanel.ObCtrlGui.ObGridModel.class

Formal parameters:

ObRun.ObPanel.ObCtrlGui.ObGridGui m_gui;
java.util.Vector m_headings;
java.util.Vector m_visibleRows;
java.util.Vector m_invisibleRows;

Compiled from ObGridGui.java


synchronized class ObRun/ObPanel/ObCtrlGui/ObGridModel extends javax.swing.table.AbstractTableModel
{
ObRun.ObPanel.ObCtrlGui.ObGridGui m_gui;
java.util.Vector m_headings;
java.util.Vector m_visibleRows;
java.util.Vector m_invisibleRows;
private int m_headingHeight;
private boolean m_useVisible;
public ObRun/ObPanel/ObCtrlGui/ObGridModel(ObRun.ObPanel.ObCtrlGui.ObGridGui);
public void addRow(java.util.Vector);
public void bubbleSort(java.util.Vector[], int, int);
public void clear();
public int getColumnCount();
public java.lang.String getColumnName(int);
private javax.swing.JTable getGridControl();
public int getRowCount();
public java.lang.Object getValueAt(int, int);
public boolean isCellEditable(int, int);
public boolean isCellModified(int, int);
public boolean isColumnResizable(int);
public boolean isRowModified(int);
public void removeRow(int);
protected void rowAddComplete();
public void setColumnWidth(int, int);
public void setColumnWidths();
public void setColumns(java.util.Vector);
public void setHeadingHeight(int);

Page: 218 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setModifiedAt(boolean, int);


protected void setPreferredHeadingHeight();
public void setValueAt(java.lang.Object, int, int);
protected void sortData(byte, int);
public void updateRow(java.util.Vector, int);
public void useInvisibleImage();
public void useVisibleImage();
}

Page: 219 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObLabelGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObLabelGui.class

Formal parameters:

None

Compiled from ObLabelGui.java


public final synchronized class ObRun/ObPanel/ObCtrlGui/ObLabelGui extends
ObRun.ObPanel.ObCtrlGui.ObCtrlGui
{
public static final byte TEXT;
public static final byte GROUP;
public static final byte FRAME;
public static final byte PICTURE;
public static final byte HORZLINE;
public static final byte VERTLINE;
public static final byte GRIDHEADING;
private byte m_staticType;
private int m_sizeWidth;
private int m_sizeHeight;
private java.lang.String m_textLines[];
public ObRun/ObPanel/ObCtrlGui/ObLabelGui();
static java.lang.String access$0(ObRun/ObPanel/ObCtrlGui/ObLabelGui)[];
public void clearReferences();
public java.lang.String getValue();
public void setBackgroundColor(java.lang.String);
public void setBitmapFile(java.lang.String);
public void setBorder(java.lang.String);
public void setControlName(java.lang.String);
public void setFixBottom(java.lang.String);
public void setFixLeft(java.lang.String);
public void setFixRight(java.lang.String);
public void setFixTop(java.lang.String);
public void setFont(java.lang.String);
public void setLabelFor(java.lang.String);
public void setLeftContextMenu(java.lang.String);
public void setPosition(java.lang.String);

Page: 220 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setRightContextMenu(java.lang.String);


public void setSize(java.lang.String);
public void setStaticType(java.lang.String);
public void setText(java.lang.String);
public void setTextAlignment(java.lang.String);
public void setTextColor(java.lang.String);
public void setTransparent(java.lang.String);
public void setValue(java.lang.String);
public void setVisible(java.lang.String);
public java.lang.String toString();

synchronized class ObRun/ObPanel/ObCtrlGui/ObLabelGui. ObLabel extends javax.swing.JLabel


{
private final ObRun/ObPanel/ObCtrlGui/ObLabelGui this$0;
ObRun/ObPanel/ObCtrlGui/ObLabelGui. ObLabel(ObRun/ObPanel/ObCtrlGui/ObLabelGui);
public void paintComponent(java.awt.Graphics);
}

synchronized class ObRun/ObPanel/ObCtrlGui/ObLabelGui. ObLabel extends javax.swing.JLabel


{
private final ObRun/ObPanel/ObCtrlGui/ObLabelGui this$0;
ObRun/ObPanel/ObCtrlGui/ObLabelGui. ObLabel(ObRun/ObPanel/ObCtrlGui/ObLabelGui);
public void paintComponent(java.awt.Graphics);
}
}

Page: 221 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObLabelGui$ObLabel

Full name of class: ObRun.ObPanel.ObCtrlGui.ObLabelGui$ObLabel.class

Formal parameters:

None

Compiled from ObLabelGui.java


synchronized class ObRun.ObPanel.ObCtrlGui.ObLabelGui. ObLabel extends javax.swing.JLabel
{
private final ObRun.ObPanel.ObCtrlGui.ObLabelGui this$0;
ObRun.ObPanel.ObCtrlGui.ObLabelGui. ObLabel(ObRun.ObPanel.ObCtrlGui.ObLabelGui);
public void paintComponent(java.awt.Graphics);
}

Page: 222 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObListGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObListGui.class

Formal parameters:

None

Compiled from ObListGui.java


public final synchronized class ObRun/ObPanel/ObCtrlGui/ObListGui extends ObRun.ObPanel.ObCtrlGui.ObCtrlGui
implements javax.swing.event.ListSelectionListener
{
private javax.swing.JList m_list;
private boolean m_sorted;
public ObRun/ObPanel/ObCtrlGui/ObListGui();
public void addItems(java.lang.Object[]);
public void clear();
public void clearReferences();
public javax.swing.JList getListControl();
public java.lang.String getValue();
public boolean isSorted();
public void registerEvent(int);
public void setBackgroundColor(java.lang.String);
public void setBorder(java.lang.String);
public void setControlName(java.lang.String);
public void setDisabled(java.lang.String);
public void setFixBottom(java.lang.String);
public void setFixLeft(java.lang.String);
public void setFixRight(java.lang.String);
public void setFixTop(java.lang.String);
public void setFont(java.lang.String);
public void setLeftContextMenu(java.lang.String);
public void setMode(java.lang.String);
public void setPosition(java.lang.String);
public void setRightContextMenu(java.lang.String);
public void setSize(java.lang.String);
public void setSorted(java.lang.String);
public void setTabSequence(java.lang.String);
public void setTabStop(java.lang.String);

Page: 223 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setTextColor(java.lang.String);


public void setValue(java.lang.String);
public void setVisible(java.lang.String);
public void valueChanged(javax.swing.event.ListSelectionEvent);
}

Page: 224 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMenubarGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObMenubarGui.class

Formal parameters:

java.awt.Font m_menuFont;

Compiled from ObMenubarGui.java


public final synchronized class ObRun/ObPanel/ObCtrlGui/ObMenubarGui extends
ObRun.ObPanel.ObCtrlGui.ObCtrlGui
{
java.awt.Font m_menuFont;
public ObRun/ObPanel/ObCtrlGui/ObMenubarGui();
public void addChild(ObRun.ObPanel.ObCtrlGui.ObCtrlGui);
public void clearReferences();
public java.awt.Font getMenuFont();
}

Page: 225 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMenuGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObMenuGui.class

Formal parameters:

None

Compiled from ObMenuGui.java


public final synchronized class ObRun/ObPanel/ObCtrlGui/ObMenuGui extends ObRun.ObPanel.ObCtrlGui.ObCtrlGui
{
private java.lang.String m_hintText;
public ObRun/ObPanel/ObCtrlGui/ObMenuGui();
public void addChild(ObRun.ObPanel.ObCtrlGui.ObCtrlGui);
public void clearReferences();
public ObRun.ObPanel.ObCtrlGui.ObMenubarGui getMenuBar();
public void mouseMoved(java.awt.event.MouseEvent);
public void setDefaultFont();
public void setDisabled(java.lang.String);
public void setFlyOverHint(java.lang.String);
public void setHintText(java.lang.String);
public void setKeyCode(java.lang.String);
public void setText(java.lang.String);
public void setVisible(java.lang.String);
}

Page: 226 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMenuitemGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObMenuitemGui.class

Formal parameters:

None

Compiled from ObMenuitemGui.java


public final synchronized class ObRun/ObPanel/ObCtrlGui/ObMenuitemGui extends
ObRun.ObPanel.ObCtrlGui.ObCtrlGui implements java.awt.event.ActionListener
{
private java.lang.String m_hintText;
private static javax.swing.ImageIcon m_iconChecked;
private static javax.swing.ImageIcon m_iconUnchecked;
static static {};
public ObRun/ObPanel/ObCtrlGui/ObMenuitemGui();
public void actionPerformed(java.awt.event.ActionEvent);
public void clearReferences();
public javax.swing.ImageIcon getCheckedIcon();
public javax.swing.ImageIcon getUncheckedIcon();
public void mouseMoved(java.awt.event.MouseEvent);
public void setChecked(java.lang.String);
public void setDefaultFont();
public void setDisabled(java.lang.String);
public void setFlyOverHint(java.lang.String);
public void setHintText(java.lang.String);
public void setKeyCode(java.lang.String);
public void setText(java.lang.String);
public void setVisible(java.lang.String);
}

Page: 227 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMultilineEditGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui.class

Formal parameters:

java.awt.Font m_menuFont;

Compiled from ObMultilineEditGui.java


public final synchronized class ObRun/ObPanel/ObCtrlGui/ObMultilineEditGui extends
ObRun.ObPanel.ObCtrlGui.ObCtrlGui
{
private boolean m_hiliteOnFocus;
private java.awt.Color m_backgroundColor;
private java.lang.String m_editMask;
private int m_maxLength;
private int m_maxFractions;
private java.awt.Color m_positiveColor;
private java.awt.Color m_negativeColor;
private java.lang.String m_lastString;
private javax.swing.JTextArea m_edit;
private boolean m_trapEnter;
private boolean m_fieldDefined;
protected javax.swing.event.UndoableEditListener undoHandler;
public javax.swing.undo.UndoManager manager;
java.awt.Font m_menuFont;
public ObRun/ObPanel/ObCtrlGui/ObMultilineEditGui();
static javax.swing.JTextArea access$0(ObRun/ObPanel/ObCtrlGui/ObMultilineEditGui);
public void clearReferences();
public void focusGained(java.awt.event.FocusEvent);
public void focusLost(java.awt.event.FocusEvent);
public javax.swing.JTextArea getEditControl();
public java.lang.String getValue();
public void keyPressed(java.awt.event.KeyEvent);
public void keyTyped(java.awt.event.KeyEvent);
public void mouseClicked(java.awt.event.MouseEvent);
public void mouseReleased(java.awt.event.MouseEvent);
public void pasteFromClipboard();
public void registerEvent(int);

Page: 228 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setBackgroundColor(java.lang.String);


public void setBorder(java.lang.String);
public void setControlName(java.lang.String);
public void setDisabled(java.lang.String);
public void setEditMask(java.lang.String);
public void setFixBottom(java.lang.String);
public void setFixLeft(java.lang.String);
public void setFixRight(java.lang.String);
public void setFixTop(java.lang.String);
public void setFont(java.lang.String);
public void setHiliteOnFocus(java.lang.String);
public void setInitialValue();
public void setLeftContextMenu(java.lang.String);
public void setMode(java.lang.String);
public void setPosition(java.lang.String);
public void setRightContextMenu(java.lang.String);
public void setScrollBars(java.lang.String);
public void setScrolling(java.lang.String);
public void setSize(java.lang.String);
public void setTabSequence(java.lang.String);
public void setTabStop(java.lang.String);
public void setText(java.lang.String);
public void setTextColor(java.lang.String);
public void setTrapEnter(java.lang.String);
protected void setValidationMembers(int, int, java.lang.String, java.awt.Color, java.awt.Color);
public void setValue(java.lang.String);
public void setVisible(java.lang.String);

synchronized class ObRun/ObPanel/ObCtrlGui/ObMultilineEditGui. UndoHandler extends java.lang.Object


implements javax.swing.event.UndoableEditListener
{
private final ObRun/ObPanel/ObCtrlGui/ObMultilineEditGui this$0;
ObRun/ObPanel/ObCtrlGui/ObMultilineEditGui. UndoHandler(ObRun/ObPanel/ObCtrlGui/ObMultilineEditGui);
public void undoableEditHappened(javax.swing.event.UndoableEditEvent);
}

synchronized class ObRun/ObPanel/ObCtrlGui/ObMultilineEditGui. UndoHandler extends java.lang.Object


implements javax.swing.event.UndoableEditListener
{
private final ObRun/ObPanel/ObCtrlGui/ObMultilineEditGui this$0;
ObRun/ObPanel/ObCtrlGui/ObMultilineEditGui. UndoHandler(ObRun/ObPanel/ObCtrlGui/ObMultilineEditGui);

Page: 229 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void undoableEditHappened(javax.swing.event.UndoableEditEvent);


}
}

Page: 230 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMultilineEditGui$1

Full name of class: ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui$1.class

Formal parameters:

None

Compiled from ObMultilineEditGui.java


final synchronized class ObRun/ObPanel/ObCtrlGui/ObMultilineEditGui$1 extends java.lang.Object implements
java.awt.event.ActionListener
{
private final ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui this$0;
ObRun/ObPanel/ObCtrlGui/ObMultilineEditGui$1(ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui);
public void actionPerformed(java.awt.event.ActionEvent);
}

Page: 231 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMultilineEditGui$2

Full name of class: ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui$2.class

Formal parameters:

None

Compiled from ObMultilineEditGui.java


final synchronized class ObRun/ObPanel/ObCtrlGui/ObMultilineEditGui$2 extends java.lang.Object implements
java.awt.event.ActionListener
{
private final ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui this$0;
ObRun/ObPanel/ObCtrlGui/ObMultilineEditGui$2(ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui);
public void actionPerformed(java.awt.event.ActionEvent);
}

Page: 232 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMultilineEditGui$3

Full name of class: ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui$3.class

Formal parameters:

None

Compiled from ObMultilineEditGui.java


final synchronized class ObRun/ObPanel/ObCtrlGui/ObMultilineEditGui$3 extends java.lang.Object implements
java.awt.event.ActionListener
{
private final ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui this$0;
ObRun/ObPanel/ObCtrlGui/ObMultilineEditGui$3(ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui);
public void actionPerformed(java.awt.event.ActionEvent);
}

Page: 233 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMultilineEditGui$4

Full name of class: ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui$4.class

Formal parameters:

None

Compiled from ObMultilineEditGui.java


final synchronized class ObRun/ObPanel/ObCtrlGui/ObMultilineEditGui$4 extends java.lang.Object implements
java.awt.event.ActionListener
{
private final ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui this$0;
ObRun/ObPanel/ObCtrlGui/ObMultilineEditGui$4(ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui);
public void actionPerformed(java.awt.event.ActionEvent);
}

Page: 234 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMultilineEditGui$5

Full name of class: ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui$5.class

Formal parameters:

None

Compiled from ObMultilineEditGui.java


final synchronized class ObRun/ObPanel/ObCtrlGui/ObMultilineEditGui$5 extends java.lang.Object implements
java.awt.event.ActionListener
{
private final ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui this$0;
ObRun/ObPanel/ObCtrlGui/ObMultilineEditGui$5(ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui);
public void actionPerformed(java.awt.event.ActionEvent);
}

Page: 235 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMultilineEditGui$6

Full name of class: ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui$6.class

Formal parameters:

None

Compiled from ObMultilineEditGui.java


final synchronized class ObRun/ObPanel/ObCtrlGui/ObMultilineEditGui$6 extends java.lang.Object implements
java.awt.event.ActionListener
{
private final ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui this$0;
ObRun/ObPanel/ObCtrlGui/ObMultilineEditGui$6(ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui);
public void actionPerformed(java.awt.event.ActionEvent);
}

Page: 236 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMultilineEditGui$7

Full name of class: ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui$7.class

Formal parameters:

None

Compiled from ObMultilineEditGui.java


final synchronized class ObRun/ObPanel/ObCtrlGui/ObMultilineEditGui$7 extends java.lang.Object implements
java.awt.event.ActionListener
{
private final ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui this$0;
ObRun/ObPanel/ObCtrlGui/ObMultilineEditGui$7(ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui);
public void actionPerformed(java.awt.event.ActionEvent);
}

Page: 237 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMultilineEditGui$UndoHandler

Full name of class: ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui$UndoHandler.class

Formal parameters:

None

Compiled from ObMultilineEditGui.java


synchronized class ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui. UndoHandler extends java.lang.Object
implements javax.swing.event.UndoableEditListener
{
private final ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui this$0;
ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui. UndoHandler(ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui);
public void undoableEditHappened(javax.swing.event.UndoableEditEvent);
}

Page: 238 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObPasswordGridEditorDelegate

Full name of class: ObRun.ObPanel.ObCtrlGui.ObPasswordGridEditorDelegate.class

Formal parameters:

None

Compiled from ObGridCellEditor.java


synchronized class ObRun/ObPanel/ObCtrlGui/ObPasswordGridEditorDelegate extends
ObRun.ObPanel.ObCtrlGui.ObBaseGridEditorDelegate
{
protected
ObRun/ObPanel/ObCtrlGui/ObPasswordGridEditorDelegate(ObRun.ObPanel.ObCtrlGui.ObGridCellEditor);
public java.lang.Object getCellEditorValue();
public boolean isCellEditable(java.util.EventObject);
public void setValue(java.lang.Object);
public boolean startCellEditing(java.util.EventObject);
public boolean stopCellEditing();
}

Page: 239 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObPasswordGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObPasswordGui.class

Formal parameters:

None

Compiled from ObPasswordGui.java


public final synchronized class ObRun/ObPanel/ObCtrlGui/ObPasswordGui extends
ObRun.ObPanel.ObCtrlGui.ObCtrlGui
{
private boolean m_hiliteOnFocus;
private java.awt.Color m_backgroundColor;
private java.lang.String m_editMask;
private int m_maxLength;
private int m_maxFractions;
private java.awt.Color m_positiveColor;
private java.awt.Color m_negativeColor;
private java.lang.String m_lastString;
private byte m_case;
private boolean m_fieldDefined;
public ObRun/ObPanel/ObCtrlGui/ObPasswordGui();
public void clearReferences();
public void focusGained(java.awt.event.FocusEvent);
public void focusLost(java.awt.event.FocusEvent);
public java.lang.String getValue();
public void keyPressed(java.awt.event.KeyEvent);
public void keyTyped(java.awt.event.KeyEvent);
public void mouseClicked(java.awt.event.MouseEvent);
public void pasteFromClipboard();
public void setBackgroundColor(java.lang.String);
public void setBorder(java.lang.String);
public void setCase(java.lang.String);
public void setColumnHeading(java.lang.String);
public void setControlName(java.lang.String);
public void setDisabled(java.lang.String);
public void setEditMask(java.lang.String);
protected void setFieldDetails(boolean, java.lang.String);

Page: 240 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setFixBottom(java.lang.String);


public void setFixLeft(java.lang.String);
public void setFixRight(java.lang.String);
public void setFixTop(java.lang.String);
public void setFont(java.lang.String);
public void setHiliteOnFocus(java.lang.String);
public void setInitialValue();
public void setLeftContextMenu(java.lang.String);
public void setMode(java.lang.String);
public void setPosition(java.lang.String);
public void setRightContextMenu(java.lang.String);
public void setSize(java.lang.String);
public void setTabSequence(java.lang.String);
public void setTabStop(java.lang.String);
public void setText(java.lang.String);
public void setTextAlignment(java.lang.String);
public void setTextColor(java.lang.String);
protected void setValidationMembers(int, int, java.lang.String, java.awt.Color, java.awt.Color);
public void setValue(java.lang.String);
public void setVisible(java.lang.String);
}

Page: 241 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObPictureGridEditorDelegate

Full name of class: ObRun.ObPanel.ObCtrlGui.ObPictureGridEditorDelegate.class

Formal parameters:

None

Compiled from ObGridCellEditor.java


synchronized class ObRun/ObPanel/ObCtrlGui/ObPictureGridEditorDelegate extends
ObRun.ObPanel.ObCtrlGui.ObBaseGridEditorDelegate
{
protected ObRun/ObPanel/ObCtrlGui/ObPictureGridEditorDelegate(ObRun.ObPanel.ObCtrlGui.ObGridCellEditor);
public java.lang.Object getCellEditorValue();
public void setValue(java.lang.Object);
public boolean startCellEditing(java.util.EventObject);
public boolean stopCellEditing();
}

Page: 242 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObPictureGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObPictureGui.class

Formal parameters:

None

Compiled from ObPictureGui.java


public final synchronized class ObRun/ObPanel/ObCtrlGui/ObPictureGui extends
ObRun.ObPanel.ObCtrlGui.ObCtrlGui
{
private boolean m_autoSize;
private boolean m_allowFileOpen;
private static java.lang.String m_lastDirectory;
static static {};
public ObRun/ObPanel/ObCtrlGui/ObPictureGui();
public java.lang.String getValue();
public void keyReleased(java.awt.event.KeyEvent);
public void setAutoSize(java.lang.String);
public void setBackgroundColor(java.lang.String);
public void setBitmapFile(java.lang.String);
public void setBorder(java.lang.String);
public void setColumnHeading(java.lang.String);
public void setControlName(java.lang.String);
public void setDisabled(java.lang.String);
public void setFixBottom(java.lang.String);
public void setFixLeft(java.lang.String);
public void setFixRight(java.lang.String);
public void setFixTop(java.lang.String);
public void setFont(java.lang.String);
public void setGridValue(java.lang.String);
public void setLeftContextMenu(java.lang.String);
public void setMode(java.lang.String);
public void setPosition(java.lang.String);
public void setRightContextMenu(java.lang.String);
public void setSize(java.lang.String);
public void setSizeWithInts(int, int);
public void setTabSequence(java.lang.String);

Page: 243 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setTabStop(java.lang.String);


public void setText(java.lang.String);
public void setValue(java.lang.String);
public void setVisible(java.lang.String);
}

Page: 244 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObPushbuttonGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObPushbuttonGui.class

Formal parameters:

None

Compiled from ObPushbuttonGui.java


public final synchronized class ObRun/ObPanel/ObCtrlGui/ObPushbuttonGui extends
ObRun.ObPanel.ObCtrlGui.ObCtrlGui implements java.awt.event.ActionListener
{
private java.lang.String m_textLines[];
protected int m_accelerator;
public ObRun/ObPanel/ObCtrlGui/ObPushbuttonGui();
public void actionPerformed(java.awt.event.ActionEvent);
public void clearReferences();
public java.lang.String getTextLines()[];
public void setBackgroundColor(java.lang.String);
public void setBitmapFile(java.lang.String);
public void setControlName(java.lang.String);
public void setDefaultButton(java.lang.String);
public void setDisabled(java.lang.String);
public void setFixBottom(java.lang.String);
public void setFixLeft(java.lang.String);
public void setFixRight(java.lang.String);
public void setFixTop(java.lang.String);
public void setFlyOverHint(java.lang.String);
public void setFont(java.lang.String);
public void setLeftContextMenu(java.lang.String);
public void setNoButton(java.lang.String);
public void setNoFocus(java.lang.String);
public void setNoPictureAlignment(java.lang.String);
public void setPosition(java.lang.String);
public void setRelativeAlignment(java.lang.String);
public void setRightContextMenu(java.lang.String);
public void setSize(java.lang.String);
public void setTabSequence(java.lang.String);
public void setTabStop(java.lang.String);

Page: 245 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setText(java.lang.String);


public void setTextColor(java.lang.String);
public void setTransparent(java.lang.String);
public void setVisible(java.lang.String);
}

Page: 246 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObRadiobuttonGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObRadiobuttonGui.class

Formal parameters:

None

Compiled from ObRadiobuttonGui.java


public final synchronized class ObRun/ObPanel/ObCtrlGui/ObRadiobuttonGui extends
ObRun.ObPanel.ObCtrlGui.ObCtrlGui
{
private java.lang.Object m_checkedValue;
protected javax.swing.ButtonGroup m_buttonGroup;
public ObRun/ObPanel/ObCtrlGui/ObRadiobuttonGui();
public void addItems(java.lang.Object[]);
public void clearReferences();
public javax.swing.ButtonGroup getButtonGroup();
public java.lang.String getValue();
public boolean isFirstRadioButton();
public void setBackgroundColor(java.lang.String);
public void setButtonGroup(javax.swing.ButtonGroup);
public void setControlName(java.lang.String);
public void setDisabled(java.lang.String);
public void setFixBottom(java.lang.String);
public void setFixLeft(java.lang.String);
public void setFixRight(java.lang.String);
public void setFixTop(java.lang.String);
public void setFont(java.lang.String);
public void setInitialValue();
public void setLeftContextMenu(java.lang.String);
public void setMode(java.lang.String);
public void setPosition(java.lang.String);
public void setRightContextMenu(java.lang.String);
public void setSize(java.lang.String);
public void setTabSequence(java.lang.String);
public void setTabStop(java.lang.String);
public void setText(java.lang.String);
public void setTextColor(java.lang.String);

Page: 247 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setValue(java.lang.String);


public void setVisible(java.lang.String);
}

Page: 248 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObSeparatorGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObSeparatorGui.class

Formal parameters:

None

Compiled from ObSeparatorGui.java


public final synchronized class ObRun/ObPanel/ObCtrlGui/ObSeparatorGui extends
ObRun.ObPanel.ObCtrlGui.ObCtrlGui
{
public ObRun/ObPanel/ObCtrlGui/ObSeparatorGui();
}

Page: 249 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObSpinGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObSpinGui.class

Formal parameters:

None

Compiled from ObSpinGui.java


public final synchronized class ObRun/ObPanel/ObCtrlGui/ObSpinGui extends ObRun.ObPanel.ObCtrlGui.ObCtrlGui
{
private boolean m_hiliteOnFocus;
private java.awt.Color m_backgroundColor;
private java.lang.String m_editMask;
private int m_maxLength;
private int m_maxFractions;
private java.awt.Color m_positiveColor;
private java.awt.Color m_negativeColor;
private java.lang.Object m_maximumValue;
private java.lang.Object m_minimumValue;
private java.lang.Double m_incrementValue;
private javax.swing.JTextField m_edit;
private javax.swing.JPanel m_buttons;
private javax.swing.JButton m_up;
private javax.swing.JButton m_down;
private java.lang.String m_lastString;
private byte m_case;
private static javax.swing.ImageIcon m_iconUpArrow;
private static javax.swing.ImageIcon m_iconDownArrow;
private boolean m_fieldDefined;
private boolean m_temporary;
static static {};
public ObRun/ObPanel/ObCtrlGui/ObSpinGui();
public void adjustDate(ObRun.ObRTTypes.ObDateFld, boolean);
public void adjustTime(ObRun.ObRTTypes.ObTimeFld, boolean);
public void adjustTimeStamp(ObRun.ObRTTypes.ObTimeStampFld, boolean);
public void clearReferences();
public void decreaseValue();
public void focusGained(java.awt.event.FocusEvent);

Page: 250 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void focusLost(java.awt.event.FocusEvent);


public javax.swing.JTextField getEditControl();
public java.lang.String getValue();
public void increaseValue();
public boolean isOverMaximum(boolean);
public boolean isUnderMinimum(boolean);
public void keyPressed(java.awt.event.KeyEvent);
public void keyTyped(java.awt.event.KeyEvent);
public void mouseClicked(java.awt.event.MouseEvent);
public void pasteFromClipboard();
public void registerEvent(int);
public void setBackgroundColor(java.lang.String);
public void setBorder(java.lang.String);
public void setCase(java.lang.String);
public void setColumnHeading(java.lang.String);
public void setControlName(java.lang.String);
public void setDisabled(java.lang.String);
public void setEditMask(java.lang.String);
protected void setFieldDetails(boolean, java.lang.String);
public void setFixBottom(java.lang.String);
public void setFixLeft(java.lang.String);
public void setFixRight(java.lang.String);
public void setFixTop(java.lang.String);
public void setFont(java.lang.String);
public void setHiliteOnFocus(java.lang.String);
public void setInitialValue();
public void setLeftContextMenu(java.lang.String);
public void setMaximumValue(java.lang.String);
public void setMinimumValue(java.lang.String);
public void setMode(java.lang.String);
public void setPosition(java.lang.String);
public void setRightContextMenu(java.lang.String);
public void setSize(java.lang.String);
public void setSpinIncrement(java.lang.String);
public void setTabSequence(java.lang.String);
public void setTabStop(java.lang.String);
public void setText(java.lang.String);
public void setTextAlignment(java.lang.String);
public void setTextColor(java.lang.String);
protected void setValidationMembers(int, int, java.lang.String, java.awt.Color, java.awt.Color);
public void setValue(java.lang.String);

Page: 251 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setVisible(java.lang.String);


protected void validateDateEntry(java.lang.String, java.lang.String, java.awt.event.KeyEvent, int, int,
java.lang.String);
protected void validateTimeEntry(java.lang.String, java.lang.String, java.awt.event.KeyEvent, int, int,
java.lang.String);
protected void validateTimeStampEntry(java.lang.String, java.lang.String, java.awt.event.KeyEvent, int,
int, java.lang.String);
}

Page: 252 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObStaticGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObStaticGui.class

Formal parameters:

None

Compiled from ObStaticGui.java


public final synchronized class ObRun/ObPanel/ObCtrlGui/ObStaticGui extends
ObRun.ObPanel.ObCtrlGui.ObCtrlGui
{
public static final byte TEXT;
public static final byte GROUP;
public static final byte FRAME;
public static final byte PICTURE;
public static final byte HORZLINE;
public static final byte VERTLINE;
private byte m_staticType;
private int m_sizeWidth;
private int m_sizeHeight;
private java.lang.String m_textLines[];
public ObRun/ObPanel/ObCtrlGui/ObStaticGui();
static java.lang.String access$0(ObRun/ObPanel/ObCtrlGui/ObStaticGui)[];
public void clearReferences();
public java.lang.String getValue();
public void setBackgroundColor(java.lang.String);
public void setBitmapFile(java.lang.String);
public void setBorder(java.lang.String);
public void setControlName(java.lang.String);
public void setFixBottom(java.lang.String);
public void setFixLeft(java.lang.String);
public void setFixRight(java.lang.String);
public void setFixTop(java.lang.String);
public void setFont(java.lang.String);
public void setLabelFor(java.lang.String);
public void setLeftContextMenu(java.lang.String);
public void setPosition(java.lang.String);
public void setRightContextMenu(java.lang.String);

Page: 253 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setSize(java.lang.String);


public void setStaticType(java.lang.String);
public void setText(java.lang.String);
public void setTextAlignment(java.lang.String);
public void setTextColor(java.lang.String);
public void setTransparent(java.lang.String);
public void setValue(java.lang.String);
public void setVisible(java.lang.String);

synchronized class ObRun/ObPanel/ObCtrlGui/ObStaticGui. ObStatic extends javax.swing.JLabel


{
private final ObRun/ObPanel/ObCtrlGui/ObStaticGui this$0;
ObRun/ObPanel/ObCtrlGui/ObStaticGui. ObStatic(ObRun/ObPanel/ObCtrlGui/ObStaticGui);
public void paintComponent(java.awt.Graphics);
}

synchronized class ObRun/ObPanel/ObCtrlGui/ObStaticGui. ObStatic extends javax.swing.JLabel


{
private final ObRun/ObPanel/ObCtrlGui/ObStaticGui this$0;
ObRun/ObPanel/ObCtrlGui/ObStaticGui. ObStatic(ObRun/ObPanel/ObCtrlGui/ObStaticGui);
public void paintComponent(java.awt.Graphics);
}
}

Page: 254 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObStaticGui$ObStatic

Formal parameters:

None

Full name of class: ObRun.ObPanel.ObCtrlGui.ObStaticGui$ObStatic.class

Compiled from ObStaticGui.java


synchronized class ObRun.ObPanel.ObCtrlGui.ObStaticGui. ObStatic extends javax.swing.JLabel
{
private final ObRun.ObPanel.ObCtrlGui.ObStaticGui this$0;
ObRun.ObPanel.ObCtrlGui.ObStaticGui. ObStatic(ObRun.ObPanel.ObCtrlGui.ObStaticGui);
public void paintComponent(java.awt.Graphics);
}

Page: 255 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObStatusbarGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObStatusbarGui.class

Formal parameters:

None

Compiled from ObStatusbarGui.java


public final synchronized class ObRun/ObPanel/ObCtrlGui/ObStatusbarGui extends
ObRun.ObPanel.ObCtrlGui.ObCtrlGui
{
public ObRun/ObPanel/ObCtrlGui/ObStatusbarGui();
}

Page: 256 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObTabSequence

Full name of class: ObRun.ObPanel.ObCtrlGui.ObTabSequence.class

Formal parameters:

None

Compiled from ObTabSequence.java


public final synchronized class ObRun/ObPanel/ObCtrlGui/ObTabSequence extends java.lang.Object
{
public int m_guiId;
public int m_tabSequence;
public ObRun/ObPanel/ObCtrlGui/ObTabSequence(int,int);
public int getTabSequence();
}

Page: 257 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObToolbarbuttonGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObToolbarbuttonGui.class

Formal parameters:

None

Compiled from ObToolbarbuttonGui.java


public final synchronized class ObRun/ObPanel/ObCtrlGui/ObToolbarbuttonGui extends
ObRun.ObPanel.ObCtrlGui.ObCtrlGui implements java.awt.event.ActionListener
{
private java.lang.String m_hintText;
private java.lang.Integer m_menuItem;
public ObRun/ObPanel/ObCtrlGui/ObToolbarbuttonGui();
public void actionPerformed(java.awt.event.ActionEvent);
public void addChild(ObRun.ObPanel.ObCtrlGui.ObCtrlGui);
public void clearReferences();
public void mouseClicked(java.awt.event.MouseEvent);
public void mouseMoved(java.awt.event.MouseEvent);
public void setBitmapFile(java.lang.String);
public void setDisabled(java.lang.String);
public void setFlyOverHint(java.lang.String);
public void setHintText(java.lang.String);
public void setMenuItem(java.lang.String);
public void setVisible(java.lang.String);
}

Page: 258 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObToolbarGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObToolbarGui.class

Formal parameters:

None

Compiled from ObToolbarGui.java


public final synchronized class ObRun/ObPanel/ObCtrlGui/ObToolbarGui extends
ObRun.ObPanel.ObCtrlGui.ObCtrlGui
{
public ObRun/ObPanel/ObCtrlGui/ObToolbarGui();
public void addChild(ObRun.ObPanel.ObCtrlGui.ObCtrlGui);
public void reBuild();
}

Page: 259 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObTopAppGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObTopAppGui.class

Formal parameters:

None

Compiled from ObTopAppGui.java


public final synchronized class ObRun/ObPanel/ObCtrlGui/ObTopAppGui extends
ObRun.ObPanel.ObCtrlGui.ObWindowGui
{
protected boolean m_internalFrame;
protected ObRun.ObPanel.ObCtrlGui.ObWindowGui m_lastFocusWindow;
public ObRun/ObPanel/ObCtrlGui/ObTopAppGui();
public void clearReferences();
public void closeWindow();
public java.awt.Container getContentPane();
public java.awt.Component getFrame();
public java.awt.Component getGlassPane();
public ObRun.ObPanel.ObCtrlGui.ObWindowGui getLastFocusWindow();
public java.lang.String getTitle();
public boolean hasInternalFrame();
public boolean isEnabled();
public boolean isResizable();
public boolean isVisible();
public void layout();
public void setBackgroundColor(java.lang.String);
public void setBackgroundImage(java.lang.String);
public void setEnabled(boolean);
public void setIconFile(java.lang.String);
public void setInternalFrame(boolean);
public void setLastFocusWindow(ObRun.ObPanel.ObCtrlGui.ObWindowGui);
public void setLayoutManager(java.awt.LayoutManager);
public void setLeftContextMenu(java.lang.String);
public void setPosition(java.lang.String);
public void setResizable(java.lang.String);
public void setResize(boolean);
public void setRightContextMenu(java.lang.String);

Page: 260 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setSize(java.lang.String);


public void setTitle(java.lang.String);
public void setVisible(boolean);
public void show();
}

Page: 261 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObWindowGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObWindowGui.class

Formal parameters:

None

Compiled from ObWindowGui.java


public abstract synchronized class ObRun/ObPanel/ObCtrlGui/ObWindowGui extends
ObRun.ObPanel.ObCtrlGui.ObCtrlGui
{
protected java.awt.LayoutManager m_layoutMgr;
protected ObRun.ObPanel.ObCtrlGui.ObMenubarGui m_menuBar;
protected javax.swing.JLabel m_statusbar;
protected javax.swing.JPanel m_toolbar;
protected ObRun.ObPanel.ObCtrlGui.ObBackgroundPanel m_panelDesign;
protected boolean m_complete;
protected javax.swing.ButtonGroup m_buttonGroup;
public java.util.Vector m_allTabs;
protected boolean m_inApplet;
protected javax.swing.JApplet m_applet;
protected ObRun.ObPanel.ObCtrlGui.ObPushbuttonGui m_defaultButton;
private boolean m_firstTab;
protected java.awt.Image m_backImage;
protected boolean m_disabled;
public ObRun/ObPanel/ObCtrlGui/ObWindowGui();
public void addChild(ObRun.ObPanel.ObCtrlGui.ObCtrlGui);
public void addToButtonGroup(ObRun.ObPanel.ObCtrlGui.ObCtrlGui);
public void clearReferences();
public void closeWindow();
public void componentResized(java.awt.event.ComponentEvent);
public javax.swing.ButtonGroup getButtonGroup();
public java.awt.Rectangle getChildConstraints(ObRun.ObPanel.ObCtrlGui.ObCtrlGui);
public abstract java.awt.Container getContentPane();
public ObRun.ObPanel.ObCtrlGui.ObPushbuttonGui getDefaultButton();
public abstract java.awt.Component getGlassPane();
public ObRun/ObPanel/ObCtrlGui/ObWindowGui getLastFocusWindow();
public ObRun.ObPanel.ObCtrlGui.ObMenubarGui getMenubar();

Page: 262 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObRun.ObPanel.ObCtrlGui.ObTabSequence getNextTabSequence(ObRun.ObPanel.ObCtrlGui.ObTabSequence);


public ObRun.ObPanel.ObCtrlGui.ObTabSequence
getPreviousTabSequence(ObRun.ObPanel.ObCtrlGui.ObTabSequence);
public boolean getShouldShowMouseOver();
public javax.swing.JLabel getStatusbar();
public boolean hasInternalFrame();
public boolean isComplete();
public boolean isRendererDisabled();
public void layout();
public void layoutWindow();
public void setBackgroundColor(java.lang.String);
public void setBackgroundImage();
public void setBackgroundImage(java.lang.String);
public void setBusyCursor();
public void setButtonGroup(javax.swing.ButtonGroup);
public void setChildPosition(ObRun.ObPanel.ObCtrlGui.ObCtrlGui, int, int);
public void setChildSize(ObRun.ObPanel.ObCtrlGui.ObCtrlGui, int, int);
public void setData(ObRun.ObPanel.ObCtrlData.ObCtrlData);
public void setDefaultButton(ObRun.ObPanel.ObCtrlGui.ObPushbuttonGui);
public void setFocusOnFirst();
public void setInternalFrame(boolean);
public void setLastFocusWindow(ObRun/ObPanel/ObCtrlGui/ObWindowGui);
public void setNotBusyCursor();
public void setRendererDisabled(boolean);
public void setStatusbar(java.lang.String);
public void setTitle(java.lang.String);
public void show();
public void sortTabSequence();
public void windowClosing(java.awt.event.WindowEvent);
}

Page: 263 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObLaunch

Full name of class: ObRun.ObPanel.ObLaunch.class

Formal parameters:

java.lang.String m_function;
java.lang.String m_properties;
ObRun.ObFunction.ObClientApp client;

Compiled from ObLaunch.java


public synchronized class ObRun/ObPanel/ObLaunch extends javax.swing.JApplet
{
private java.lang.String m_function;
private java.lang.String m_properties;
private ObRun.ObFunction.ObPanel m_panel;
private ObRun.ObFunction.ObClientApp m_client;
private volatile ObRun/ObPanel/ObLaunch. ObApplet applet;
public int m_count;
public ObRun/ObPanel/ObLaunch();
public static synchronized java.lang.String callFunction(java.lang.String, java.lang.String,
java.lang.String[], java.lang.String)[];
public void init();
public static void main(java.lang.String[]);
public void setApp(ObRun.ObFunction.ObClientApp);
public void setPanel(ObRun.ObFunction.ObPanel);
public void start();
public void stop();

synchronized class ObRun/ObPanel/ObLaunch. ObApplet extends java.lang.Thread


{
private final ObRun/ObPanel/ObLaunch this$0;
public ObRun/ObPanel/ObLaunch m_launch;
java.lang.String m_function;
java.lang.String m_properties;
ObRun.ObFunction.ObClientApp client;
public ObRun/ObPanel/ObLaunch.
ObApplet(ObRun/ObPanel/ObLaunch,java.lang.String,java.lang.String,ObRun/ObPanel/ObLaunch);
public void run();

Page: 264 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

synchronized class ObRun/ObPanel/ObLaunch. ObApplet extends java.lang.Thread


{
private final ObRun/ObPanel/ObLaunch this$0;
public ObRun/ObPanel/ObLaunch m_launch;
java.lang.String m_function;
java.lang.String m_properties;
ObRun.ObFunction.ObClientApp client;
public ObRun/ObPanel/ObLaunch.
ObApplet(ObRun/ObPanel/ObLaunch,java.lang.String,java.lang.String,ObRun/ObPanel/ObLaunch);
public void run();
}
}

Page: 265 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObLaunch$ObApplet

Full name of class: ObRun.ObPanel.ObLaunch$ObApplet.class

Formal parameters:

java.lang.String m_function;
java.lang.String m_properties;
ObRun.ObFunction.ObClientApp client;

Compiled from ObLaunch.java


synchronized class ObRun.ObPanel.ObLaunch. ObApplet extends java.lang.Thread
{
private final ObRun.ObPanel.ObLaunch this$0;
public ObRun.ObPanel.ObLaunch m_launch;
java.lang.String m_function;
java.lang.String m_properties;
ObRun.ObFunction.ObClientApp client;
public ObRun.ObPanel.ObLaunch.
ObApplet(ObRun.ObPanel.ObLaunch,java.lang.String,java.lang.String,ObRun.ObPanel.ObLaunch);
public void run();
}

Page: 266 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObPanelUtils

ObPanelResource

Full name of class: ObRun.ObPanel.ObPanelUtils.ObPanelResource.class

Formal parameters:

None

Compiled from ObPanelResource.java


public final synchronized class ObRun/ObPanel/ObPanelUtils/ObPanelResource extends
java.util.PropertyResourceBundle
{
public ObRun/ObPanel/ObPanelUtils/ObPanelResource();
public ObRun/ObPanel/ObPanelUtils/ObPanelResource(java.io.InputStream);
public ObRun/ObPanel/ObPanelUtils/ObPanelResource(java.lang.String);
public ObRun/ObPanel/ObPanelUtils/ObPanelResource(java.net.URL);
public java.lang.String getProperty(java.lang.String);
public static ObRun/ObPanel/ObPanelUtils/ObPanelResource getResourceFromName(java.lang.String);
}

Page: 267 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObXYLayoutManager

Formal parameters:

None

Full name of class: ObRun.ObPanel.ObPanelUtils.ObXYLayoutManager.class

Compiled from ObXYLayoutManager.java


public final synchronized class ObRun/ObPanel/ObPanelUtils/ObXYLayoutManager extends java.lang.Object
implements java.awt.LayoutManager
{
private java.util.Vector m_components;
private java.util.Vector m_constraints;
public ObRun/ObPanel/ObPanelUtils/ObXYLayoutManager();
public void addLayoutComponent(java.lang.String, java.awt.Component);
public java.awt.Rectangle getConstraints(java.awt.Component);
public void layoutContainer(java.awt.Container);
public java.awt.Dimension minimumLayoutSize(java.awt.Container);
public java.awt.Dimension preferredLayoutSize(java.awt.Container);
public void removeLayoutComponent(java.awt.Component);
public void setPositionConstraint(java.awt.Component, int, int);
public void setSizeConstraint(java.awt.Component, int, int);
}

Page: 268 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

XYConstraint

Full name of class: ObRun.ObPanel.ObPanelUtils.XYConstraint.class


Formal parameters:

None

Compiled from ObXYLayoutManager.java


synchronized class ObRun/ObPanel/ObPanelUtils/XYConstraint extends java.lang.Object
{
public int m_x;
public int m_y;
public int m_w;
public int m_h;
public ObRun/ObPanel/ObPanelUtils/XYConstraint(int,int,int,int);
}

Page: 269 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObVersionInfo

Full name of class: ObRun.ObPanel.ObVersionInfo.class

The Javap command does not reveal any facts about this class.

Page: 270 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObRTTypes

ObByteFld

Full name of class: ObRun.ObRTTypes.ObByteFld.class


Formal parameters:

None

Compiled from ObByteFld.java


public final synchronized class ObRun/ObRTTypes/ObByteFld extends ObRun.ObRTTypes.ObField
{
private static int m_DEFAULTTYPE;
private static int m_ALTERNATESQLTYPES[];
static static {};
public ObRun/ObRTTypes/ObByteFld();
public ObRun/ObRTTypes/ObByteFld(byte);
public ObRun/ObRTTypes/ObByteFld(byte,byte);
public ObRun/ObRTTypes/ObByteFld(byte,int,int,char,java.lang.String);
public
ObRun/ObRTTypes/ObByteFld(byte,int,int,char,java.lang.String,int,java.lang.String,java.lang.String,java.lan
g.String,java.lang.String,int);
public ObRun/ObRTTypes/ObByteFld(int);
public ObRun/ObRTTypes/ObByteFld(int,int);
public ObRun/ObRTTypes/ObByteFld(java.lang.Byte);
public ObRun/ObRTTypes/ObByteFld(java.lang.Byte,byte);
public ObRun/ObRTTypes/ObByteFld(java.lang.String);
public ObRun/ObRTTypes/ObByteFld(java.lang.String,byte);
public ObRun.ObRTTypes.ObField add(ObRun.ObRTTypes.ObField);
public void assign(ObRun.ObRTTypes.ObField);
protected void bindAsEmpty(java.sql.PreparedStatement, int);
public void bindStatement(java.sql.PreparedStatement, int, int);
public void castFrom(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField divide(ObRun.ObRTTypes.ObField);
public void fromResultSet(java.sql.ResultSet, int);
public void fromString(java.lang.String);
public byte getAS400ContentDefault()[];

Page: 271 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public int getAlternateSQLTypes()[];


public int getDefaultType();
public byte getValue();
public boolean isAS400StateDefault(java.lang.String, int);
public boolean isEmpty();
public boolean isEqual(ObRun.ObRTTypes.ObField);
public boolean isGreaterThan(ObRun.ObRTTypes.ObField);
public boolean isGreaterThanOrEqual(ObRun.ObRTTypes.ObField);
public boolean isLessThan(ObRun.ObRTTypes.ObField);
public boolean isLessThanOrEqual(ObRun.ObRTTypes.ObField);
public boolean isNotEqual(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField modulus(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField multiply(ObRun.ObRTTypes.ObField);
public void set(ObRun.ObRTTypes.ObField);
public void setEmpty();
protected void setReadState();
public ObRun.ObRTTypes.ObField subtract(ObRun.ObRTTypes.ObField);
public java.lang.String toString();
}

Page: 272 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCharFld

Full name of class: ObRun.ObRTTypes.ObCharFld.class

Formal parameters:

None

Compiled from ObCharFld.java


public final synchronized class ObRun/ObRTTypes/ObCharFld extends ObRun.ObRTTypes.ObField
{
private static int m_DEFAULTTYPE;
private static int m_ALTERNATESQLTYPES[];
static static {};
public ObRun/ObRTTypes/ObCharFld();
public ObRun/ObRTTypes/ObCharFld(byte);
public ObRun/ObRTTypes/ObCharFld(byte,int);
public ObRun/ObRTTypes/ObCharFld(byte,int,char,java.lang.String);
public
ObRun/ObRTTypes/ObCharFld(byte,int,char,java.lang.String,int,java.lang.String,java.lang.String,java.lang.St
ring,java.lang.String,int);
public ObRun/ObRTTypes/ObCharFld(int);
public ObRun/ObRTTypes/ObCharFld(java.lang.String);
public ObRun/ObRTTypes/ObCharFld(java.lang.String,byte);
public ObRun/ObRTTypes/ObCharFld(java.lang.String,byte,int);
public ObRun/ObRTTypes/ObCharFld(java.lang.String,int);
public ObRun/ObRTTypes/ObCharFld(java.lang.String,int,int);
public ObRun.ObRTTypes.ObField add(ObRun.ObRTTypes.ObField);
public void assign(ObRun.ObRTTypes.ObField);
protected void bindAsEmpty(java.sql.PreparedStatement, int);
public void bindStatement(java.sql.PreparedStatement, int, int);
public void castFrom(ObRun.ObRTTypes.ObField);
public boolean contains(ObRun.ObRTTypes.ObField);
public void fromResultSet(java.sql.ResultSet, int);
public void fromString(java.lang.String);
public byte getAS400ContentDefault()[];
public int getAlternateSQLTypes()[];
public int getDefaultType();
public java.lang.String getValue();

Page: 273 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public boolean isAS400StateDefault(java.lang.String, int);


public boolean isEmpty();
public boolean isEqual(ObRun.ObRTTypes.ObField);
public boolean isGreaterThan(ObRun.ObRTTypes.ObField);
public boolean isGreaterThanOrEqual(ObRun.ObRTTypes.ObField);
public boolean isLessThan(ObRun.ObRTTypes.ObField);
public boolean isLessThanOrEqual(ObRun.ObRTTypes.ObField);
public boolean isNotEqual(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField modulus(ObRun.ObRTTypes.ObField);
public void set(ObRun.ObRTTypes.ObField);
public void setEmpty();
protected void setReadState();
public boolean startsWith(ObRun.ObRTTypes.ObField);
public java.lang.String toString();
public void trim();
}

Page: 274 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObDateFld

Full name of class: ObRun.ObRTTypes.ObDateFld.class

Formal parameters:

None

Compiled from ObDateFld.java


public final synchronized class ObRun/ObRTTypes/ObDateFld extends ObRun.ObRTTypes.ObField
{
private static int m_DEFAULTTYPE;
private static int m_ALTERNATESQLTYPES[];
static static {};
public ObRun/ObRTTypes/ObDateFld();
public ObRun/ObRTTypes/ObDateFld(byte);
public ObRun/ObRTTypes/ObDateFld(byte,int,int,char,java.lang.String);
public
ObRun/ObRTTypes/ObDateFld(byte,int,int,char,java.lang.String,int,java.lang.String,java.lang.String,java.lan
g.String,java.lang.String,int);
public ObRun/ObRTTypes/ObDateFld(java.lang.String);
public ObRun/ObRTTypes/ObDateFld(java.lang.String,byte);
public ObRun/ObRTTypes/ObDateFld(java.lang.String,int);
public ObRun/ObRTTypes/ObDateFld(java.util.Date);
public ObRun/ObRTTypes/ObDateFld(java.util.Date,byte);
public ObRun.ObRTTypes.ObField add(ObRun.ObRTTypes.ObField);
public void assign(ObRun.ObRTTypes.ObField);
protected void bindAsEmpty(java.sql.PreparedStatement, int);
public void bindStatement(java.sql.PreparedStatement, int, int);
public void castFrom(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField divide(ObRun.ObRTTypes.ObField);
public void fromResultSet(java.sql.ResultSet, int);
public void fromString(java.lang.String);
public void fromStringWithoutSeparators(java.lang.String);
public byte getAS400ContentDefault()[];
public int getAlternateSQLTypes()[];
public int getDefaultType();
public java.util.Date getValue();
public boolean isAS400StateDefault(java.lang.String, int);

Page: 275 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public boolean isEmpty();


public boolean isEqual(ObRun.ObRTTypes.ObField);
public boolean isGreaterThan(ObRun.ObRTTypes.ObField);
public boolean isGreaterThanOrEqual(ObRun.ObRTTypes.ObField);
public boolean isLessThan(ObRun.ObRTTypes.ObField);
public boolean isLessThanOrEqual(ObRun.ObRTTypes.ObField);
public boolean isNotEqual(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField modulus(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField multiply(ObRun.ObRTTypes.ObField);
public void set(ObRun.ObRTTypes.ObField);
public void setEmpty();
protected void setReadState();
public ObRun.ObRTTypes.ObField subtract(ObRun.ObRTTypes.ObField);
public ObRun/ObRTTypes/ObDateFld toObDateFld();
public java.lang.String toString();
public java.lang.String toStringWithoutSeparators();
}

Page: 276 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObDblFld

Full name of class: ObRun.ObRTTypes.ObDblFld.class

Formal parameters:

None

Compiled from ObDblFld.java


public final synchronized class ObRun/ObRTTypes/ObDblFld extends ObRun.ObRTTypes.ObField
{
private static int m_DEFAULTTYPE;
private static int m_ALTERNATESQLTYPES[];
static static {};
public ObRun/ObRTTypes/ObDblFld();
public ObRun/ObRTTypes/ObDblFld(byte);
public ObRun/ObRTTypes/ObDblFld(byte,int,int,char,java.lang.String);
public
ObRun/ObRTTypes/ObDblFld(byte,int,int,char,java.lang.String,int,java.lang.String,java.lang.String,java.lang
.String,java.lang.String,int);
public ObRun/ObRTTypes/ObDblFld(double);
public ObRun/ObRTTypes/ObDblFld(double,byte);
public ObRun/ObRTTypes/ObDblFld(double,int);
public ObRun/ObRTTypes/ObDblFld(java.lang.Double);
public ObRun/ObRTTypes/ObDblFld(java.lang.Double,byte);
public ObRun/ObRTTypes/ObDblFld(java.lang.String);
public ObRun/ObRTTypes/ObDblFld(java.lang.String,byte);
public ObRun.ObRTTypes.ObField add(ObRun.ObRTTypes.ObField);
public void assign(ObRun.ObRTTypes.ObField);
protected void bindAsEmpty(java.sql.PreparedStatement, int);
public void bindStatement(java.sql.PreparedStatement, int, int);
public void castFrom(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField divide(ObRun.ObRTTypes.ObField);
public void fromResultSet(java.sql.ResultSet, int);
public void fromString(java.lang.String);
public byte getAS400ContentDefault()[];
public int getAlternateSQLTypes()[];
public int getDefaultType();
public double getValue();

Page: 277 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public boolean isAS400StateDefault(java.lang.String, int);


public boolean isEmpty();
public boolean isEqual(ObRun.ObRTTypes.ObField);
public boolean isGreaterThan(ObRun.ObRTTypes.ObField);
public boolean isGreaterThanOrEqual(ObRun.ObRTTypes.ObField);
public boolean isLessThan(ObRun.ObRTTypes.ObField);
public boolean isLessThanOrEqual(ObRun.ObRTTypes.ObField);
public boolean isNotEqual(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField modulus(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField multiply(ObRun.ObRTTypes.ObField);
public void set(ObRun.ObRTTypes.ObField);
public void setEmpty();
protected void setReadState();
public ObRun.ObRTTypes.ObField subtract(ObRun.ObRTTypes.ObField);
public java.lang.String toString();
}

Page: 278 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObField

Full name of class: ObRun.ObRTTypes.ObField.class

Formal parameters:

None

Compiled from ObField.java


public abstract synchronized class ObRun/ObRTTypes/ObField extends java.lang.Object implements
java.io.Serializable , java.lang.Cloneable
{
public static final int BIT;
public static final int TINYINT;
public static final int SMALLINT;
public static final int INTEGER;
public static final int BIGINT;
public static final int FLOAT;
public static final int REAL;
public static final int DOUBLE;
public static final int NUMERIC;
public static final int DECIMAL;
public static final int CHAR;
public static final int VARCHAR;
public static final int LONGVARCHAR;
public static final int DATE;
public static final int TIME;
public static final int TIMESTAMP;
public static final int BINARY;
public static final int VARBINARY;
public static final int LONGVARBINARY;
public static final int JDBC_ODBC_DATE;
public static final int JDBC_ODBC_TIME;
public static final int JDBC_ODBC_TIMESTAMP;
protected java.lang.Object m_data;
protected ObRun.ObRTTypes.ObSpecialVal m_specialVal;
private ObRun.ObFunction.ObVariable m_owner;
public static final byte LOCAL;
public static final byte INPUT;

Page: 279 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public static final byte DUAL;


public static final byte OUTPUT;
public static final byte ENVIRONMENT;
public static final byte VIEW_KEY;
public static final byte VIEW_COL;
public static final byte UNDEFINED;
public static final byte CALLS;
public static final byte SYSTEM;
public static final byte VIEW_DERIVED;
public static final byte PANEL;
protected byte m_fldUsage;
public static final int NORMAL;
public static final int NULL;
public static final int LOVAL;
public static final int EMPTY;
public static final int HIVAL;
protected int m_fldState;
protected int m_cLength;
public static final int BYTECLENGTH;
public static final int INTEGERCLENGTH;
public static final int LONGCLENGTH;
public static final int SINGLECLENGTH;
public static final int DOUBLECLENGTH;
public static final int LDOUBLECLENGTH;
public static final int TIMECLENGTH;
public static final int DATECLENGTH;
public static final int TIMESTAMPCLENGTH;
public java.lang.String m_implName;
protected int m_designLength;
protected int m_designDecimals;
protected char m_AS400DataType;
public static final char AS400CHAR;
public static final char AS400PACKED;
public static final char AS400ZONED;
public static final char AS400BINARY;
public static final char AS400HEX;
public static final char AS400STRUCT;
public static final char AS400TIME;
public static final char AS400DATE;
public static final char AS400TIMESTAMP;
public ObRun/ObRTTypes/ObField();

Page: 280 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObRun/ObRTTypes/ObField add(ObRun/ObRTTypes/ObField);


public abstract void assign(ObRun/ObRTTypes/ObField);
protected abstract void bindAsEmpty(java.sql.PreparedStatement, int);
private void bindHiVal(java.sql.PreparedStatement, int, int);
private void bindLoVal(java.sql.PreparedStatement, int, int);
public void bindStatement(java.sql.PreparedStatement, int);
public void bindStatement(java.sql.PreparedStatement, int, int);
public void bindStatement(java.sql.PreparedStatement, int, boolean);
protected void bindWithState(java.sql.PreparedStatement, int, int);
public abstract void castFrom(ObRun/ObRTTypes/ObField);
public void clearReferences();
public java.lang.Object clone();
public void convertState();
public void convertStateToContent();
public ObRun/ObRTTypes/ObField divide(ObRun/ObRTTypes/ObField);
public void formatMessage(java.lang.String);
public void formatMessage(java.lang.String, java.lang.Object[]);
public abstract void fromResultSet(java.sql.ResultSet, int);
public abstract void fromString(java.lang.String);
public void fromStringWithoutSeparators(java.lang.String);
public byte getAS400Content()[];
public abstract byte getAS400ContentDefault()[];
public byte getAS400ContentNumberDefault(int, int)[];
public char getAS400DataType();
public java.lang.String getAS400State(java.lang.String);
public abstract int getAlternateSQLTypes()[];
public int getCLength();
protected java.lang.Long getCastLong(ObRun/ObRTTypes/ObField);
public java.lang.String getColumnName();
public java.lang.String getCorrelatedName();
public java.lang.Object getData();
public abstract int getDefaultType();
public int getDesignDecimals();
public int getDesignLength();
public int getState();
public boolean hasSpecialValues();
public boolean hasState();
public abstract boolean isAS400StateDefault(java.lang.String, int);
public boolean isDerived();
public abstract boolean isEmpty();
public abstract boolean isEqual(ObRun/ObRTTypes/ObField);

Page: 281 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public abstract boolean isGreaterThan(ObRun/ObRTTypes/ObField);


public abstract boolean isGreaterThanOrEqual(ObRun/ObRTTypes/ObField);
public boolean isHiVal();
public boolean isKey();
public abstract boolean isLessThan(ObRun/ObRTTypes/ObField);
public abstract boolean isLessThanOrEqual(ObRun/ObRTTypes/ObField);
public boolean isLoVal();
public abstract boolean isNotEqual(ObRun/ObRTTypes/ObField);
public boolean isNull();
public abstract ObRun/ObRTTypes/ObField modulus(ObRun/ObRTTypes/ObField);
public ObRun/ObRTTypes/ObField multiply(ObRun/ObRTTypes/ObField);
private void readObject(java.io.ObjectInputStream);
public void round(ObRun/ObRTTypes/ObField);
public abstract void set(ObRun/ObRTTypes/ObField);
public void setAttr();
public abstract void setEmpty();
public void setHiVal();
public void setKey();
public void setLoVal();
public void setNull();
public void setOwner(ObRun.ObFunction.ObVariable);
protected abstract void setReadState();
public void setState(int);
public void substring(ObRun/ObRTTypes/ObField, ObRun/ObRTTypes/ObField, ObRun/ObRTTypes/ObField);
public ObRun/ObRTTypes/ObField subtract(ObRun/ObRTTypes/ObField);
public ObRun.ObRTTypes.ObByteFld toObByteFld();
public ObRun.ObRTTypes.ObCharFld toObCharFld();
public ObRun.ObRTTypes.ObDateFld toObDateFld();
public ObRun.ObRTTypes.ObDblFld toObDblFld();
public ObRun.ObRTTypes.ObFixedDecFld toObFixedDecFld();
public ObRun.ObRTTypes.ObIntFld toObIntFld();
public ObRun.ObRTTypes.ObLongDblFld toObLongDblFld();
public ObRun.ObRTTypes.ObLongFld toObLongFld();
public ObRun.ObRTTypes.ObSglFld toObSglFld();
public ObRun.ObRTTypes.ObTimeFld toObTimeFld();
public ObRun.ObRTTypes.ObTimeStampFld toObTimeStampFld();
public abstract java.lang.String toString();
public java.lang.String toStringWithoutSeparators();
private void writeObject(java.io.ObjectOutputStream);
}

Page: 282 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObFieldSQLTypes

Full name of class: ObRun.ObRTTypes.ObFieldSQLTypes.class

Formal parameters:

None

Compiled from ObFieldSQLTypes.java


public final synchronized class ObRun/ObRTTypes/ObFieldSQLTypes extends java.lang.Object
{
public ObRun/ObRTTypes/ObFieldSQLTypes();
public static synchronized int getAlternates(ObRun.ObRTTypes.ObField)[];
public static synchronized int getDefault(ObRun.ObRTTypes.ObField);
}

Page: 283 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObFixedDecFld

Full name of class: ObRun.ObRTTypes.ObFixedDecFld.class

Formal parameters:

None

Compiled from ObFixedDecFld.java


public final synchronized class ObRun/ObRTTypes/ObFixedDecFld extends ObRun.ObRTTypes.ObField
{
private static int m_DEFAULTTYPE;
private static int m_ALTERNATESQLTYPES[];
static static {};
public ObRun/ObRTTypes/ObFixedDecFld();
public ObRun/ObRTTypes/ObFixedDecFld(byte);
public ObRun/ObRTTypes/ObFixedDecFld(byte,int,int);
public ObRun/ObRTTypes/ObFixedDecFld(byte,int,int,char,java.lang.String);
public
ObRun/ObRTTypes/ObFixedDecFld(byte,int,int,char,java.lang.String,int,java.lang.String,java.lang.String,java
.lang.String,java.lang.String,int);
public ObRun/ObRTTypes/ObFixedDecFld(byte,java.lang.String);
public ObRun/ObRTTypes/ObFixedDecFld(java.lang.String);
public ObRun/ObRTTypes/ObFixedDecFld(java.lang.String,int);
public ObRun/ObRTTypes/ObFixedDecFld(java.lang.String,int,int);
public ObRun/ObRTTypes/ObFixedDecFld(java.lang.String,int,int,java.lang.String);
public ObRun/ObRTTypes/ObFixedDecFld(java.math.BigDecimal);
public ObRun/ObRTTypes/ObFixedDecFld(java.math.BigDecimal,int,int);
public ObRun.ObRTTypes.ObField add(ObRun.ObRTTypes.ObField);
public void assign(ObRun.ObRTTypes.ObField);
protected void bindAsEmpty(java.sql.PreparedStatement, int);
public void bindStatement(java.sql.PreparedStatement, int, int);
public void castFrom(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField divide(ObRun.ObRTTypes.ObField);
public void fromResultSet(java.sql.ResultSet, int);
public void fromString(java.lang.String);
public byte getAS400ContentDefault()[];
public int getAlternateSQLTypes()[];
public java.lang.Object getData();

Page: 284 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public int getDefaultType();


public java.math.BigDecimal getValue();
public boolean isAS400StateDefault(java.lang.String, int);
public boolean isEmpty();
public boolean isEqual(ObRun.ObRTTypes.ObField);
public boolean isGreaterThan(ObRun.ObRTTypes.ObField);
public boolean isGreaterThanOrEqual(ObRun.ObRTTypes.ObField);
public boolean isLessThan(ObRun.ObRTTypes.ObField);
public boolean isLessThanOrEqual(ObRun.ObRTTypes.ObField);
public boolean isNotEqual(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField modulus(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField multiply(ObRun.ObRTTypes.ObField);
public void round(ObRun.ObRTTypes.ObField);
public void set(ObRun.ObRTTypes.ObField);
public void setEmpty();
protected void setReadState();
public ObRun.ObRTTypes.ObField subtract(ObRun.ObRTTypes.ObField);
public java.lang.String toString();
}

Page: 285 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObIntFld

Full name of class: ObRun.ObRTTypes.ObIntFld.class

Formal parameters:

None

Compiled from ObIntFld.java


public final synchronized class ObRun/ObRTTypes/ObIntFld extends ObRun.ObRTTypes.ObField
{
private static int m_DEFAULTTYPE;
private static int m_ALTERNATESQLTYPES[];
static static {};
public ObRun/ObRTTypes/ObIntFld();
public ObRun/ObRTTypes/ObIntFld(byte);
public ObRun/ObRTTypes/ObIntFld(byte,int,int,char,java.lang.String);
public
ObRun/ObRTTypes/ObIntFld(byte,int,int,char,java.lang.String,int,java.lang.String,java.lang.String,java.lang
.String,java.lang.String,int);
public ObRun/ObRTTypes/ObIntFld(int);
public ObRun/ObRTTypes/ObIntFld(int,byte);
public ObRun/ObRTTypes/ObIntFld(int,int);
public ObRun/ObRTTypes/ObIntFld(java.lang.Integer);
public ObRun/ObRTTypes/ObIntFld(java.lang.Integer,byte);
public ObRun/ObRTTypes/ObIntFld(java.lang.String);
public ObRun/ObRTTypes/ObIntFld(java.lang.String,byte);
public ObRun.ObRTTypes.ObField add(ObRun.ObRTTypes.ObField);
public void assign(ObRun.ObRTTypes.ObField);
protected void bindAsEmpty(java.sql.PreparedStatement, int);
public void bindStatement(java.sql.PreparedStatement, int, int);
public void castFrom(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField divide(ObRun.ObRTTypes.ObField);
public void fromResultSet(java.sql.ResultSet, int);
public void fromString(java.lang.String);
public byte getAS400ContentDefault()[];
public int getAlternateSQLTypes()[];
public int getDefaultType();
public int getValue();

Page: 286 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public boolean isAS400StateDefault(java.lang.String, int);


public boolean isEmpty();
public boolean isEqual(ObRun.ObRTTypes.ObField);
public boolean isGreaterThan(ObRun.ObRTTypes.ObField);
public boolean isGreaterThanOrEqual(ObRun.ObRTTypes.ObField);
public boolean isLessThan(ObRun.ObRTTypes.ObField);
public boolean isLessThanOrEqual(ObRun.ObRTTypes.ObField);
public boolean isNotEqual(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField modulus(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField multiply(ObRun.ObRTTypes.ObField);
public void set(ObRun.ObRTTypes.ObField);
public void setEmpty();
protected void setReadState();
public ObRun.ObRTTypes.ObField subtract(ObRun.ObRTTypes.ObField);
public java.lang.String toString();
}

Page: 287 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObLongDblFld

Full name of class: ObRun.ObRTTypes.ObLongDblFld.class

Formal parameters:

None

Compiled from ObLongDblFld.java


public final synchronized class ObRun/ObRTTypes/ObLongDblFld extends ObRun.ObRTTypes.ObField
{
private static int m_DEFAULTTYPE;
private static int m_ALTERNATESQLTYPES[];
static static {};
public ObRun/ObRTTypes/ObLongDblFld();
public ObRun/ObRTTypes/ObLongDblFld(byte);
public ObRun/ObRTTypes/ObLongDblFld(byte,int,int,char,java.lang.String);
public
ObRun/ObRTTypes/ObLongDblFld(byte,int,int,char,java.lang.String,int,java.lang.String,java.lang.String,java.
lang.String,java.lang.String,int);
public ObRun/ObRTTypes/ObLongDblFld(double);
public ObRun/ObRTTypes/ObLongDblFld(double,byte);
public ObRun/ObRTTypes/ObLongDblFld(double,int);
public ObRun/ObRTTypes/ObLongDblFld(java.lang.Double);
public ObRun/ObRTTypes/ObLongDblFld(java.lang.Double,byte);
public ObRun/ObRTTypes/ObLongDblFld(java.lang.String);
public ObRun/ObRTTypes/ObLongDblFld(java.lang.String,byte);
public ObRun.ObRTTypes.ObField add(ObRun.ObRTTypes.ObField);
public void assign(ObRun.ObRTTypes.ObField);
protected void bindAsEmpty(java.sql.PreparedStatement, int);
public void bindStatement(java.sql.PreparedStatement, int, int);
public void castFrom(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField divide(ObRun.ObRTTypes.ObField);
public void fromResultSet(java.sql.ResultSet, int);
public void fromString(java.lang.String);
public byte getAS400ContentDefault()[];
public int getAlternateSQLTypes()[];
public int getDefaultType();
public double getValue();

Page: 288 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public boolean isAS400StateDefault(java.lang.String, int);


public boolean isEmpty();
public boolean isEqual(ObRun.ObRTTypes.ObField);
public boolean isGreaterThan(ObRun.ObRTTypes.ObField);
public boolean isGreaterThanOrEqual(ObRun.ObRTTypes.ObField);
public boolean isLessThan(ObRun.ObRTTypes.ObField);
public boolean isLessThanOrEqual(ObRun.ObRTTypes.ObField);
public boolean isNotEqual(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField modulus(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField multiply(ObRun.ObRTTypes.ObField);
public void set(ObRun.ObRTTypes.ObField);
public void setEmpty();
protected void setReadState();
public ObRun.ObRTTypes.ObField subtract(ObRun.ObRTTypes.ObField);
public java.lang.String toString();
}

Page: 289 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObLongFld

Full name of class: ObRun.ObRTTypes.ObLongFld.class

Formal parameters:

None

Compiled from ObLongFld.java


public final synchronized class ObRun/ObRTTypes/ObLongFld extends ObRun.ObRTTypes.ObField
{
private static int m_DEFAULTTYPE;
private static int m_ALTERNATESQLTYPES[];
static static {};
public ObRun/ObRTTypes/ObLongFld();
public ObRun/ObRTTypes/ObLongFld(byte);
public ObRun/ObRTTypes/ObLongFld(byte,int,int,char,java.lang.String);
public
ObRun/ObRTTypes/ObLongFld(byte,int,int,char,java.lang.String,int,java.lang.String,java.lang.String,java.lan
g.String,java.lang.String,int);
public ObRun/ObRTTypes/ObLongFld(long);
public ObRun/ObRTTypes/ObLongFld(long,byte);
public ObRun/ObRTTypes/ObLongFld(long,int);
public ObRun/ObRTTypes/ObLongFld(java.lang.Long);
public ObRun/ObRTTypes/ObLongFld(java.lang.Long,byte);
public ObRun/ObRTTypes/ObLongFld(java.lang.String);
public ObRun/ObRTTypes/ObLongFld(java.lang.String,byte);
public ObRun.ObRTTypes.ObField add(ObRun.ObRTTypes.ObField);
public void assign(ObRun.ObRTTypes.ObField);
protected void bindAsEmpty(java.sql.PreparedStatement, int);
public void bindStatement(java.sql.PreparedStatement, int, int);
public void castFrom(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField divide(ObRun.ObRTTypes.ObField);
public void fromResultSet(java.sql.ResultSet, int);
public void fromString(java.lang.String);
public byte getAS400ContentDefault()[];
public int getAlternateSQLTypes()[];
public int getDefaultType();
public long getValue();

Page: 290 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public boolean isAS400StateDefault(java.lang.String, int);


public boolean isEmpty();
public boolean isEqual(ObRun.ObRTTypes.ObField);
public boolean isGreaterThan(ObRun.ObRTTypes.ObField);
public boolean isGreaterThanOrEqual(ObRun.ObRTTypes.ObField);
public boolean isLessThan(ObRun.ObRTTypes.ObField);
public boolean isLessThanOrEqual(ObRun.ObRTTypes.ObField);
public boolean isNotEqual(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField modulus(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField multiply(ObRun.ObRTTypes.ObField);
public void set(ObRun.ObRTTypes.ObField);
public void setEmpty();
protected void setReadState();
public ObRun.ObRTTypes.ObField subtract(ObRun.ObRTTypes.ObField);
public java.lang.String toString();
}

Page: 291 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObPanelUtils

ObXYLayoutManager

Full name of class: ObRun.ObRTTypes.ObPanelUtils.ObXYLayoutManager.class

The Javap command does not reveal any facts about this class.

Page: 292 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

XYConstraint

Full name of class: ObRun.ObRTTypes.ObPanelUtils.XYConstraint.class


The Javap command does not reveal any facts about this class.

Page: 293 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObSglFld

Full name of class: ObRun.ObRTTypes.ObSglFld.class

Formal parameters:

None

Compiled from ObSglFld.java


public final synchronized class ObRun/ObRTTypes/ObSglFld extends ObRun.ObRTTypes.ObField
{
private static int m_DEFAULTTYPE;
private static int m_ALTERNATESQLTYPES[];
static static {};
public ObRun/ObRTTypes/ObSglFld();
public ObRun/ObRTTypes/ObSglFld(byte);
public ObRun/ObRTTypes/ObSglFld(byte,int,int,char,java.lang.String);
public
ObRun/ObRTTypes/ObSglFld(byte,int,int,char,java.lang.String,int,java.lang.String,java.lang.String,java.lang
.String,java.lang.String,int);
public ObRun/ObRTTypes/ObSglFld(double);
public ObRun/ObRTTypes/ObSglFld(double,int);
public ObRun/ObRTTypes/ObSglFld(float);
public ObRun/ObRTTypes/ObSglFld(float,byte);
public ObRun/ObRTTypes/ObSglFld(float,int);
public ObRun/ObRTTypes/ObSglFld(java.lang.Float);
public ObRun/ObRTTypes/ObSglFld(java.lang.Float,byte);
public ObRun/ObRTTypes/ObSglFld(java.lang.String);
public ObRun/ObRTTypes/ObSglFld(java.lang.String,byte);
public ObRun.ObRTTypes.ObField add(ObRun.ObRTTypes.ObField);
public void assign(ObRun.ObRTTypes.ObField);
protected void bindAsEmpty(java.sql.PreparedStatement, int);
public void bindStatement(java.sql.PreparedStatement, int, int);
public void castFrom(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField divide(ObRun.ObRTTypes.ObField);
public void fromResultSet(java.sql.ResultSet, int);
public void fromString(java.lang.String);
public byte getAS400ContentDefault()[];
public int getAlternateSQLTypes()[];

Page: 294 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public int getDefaultType();


public float getValue();
public boolean isAS400StateDefault(java.lang.String, int);
public boolean isEmpty();
public boolean isEqual(ObRun.ObRTTypes.ObField);
public boolean isGreaterThan(ObRun.ObRTTypes.ObField);
public boolean isGreaterThanOrEqual(ObRun.ObRTTypes.ObField);
public boolean isLessThan(ObRun.ObRTTypes.ObField);
public boolean isLessThanOrEqual(ObRun.ObRTTypes.ObField);
public boolean isNotEqual(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField modulus(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField multiply(ObRun.ObRTTypes.ObField);
public void set(ObRun.ObRTTypes.ObField);
public void setEmpty();
protected void setReadState();
public ObRun.ObRTTypes.ObField subtract(ObRun.ObRTTypes.ObField);
public java.lang.String toString();
}

Page: 295 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObSpecialVal

Full name of class: ObRun.ObRTTypes.ObSpecialVal.class

Formal parameters:

None

Compiled from ObSpecialVal.java


public final synchronized class ObRun/ObRTTypes/ObSpecialVal extends java.lang.Object implements
java.io.Serializable
{
private java.lang.Object m_emptyVal;
private java.lang.Object m_nullVal;
private java.lang.Object m_hiVal;
private java.lang.Object m_loVal;
protected short m_lpMask;
protected short m_existMask;
public
ObRun/ObRTTypes/ObSpecialVal(short,short,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Objec
t,ObRun.ObRTTypes.ObField);
private java.lang.String createNumericString(int, int, boolean);
public java.lang.Object getCharOverride(int, ObRun.ObRTTypes.ObField);
public java.lang.Object getData(int);
public ObRun.ObRTTypes.ObDateFld getDateOverride(int);
public ObRun.ObRTTypes.ObTimeFld getTimeOverride(int);
public ObRun.ObRTTypes.ObTimeStampFld getTimeStampOverride(int);
public boolean hasStateLP(int);
private void readObject(java.io.ObjectInputStream);
private void setDefaults(ObRun.ObRTTypes.ObField);
private java.lang.String setString(ObRun.ObRTTypes.ObField);
public boolean stateExists(int);
private void writeObject(java.io.ObjectOutputStream);
}

Page: 296 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObStructuredFld

Full name of class: ObRun.ObRTTypes.ObStructuredFld.class

Formal parameters:

None

Compiled from ObStructuredFld.java


public abstract synchronized class ObRun/ObRTTypes/ObStructuredFld extends java.lang.Object implements
java.io.Serializable
{
public ObRun/ObRTTypes/ObStructuredFld();
public void clearReferences();
public java.lang.Object getArrayObj(java.lang.reflect.Field)[];
public int getFieldCount();
public int getObFields(ObRun.ObRTTypes.ObField[], int);
public java.lang.Object getObj(java.lang.reflect.Field);
private void readObject(java.io.ObjectInputStream);
public void setEmpty();
private void writeObject(java.io.ObjectOutputStream);
}

Page: 297 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObTimeFld

Full name of class: ObRun.ObRTTypes.ObTimeFld.class

Formal parameters:

None

Compiled from ObTimeFld.java


public final synchronized class ObRun/ObRTTypes/ObTimeFld extends ObRun.ObRTTypes.ObField
{
private static int m_DEFAULTTYPE;
private static int m_ALTERNATESQLTYPES[];
static static {};
public ObRun/ObRTTypes/ObTimeFld();
public ObRun/ObRTTypes/ObTimeFld(byte);
public ObRun/ObRTTypes/ObTimeFld(byte,int,int,char,java.lang.String);
public
ObRun/ObRTTypes/ObTimeFld(byte,int,int,char,java.lang.String,int,java.lang.String,java.lang.String,java.lan
g.String,java.lang.String,int);
public ObRun/ObRTTypes/ObTimeFld(java.lang.String);
public ObRun/ObRTTypes/ObTimeFld(java.lang.String,byte);
public ObRun/ObRTTypes/ObTimeFld(java.lang.String,int);
public ObRun/ObRTTypes/ObTimeFld(java.util.Date);
public ObRun/ObRTTypes/ObTimeFld(java.util.Date,byte);
public ObRun.ObRTTypes.ObField add(ObRun.ObRTTypes.ObField);
public void assign(ObRun.ObRTTypes.ObField);
protected void bindAsEmpty(java.sql.PreparedStatement, int);
public void bindStatement(java.sql.PreparedStatement, int, int);
public void castFrom(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField divide(ObRun.ObRTTypes.ObField);
public void fromResultSet(java.sql.ResultSet, int);
public void fromString(java.lang.String);
public void fromStringWithoutSeparators(java.lang.String);
public byte getAS400ContentDefault()[];
public int getAlternateSQLTypes()[];
public int getDefaultType();
public java.util.Date getValue();
public boolean isAS400StateDefault(java.lang.String, int);

Page: 298 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public boolean isEmpty();


public boolean isEqual(ObRun.ObRTTypes.ObField);
public boolean isGreaterThan(ObRun.ObRTTypes.ObField);
public boolean isGreaterThanOrEqual(ObRun.ObRTTypes.ObField);
public boolean isLessThan(ObRun.ObRTTypes.ObField);
public boolean isLessThanOrEqual(ObRun.ObRTTypes.ObField);
public boolean isNotEqual(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField modulus(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField multiply(ObRun.ObRTTypes.ObField);
public void set(ObRun.ObRTTypes.ObField);
public void setEmpty();
protected void setReadState();
public ObRun.ObRTTypes.ObField subtract(ObRun.ObRTTypes.ObField);
public ObRun/ObRTTypes/ObTimeFld toObTimeFld();
public java.lang.String toString();
public java.lang.String toStringWithoutSeparators();
}

Page: 299 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObTimeStampFld

Full name of class: ObRun.ObRTTypes.ObTimeStampFld.class

Formal parameters:

None

Compiled from ObTimeStampFld.java


public final synchronized class ObRun/ObRTTypes/ObTimeStampFld extends ObRun.ObRTTypes.ObField
{
private static int m_DEFAULTTYPE;
private static int m_ALTERNATESQLTYPES[];
static static {};
public ObRun/ObRTTypes/ObTimeStampFld();
public ObRun/ObRTTypes/ObTimeStampFld(byte);
public ObRun/ObRTTypes/ObTimeStampFld(byte,int,int,char,java.lang.String);
public
ObRun/ObRTTypes/ObTimeStampFld(byte,int,int,char,java.lang.String,int,java.lang.String,java.lang.String,jav
a.lang.String,java.lang.String,int);
public ObRun/ObRTTypes/ObTimeStampFld(java.lang.String);
public ObRun/ObRTTypes/ObTimeStampFld(java.lang.String,byte);
public ObRun/ObRTTypes/ObTimeStampFld(java.lang.String,int);
public ObRun/ObRTTypes/ObTimeStampFld(java.util.Date);
public ObRun/ObRTTypes/ObTimeStampFld(java.util.Date,byte);
public ObRun.ObRTTypes.ObField add(ObRun.ObRTTypes.ObField);
public void assign(ObRun.ObRTTypes.ObField);
protected void bindAsEmpty(java.sql.PreparedStatement, int);
public void bindStatement(java.sql.PreparedStatement, int, int);
public void castFrom(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField divide(ObRun.ObRTTypes.ObField);
public void fromResultSet(java.sql.ResultSet, int);
public void fromString(java.lang.String);
public void fromStringWithoutSeparators(java.lang.String);
public byte getAS400ContentDefault()[];
public int getAlternateSQLTypes()[];
public java.lang.Object getData();
public int getDefaultType();
public java.util.Date getValue();

Page: 300 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public boolean isAS400StateDefault(java.lang.String, int);


public boolean isEmpty();
public boolean isEqual(ObRun.ObRTTypes.ObField);
public boolean isGreaterThan(ObRun.ObRTTypes.ObField);
public boolean isGreaterThanOrEqual(ObRun.ObRTTypes.ObField);
public boolean isLessThan(ObRun.ObRTTypes.ObField);
public boolean isLessThanOrEqual(ObRun.ObRTTypes.ObField);
public boolean isNotEqual(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField modulus(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField multiply(ObRun.ObRTTypes.ObField);
public void set(ObRun.ObRTTypes.ObField);
public void setEmpty();
protected void setReadState();
public ObRun.ObRTTypes.ObField subtract(ObRun.ObRTTypes.ObField);
public ObRun/ObRTTypes/ObTimeStampFld toObTimeStampFld();
public java.lang.String toString();
public java.lang.String toStringWithoutSeparators();
}
public final synchronized class ObRun/ObRTTypes/ObTimeStampFld extends ObRun.ObRTTypes.ObField
{
private static int m_DEFAULTTYPE;
private static int m_ALTERNATESQLTYPES[];
static static {};
public ObRun/ObRTTypes/ObTimeStampFld();
public ObRun/ObRTTypes/ObTimeStampFld(byte);
public ObRun/ObRTTypes/ObTimeStampFld(byte,int,int,char,java.lang.String);
public
ObRun/ObRTTypes/ObTimeStampFld(byte,int,int,char,java.lang.String,int,java.lang.String,java.lang.String,jav
a.lang.String,java.lang.String,int);
public ObRun/ObRTTypes/ObTimeStampFld(java.lang.String);
public ObRun/ObRTTypes/ObTimeStampFld(java.lang.String,byte);
public ObRun/ObRTTypes/ObTimeStampFld(java.lang.String,int);
public ObRun/ObRTTypes/ObTimeStampFld(java.util.Date);
public ObRun/ObRTTypes/ObTimeStampFld(java.util.Date,byte);
public ObRun.ObRTTypes.ObField add(ObRun.ObRTTypes.ObField);
public void assign(ObRun.ObRTTypes.ObField);
protected void bindAsEmpty(java.sql.PreparedStatement, int);
public void bindStatement(java.sql.PreparedStatement, int, int);
public void castFrom(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField divide(ObRun.ObRTTypes.ObField);
public void fromResultSet(java.sql.ResultSet, int);

Page: 301 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void fromString(java.lang.String);


public void fromStringWithoutSeparators(java.lang.String);
public byte getAS400ContentDefault()[];
public int getAlternateSQLTypes()[];
public java.lang.Object getData();
public int getDefaultType();
public java.util.Date getValue();
public boolean isAS400StateDefault(java.lang.String, int);
public boolean isEmpty();
public boolean isEqual(ObRun.ObRTTypes.ObField);
public boolean isGreaterThan(ObRun.ObRTTypes.ObField);
public boolean isGreaterThanOrEqual(ObRun.ObRTTypes.ObField);
public boolean isLessThan(ObRun.ObRTTypes.ObField);
public boolean isLessThanOrEqual(ObRun.ObRTTypes.ObField);
public boolean isNotEqual(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField modulus(ObRun.ObRTTypes.ObField);
public ObRun.ObRTTypes.ObField multiply(ObRun.ObRTTypes.ObField);
public void set(ObRun.ObRTTypes.ObField);
public void setEmpty();
protected void setReadState();
public ObRun.ObRTTypes.ObField subtract(ObRun.ObRTTypes.ObField);
public ObRun/ObRTTypes/ObTimeStampFld toObTimeStampFld();
public java.lang.String toString();
public java.lang.String toStringWithoutSeparators();
}

Page: 302 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

The COOL:Plex Java Sources

Overview

Dear insomniacs,

This should help

This is the exposable source of the classes in ObRun.jar version 4.0, and is not complete in all cases. Only those sources which are not
hidden from plain view by the owner of COOL:Plex are shown.

Use this section wisely. I plan on driving the Level 1, 2, and 3 support groups batty by e-mailing them all the code defects I can find.

ObBldMgr

ObBuildClient

Full name of class: ObBldMgr.ObBuildClient.class

package ObBldMgr;

import ObRun.ObComms.*;
import java.io.*;
import ObRun.ObEnvironment.ObLog;
import java.net.InetAddress;
import java.net.Socket;
import java.util.Date;
import java.util.Vector;

public synchronized class ObBuildClient extends Thread


{
private static int m_clientId;
private ObBuildManager m_bldManager;

Page: 303 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

private Socket m_socket;


private ThreadGroup m_threadGroup;
private ObBuildSocketStream m_socketStream;
private Date m_startTime;
private int m_transfers;
private int m_compiles;
private int m_tblBuilds;
private ObBuildInfo m_buildInfo;
private ObBuildQueue m_compileQueue;
private ObBuildQueue m_buildQueue;
private ObBuildQueue m_compileRequests;
private ObBuildQueue m_buildRequests;
private ObSourceFile m_sourceFile;
private ObBuildStatus m_buildStatus;
private boolean m_toomanyClients;
private Integer m_maxClients;
private String m_clientVersion;
private String m_clientName;
private ObRetrieveLstFile m_lstFile;

static
{
m_clientId = 0;
}

public ObBuildClient(ObBuildManager obBuildManager, Socket socket, ThreadGroup threadGroup, boolean


flag, Integer integer)
{
super(threadGroup, new StringBuffer("Client #").append(m_clientId = m_clientId + 1).toString());
m_bldManager = obBuildManager;
m_socket = socket;
m_threadGroup = threadGroup;
m_startTime = new Date();
m_compileQueue = new ObBuildQueue();
m_buildQueue = new ObBuildQueue();
m_compileRequests = new ObBuildQueue();
m_buildRequests = new ObBuildQueue();
m_buildStatus = new ObBuildStatus(m_bldManager, m_bldManager.getDataSource(),
m_bldManager.getDataSourceUser(), m_bldManager.getDataSourcePassword());
m_buildStatus.connect();
m_transfers = 0;

Page: 304 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_compiles = 0;
m_tblBuilds = 0;
m_buildInfo = null;
m_toomanyClients = flag;
m_maxClients = integer;
m_lstFile = null;
start();
}

protected synchronized void addBuildRequest(ObBuildRequest obBuildRequest)


{
m_buildRequests.addItem(obBuildRequest);
}

protected void addCompile()


{
m_compiles++;
m_buildInfo = m_socketStream.readCompileInfo();
Boolean boolean = new Boolean(m_buildInfo.m_debug);
if (m_buildInfo.m_fileName.toLowerCase().endsWith("tbl") ||
m_buildInfo.m_fileName.toLowerCase().endsWith("viw"))
{
addJDBC();
return;
}
ObCompileJava obCompileJava = new ObCompileJava(m_bldManager, getFullFileName(),
m_buildInfo.m_sourceDirectory, m_buildInfo.m_designName, m_buildInfo.m_fileName, boolean.booleanValue());
m_compileQueue.addElement(obCompileJava);
}

protected synchronized void addCompileRequest(ObCompileRequest obCompileRequest)


{
m_compileRequests.addItem(obCompileRequest);
}

protected void addJDBC()


{
m_tblBuilds++;
ObBuildJDBC obBuildJDBC = new ObBuildJDBC(m_bldManager, getFullFileName(),
m_buildInfo.m_designName, m_buildInfo.m_fileName, m_buildInfo.m_sqlOptions);
m_buildQueue.addElement(obBuildJDBC);

Page: 305 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

protected void closeClient()


{
try
{
m_socketStream.write(m_buildInfo);
}
catch (Exception e)
{
m_bldManager.log(0, e.getMessage());
}
m_buildStatus.disconnect();
}

protected void createBuildRequest(ObBuildInfo obBuildInfo)


{
ObBuildQueue obBuildQueue = new ObBuildQueue();
m_buildQueue.copy(obBuildQueue);
m_buildQueue.removeAllElements();
ObBuildRequest obBuildRequest = new ObBuildRequest(this, obBuildQueue, obBuildInfo);
addBuildRequest(obBuildRequest);
obBuildRequest.start();
}

protected void createCompileRequest()


{
try
{
m_buildInfo = m_socketStream.readBuildInfo();
ObBuildQueue obBuildQueue = new ObBuildQueue();
m_compileQueue.copy(obBuildQueue);
m_compileQueue.removeAllElements();
ObCompileRequest obCompileRequest = new ObCompileRequest(this, obBuildQueue, m_buildInfo);
addCompileRequest(obCompileRequest);
obCompileRequest.start();
createBuildRequest(m_buildInfo);
}
catch (Exception e)
{
System.out.println(e);

Page: 306 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
}

protected void deleteJobStatus()


{
m_buildInfo = m_socketStream.readDeleteJob();
m_buildStatus.deleteJobStatus(m_buildInfo);
}

protected void deleteSuccessfulJobs()


{
m_buildInfo = m_socketStream.readDeleteJob();
m_buildStatus.deleteSuccessfulJobs(m_buildInfo);
}

protected void endClient()


{
m_buildStatus.disconnect();
m_bldManager.removeClient(this);
m_bldManager.log(4, m_bldManager.getResourceString("EndClient"), getClientAddress());
reportStatistics();
}

protected void endJobStatus()


{
}

protected boolean endTransferSource()


{
char ach[] = new char[8];
try
{
m_socketStream.getInputStream().read(ach, 0, 8);
m_socketStream.getOutputStream().write(ach, 0, 8);
m_socketStream.getOutputStream().flush();
}
catch (Exception e)
{
System.out.println(e);
}
m_sourceFile.closeFile();

Page: 307 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_sourceFile = null;
return true;
}

public ObBuildManager getBuildManager()


{
return m_bldManager;
}

public String getClientAddress()


{
return m_socket.getInetAddress().toString();
}

public String getClientName()


{
return m_clientName;
}

protected String getFullFileName()


{
return new String(System.getProperty("file.separator") + m_buildInfo.m_sourceDirectory +
System.getProperty("file.separator") + m_buildInfo.m_fileName);
}

public synchronized ObBuildRequest getLastBuildRequest(ObBuildRequest obBuildRequest)


{
int i = m_buildRequests.indexOf(obBuildRequest);
if (i == -1 || obBuildRequest == m_buildRequests.lastElement())
return obBuildRequest;
else
return (ObBuildRequest)m_buildRequests.elementAt(i + 1);
}

public synchronized ObCompileRequest getLastCompileRequest(ObCompileRequest obCompileRequest)


{
int i = m_compileRequests.indexOf(obCompileRequest);
if (i == -1 || obCompileRequest == m_compileRequests.lastElement())
return obCompileRequest;
else
return (ObCompileRequest)m_compileRequests.elementAt(i + 1);

Page: 308 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

protected void jobStatus()


{
m_socketStream.readJobStatus();
m_buildStatus.writeStatusToStream(m_socketStream.getOutputStream());
}

protected void openClient()


{
m_buildInfo.m_rmtExcept = null;
try
{
m_socketStream.write(m_buildInfo);
}
catch (Exception e)
{
m_bldManager.log(0, e.getMessage());
}
m_bldManager.log(4, m_bldManager.getResourceString("StartClient"), getClientAddress());
}

protected void raiseError(String string)


{
m_buildInfo.m_rmtExcept = new ObRemoteException(string);
m_bldManager.log(string, 0);
}

public synchronized void removeBuildRequest(ObBuildRequest obBuildRequest)


{
m_buildRequests.removeElement(obBuildRequest);
}

public synchronized void removeCompileRequest(ObCompileRequest obCompileRequest)


{
m_compileRequests.removeElement(obCompileRequest);
}

protected void reportStatistics()


{
String string1 = new String(m_bldManager.getResourceString("TransfersMade"));

Page: 309 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

String string2 = new String(m_bldManager.getResourceString("CompilesRequested"));


String string3 = new String(m_bldManager.getResourceString("DatabaseBuildsRequested"));
String string4 = new String(m_bldManager.getResourceString("ClientStart"));
string1 = new StringBuffer(String.valueOf(string1)).append(new
Integer(m_transfers).toString()).toString();
string2 = new StringBuffer(String.valueOf(string2)).append(new
Integer(m_compiles).toString()).toString();
string3 = new StringBuffer(String.valueOf(string3)).append(new
Integer(m_tblBuilds).toString()).toString();
string4 = new StringBuffer(String.valueOf(string4)).append(m_startTime.toString()).toString();
m_bldManager.log(1, string4);
m_bldManager.log(1, string1);
m_bldManager.log(1, string2);
m_bldManager.log(1, string3);
}

protected boolean retrieveFile()


{
try
{
if (m_lstFile == null)
{
m_lstFile = new ObRetrieveLstFile(m_socketStream.getInputStream(),
m_socketStream.getOutputStream());
if (!m_lstFile.openFile(m_bldManager.getSourceDirectory()))
{
m_lstFile.endWriteToStream();
m_lstFile = null;
return false;
}
}
else
m_lstFile.readFromStream();
m_lstFile.readFromFile();
if (m_lstFile.endWriteToStream())
{
m_lstFile.closeFile();
m_lstFile = null;
}
}
catch (Exception e)

Page: 310 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
System.out.println(e);
}
return true;
}

public void run()


{
Exception e2;
m_socketStream = new ObBuildSocketStream();
m_socketStream.connectListener(m_socket);
if (!validateClient())
{
String string1 = null;
String string2 = m_clientVersion.substring(0, 2).toUpperCase();
if (string2.compareTo("V") == 0)
string1 = new String(m_bldManager.getServerVersion() +
m_bldManager.getResourceString("PlexVersion") + m_clientVersion + ".");
else
string1 = new String(m_bldManager.getResourceString("NotPlexTool"));
m_socketStream.writeErrorMessage(string1);
}
m_buildInfo = (ObBuildInfo)m_socketStream.read();
if (m_buildInfo == null) goto 644 else 167;
m_clientName = m_buildInfo.m_netId;
if (!m_buildInfo.m_operation.equals(ObBuildInfo.OBBUILD_OPEN)) goto 283 else 194;
if (m_toomanyClients) goto 208 else 201;
openClient();
m_buildInfo.m_rmtExcept = null;
try
{
String string3 = m_maxClients + ".";
raiseError(string3);
m_socketStream.writeErrorMessage(string3);
}
catch (Exception e1)
{
m_bldManager.log(0, e1.getMessage());
}
if (!m_buildInfo.m_operation.equals(ObBuildInfo.OBBUILD_CLOSE)) goto 306 else 299;
closeClient();

Page: 311 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (m_buildInfo.m_operation.equals(ObBuildInfo.OBBUILD_TRANSFER_START))
startTransferSource();
else if (m_buildInfo.m_operation.equals(ObBuildInfo.OBBUILD_TRANSFER))
transferSource();
else if (m_buildInfo.m_operation.equals(ObBuildInfo.OBBUILD_TRANSFER_END))
endTransferSource();
else if (m_buildInfo.m_operation.equals(ObBuildInfo.OBBUILD_JAVA_START))
startCompileRequest();
else if (m_buildInfo.m_operation.equals(ObBuildInfo.OBBUILD_JAVA))
addCompile();
else if (m_buildInfo.m_operation.equals(ObBuildInfo.OBBUILD_JAVA_END))
createCompileRequest();
else if (m_buildInfo.m_operation.equals(ObBuildInfo.OBBUILD_JDBC))
addJDBC();
else if (m_buildInfo.m_operation.equals(ObBuildInfo.OBBUILD_STATUS_START))
startJobStatus();
else if (m_buildInfo.m_operation.equals(ObBuildInfo.OBBUILD_STATUS))
jobStatus();
else if (m_buildInfo.m_operation.equals(ObBuildInfo.OBBUILD_STATUS_END))
endJobStatus();
else if (m_buildInfo.m_operation.equals(ObBuildInfo.OBBUILD_STATUS_DELETE))
deleteJobStatus();
else if (m_buildInfo.m_operation.equals(ObBuildInfo.OBBUILD_STATUS_DELETE_ALL))
deleteSuccessfulJobs();
else if (m_buildInfo.m_operation.equals(ObBuildInfo.OBBUILD_RETRIEVE_FILE))
retrieveFile();
else
raiseError(m_bldManager.getResourceString("InvalidOperation"));
pop e2
m_bldManager.log(e2.getMessage(), 0);
pop local2
endClient();
endfinalize local2
}

protected void startBuildRequest()


{
m_buildQueue.removeAllElements();
}

protected void startCompileRequest()

Page: 312 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
m_compileQueue.removeAllElements();
startBuildRequest();
try
{
char ach[] = new char[5];
m_socketStream.getInputStream().read(ach, 0, 5);
m_socketStream.getOutputStream().write(ach, 0, 5);
m_socketStream.getOutputStream().flush();
}
catch (Exception e)
{
System.out.println(e);
}
}

protected void startJobStatus()


{
m_buildInfo = m_socketStream.readStatusInfo();
m_buildStatus.queryJobStatus(m_buildInfo);
}

protected boolean startTransferSource()


{
m_transfers++;
m_buildInfo = m_socketStream.readFileInfo();
String string = getFullFileName();
m_sourceFile = new ObSourceFile(string, m_socketStream.getInputStream(),
m_socketStream.getOutputStream());
return m_sourceFile.openFile();
}

protected boolean transferSource()


{
m_sourceFile.writeFromStream();
return true;
}

protected boolean validateClient()


{
m_clientVersion = m_socketStream.readVersion();

Page: 313 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (m_clientVersion.compareTo(m_bldManager.getServerVersion()) == 0)
return true;
else
return false;
}
}

Page: 314 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObBuildConnection

Full name of class: ObBldMgr.ObBuildConnection.class

package ObBldMgr;

import ObRun.ObComms.ObSocketService;
import ObRun.ObDatabase.ObSQLDataTypes;
import ObRun.ObDatabase.ObSQLTypeConversion;
import ObRun.ObEnvironment.ObLog;
import java.io.PrintStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Hashtable;

public synchronized abstract class ObBuildConnection


{
private static final String m_defaultDataSource = new String("JavaBuild");
private static final String m_defaultUser = new String("sa");
private static final String m_defaultPassword = new String("");
protected String m_databaseDriver;
protected String m_dataSource;
protected String m_dataSourceUser;
protected String m_dataSourcePassword;
protected Connection m_databaseConnection;
protected ObBuildManager m_buildManager;
protected Hashtable m_typeConverter;
protected boolean m_MoneyDatatype;

static
{
}

public ObBuildConnection(ObBuildManager obBuildManager, String string1, String string2, String string3)


{
m_buildManager = obBuildManager;
m_databaseDriver = m_buildManager.getDatabaseDriver();
init(string1, string2, string3);
}

Page: 315 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObBuildConnection(String string1, String string2, String string3)


{
m_buildManager = null;
m_databaseDriver = null;
init(string1, string2, string3);
}

public void clearReferences()


{
disconnect();
}

public boolean connect()


{
if (m_databaseDriver == null)
m_databaseDriver = m_buildManager.getDatabaseDriver();
String string1 = new String(m_dataSource.substring(m_dataSource.lastIndexOf(":") + 1));
try
{
Exception e;
String string2;
Class.forName(m_databaseDriver);
m_databaseConnection = DriverManager.getConnection(m_dataSource, m_dataSourceUser,
m_dataSourcePassword);
convertDataTypes();
return true;
}
catch ()
{
string2 = new String(new StringBuffer(". DataSource = ").append(string1).toString());
}
m_buildManager.log(new StringBuffer(String.valueOf(e.getMessage())).append(string2).toString(), 0);
System.out.println(new StringBuffer(String.valueOf(e.getMessage())).append(string2).toString());
return false;
}

public void convertDataTypes()


{
ObSQLDataTypes obSQLDataTypes = new ObSQLDataTypes(m_databaseConnection);
obSQLDataTypes.convert(m_typeConverter);

Page: 316 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_MoneyDatatype = obSQLDataTypes.isMoneyDatatype();
}

public String convertPrecision(String string)


{
return new String("(5)");
}

public String convertType(String string1)


{
String string2 = getRuntimeType(string1);
try
{
ObSQLTypeConversion obSQLTypeConversion = (ObSQLTypeConversion)m_typeConverter.get(string2);
if (obSQLTypeConversion != null)
{
if (m_MoneyDatatype && string1.compareTo("money") == 0)
return string1;
else
return obSQLTypeConversion.getTypeName();
}
}
catch (Exception e)
{
m_buildManager.log(0, e.getMessage());
}
return new String("char");
}

public boolean disconnect()


{
if (m_databaseConnection == null)
return true;
try
{
Exception e;
m_databaseConnection.close();
m_databaseConnection = null;
return true;
}
catch ()

Page: 317 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
m_buildManager.log(e.getMessage(), 0);
}
return false;
}

public boolean dropPrecision(String string1)


{
String string2 = getRuntimeType(string1);
try
{
ObSQLTypeConversion obSQLTypeConversion = (ObSQLTypeConversion)m_typeConverter.get(string2);
if (obSQLTypeConversion != null)
return obSQLTypeConversion.isFixedPrecision();
}
catch (Exception e)
{
m_buildManager.log(0, e.getMessage());
}
return false;
}

public Connection getConnection()


{
return m_databaseConnection;
}

public String getDataSource()


{
return new String(m_dataSource);
}

public String getDataSourcePassword()


{
return new String(m_dataSourcePassword);
}

public String getDataSourceUser()


{
return new String(m_dataSourceUser);
}

Page: 318 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public String getDatabaseDriver()


{
return new String(m_databaseDriver);
}

public String getRuntimeType(String string)


{
if (string.equalsIgnoreCase("char"))
return new String("ObRun.ObRTTypes.ObCharFld");
if (string.equalsIgnoreCase("varchar"))
return new String("ObRun.ObRTTypes.ObCharFld");
if (string.equalsIgnoreCase("longvarchar"))
return new String("ObRun.ObRTTypes.ObCharFld");
if (string.equalsIgnoreCase("numeric"))
return new String("ObRun.ObRTTypes.ObFixedDecFld");
if (string.equalsIgnoreCase("integer"))
return new String("ObRun.ObRTTypes.ObIntFld");
if (string.equalsIgnoreCase("smallint"))
return new String("ObRun.ObRTTypes.ObIntFld");
if (string.equalsIgnoreCase("float"))
return new String("ObRun.ObRTTypes.ObSglFld");
if (string.equalsIgnoreCase("date"))
return new String("ObRun.ObRTTypes.ObDateFld");
if (string.equalsIgnoreCase("time"))
return new String("ObRun.ObRTTypes.ObTimeFld");
if (string.equalsIgnoreCase("timestamp"))
return new String("ObRun.ObRTTypes.ObTimeStampFld");
if (string.equalsIgnoreCase("money"))
return new String("ObRun.ObRTTypes.ObFixedDecFld");
else
return new String("ObRun.ObRTTypes.ObCharFld");
}

protected void init(String string1, String string2, String string3)


{
if (string1.length() == 0)
m_dataSource = new String(m_defaultDataSource);
else
m_dataSource = new String(string1);
if (string2.length() == 0)

Page: 319 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_dataSourceUser = new String(m_defaultUser);


else
m_dataSourceUser = new String(string2);
if (string3.length() == 0)
m_dataSourcePassword = new String(m_defaultPassword);
else
m_dataSourcePassword = new String(string3);
m_typeConverter = new Hashtable(20);
m_databaseConnection = null;
m_MoneyDatatype = false;
}
}

Page: 320 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObBuildInfo

Full name of class: ObBldMgr.ObBuildInfo.class


package ObBldMgr;

import java.io.*;
import ObRun.ObComms.ObRemoteException;
import ObRun.ObFunction.ObVersionInfo;

public synchronized class ObBuildInfo implements Serializable, Cloneable


{
public static final String OBBUILD_OPEN = "Open".intern();
public static final String OBBUILD_CLOSE = "Clse".intern();
public static final String OBBUILD_TRANSFER_START = "TranStart".intern();
public static final String OBBUILD_TRANSFER = "Tran".intern();
public static final String OBBUILD_TRANSFER_END = "TranEnd".intern();
public static final String OBBUILD_JAVA_START = "JavaStart".intern();
public static final String OBBUILD_JAVA = "Java".intern();
public static final String OBBUILD_JAVA_END = "JavaEnd".intern();
public static final String OBBUILD_JDBC_START = "JDBCStart".intern();
public static final String OBBUILD_JDBC = "JDBC".intern();
public static final String OBBUILD_JDBC_END = "JDBCEnd".intern();
public static final String OBBUILD_STATUS_START = "StatusStart".intern();
public static final String OBBUILD_STATUS = "Status".intern();
public static final String OBBUILD_STATUS_END = "StatusEnd".intern();
public static final String OBBUILD_STATUS_DELETE = "DeleteJob".intern();
public static final String OBBUILD_STATUS_DELETE_ALL = "DeleteAll".intern();
public static final String OBBUILD_RETRIEVE_FILE = "RtvFile".intern();
public String m_fileName;
public String m_designName;
public String m_sourceDirectory;
public String m_operation;
public String m_userId;
public String m_dataLength;
public String m_debug;
public String m_groupModel;
public String m_version;

Page: 321 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public String m_level;


public String m_variant;
public String m_language;
public String m_jobId;
public String m_sqlOptions;
public String m_netId;
public String m_builddbDriver;
public String m_builddbName;
public String m_builddbUserid;
public String m_builddbPassword;
public ObVersionInfo m_verInfo;
public ObRemoteException m_rmtExcept;

static
{
}

public ObBuildInfo()
{
m_operation = new String(OBBUILD_OPEN);
init();
}

public ObBuildInfo(String string)


{
m_operation = new String(string);
init();
}

public Object clone()


{
try
{
ObBuildInfo obBuildInfo = (ObBuildInfo)super.clone();
if (m_fileName != null)
obBuildInfo.m_fileName = new String(m_fileName);
if (m_designName != null)
obBuildInfo.m_designName = new String(m_designName);
if (m_sourceDirectory != null)
obBuildInfo.m_sourceDirectory = new String(m_sourceDirectory);
if (m_operation != null)

Page: 322 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

obBuildInfo.m_operation = new String(m_operation);


if (m_userId != null)
obBuildInfo.m_userId = new String(m_userId);
if (m_dataLength != null)
obBuildInfo.m_dataLength = new String(m_dataLength);
if (m_debug != null)
obBuildInfo.m_debug = new String(m_debug);
if (m_groupModel != null)
obBuildInfo.m_groupModel = new String(m_groupModel);
if (m_version != null)
obBuildInfo.m_version = new String(m_version);
if (m_level != null)
obBuildInfo.m_level = new String(m_level);
if (m_variant != null)
obBuildInfo.m_variant = new String(m_variant);
if (m_language != null)
obBuildInfo.m_language = new String(m_language);
if (m_jobId != null)
obBuildInfo.m_jobId = new String(m_jobId);
if (m_sqlOptions != null)
obBuildInfo.m_sqlOptions = new String(m_sqlOptions);
if (m_netId != null)
obBuildInfo.m_netId = new String(m_netId);
if (m_builddbDriver != null)
obBuildInfo.m_builddbDriver = new String(m_builddbDriver);
if (m_builddbName != null)
obBuildInfo.m_builddbName = new String(m_builddbName);
if (m_builddbUserid != null)
obBuildInfo.m_builddbUserid = new String(m_builddbUserid);
if (m_builddbPassword != null)
obBuildInfo.m_builddbPassword = new String(m_builddbPassword);
return obBuildInfo;
}
catch (CloneNotSupportedException e)
{
System.out.println(e);
}
return null;
}

private void init()

Page: 323 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
m_fileName = null;
m_designName = null;
m_dataLength = null;
m_sourceDirectory = null;
m_debug = null;
m_groupModel = null;
m_version = null;
m_level = null;
m_variant = null;
m_language = null;
m_jobId = null;
m_sqlOptions = new String("");
m_userId = new String("");
m_builddbDriver = new String("");
m_builddbName = new String("");
m_builddbUserid = new String("");
m_builddbPassword = new String("");
m_verInfo = new ObVersionInfo();
m_rmtExcept = null;
}

private void readObject(ObjectInputStream objectInputStream)


throws IOException, ClassNotFoundException
{
objectInputStream.defaultReadObject();
}

private void writeObject(ObjectOutputStream objectOutputStream)


throws IOException
{
objectOutputStream.defaultWriteObject();
}
}

Page: 324 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObBuildJDBC

Full name of class: ObBldMgr.ObBuildJDBC.class

package ObBldMgr;

import java.util.*;
import ObRun.ObComms.ObSocketService;
import ObRun.ObEnvironment.ObLog;
import java.io.PrintStream;
import java.sql.Connection;
import java.sql.Statement;

public synchronized class ObBuildJDBC extends ObCompileSource


{
private ObBuildSchema m_buildSchema;
private String m_sqlOptions;

public ObBuildJDBC(ObBuildManager obBuildManager, String string1, String string2, String string3,


String string4)
{
super(obBuildManager, string1, string2, string3);
m_buildSchema = null;
m_sqlOptions = string4;
}

public boolean compile(ObBuildStatus obBuildStatus, ObBuildInfo obBuildInfo)


{
return true;
}

public boolean compile(ObBuildStatus obBuildStatus, ObBuildInfo obBuildInfo, ObBuildSchema


obBuildSchema)
{
m_buildStatus = obBuildStatus;
m_buildInfo = obBuildInfo;
m_buildSchema = obBuildSchema;
setBuildInfo();
m_buildInfo.m_sqlOptions = m_sqlOptions;

Page: 325 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

try
{
Object object = new ObParseGeneratedSQL(m_buildSchema, m_sourceFile, m_buildInfo.m_sqlOptions);
object.openFile();
object.readFile();
ObBuildQueue obBuildQueue = object.parseStatement();
boolean flag = true;
if (obBuildQueue == null)
flag = false;
else
{
while (!obBuildQueue.empty())
{
String string = (String)obBuildQueue.pop();
if (!submit(string))
flag = false;
}
}
closeLstFile();
if (flag)
deleteLstFile();
return true;
}
catch ()
{
System.out.println(object);
}
return false;
}

public boolean dropTable(ObBuildStatus obBuildStatus, ObBuildSchema obBuildSchema, ObBuildInfo


obBuildInfo)
{
m_buildStatus = obBuildStatus;
m_buildSchema = obBuildSchema;
m_buildInfo = obBuildInfo;
setBuildInfo();
if (!openLstFile())
return false;
ObParseGeneratedSQL obParseGeneratedSQL = new ObParseGeneratedSQL(m_buildSchema, m_sourceFile, "");
obParseGeneratedSQL.openFile();

Page: 326 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

obParseGeneratedSQL.readFile();
Vector vector = obParseGeneratedSQL.createDropStatement();
Connection connection = null;
try
{
if (vector.size() == 0)
{
m_buildStatus.createStatus(ObBuildStatusInfo.buildStartFailed(m_buildInfo));
String string1 = m_buildManager.getResourceString("NoGennedSource");
System.out.println(new
StringBuffer(String.valueOf(m_buildManager.getResourceString("RetrievedString"))).append(string1).toString(
));
updateLstFile(string1);
return true;
}
m_buildStatus.createStatus(ObBuildStatusInfo.compileStarted(m_buildInfo));
connection = m_buildSchema.getConnection();
if (connection == null)
{
updateStatus(2);
closeLstFile();
return false;
}
}
catch (Exception e1)
{
m_buildManager.log(e1.getMessage(), 2);
}
try
{
for (Enumeration enumeration = vector.elements(); enumeration.hasMoreElements(); )
{
String string2 = (String)enumeration.nextElement();
Statement statement = connection.createStatement();
statement.executeUpdate(string2);
}
}
catch (Exception e2)
{
m_buildManager.log(e2.getMessage(), 2);
}

Page: 327 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

return true;
}

public void endCompile()


{
}

public boolean submit(String string)


{
try
{
Object object = m_buildSchema.getConnection().createStatement();
object.execute(string);
updateStatus(0);
return true;
}
catch ()
{
m_buildManager.log(object.getMessage(), 0);
}
updateLstFile(object.getMessage());
updateStatus(1);
return false;
}
}

Page: 328 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObBuildManager

Full name of class: ObBldMgr.ObBuildManager.class

package ObBldMgr;

import java.io.*;
import java.util.*;
import ObRun.ObComms.ObSocketListen;
import ObRun.ObComms.ObSocketService;
import ObRun.ObEnvironment.ObLog;
import ObRun.ObEnvironment.ObRunOptions;
import java.net.ServerSocket;
import java.net.Socket;

public synchronized class ObBuildManager extends ObSocketService


{
protected static final Integer m_defaultPort = new Integer(2001);
private static final String m_defaultOptions = new String("ob400bld.properties");
private static final String m_jobNumberFile = new String("ob400bnm.txt");
private String m_sourceDirectory;
private String m_compiler;
private String m_classPath;
private String m_databaseDriver;
private String m_statusDataSource;
private String m_dataSourceUser;
private String m_dataSourcePassword;
private Integer m_maxConcurrentCompiles;
private Integer m_maxConcurrentBuilds;
private Vector m_runningCompiles;
private Vector m_runningBuilds;
private ObBuildQueue m_compileQueue;
private ObBuildQueue m_buildQueue;
private String m_serverVersion;

static
{
}

Page: 329 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObBuildManager(int i, String string1, String string2)


{
super(i, string1, string2);
m_sourceDirectory = new String("");
m_compiler = new String("");
m_classPath = new String("");
m_databaseDriver = new String("");
m_statusDataSource = new String("");
m_dataSourceUser = new String("");
m_dataSourcePassword = new String("");
m_maxConcurrentCompiles = new Integer(2);
m_maxConcurrentBuilds = new Integer(2);
m_serverVersion = new String("v400");
init();
}

public synchronized void addToBuildQueue(ObBuildRequest obBuildRequest)


{
m_buildQueue.addElement(obBuildRequest);
}

public synchronized void addToCompileQueue(ObCompileRequest obCompileRequest)


{
m_compileQueue.addElement(obCompileRequest);
}

public synchronized boolean allowBuild()


{
return m_buildQueue.size() == 0 && m_runningBuilds.size() < m_maxConcurrentBuilds.intValue();
}

public synchronized boolean allowCompile()


{
return m_compileQueue.size() == 0 && m_runningCompiles.size() < m_maxConcurrentCompiles.intValue();
}

public synchronized void compileStarted(ObCompileRequest obCompileRequest)


{
m_runningCompiles.addElement(obCompileRequest);
}

Page: 330 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void createNewClient(Socket socket, boolean flag, Integer integer)


{
ObBuildClient obBuildClient = new ObBuildClient(this, socket, m_threadGroup, flag, integer);
addClient(obBuildClient);
}

public synchronized void endAllBuilds()


{
for (Enumeration enumeration = m_runningBuilds.elements(); enumeration.hasMoreElements(); )
{
ObBuildRequest obBuildRequest = (ObBuildRequest)enumeration.nextElement();
obBuildRequest.stop();
}
}

public synchronized void endAllCompiles()


{
for (Enumeration enumeration = m_runningCompiles.elements(); enumeration.hasMoreElements(); )
{
ObCompileRequest obCompileRequest = (ObCompileRequest)enumeration.nextElement();
obCompileRequest.stop();
}
}

public synchronized void finishBuild(ObBuildRequest obBuildRequest)


{
m_runningBuilds.removeElement(obBuildRequest);
startNextBuild();
}

public synchronized void finishCompile(ObCompileRequest obCompileRequest)


{
m_runningCompiles.removeElement(obCompileRequest);
startNextCompile();
}

public String getClassPath()


{
return new String(m_classPath);
}

Page: 331 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public String getCompiler()


{
return new String(m_compiler);
}

public String getDataSource()


{
return new String(m_statusDataSource);
}

public String getDataSourcePassword()


{
return new String(m_dataSourcePassword);
}

public String getDataSourceUser()


{
return new String(m_dataSourceUser);
}

public String getDatabaseDriver()


{
return new String(m_databaseDriver);
}

public String getServerVersion()


{
return new String(m_serverVersion);
}

public String getSourceDirectory()


{
return new String(m_sourceDirectory);
}

private void init()


{
m_logPrefix = new String("ObBM");
m_runningCompiles = new Vector(10, 10);
m_runningBuilds = new Vector(10, 10);
m_compileQueue = new ObBuildQueue();

Page: 332 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_buildQueue = new ObBuildQueue();


}

protected void initJobNumber()


{
String string1 = System.getProperty("file.separator") + m_jobNumberFile;
try
{
BufferedReader bufferedReader = new BufferedReader(new FileReader(string1));
String string2 = bufferedReader.readLine();
string2 = string2.trim();
ObBuildStatusInfo.setJobId(new Integer(string2).intValue());
System.out.println(new
StringBuffer(String.valueOf(getResourceString("StartingJob"))).append(string2).toString());
}
catch (Exception e)
{
System.out.println(new
StringBuffer(String.valueOf(getResourceString("NoJobNumber"))).append(string1).toString());
}
}

public void logServiceStart()


{
log(new
StringBuffer(String.valueOf(getResourceString("StartBuildPort"))).append(m_port.intValue()).toString(), 1);
}

public static void main(String astring[])


{
Object object;
boolean flag = false;
String string = null;
int i = 0;
if (astring.length > 0)
{
object = astring[0].toUpperCase();
if (astring[0].length() > 5 && object.substring(0, 5).compareTo("PATH=") == 0)
{
string = astring[0].substring(5, astring[0].length());
flag = true;

Page: 333 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
try
{
i = Integer.parseInt(astring[flag]);
}
catch (NumberFormatException e)
{
System.out.println("Not a valid port number");
System.out.println("Enter an integer value greater than 1024");
System.out.println(e);
System.exit(1);
}
}
if (i == 0)
i = m_defaultPort.intValue();
object = new ObBuildManager(i, string, m_defaultOptions);
object.startService();
object.initJobNumber();
while (object.m_keepWaiting)
{
Thread.currentThread();
Thread.sleep(100);
}
drop
if (object.m_serverSocket == null)
{
System.out.println(object.getResourceString("ServiceNotRunning"));
return;
}
System.out.println(object.getResourceString("BuildManagerStarted"));
Thread.currentThread().suspend();
}

protected void saveJobNumber()


{
String string1 = System.getProperty("file.separator") + m_jobNumberFile;
try
{
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(string1));
int i = ObBuildStatusInfo.getJobId();
String string2 = new String(new Integer(i).toString());

Page: 334 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

bufferedWriter.write(string2, 0, string2.length());
bufferedWriter.newLine();
bufferedWriter.close();
}
catch (Exception e)
{
System.out.println(new
StringBuffer(String.valueOf(getResourceString("NoJobNumberWrite"))).append(string1).toString());
}
}

protected void setServiceParms()


{
String string = m_runOptions.getProperty("Default.Build.SourceDirectory");
if (string != null)
m_sourceDirectory = new String(string);
string = m_runOptions.getProperty("Default.Build.Compiler");
if (string != null)
m_compiler = new String(string);
string = m_runOptions.getProperty("Default.Build.ClassPath");
if (string != null)
m_classPath = new String(string);
string = m_runOptions.getProperty("Default.Build.MaxCompiles");
if (string != null)
m_maxConcurrentCompiles = new Integer(string);
string = m_runOptions.getProperty("Default.Build.MaxBuilds");
if (string != null)
m_maxConcurrentBuilds = new Integer(string);
string = m_runOptions.getProperty("Default.Build.Driver");
if (string != null)
m_databaseDriver = new String(string);
string = m_runOptions.getProperty("Default.Build.DataSource");
if (string != null)
m_statusDataSource = new String(string);
string = m_runOptions.getProperty("Default.Build.User");
if (string != null)
m_dataSourceUser = new String(string);
string = m_runOptions.getProperty("Default.Build.Password");
if (string != null)
m_dataSourcePassword = new String(string);

Page: 335 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

string = m_runOptions.getProperty(new
StringBuffer(String.valueOf(getPort().toString())).append(".Build.SourceDirectory").toString());
if (string != null)
m_sourceDirectory = new String(string);
string = m_runOptions.getProperty(new
StringBuffer(String.valueOf(getPort().toString())).append(".Build.Compiler").toString());
if (string != null)
m_compiler = new String(string);
string = m_runOptions.getProperty(new
StringBuffer(String.valueOf(getPort().toString())).append(".Build.ClassPath").toString());
if (string != null)
m_classPath = new String(string);
string = m_runOptions.getProperty(new
StringBuffer(String.valueOf(getPort().toString())).append(".Build.MaxCompiles").toString());
if (string != null)
m_maxConcurrentCompiles = new Integer(string);
string = m_runOptions.getProperty(new
StringBuffer(String.valueOf(getPort().toString())).append(".Build.MaxBuilds").toString());
if (string != null)
m_maxConcurrentBuilds = new Integer(string);
string = m_runOptions.getProperty(new
StringBuffer(String.valueOf(getPort().toString())).append(".Build.Driver").toString());
if (string != null)
m_databaseDriver = new String(string);
string = m_runOptions.getProperty(new
StringBuffer(String.valueOf(getPort().toString())).append(".Build.DataSource").toString());
if (string != null)
m_statusDataSource = new String(string);
string = m_runOptions.getProperty(new
StringBuffer(String.valueOf(getPort().toString())).append(".Build.User").toString());
if (string != null)
m_dataSourceUser = new String(string);
string = m_runOptions.getProperty(new
StringBuffer(String.valueOf(getPort().toString())).append(".Build.Password").toString());
if (string != null)
m_dataSourcePassword = new String(string);
}

public synchronized void startNextBuild()


{
if (m_buildQueue.size() == 0)

Page: 336 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

return;
try
{
ObBuildRequest obBuildRequest = (ObBuildRequest)m_buildQueue.pop();
obBuildRequest.resume();
m_runningBuilds.addElement(obBuildRequest);
}
catch (EmptyStackException e1)
{
}
catch (Exception e2)
{
log(e2.getMessage(), 0);
}
}

public synchronized void startNextCompile()


{
if (m_compileQueue.size() == 0)
return;
try
{
ObCompileRequest obCompileRequest = (ObCompileRequest)m_compileQueue.pop();
obCompileRequest.resume();
m_runningCompiles.addElement(obCompileRequest);
}
catch (EmptyStackException e1)
{
}
catch (Exception e2)
{
log(e2.getMessage(), 0);
}
}

public void stopService()


{
super.stopService();
saveJobNumber();
}
}

Page: 337 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObBuildQueue

Full name of class: ObBldMgr.ObBuildQueue.class

package ObBldMgr;

import java.util.*;

public synchronized class ObBuildQueue extends Stack


{
public ObBuildQueue()
{
}

public int addItem(Object object)


{
insertElementAt(object, 0);
return size();
}

public void copy(ObBuildQueue obBuildQueue)


{
while (size() > 0)
obBuildQueue.addElement(pop());
drop
}

public Object peekTop()


{
return elementAt(0);
}
}

Page: 338 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObBuildRequest

Full name of class: ObBldMgr.ObBuildRequest.class

package ObBldMgr;

import java.util.*;

public synchronized class ObBuildRequest extends ObRmtBuildRequest


{
private ObBuildSchema m_buildSchema;
private String m_databaseDriver;
private String m_buildDataSource;
private String m_buildDataSourceUser;
private String m_buildDataSourcePassword;

public ObBuildRequest(ObBuildClient obBuildClient, ObBuildQueue obBuildQueue, ObBuildInfo obBuildInfo)


{
super(obBuildClient, obBuildQueue, obBuildInfo);
m_databaseDriver = new String("");
m_buildDataSource = new String("");
m_buildDataSourceUser = new String("");
m_buildDataSourcePassword = new String("");
init();
}

protected void addToQueue()


{
m_buildClient.getBuildManager().addToBuildQueue(this);
}

protected boolean canRun()


{
return m_buildClient.getBuildManager().allowBuild();
}

public void clearReferences()


{
m_buildSchema.disconnect();

Page: 339 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

super.clearReferences();
}

public boolean compile()


{
dropTables();
while (!m_compileQueue.empty())
{
ObBuildJDBC obBuildJDBC = (ObBuildJDBC)m_compileQueue.pop();
obBuildJDBC.compile(m_buildStatus, m_buildInfo, m_buildSchema);
}
return true;
}

public boolean dropTables()


{
boolean flag = false;
for (Enumeration enumeration = m_compileQueue.elements(); enumeration.hasMoreElements(); )
{
ObBuildJDBC obBuildJDBC = (ObBuildJDBC)enumeration.nextElement();
if (!obBuildJDBC.dropTable(m_buildStatus, m_buildSchema, m_buildInfo))
flag = true;
}
if (flag)
stop();
return true;
}

protected void finished()


{
m_buildClient.getBuildManager().finishBuild(this);
m_buildClient.removeBuildRequest(this);
}

protected ObRmtBuildRequest getLastRequest()


{
return m_buildClient.getLastBuildRequest(this);
}

private void init()


{

Page: 340 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_databaseDriver = new String(m_buildInfo.m_builddbDriver);


m_buildDataSource = new String(m_buildInfo.m_builddbName);
m_buildDataSourceUser = new String(m_buildInfo.m_builddbUserid);
m_buildDataSourcePassword = new String(m_buildInfo.m_builddbPassword);
m_buildSchema = new ObBuildSchema(m_databaseDriver, m_buildDataSource, m_buildDataSourceUser,
m_buildDataSourcePassword, m_buildStatus, m_buildClient);
}

public void run()


{
super.run();
m_buildSchema.disconnect();
}
}

Page: 341 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObBuildSchema

Full name of class: ObBldMgr.ObBuildSchema.class

import java.io.PrintStream;
import java.sql.Connection;
import java.util.Hashtable;

public synchronized class ObBuildSchema extends ObBuildConnection


{
private ObBuildStatus m_buildStatus;
private ObBuildClient m_buildClient;

public ObBuildSchema(String string1, String string2, String string3, String string4, ObBuildStatus
obBuildStatus, ObBuildClient obBuildClient)
{
super(string2, string3, string4);
m_databaseDriver = string1;
m_dataSource = string2;
m_dataSourceUser = string3;
m_dataSourcePassword = string4;
m_buildStatus = obBuildStatus;
m_buildClient = obBuildClient;
m_buildManager = m_buildClient.getBuildManager();
if (m_databaseDriver.length() == 0)
m_databaseDriver = new String(m_buildClient.getBuildManager().getDatabaseDriver());
if (string2.length() == 0)
{
m_dataSource = new String(m_buildStatus.m_dataSource);
m_dataSourceUser = new String(m_buildStatus.m_dataSourceUser);
m_dataSourcePassword = new String(m_buildStatus.m_dataSourcePassword);
}
m_typeConverter = new Hashtable(20);
m_databaseConnection = null;
}

public Connection getConnection()


{

Page: 342 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (m_databaseConnection == null)
{
try
{
if (!connect())
return null;
}
catch (Exception e)
{
System.out.println(e.getMessage());
return null;
}
}
return m_databaseConnection;
}

protected void init(String string1, String string2, String string3)


{
}
}

Page: 343 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObBuildSocketStream

Full name of class: ObBldMgr.ObBuildSocketStream.class

This class is hidden from view.

Page: 344 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObBuildStatus

Full name of class: ObBldMgr.ObBuildStatus.class

package ObBldMgr;

import java.sql.Date;
import java.sql.Time;

public synchronized class ObBuildStatusInfo


{
private static int m_jobNumber;
private static final int ON_QUEUE = 0;
private static final int START_FAILED = 1;
private static final int ACTIVE = 2;
private static final int ABNORMAL_END = 3;
private static final int COMPLETED_ERROR = 4;
private static final int COMPLETED_SUCCESS = 5;
private static final int ENDED_BY_USER = 6;
private static final int COMPLETED_WARNING = 7;
public String m_user;
public String m_groupModel;
public Integer m_version;
public Integer m_level;
public Integer m_variant;
public Integer m_language;
public String m_jobId;
public Integer m_jobStatus;
public Date m_date;
public Time m_time;
public String m_designName;
public String m_className;

static
{
m_jobNumber = 0;
}

public ObBuildStatusInfo()

Page: 345 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
init();
}

public static ObBuildStatusInfo buildFailed(ObBuildInfo obBuildInfo)


{
return createStatusInfo(obBuildInfo, 4);
}

public static ObBuildStatusInfo buildStartFailed(ObBuildInfo obBuildInfo)


{
return createStatusInfo(obBuildInfo, 1);
}

public static ObBuildStatusInfo buildSucceeded(ObBuildInfo obBuildInfo)


{
return createStatusInfo(obBuildInfo, 5);
}

public static ObBuildStatusInfo compileStarted(ObBuildInfo obBuildInfo)


{
return createStatusInfo(obBuildInfo, 2);
}

protected void copyBuildInfo(ObBuildInfo obBuildInfo)


{
m_user = new String(obBuildInfo.m_userId);
m_groupModel = new String(obBuildInfo.m_groupModel);
m_version = new Integer(obBuildInfo.m_version);
m_level = new Integer(obBuildInfo.m_level);
m_variant = new Integer(obBuildInfo.m_variant);
m_language = new Integer(obBuildInfo.m_language);
m_jobId = new String(obBuildInfo.m_jobId);
m_designName = new String(obBuildInfo.m_designName);
m_className = new String(obBuildInfo.m_fileName);
}

public static ObBuildStatusInfo createStatusInfo(ObBuildInfo obBuildInfo, int i)


{
ObBuildStatusInfo obBuildStatusInfo = new ObBuildStatusInfo();
obBuildStatusInfo.copyBuildInfo(obBuildInfo);

Page: 346 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

obBuildStatusInfo.m_jobStatus = new Integer(i);


return obBuildStatusInfo;
}

public static synchronized int getJobId()


{
return m_jobNumber;
}

public static synchronized int getNextJobId()


{
m_jobNumber++;
return m_jobNumber;
}

private void init()


{
m_user = new String("user");
m_groupModel = new String("groupmodel");
m_version = new Integer(1);
m_level = new Integer(1);
m_variant = new Integer(1);
m_language = new Integer(1);
m_jobId = new String("1");
m_jobStatus = new Integer(1);
m_date = new Date(System.currentTimeMillis());
m_time = new Time(System.currentTimeMillis());
m_designName = new String("designname");
m_className = new String("classname");
}

public static ObBuildStatusInfo onQueue(ObBuildInfo obBuildInfo)


{
return createStatusInfo(obBuildInfo, 0);
}

public static synchronized void setJobId(int i)


{
m_jobNumber = i;
}
}

Page: 347 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObBuildStatusInfo

Full name of class: ObBldMgr.ObBuildStatusInfo.class

package ObBldMgr;

import java.sql.Date;
import java.sql.Time;

public synchronized class ObBuildStatusInfo


{
private static int m_jobNumber;
private static final int ON_QUEUE = 0;
private static final int START_FAILED = 1;
private static final int ACTIVE = 2;
private static final int ABNORMAL_END = 3;
private static final int COMPLETED_ERROR = 4;
private static final int COMPLETED_SUCCESS = 5;
private static final int ENDED_BY_USER = 6;
private static final int COMPLETED_WARNING = 7;
public String m_user;
public String m_groupModel;
public Integer m_version;
public Integer m_level;
public Integer m_variant;
public Integer m_language;
public String m_jobId;
public Integer m_jobStatus;
public Date m_date;
public Time m_time;
public String m_designName;
public String m_className;

static
{
m_jobNumber = 0;
}

public ObBuildStatusInfo()

Page: 348 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
init();
}

public static ObBuildStatusInfo buildFailed(ObBuildInfo obBuildInfo)


{
return createStatusInfo(obBuildInfo, 4);
}

public static ObBuildStatusInfo buildStartFailed(ObBuildInfo obBuildInfo)


{
return createStatusInfo(obBuildInfo, 1);
}

public static ObBuildStatusInfo buildSucceeded(ObBuildInfo obBuildInfo)


{
return createStatusInfo(obBuildInfo, 5);
}

public static ObBuildStatusInfo compileStarted(ObBuildInfo obBuildInfo)


{
return createStatusInfo(obBuildInfo, 2);
}

protected void copyBuildInfo(ObBuildInfo obBuildInfo)


{
m_user = new String(obBuildInfo.m_userId);
m_groupModel = new String(obBuildInfo.m_groupModel);
m_version = new Integer(obBuildInfo.m_version);
m_level = new Integer(obBuildInfo.m_level);
m_variant = new Integer(obBuildInfo.m_variant);
m_language = new Integer(obBuildInfo.m_language);
m_jobId = new String(obBuildInfo.m_jobId);
m_designName = new String(obBuildInfo.m_designName);
m_className = new String(obBuildInfo.m_fileName);
}

public static ObBuildStatusInfo createStatusInfo(ObBuildInfo obBuildInfo, int i)


{
ObBuildStatusInfo obBuildStatusInfo = new ObBuildStatusInfo();
obBuildStatusInfo.copyBuildInfo(obBuildInfo);

Page: 349 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

obBuildStatusInfo.m_jobStatus = new Integer(i);


return obBuildStatusInfo;
}

public static synchronized int getJobId()


{
return m_jobNumber;
}

public static synchronized int getNextJobId()


{
m_jobNumber++;
return m_jobNumber;
}

private void init()


{
m_user = new String("user");
m_groupModel = new String("groupmodel");
m_version = new Integer(1);
m_level = new Integer(1);
m_variant = new Integer(1);
m_language = new Integer(1);
m_jobId = new String("1");
m_jobStatus = new Integer(1);
m_date = new Date(System.currentTimeMillis());
m_time = new Time(System.currentTimeMillis());
m_designName = new String("designname");
m_className = new String("classname");
}

public static ObBuildStatusInfo onQueue(ObBuildInfo obBuildInfo)


{
return createStatusInfo(obBuildInfo, 0);
}

public static synchronized void setJobId(int i)


{
m_jobNumber = i;
}
}

Page: 350 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCompileJava

Full name of class: ObBldMgr.ObCompileJava.class

package ObBldMgr;

import ObRun.ObComms.ObSocketService;
import ObRun.ObEnvironment.ObLog;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public synchronized class ObCompileJava extends ObCompileSource


{
private boolean m_debug;
private Process m_compileProcess;
private String m_sourceDirectory;

public ObCompileJava(ObBuildManager obBuildManager, String string1, String string2, String string3,


String string4, boolean flag)
{
super(obBuildManager, string1, string3, string4);
m_sourceDirectory = new String(string2);
m_debug = flag;
}

public boolean compile(ObBuildStatus obBuildStatus, ObBuildInfo obBuildInfo)


{
m_buildStatus = obBuildStatus;
m_buildInfo = obBuildInfo;
setBuildInfo();
String string = new String(m_buildManager.getCompiler());
if (m_debug)
string = new StringBuffer(String.valueOf(string)).append(" -g").toString();
string = new StringBuffer(String.valueOf(string)).append(" -d ").toString();
string = new
StringBuffer(String.valueOf(string)).append(m_buildManager.getSourceDirectory()).toString();
string = new
StringBuffer(String.valueOf(string)).append(System.getProperty("file.separator")).toString();
string = new StringBuffer(String.valueOf(string)).append(m_sourceDirectory).toString();

Page: 351 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

string = new StringBuffer(String.valueOf(string)).append(" ").toString();


string = new
StringBuffer(String.valueOf(string)).append(m_buildManager.getResourceString("ClassPath")).toString();
string = new StringBuffer(String.valueOf(string)).append(" ").toString();
string = new StringBuffer(String.valueOf(string)).append(m_buildManager.getClassPath()).toString();
string = new
StringBuffer(String.valueOf(string)).append(System.getProperty("path.separator")).toString();
string = new
StringBuffer(String.valueOf(string)).append(m_buildManager.getSourceDirectory()).toString();
string = new
StringBuffer(String.valueOf(string)).append(System.getProperty("file.separator")).toString();
string = new StringBuffer(String.valueOf(string)).append(m_sourceDirectory).toString();
string = new StringBuffer(String.valueOf(string)).append(" ").toString();
string = new StringBuffer(String.valueOf(string)).append(m_sourceFile).toString();
return submit(string);
}

public void endCompile()


{
m_compileProcess.destroy();
}

public boolean onQueueStatus(ObBuildStatus obBuildStatus, ObBuildInfo obBuildInfo)


{
m_buildStatus = obBuildStatus;
m_buildInfo = obBuildInfo;
setBuildInfo();
m_buildStatus.createStatus(ObBuildStatusInfo.onQueue(m_buildInfo));
return true;
}

public boolean submit(String string1)


{
try
{
if (!openLstFile())
return false;
m_compileProcess = Runtime.getRuntime().exec(string1);
Object object = new BufferedReader(new InputStreamReader(m_compileProcess.getErrorStream()));
m_buildStatus.updateStatus(ObBuildStatusInfo.compileStarted(m_buildInfo));
boolean flag = true;

Page: 352 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

int i = 0;
while (true)
{
flag = false;
Thread.sleep(1000);
try
{
String string2;
i = m_compileProcess.exitValue();
while ((string2 = object.readLine()) != null)
updateLstFile(local4.trim());
object.close();
closeLstFile();
updateStatus(i);
if (i == 0)
deleteLstFile();
return true;
}
catch (IllegalThreadStateException e)
{
flag = true;
}
}
}
catch ()
{
m_buildManager.log(object.getMessage(), 0);
return false;
}
}
}

Page: 353 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCompileRequest

Full name of class: ObBldMgr.ObCompileRequest.class

package ObBldMgr;

import java.util.*;

public synchronized class ObCompileRequest extends ObRmtBuildRequest


{
public ObCompileRequest(ObBuildClient obBuildClient, ObBuildQueue obBuildQueue, ObBuildInfo obBuildInfo)
{
super(obBuildClient, obBuildQueue, obBuildInfo);
}

protected void addToQueue()


{
m_buildClient.getBuildManager().addToCompileQueue(this);
}

protected boolean canRun()


{
return m_buildClient.getBuildManager().allowCompile();
}

public boolean compile()


{
m_buildClient.getBuildManager().compileStarted(this);
try
{
ObBuildQueue obBuildQueue = new ObBuildQueue();
m_compileQueue.copy(obBuildQueue);
while (obBuildQueue.size() > 0)
{
ObCompileJava obCompileJava2 = (ObCompileJava)obBuildQueue.pop();
obCompileJava2.onQueueStatus(m_buildStatus, m_buildInfo);
m_compileQueue.push(obCompileJava2);
}
}

Page: 354 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

catch (EmptyStackException e)
{
}
while (m_compileQueue.size() > 0)
{
ObCompileJava obCompileJava1 = (ObCompileJava)m_compileQueue.pop();
obCompileJava1.compile(m_buildStatus, m_buildInfo);
}
drop
return true;
}

protected void finished()


{
m_buildClient.getBuildManager().finishCompile(this);
m_buildClient.removeCompileRequest(this);
}

protected ObRmtBuildRequest getLastRequest()


{
return m_buildClient.getLastCompileRequest(this);
}
}

Page: 355 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCompileSource

Full name of class: ObBldMgr.ObCompileSource.class

package ObBldMgr;

import java.io.*;

public synchronized abstract class ObCompileSource


{
protected ObBuildManager m_buildManager;
protected String m_sourceFile;
protected String m_designName;
protected String m_className;
protected ObBuildStatus m_buildStatus;
protected ObBuildInfo m_buildInfo;
protected int m_jobId;
protected String m_sourceLstFile;
protected BufferedWriter m_errorFileStream;

public ObCompileSource(ObBuildManager obBuildManager, String string1, String string2, String string3)


{
m_buildManager = obBuildManager;
m_buildInfo = null;
m_sourceFile = new String(string1);
m_designName = string2;
m_className = string3;
m_sourceLstFile = addLstExtension(string1);
m_jobId = ObBuildStatusInfo.getNextJobId();
}

protected String addLstExtension(String string1)


{
int i = string1.lastIndexOf(46);
String string2 = string1.substring(0, i);
string2 = new StringBuffer(String.valueOf(string2)).append(".lst").toString();
return new String(string2);
}

Page: 356 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

protected boolean closeLstFile()


{
try
{
Exception e;
m_errorFileStream.close();
m_errorFileStream = null;
return true;
}
catch ()
{
System.out.println(e);
}
return false;
}

public abstract boolean compile(ObBuildStatus obBuildStatus, ObBuildInfo obBuildInfo);


protected boolean deleteLstFile()
{
try
{
Object object = new File(m_sourceLstFile);
object.delete();
return true;
}
catch ()
{
System.out.println(object);
}
return false;
}

public abstract void endCompile();


protected boolean openLstFile()
{
try
{
Exception e;
m_errorFileStream = new BufferedWriter(new FileWriter(m_sourceLstFile));
return true;
}

Page: 357 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

catch ()
{
System.out.println(e);
}
return false;
}

protected void setBuildInfo()


{
if (m_buildInfo == null)
return;
m_buildInfo.m_designName = m_designName;
m_buildInfo.m_fileName = m_className;
m_buildInfo.m_jobId = new String(new Integer(m_jobId).toString());
}

public abstract boolean submit(String string);


protected boolean updateLstFile(String string)
{
try
{
Exception e;
m_errorFileStream.write(string, 0, string.length());
m_errorFileStream.newLine();
m_errorFileStream.flush();
return true;
}
catch ()
{
System.out.println(e);
}
return false;
}

protected void updateStatus(int i)


{
try
{
if (i == 0)
m_buildStatus.updateStatus(ObBuildStatusInfo.buildSucceeded(m_buildInfo));
else if (i == 2)

Page: 358 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_buildStatus.updateStatus(ObBuildStatusInfo.buildStartFailed(m_buildInfo));
else
m_buildStatus.updateStatus(ObBuildStatusInfo.buildFailed(m_buildInfo));
}
catch (Exception e)
{
System.out.println(e);
}
}
}

Page: 359 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObParseGeneratedSQL

Full name of class: ObBldMgr.ObParseGeneratedSQL.class

package ObBldMgr;

import java.io.*;
import java.sql.*;
import java.util.*;

public synchronized class ObParseGeneratedSQL


{
private String m_sourceFile;
private BufferedReader m_inputFile;
private ObBuildQueue m_generatedSQL;
private Stack m_buildOptions;
private ObBuildQueue m_subStatements;
private ObBuildQueue m_sqlStatements;
private ObBuildConnection m_connection;
private String m_lastStatement;
private String m_enabledOptions;
private String m_databaseName;
private boolean m_ignoreStatements;
public static final String COND_IF = "IF (NOT_SQL_SERVER)".intern();
public static final String COND_ELSE = "ELSE (NOT_SQL_SERVER)".intern();
public static final String COND_ENDIF = "ENDIF (NOT_SQL_SERVER)".intern();
public static final String SQL_SERVER_NAME = "Microsoft SQL Server".intern();

static
{
}

public ObParseGeneratedSQL(ObBuildConnection obBuildConnection, String string1, String string2)


{
m_connection = obBuildConnection;
m_sourceFile = new String(string1);
m_sqlStatements = new ObBuildQueue();
m_generatedSQL = new ObBuildQueue();
m_buildOptions = new Stack();

Page: 360 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_subStatements = new ObBuildQueue();


m_lastStatement = new String();
m_enabledOptions = new String(string2);
m_databaseName = new String();
}

public void addOption(String string, boolean flag)


{
ObSQLBuildOption obSQLBuildOption = new ObSQLBuildOption(this, string);
if (flag)
m_buildOptions.push(obSQLBuildOption);
m_subStatements.addItem(obSQLBuildOption);
}

public void assembleStatement()


{
String string;
Exception e;
string = null;
while (!m_subStatements.empty())
{
ObSQLBuildOption obSQLBuildOption = (ObSQLBuildOption)m_subStatements.pop();
if (newStatement(obSQLBuildOption.getOption()) && string != null)
{
m_sqlStatements.addItem(convertDataTypes(string));
string = null;
}
if (string == null)
string = new String(obSQLBuildOption.getEnabledText());
else
string = new
StringBuffer(String.valueOf(string)).append(obSQLBuildOption.getEnabledText()).toString();
}
pop e
System.out.println(e);
m_sqlStatements.addItem(convertDataTypes(string));
}

public boolean builtStatement(String string)


{
if (m_buildOptions.empty() && !string.startsWith("#BEGIN"))

Page: 361 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

return false;
if (m_buildOptions.empty() || newOption(string))
{
addOption(string, true);
return false;
}
try
{
if (endOption(string))
{
removeOption();
ObSQLBuildOption obSQLBuildOption1 = (ObSQLBuildOption)m_buildOptions.peek();
addOption(obSQLBuildOption1.getOption(), false);
return false;
}
}
catch (EmptyStackException e)
{
return true;
}
string = checkForCondSyntax(string);
if (!m_ignoreStatements)
{
ObSQLBuildOption obSQLBuildOption2 = (ObSQLBuildOption)m_subStatements.peekTop();
obSQLBuildOption2.add(string);
}
return false;
}

public String checkForCondSyntax(String string1)


{
int i = 0;
int j = 0;
String string2 = string1.trim();
if (string2.startsWith(COND_IF))
{
i = COND_IF.length();
j = string1.indexOf(COND_IF);
if (getDatabaseName().compareTo(SQL_SERVER_NAME) == 0)
m_ignoreStatements = true;
else

Page: 362 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_ignoreStatements = false;
}
else if (string2.startsWith(COND_ELSE))
{
i = COND_ELSE.length();
j = string1.indexOf(COND_ELSE);
if (getDatabaseName().compareTo(SQL_SERVER_NAME) == 0)
m_ignoreStatements = false;
else
m_ignoreStatements = true;
}
else if (string2.startsWith(COND_ENDIF))
{
i = COND_ENDIF.length();
j = string1.indexOf(COND_ENDIF);
m_ignoreStatements = false;
}
return new String(string1.substring(j + i));
}

public String convertDataTypes(String string1)


{
String string4;
String string2 = null;
boolean flag = false;
String string3 = new String();
string4 = new String();
for (StringTokenizer stringTokenizer = new StringTokenizer(string1, "%");
stringTokenizer.hasMoreTokens(); )
{
string3 = stringTokenizer.nextToken();
if (flag && string3.startsWith("("))
string3 = string3.substring(string3.indexOf(")") + 1);
string4 = new StringBuffer(String.valueOf(string4)).append(string3).toString();
string2 = stringTokenizer.nextToken();
flag = m_connection.dropPrecision(string2);
string2 = m_connection.convertType(string2);
string4 = new StringBuffer(String.valueOf(string4)).append(string2).toString();
}
drop
return new String(string4);

Page: 363 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public Vector createDropStatement()


{
Vector vector;
vector = new Vector();
String string = null;
while (!m_generatedSQL.empty())
{
string = (String)m_generatedSQL.pop();
string = string.trim().toUpperCase();
if (string.startsWith("#BEGIN"))
vector.addElement(new String(new
StringBuffer("DROP").append(string.substring(6)).toString()));
}
drop
return vector;
}

public boolean endOption(String string1)


{
String string2 = string1.trim();
if (string2.startsWith(ObSQLBuildOption.END))
return true;
else
return false;
}

public String getDatabaseName()


{
if (m_databaseName.length() == 0)
{
try
{
DatabaseMetaData databaseMetaData = m_connection.getConnection().getMetaData();
m_databaseName = databaseMetaData.getDatabaseProductName();
}
catch (SQLException e)
{
System.out.println(e);
}

Page: 364 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
return m_databaseName;
}

public boolean isOptionEnabled(String string1)


{
if (string1.startsWith(ObSQLBuildOption.BEGIN))
return true;
String string2 = string1.trim();
string2 = string2.substring(string2.indexOf(" ") + 1);
string2 = string2.trim();
System.out.println(string2);
return m_enabledOptions.indexOf(string2) != -1;
}

public boolean newOption(String string1)


{
String string2 = string1.trim();
if (string2.startsWith(ObSQLBuildOption.BEGIN) || string2.startsWith(ObSQLBuildOption.OPTION))
return true;
else
return false;
}

public boolean newStatement(String string)


{
boolean flag = m_lastStatement.equalsIgnoreCase(string);
m_lastStatement = new String(string);
return flag;
}

public boolean openFile()


{
try
{
m_inputFile = new BufferedReader(new FileReader(m_sourceFile));
return true;
}
catch (Exception e)
{
return false;

Page: 365 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
}

public ObBuildQueue parseStatement()


{
String string = null;
removeHeader();
if (m_generatedSQL.empty())
return null;
try
{
m_ignoreStatements = false;
while (!m_generatedSQL.empty())
{
string = (String)m_generatedSQL.pop();
if (builtStatement(string))
assembleStatement();
}
}
catch (EmptyStackException e)
{
assembleStatement();
}
return m_sqlStatements;
}

public void printStatements()


{
String string;
while (!m_sqlStatements.isEmpty())
{
string = (String)m_sqlStatements.pop();
System.out.println(string);
}
}

public boolean readFile()


{
m_generatedSQL.removeAllElements();
while (m_inputFile.ready())
{

Page: 366 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

String string1 = m_inputFile.readLine();


String string2 = new String(string1).trim();
if (string2.length() != 0)
m_generatedSQL.addItem(string1);
}
m_inputFile.close();
return true;
drop
return false;
}

public void removeHeader()


{
String string = null;
while (!m_generatedSQL.empty())
{
string = (String)m_generatedSQL.pop();
if (string.startsWith(ObSQLBuildOption.BEGIN))
{
addOption(string, true);
break;
}
}
drop
}

public void removeOption()


{
m_buildOptions.pop();
}
}

Page: 367 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObRetrieveLstFile

Full name of class: ObBldMgr.ObRetrieveLstFile.class

package ObBldMgr;

import java.io.*;

public synchronized class ObRetrieveLstFile


{
private static int m_srcBufSize;
private BufferedReader m_inputStream;
private BufferedReader m_inFileStream;
private BufferedWriter m_outputStream;
private String m_more;
private String m_fileName;
private String m_sourceDir;
private String m_sourceFileBytes;
private String m_byteTransferCount;
private String m_fullFileName;

static
{
m_srcBufSize = 2000;
}

public ObRetrieveLstFile(BufferedReader bufferedReader, BufferedWriter bufferedWriter)


{
m_inputStream = bufferedReader;
m_outputStream = bufferedWriter;
m_inFileStream = null;
readFromStream();
}

public boolean closeFile()


{
try
{
Exception e;

Page: 368 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_inFileStream.close();
return true;
}
catch ()
{
System.out.println(e);
}
return false;
}

public boolean endWriteToStream()


{
char ach1[] = new char[2];
char ach2[] = new char[64];
char ach3[] = new char[64];
char ach4[] = new char[m_srcBufSize];
char ach5[] = new char[6];
try
{
m_more.getChars(0, m_more.length(), ach1, 0);
ach1[m_more.length()] = '\0';
m_fileName.getChars(0, m_fileName.length(), ach2, 0);
ach2[m_fileName.length()] = '\0';
m_sourceDir.getChars(0, m_sourceDir.length(), ach3, 0);
ach3[m_sourceDir.length()] = '\0';
m_sourceFileBytes.getChars(0, m_sourceFileBytes.length(), ach4, 0);
m_byteTransferCount.getChars(0, m_byteTransferCount.length(), ach5, 0);
ach5[m_byteTransferCount.length()] = '\0';
}
catch (Exception e1)
{
System.out.println(e1);
}
try
{
m_outputStream.write(ach1, 0, 2);
m_outputStream.write(ach2, 0, 64);
m_outputStream.write(ach3, 0, 64);
m_outputStream.write(ach4, 0, m_srcBufSize);
m_outputStream.write(ach5, 0, 6);
m_outputStream.flush();

Page: 369 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
catch (Exception e2)
{
System.out.println(e2);
}
if (m_more.compareTo("0") == 0)
return true;
else
return false;
}

public boolean openFile(String string)


{
try
{
Exception e;
m_fullFileName = new String(System.getProperty("file.separator") + m_sourceDir +
System.getProperty("file.separator") + m_fileName);
m_inFileStream = new BufferedReader(new FileReader(m_fullFileName));
return true;
}
catch ()
{
System.out.println(e);
}
return false;
}

public boolean readFromFile()


{
int i = 0;
try
{
local = new char[1];
}
catch ()
{
System.out.println(local);
return false;
}
expression new StringBuffer

Page: 370 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

dup 1 over 0
expression this
dup 1 over 2
push m_sourceFileBytes
invoke valueOf
invoke StringBuffer.<init>
expression new String(local)
invoke append
invoke toString
pop m_sourceFileBytes
i++;
if (m_inFileStream.read(local, 0, 1) != -1 && i < m_srcBufSize) goto 9 else 65;
m_byteTransferCount = new Integer(i).toString();
if (i == m_srcBufSize)
m_more = "1";
else
m_more = "0";
return true;
}

public void readFromStream()


{
char ach1[] = new char[2];
char ach2[] = new char[64];
char ach3[] = new char[64];
char ach4[] = new char[m_srcBufSize];
char ach5[] = new char[6];
try
{
m_inputStream.read(ach1, 0, 2);
m_inputStream.read(ach2, 0, 64);
m_inputStream.read(ach3, 0, 64);
m_inputStream.read(ach4, 0, m_srcBufSize);
m_inputStream.read(ach5, 0, 6);
}
catch (Exception e)
{
System.out.println(e);
}
m_more = null;
m_fileName = null;

Page: 371 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_sourceDir = null;
m_sourceFileBytes = null;
m_byteTransferCount = null;
m_more = new String(ach1).trim();
m_fileName = new String(ach2).trim();
m_sourceDir = new String(ach3).trim();
m_sourceFileBytes = new String(ach4).trim();
m_byteTransferCount = new String(ach5).trim();
}
}

Page: 372 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObRmtBuildRequest

Full name of class: ObBldMgr.ObRmtBuildRequest.class

package ObBldMgr;

public synchronized abstract class ObRmtBuildRequest extends Thread


{
protected ObBuildClient m_buildClient;
protected ObBuildQueue m_compileQueue;
protected ObBuildStatus m_buildStatus;
protected ObBuildInfo m_buildInfo;

public ObRmtBuildRequest(ObBuildClient obBuildClient, ObBuildQueue obBuildQueue, ObBuildInfo


obBuildInfo)
{
m_buildClient = obBuildClient;
m_compileQueue = obBuildQueue;
m_buildInfo = (ObBuildInfo)obBuildInfo.clone();
m_buildStatus = new ObBuildStatus(m_buildClient.getBuildManager(),
m_buildClient.getBuildManager().getDataSource(), m_buildClient.getBuildManager().getDataSourceUser(),
m_buildClient.getBuildManager().getDataSourcePassword());
}

protected abstract void addToQueue();


protected abstract boolean canRun();
public void clearReferences()
{
m_buildStatus.disconnect();
}

public abstract boolean compile();


protected abstract void finished();
protected abstract ObRmtBuildRequest getLastRequest();
protected void joinRequest()
{
ObRmtBuildRequest obRmtBuildRequest = getLastRequest();
if (obRmtBuildRequest == null || obRmtBuildRequest == this)
return;

Page: 373 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

try
{
obRmtBuildRequest.join();
}
catch (Exception e)
{
}
}

public void run()


{
joinRequest();
if (!canRun())
{
addToQueue();
suspend();
}
m_buildStatus.connect();
compile();
m_buildStatus.disconnect();
finished();
}
}

Page: 374 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObSourceFile

Full name of class: ObBldMgr.ObSourceFile.class

package ObBldMgr;

import java.io.*;

public synchronized class ObSourceFile


{
private String m_fileName;
private BufferedReader m_inputStream;
private BufferedWriter m_outputStream;
private BufferedWriter m_socketStream;

public ObSourceFile(String string, BufferedReader bufferedReader, BufferedWriter bufferedWriter)


{
m_fileName = string;
m_inputStream = bufferedReader;
m_socketStream = bufferedWriter;
init();
}

public boolean closeFile()


{
try
{
Exception e;
m_outputStream.close();
return true;
}
catch ()
{
System.out.println(e);
}
return false;
}

private void init()

Page: 375 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
m_outputStream = null;
}

public boolean openFile()


{
try
{
Object object = new String(m_fileName.substring(0,
m_fileName.lastIndexOf(System.getProperty("file.separator"))));
File file = new File(object);
file.mkdirs();
m_outputStream = new BufferedWriter(new FileWriter(m_fileName));
return true;
}
catch ()
{
System.out.println(object);
}
return false;
}

public boolean writeFromStream()


{
char ach1[] = new char[5];
int i = 0;
int j = 0;
try
{
m_inputStream.read(ach1, 0, 5);
Object object = new Integer(new String(ach1).trim());
char ach2[] = new char[object.intValue()];
for (; i < object.intValue(); i += j)
{
j = m_inputStream.read(ach2, 0, object.intValue());
m_outputStream.write(ach2, 0, j);
m_outputStream.flush();
}
m_socketStream.write(0);
m_socketStream.flush();
return true;

Page: 376 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
catch ()
{
System.out.println(object);
}
return false;
}
}

Page: 377 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObSQLBuildOption

Full name of class: ObBldMgr.ObSQLBuildOption.class

package ObBldMgr;

synchronized class ObSQLBuildOption


{
public static final String PRIMARY_KEY = "PK".intern();
public static final String FOREIGN_KEY = "FK".intern();
public static final String DEFAULT_VALUES = "DF".intern();
public static final String CHECK_CONSTRAINTS = "CK".intern();
public static final String LONG_NAMES = "LN".intern();
public static final String NAMED_CONSTRAINTS = "CN".intern();
public static final String DATA_SOURCE = "DS".intern();
public static final String TRIGGERS = "TR".intern();
public static final String BEGIN = "#BEGIN".intern();
public static final String END = "#END".intern();
public static final String OPTION = "#OPTION".intern();
public static final String END_OPTION = "#END_OPTION".intern();
private ObParseGeneratedSQL m_parser;
private String m_statement;
private String m_option;

static
{
}

public ObSQLBuildOption(ObParseGeneratedSQL obParseGeneratedSQL, String string)


{
m_parser = obParseGeneratedSQL;
m_option = new String(string);
m_statement = new String();
}

public void add(String string)


{
expression new StringBuffer
dup 1 over 0

Page: 378 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

expression this
dup 1 over 2
push m_statement
invoke valueOf
invoke StringBuffer.<init>
expression string
invoke append
invoke toString
pop m_statement
expression new StringBuffer
dup 1 over 0
expression this
dup 1 over 2
push m_statement
invoke valueOf
invoke StringBuffer.<init>
expression "\n"
invoke append
invoke toString
pop m_statement
}

public boolean enabled()


{
return m_parser.isOptionEnabled(m_option);
}

public String getEnabledText()


{
if (enabled())
return new String(m_statement);
else
return new String();
}

public String getOption()


{
return new String(m_option);
}

public String getText()

Page: 379 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
return new String(m_statement);
}

public boolean isBegin()


{
return m_option.startsWith(BEGIN);
}
}

Page: 380 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObFunction

ObServerApp

Full name of class: ObFunction.ObServerApp.class

This object is hidden from view.

Page: 381 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObVariable

Full name of class: ObFunction.ObVariable.class

package ObRun.ObFunction;

import java.io.*;
import ObRun.ObRTTypes.ObField;
import ObRun.ObRTTypes.ObStructuredFld;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;

public synchronized class ObVariable implements Serializable


{
private ObVariableGroup m_parent;

public ObVariable()
{
m_parent = null;
}

public ObVariable(ObVariableGroup obVariableGroup)


{
setOwner(obVariableGroup);
}

public void clearReferences()


{
m_parent.removeChild(this);
m_parent = null;
}

public Object[] getArrayObj(Field field)


{
return null;
}

public int getFieldCount()


{

Page: 382 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Field afield[] = getClass().getDeclaredFields();


int i = 0;
for (int j = 0; j < afield.length; j++)
{
if (afield[j].getType().isArray())
{
Object aobject1[] = getArrayObj(afield[j]);
if
(aobject1[0].getClass().getSuperclass().getName().equals("ObRun.ObRTTypes.ObStructuredFld"))
{
if (afield[j].getModifiers() == 1)
{
Object aobject2[] = getArrayObj(afield[j]);
ObStructuredFld obStructuredFld2 = (ObStructuredFld)aobject2[0];
int k = obStructuredFld2.getFieldCount();
i += k * aobject2.length;
}
}
else if (afield[j].getModifiers() == 1)
{
Object aobject3[] = getArrayObj(afield[j]);
i += aobject3.length;
}
}
else if (afield[j].getType().getSuperclass().getName().equals("ObRun.ObRTTypes.ObField"))
i++;
else if
(afield[j].getType().getSuperclass().getName().equals("ObRun.ObRTTypes.ObStructuredFld") &&
afield[j].getModifiers() == 1)
{
ObStructuredFld obStructuredFld1 = (ObStructuredFld)getObj(afield[j]);
i += obStructuredFld1.getFieldCount();
}
}
return i;
}

public ObField[] getObFields()


{
int i1 = getFieldCount();
ObField aobField[] = new ObField[i1];

Page: 383 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Field afield[] = getClass().getDeclaredFields();


i1 = 0;
for (int j = 0; j < afield.length; j++)
{
if (afield[j].getType().isArray())
{
Object aobject1[] = getArrayObj(afield[j]);
if (!
aobject1[0].getClass().getSuperclass().getName().equals("ObRun.ObRTTypes.ObStructuredFld"))
{
Object aobject3[] = getArrayObj(afield[j]);
for (int i2 = 0; i2 < aobject3.length; i2++)
{
if (afield[j].getModifiers() == 1)
{
aobField[i1] = (ObField)aobject3[i2];
i1++;
}
}
}
else if (afield[j].getModifiers() == 1)
{
Object aobject2[] = getArrayObj(afield[j]);
for (int k = 0; k < aobject2.length; k++)
{
ObStructuredFld obStructuredFld2 = (ObStructuredFld)aobject2[k];
i1 = obStructuredFld2.getObFields(aobField, i1);
}
}
}
else if (afield[j].getType().getSuperclass().getName().equals("ObRun.ObRTTypes.ObField"))
{
aobField[i1] = (ObField)getObj(afield[j]);
i1++;
}
else if
(afield[j].getType().getSuperclass().getName().equals("ObRun.ObRTTypes.ObStructuredFld") &&
afield[j].getModifiers() == 1)
{
ObStructuredFld obStructuredFld1 = (ObStructuredFld)getObj(afield[j]);
i1 = obStructuredFld1.getObFields(aobField, i1);

Page: 384 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
}
return aobField;
}

public Object getObj(Field field)


{
return null;
}

public ObVariableGroup getOwner()


{
return m_parent;
}

private void readObject(ObjectInputStream objectInputStream)


throws IOException, ClassNotFoundException
{
objectInputStream.defaultReadObject();
}

public void setOwner(ObVariableGroup obVariableGroup)


{
m_parent = obVariableGroup;
m_parent.addChild(this);
}

private void writeObject(ObjectOutputStream objectOutputStream)


throws IOException
{
objectOutputStream.defaultWriteObject();
}
}

Page: 385 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObRun

ObComms

ObAS400Conversation

Full name of class: ObRun.ObComms.ObAS400Conversation.class

package ObRun.ObComms;

import ObRun.ObFunction.*;
import java.awt.*;
import javax.swing.*;
import ObRun.ObEnvironment.ObLog;
import ObRun.ObRTTypes.ObCharFld;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Random;
import javax.swing.text.JTextComponent;

public final synchronized class ObAS400Conversation extends ObConversation implements KeyListener


{
public ObAS400SocketStream m_socket;
String m_userId;
String m_password;
String m_encoding;
public static int m_encryptBufferSize;
private JDialog m_loginDialog;
boolean m_bypassLogin;
boolean m_forceLoginDialog;

static
{
m_encryptBufferSize = 32;
}

public ObAS400Conversation(String string1, String string2)


{

Page: 386 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

super(string1, string2);
m_socket = null;
m_loginDialog = null;
m_bypassLogin = false;
m_forceLoginDialog = false;
String string3 = new String(string1);
string3 = new StringBuffer(String.valueOf(string3)).append(".User").toString();
m_userId = ObApplication.getRunOptionValue(string3);
string3 = new String(string1);
string3 = new StringBuffer(String.valueOf(string3)).append(".Password").toString();
m_password = ObApplication.getRunOptionValue(string3);
string3 = new String(string1);
string3 = new StringBuffer(String.valueOf(string3)).append(".Encoding").toString();
m_encoding = ObApplication.getRunOptionValue(string3);
string3 = new String(string1);
string3 = new StringBuffer(String.valueOf(string3)).append(".BypassAppletLogin").toString();
String string4 = ObApplication.getRunOptionValue(string3);
if (string4 != null && string4.toUpperCase().compareTo("YES") == 0)
m_bypassLogin = true;
m_callInfo = ObCallInfo.createOpenRequest("");
}

public boolean allocate()


{
if (m_allocated)
return true;
if (m_socket != null)
m_allocated = m_socket.connectClient();
else
{
if (m_system == null || m_system.length() < 1 || m_userId == null || m_userId.length() < 1 ||
m_password == null || m_password.length() < 1 || ObApplication.isApplet() && !m_bypassLogin ||
m_forceLoginDialog)
{
boolean flag = getLoginInformation();
if (!flag)
return false;
}
m_socket = new ObAS400SocketStream(m_system, m_port, m_encoding, m_userId, m_password,
m_location);
m_allocated = m_socket.connectClient();

Page: 387 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
if (!m_allocated)
{
ObApplication.log(0, ObApplication.getResString("NotStartRemote"));
return false;
}
if (!openRequest())
return false;
if (m_callInfo.m_rmtExcept == null)
return m_allocated;
ObApplication.logException(m_callInfo.m_rmtExcept);
return false;
}

public boolean callFunction(String string1, String string2, ObFncParameter obFncParameter1)


{
if (!m_allocated)
allocate();
boolean flag = false;
if (string2.equals("API"))
flag = true;
int i1 = 0;
int j1 = 0;
ObFncParameter obFncParameter2 = new ObFncParameter();
try
{
m_callInfo = ObCallInfo.createCallRequest(string1);
obFncParameter2.m_out = (ObVariableGroup)obFncParameter1.m_out.clone();
obFncParameter2.m_in = (ObVariableGroup)obFncParameter1.m_in.clone();
j1 = obFncParameter2.m_in.getLength(flag) + 7;
int k1 = obFncParameter2.m_in.countVariables(flag) + obFncParameter2.m_out.countVariables(flag)
+ 1;
if (flag)
{
j1 -= 7;
k1--;
}
int an[] = new int[2 + k1 * 2];
i1 = 4 * k1 * 2 + 8;
int i2 = i1;
an[0] = 1;

Page: 388 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

an[1] = k1;
byte b = 2;
if (!flag)
{
an[2] = 7;
an[3] = i2;
i2 += 7;
b = 4;
}
i2 = obFncParameter2.m_in.addToHeader(an, b, i2, flag);
i2 = obFncParameter2.m_out.addToHeader(an, b + obFncParameter2.m_in.countVariables(flag) * 2,
i2, flag);
m_socket.write(m_callInfo, (long)(i1 + j1), (long)(i1 + j1 +
obFncParameter2.m_out.getLength(flag)));
byte ab2[] = new byte[i1 + j1];
int j2 = 0;
for (int k2 = 0; k2 < an.length; k2++)
{
ab2[j2++] = (byte)(an[k2] >>> 24 & 255);
ab2[j2++] = (byte)(an[k2] >>> 16 & 255);
ab2[j2++] = (byte)(an[k2] >>> 8 & 255);
ab2[j2++] = (byte)(an[k2] & 255);
}
obFncParameter2.writeRPGBytes(ab2, i1, m_encoding, flag);
m_socket.write(ab2, (long)(i1 + j1), (long)(i1 + j1 + obFncParameter2.m_out.getLength(flag)));
}
catch (Exception e1)
{
ObApplication.logException(e1);
}
try
{
j1 = obFncParameter2.m_in.getLength(flag) + obFncParameter2.m_out.getLength(flag) + 7;
if (flag)
j1 -= 7;
byte ab1[] = m_socket.read(i1 + j1);
if (ab1.length == 0)
{
deAllocate();
return false;
}

Page: 389 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

obFncParameter2.readRPGBytes(ab1, i1, m_encoding, flag);


obFncParameter1.m_out.copy(obFncParameter2.m_out);
obFncParameter1.m_in.copy(obFncParameter2.m_in);
obFncParameter1.setReturningStatus(obFncParameter2.m_returning);
obFncParameter1.setReturnedStatus();
}
catch (Exception e2)
{
ObApplication.logException(e2);
return false;
}
if (m_callInfo.m_rmtExcept != null)
ObApplication.logException(m_callInfo.m_rmtExcept);
return true;
}

public boolean deAllocate()


{
m_callInfo = ObCallInfo.createCloseRequest();
try
{
if (m_allocated)
m_socket.write(m_callInfo);
m_socket.closeErrorSocket();
m_socket.Disconnect();
m_allocated = false;
}
catch (Exception e)
{
m_allocated = false;
ObApplication.logException(e);
}
return true;
}

private String encryptPassword(String string)


{
byte ab1[] = ObAS400SocketStream.encode(string, m_encoding);
string = new String(ab1);
byte ab2[] = new byte[m_encryptBufferSize];
byte ab3[] = new byte[m_encryptBufferSize];

Page: 390 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

int i1 = 0;
Random random = new Random();
byte ab4[] = new byte[1];
for (int j1 = 0; j1 < m_encryptBufferSize; j1++)
{
random.nextBytes(ab4);
byte b1 = ab4[0];
if (b1 < 0)
b1 = (byte)(b1 * -1);
ab2[j1] = b1;
}
for (int k1 = 0; k1 < m_encryptBufferSize; k1++)
{
random.nextBytes(ab4);
byte b2 = ab4[0];
if (b2 < 0)
b2 = (byte)(b2 * -1);
ab3[k1] = b2;
}
int i2 = 1;
for (int j2 = 0; j2 < string.length(); j2++)
{
for (boolean flag = true; flag; flag = isPositionUsed(i1, i2, ab3))
i1 = getRandomValue(random);
ab2[i1] = ab1[j2];
ab3[i2] = (byte)i1;
i2++;
}
ab3[0] = (byte)(i2 - 1);
byte ab5[] = new byte[m_encryptBufferSize * 4];
int k2 = 0;
for (int i3 = 0; i3 < ab2.length; i3++)
{
byte ab6[] = Integer.toHexString(ab2[i3] & 255).getBytes();
if (ab6.length == 1)
{
ab5[k2] = 48;
ab5[k2 + 1] = ab6[0];
}
else
{

Page: 391 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ab5[k2] = ab6[0];
ab5[k2 + 1] = ab6[1];
}
k2 += 2;
}
for (int j3 = 0; j3 < ab3.length; j3++)
{
byte ab7[] = Integer.toHexString(ab3[j3] & 255).getBytes();
if (ab7.length == 1)
{
ab5[k2] = 48;
ab5[k2 + 1] = ab7[0];
}
else
{
ab5[k2] = ab7[0];
ab5[k2 + 1] = ab7[1];
}
k2 += 2;
}
return new String(ab5);
}

public int getChangePasswordInformation()


{
Object aobject[] = new Object[5];
aobject[0] = new JLabel(ObApplication.getString("ExpiredPassword"));
aobject[1] = new JLabel(ObApplication.getString("NewPassword"));
aobject[2] = new JPasswordField();
aobject[3] = new JLabel(ObApplication.getString("VerifyNewPassword"));
aobject[4] = new JPasswordField();
String astring[] = { "OK", "Cancel" };
JOptionPane jOptionPane = new JOptionPane(aobject, -1, -1, null, astring, aobject[0]);
m_loginDialog = jOptionPane.createDialog(null, ObApplication.getString("ChangePasswordTitle"));
m_loginDialog.addKeyListener(this);
m_loginDialog.show();
Object object = jOptionPane.getValue();
if (object == null || !object.equals("OK") && !object.equals("uninitializedValue"))
return 1;
String string1 = ((JPasswordField)aobject[2]).getText();
String string2 = ((JPasswordField)aobject[4]).getText();

Page: 392 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (string1.compareTo(string2) != 0)
return 2;
string1 = encryptPassword(string1.toUpperCase());
m_socket.setNewPassword(string1);
return 0;
}

public boolean getLoginInformation()


{
Object aobject[] = new Object[9];
aobject[0] = new JLabel(ObApplication.getString("System"));
aobject[1] = new JTextField(m_system);
aobject[2] = new JLabel(ObApplication.getString("UserId"));
aobject[3] = new JTextField(m_userId);
aobject[4] = new JLabel(ObApplication.getString("Password"));
aobject[5] = new JPasswordField(m_password);
JCheckBox jCheckBox1 = new JCheckBox(ObApplication.getString("SaveSystem"));
aobject[6] = jCheckBox1;
JCheckBox jCheckBox2 = new JCheckBox(ObApplication.getString("SaveUserId"));
aobject[7] = jCheckBox2;
JCheckBox jCheckBox3 = new JCheckBox(ObApplication.getString("SavePassword"));
aobject[8] = jCheckBox3;
if (ObApplication.isApplet())
{
jCheckBox1.setVisible(false);
jCheckBox2.setVisible(false);
jCheckBox3.setVisible(false);
}
String astring[] = { "OK", "Cancel" };
JOptionPane jOptionPane = new JOptionPane(aobject, -1, -1, null, astring, aobject[0]);
m_loginDialog = jOptionPane.createDialog(null, ObApplication.getString("SignOnInfoTitle"));
m_loginDialog.addKeyListener(this);
m_loginDialog.show();
Object object = jOptionPane.getValue();
if (object == null || !object.equals("OK") && !object.equals("uninitializedValue"))
return false;
m_system = ((JTextField)aobject[1]).getText();
m_userId = ((JTextField)aobject[3]).getText();
m_password = ((JPasswordField)aobject[5]).getText();
if (m_password.length() < 11)
m_password = encryptPassword(m_password.toUpperCase());

Page: 393 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (jCheckBox1.isSelected())
setRunOption(new String("System"), m_system);
if (jCheckBox2.isSelected())
setRunOption(new String("User"), m_userId);
if (jCheckBox3.isSelected())
setRunOption(new String("Password"), m_password);
if (jCheckBox1.isSelected() || jCheckBox2.isSelected() || jCheckBox3.isSelected())
ObApplication.saveLoginInfo(m_location, jCheckBox1.isSelected(), jCheckBox2.isSelected(),
jCheckBox3.isSelected());
return true;
}

private int getRandomValue(Random random)


{
byte ab[] = new byte[1];
random.nextBytes(ab);
byte b = ab[0];
b = (byte)(b << 3);
b = (byte)(b >> 3);
if (b > 29)
b = 29;
if (b < 0)
b = (byte)(b * -1);
return b;
}

private boolean isPositionUsed(int i, int j, byte ab[])


{
for (int k = 0; k <= j; k++)
{
byte b = ab[k];
if (b == i)
return true;
}
return false;
}

public void keyPressed(KeyEvent keyEvent)


{
}

Page: 394 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void keyReleased(KeyEvent keyEvent)


{
if (keyEvent.getKeyChar() == 10)
m_loginDialog.dispose();
}

public void keyTyped(KeyEv

Incomplete source ends here.

Page: 395 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObAS400SocketStream

Full name of class: ObRun.ObComms.ObAS400SocketStream.class

package ObRun.ObComms;

import java.io.*;
import java.net.*;
import ObRun.ObEnvironment.ObLog;
import ObRun.ObFunction.ObApplication;
import ObRun.ObFunction.ObCallInfo;

public final synchronized class ObAS400SocketStream extends ObSocketStream


{
private String m_strFunction;
private String m_location;
private String m_user;
private String m_password;
private String m_newPassword;
private String m_jobDescription;
private String m_jobDescriptionLibrary;
private String m_errorPort;
private String m_dataPort;
protected ServerSocket m_errorSocket;
protected ServerSocket m_dataSocket;
private ObAS400SocketStream$ObAS400CallInfo m_as400Call;
protected Socket m_errSocket;
protected ObAS400SocketStream$AS400DataReading m_dataReadThread;
protected byte m_byteArray[];
public String m_errString;
protected String m_encoding;
protected DataOutputStream m_outputStream;
protected DataInputStream m_inputStream;
protected DataInputStream m_errorStream;
private static int EBCDIC_TOP_D;
private static int EBCDIC_TOP_F;
private static int EBCDIC_BOT_0;
private static int EBCDIC_BOT_1;
private static int EBCDIC_BOT_2;

Page: 396 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

private static int EBCDIC_BOT_3;


private static int EBCDIC_BOT_4;
private static int EBCDIC_BOT_5;
private static int EBCDIC_BOT_6;
private static int EBCDIC_BOT_7;
private static int EBCDIC_BOT_8;
private static int EBCDIC_BOT_9;

static
{
EBCDIC_TOP_D = 208;
EBCDIC_TOP_F = 240;
EBCDIC_BOT_0 = 0;
EBCDIC_BOT_1 = 1;
EBCDIC_BOT_2 = 2;
EBCDIC_BOT_3 = 3;
EBCDIC_BOT_4 = 4;
EBCDIC_BOT_5 = 5;
EBCDIC_BOT_6 = 6;
EBCDIC_BOT_7 = 7;
EBCDIC_BOT_8 = 8;
EBCDIC_BOT_9 = 9;
}

public ObAS400SocketStream()
{
m_newPassword = null;
m_errorSocket = null;
m_dataSocket = null;
m_as400Call = null;
m_errSocket = null;
m_dataReadThread = null;
m_byteArray = null;
m_encoding = null;
m_outputStream = null;
m_inputStream = null;
m_errorStream = null;
}

public ObAS400SocketStream(String string1, Integer integer, String string2, String string3, String
string4, String string5)

Page: 397 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
super(string1, integer);
m_newPassword = null;
m_errorSocket = null;
m_dataSocket = null;
m_as400Call = null;
m_errSocket = null;
m_dataReadThread = null;
m_byteArray = null;
m_encoding = null;
m_outputStream = null;
m_inputStream = null;
m_errorStream = null;
m_encoding = string2;
m_user = createFixLengthString(string3.toUpperCase(), 10);
m_password = createFixLengthString(string4, 128);
m_location = string5;
String string6 = new String(m_location);
string6 = new StringBuffer(String.valueOf(string6)).append(".JobDescription").toString();
String string7 = new String(ObApplication.getRunOptionValue(string6));
if (string7.indexOf(47) < 0)
{
m_jobDescription = createFixLengthString(string7, 10).toUpperCase();
m_jobDescriptionLibrary = new String(" ");
}
else
{
m_jobDescriptionLibrary = createFixLengthString(string7.substring(0, string7.indexOf(47)),
10).toUpperCase();
m_jobDescription = createFixLengthString(string7.substring(string7.indexOf(47) + 1),
10).toUpperCase();
}
}

static String access$0(ObAS400SocketStream obAS400SocketStream)


{
return obAS400SocketStream.m_strFunction;
}

static String access$1(ObAS400SocketStream obAS400SocketStream)


{

Page: 398 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

return obAS400SocketStream.m_user;
}

static String access$2(ObAS400SocketStream obAS400SocketStream)


{
return obAS400SocketStream.m_jobDescription;
}

static String access$3(ObAS400SocketStream obAS400SocketStream)


{
return obAS400SocketStream.m_jobDescriptionLibrary;
}

public void closeErrorSocket()


{
try
{
m_errSocket.close();
m_errSocket = null;
}
catch (Exception e)
{
}
}

public boolean connectClient()


{
try
{
m_socket = new Socket(m_inetAddress, m_port.intValue());
}
catch (UnknownHostException e1)
{
ObApplication.log("Unknown host exception");
return false;
}
catch (Exception e2)
{
ObApplication.log(e2.getMessage());
return false;
}

Page: 399 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (createStreams() != 1)
return false;
m_connected = true;
return true;
}

public static char[] convertAsciiToZoned(String string, int i1, int j1)


{
int k;
char ach[];
int j2;
if (j1 > 0)
{
k = 0;
if (string.indexOf(".") > 0)
{
local = new String(string.substring(string.indexOf(".") + 1));
k = j1 - local.length();
}
else
{
k = j1;
string = string.concat(".");
}
for (local = 0; local < k; local++)
string = string.concat("0");
}
else if (string.indexOf(".") > 0)
string = string.substring(0, string.indexOf("."));
k = i1 - 1;
local = string.toCharArray();
ach = new char[i1 + j1];
for (int i2 = 0; i2 < ach.length; i2++)
ach[i2] = (char)EBCDIC_TOP_F;
if (local[0] == 45)
ach[k] = (char)EBCDIC_TOP_D;
j2 = local.length - 1;
expression local[j2]
switch
case 48: goto 236
case 49: goto 253

Page: 400 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

case 50: goto 270


case 51: goto 287
case 52: goto 304
case 53: goto 321
case 54: goto 338
case 55: goto 355
case 56: goto 372
case 57: goto 389
default: goto 182
continue;
expression ach
expression k
dup 2 over 0
push []
expression EBCDIC_BOT_0
|
convert W to C
pop []
k--;
continue;
expression ach
expression k
dup 2 over 0
push []
expression EBCDIC_BOT_1
|
convert W to C
pop []
k--;
continue;
expression ach
expression k
dup 2 over 0
push []
expression EBCDIC_BOT_2
|
convert W to C
pop []
k--;
continue;
expression ach

Page: 401 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

expression k
dup 2 over 0
push []
expression EBCDIC_BOT_3
|
convert W to C
pop []
k--;
continue;
expression ach
expression k
dup 2 over 0
push []
expression EBCDIC_BOT_4
|
convert W to C
pop []
k--;
continue;
expression ach
expression k
dup 2 over 0
push []
expression EBCDIC_BOT_5
|
convert W to C
pop []
k--;
continue;
expression ach
expression k
dup 2 over 0
push []
expression EBCDIC_BOT_6
|
convert W to C
pop []
k--;
continue;
expression ach
expression k

Page: 402 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

dup 2 over 0
push []
expression EBCDIC_BOT_7
|
convert W to C
pop []
k--;
continue;
expression ach
expression k
dup 2 over 0
push []
expression EBCDIC_BOT_8
|
convert W to C
pop []
k--;
continue;
expression ach
expression k
dup 2 over 0
push []
expression EBCDIC_BOT_9
|
convert W to C
pop []
k--;
j2--;
if (j2 < 0 || k < 0) goto 414 else 176;
return ach;
}

public static char[] convertPackedToZoned(char ach1[], int i1, int j1)


{
int j2;
char ch3;
char ch4;
int k = i1 / 2 + 1;
char ach2[] = new char[i1 + 1];
int i2 = i1 - 1;
char ch1 = ach1[k - 1];

Page: 403 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ch1 = (char)(ch1 >>> 4);


ch1 = (char)(ch1 & 15);
char ch2 = ach1[k - 1];
ch2 = (char)(ch2 << 4);
ach2[i2] = (char)(ch1 | ch2);
i2--;
for (j2 = k - 2; j2 >= 0 && i2 >= 0; j2--)
{
ch3 = ach1[j2];
ch3 = (char)(ch3 >>> 4);
ch3 = (char)(ch3 | 240);
ch4 = ach1[j2];
ch4 = (char)(ch4 | 240);
ach2[i2] = ch4;
if (--i2 < 0)
break;
ach2[i2] = ch3;
i2--;
}
return ach2;
}

public static String convertZonedToAscii(char ach1[], int i1, int j1)


{
int k = 0;
char ach2[] = new char[i1 + j1];
char ch = ach1[i1 - 1];
ch = (char)(ch & 240);
if ((ch ^ 240) != 0)
{
ach2 = new char[ach2.length + 1];
ach2[k] = '-';
k++;
}
boolean flag = true;
for (int i2 = 0; i2 < i1; i2++)
{
if (k <= i1 + 3)
{
if (j1 > 0 && i2 == i1 - j1)
{

Page: 404 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (flag == 1)
{
ach2[k] = '0';
k++;
}
ach2[k] = '.';
k++;
flag = false;
}
int j2 = ach1[i2];
j2 &= 15;
switch (j2)
{
case 0:
if (flag == 0)
{
ach2[k] = '0';
k++;
}
break;

case 1:
ach2[k] = '1';
k++;
flag = false;
break;

case 2:
ach2[k] = '2';
k++;
flag = false;
break;

case 3:
ach2[k] = '3';
k++;
flag = false;
break;

case 4:
ach2[k] = '4';

Page: 405 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

k++;
flag = false;
break;

case 5:
ach2[k] = '5';
k++;
flag = false;
break;

case 6:
ach2[k] = '6';
k++;
flag = false;
break;

case 7:
ach2[k] = '7';
k++;
flag = false;
break;

case 8:
ach2[k] = '8';
k++;
flag = false;
break;

case 9:
ach2[k] = '9';
k++;
flag = false;
break;
}
}
}
return new String(ach2);
}

public static char[] convertZonedToPacked(char ach1[], int i1, int j1)


{

Page: 406 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

char ach2[];
char ch1;
int j2;
int k2;
int i3;
char ch3;
int k1 = i1 / 2 + 1;
ach2 = new char[k1];
for (int i2 = 0; i2 < ach2.length; i2++)
ach2[i2] = '\0';
ch1 = ach1[i1 - 1];
ch1 = (char)(ch1 >>> 4);
ch1 = (char)(ch1 & 15);
j2 = k1 - 1;
expression ach2
expression j2
dup 2 over 0
push []
expression ch1
|
convert W to C
pop []
k2 = 1;
i3 = i1 - 1;
char ch2 = ach1[i3];
if (k2 != 0)
ch2 = (char)(ch2 << 4);
else
ch3 = (char)(ch2 & 15);
expression ach2
expression j2
dup 2 over 0
push []
expression ch3
|
convert W to C
pop []
if (k2 != 0)
j2--;
k2 ^= 1;
i3--;

Page: 407 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (i3 >= 0) goto 83 else 145;


return ach2;
}

public static String createFixLengthString(String string, int i)


{
if (string == null)
string = new String();
StringBuffer stringBuffer = new StringBuffer(string);
for (int j = 0; j < i - string.length(); j++)
stringBuffer = stringBuffer.append(" ");
return stringBuffer.toString();
}

public boolean createStreams()


{
try
{
IOException e;
if (m_output == null)
m_outputStream = new DataOutputStream(m_socket.getOutputStream());
else
m_outputStream = new DataOutputStream(m_output);
if (m_input == null)
m_inputStream = new DataInputStream(m_socket.getInputStream());
else
m_inputStream = new DataInputStream(m_input);
return true;
}
catch ()
{
ObApplication.log(ObApplication.getResString("ConnectFailed"));
}
ObApplication.logException(e);
return false;
}

public static String decode(byte ab[], String string)


{
if (string == null)
return new String(ab, 0, ab.length);

Page: 408 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

try
{
return new String(ab, 0, ab.length, string);
}
catch (Exception e)
{
return new String(ab, 0, ab.length);
}
}

public static byte[] encode(String string1, String string2)


{
if (string2 == null)
return string1.getBytes();
try
{
return string1.getBytes(string2);
}
catch (Exception e)
{
return string1.getBytes();
}
}

public Object read()


{
return read(1);
}

public byte[] read(int i)


{
m_byteArray = new byte[i];
try
{
m_dataReadThread = new ObAS400SocketStream$AS400DataReading(this);
m_dataReadThread.start();
while (m_dataReadThread != null && m_dataReadThread.isAlive())
Thread.sleep(100);
if (m_dataReadThread == null)
{
ObApplication.log(0, m_errString);

Page: 409 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_errString = null;
return m_byteArray = new byte[0];
}
}
catch (Exception e)
{
ObApplication.logException(e);
}
return m_byteArray;
}

public void setNewPassword(String string)


{
m_newPassword = string;
}

public void write(Object object)


{
write(object, 0L, 0L);
}

public void write(Object object, long i, long j)


{
m_errString = null;
String string1 = new String();
if (object instanceof ObCallInfo)
string1 = ((ObCallInfo)object).m_operation;
try
{
if (string1.equals(ObCallInfo.OBCALL_OPEN))
{
m_outputStream.write(encode(m_user, m_encoding), 0, 10);
m_outputStream.write(encode(m_password, m_encoding), 0, 128);
byte ab1[] = null;
if (m_newPassword == null)
ab1 = encode(new String("\0\0"), m_encoding);
else
ab1 = encode(m_newPassword, m_encoding);
m_outputStream.write(ab1, 0, ab1.length);
String string2 = new String("/" + m_jobDescription);
m_outputStream.write(encode(createFixLengthString(string2, 29), m_encoding), 0, 29);

Page: 410 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_outputStream.flush();
byte ab2[] = new byte[1024];
int k = m_inputStream.read(ab2);
if (k != 1 || ab2[0] != 0)
{
m_errString = decode(ab2, m_encoding).trim();
return;
}
String string3 = new String(m_socket.getLocalAddress().getHostAddress());
m_outputStream.write(encode(createFixLengthString(string3, 50), m_encoding), 0, 50);
m_errorSocket = new ServerSocket(0);
m_dataSocket = new ServerSocket(0);
m_errorPort = new String(String.valueOf(m_errorSocket.getLocalPort()));
m_dataPort = new String(String.valueOf(m_dataSocket.getLocalPort()));
m_outputStream.write(encode(createFixLengthString(m_errorPort, 10), m_encoding), 0, 10);
m_outputStream.flush();
m_outputStream.write(encode(createFixLengthString(m_dataPort, 10), m_encoding), 0, 10);
m_outputStream.flush();
m_socket.close();
m_socket = null;
m_outputStream = null;
m_errSocket = m_errorSocket.accept();
m_socket = m_dataSocket.accept();
m_outputStream = new DataOutputStream(m_socket.getOutputStream());
m_inputStream = new DataInputStream(m_socket.getInputStream());
m_errorStream = new DataInputStream(m_errSocket.getInputStream());
ObAS400SocketStream$AS400ErrorHandling obAS400SocketStream$AS400ErrorHandling = new
ObAS400SocketStream$AS400ErrorHandling(this);
obAS400SocketStream$AS400ErrorHandling.start();
}
else
{
if (string1.equals(ObCallInfo.OBCALL_CLOSE))
return;
if (string1.equals(ObCallInfo.OBCALL_FUNCTION))
{
m_as400Call = new ObAS400SocketStream$ObAS400CallInfo(this);
if (m_outputStream == null)
m_outputStream = new DataOutputStream(m_socket.getOutputStream());
if (m_inputStream == null)
m_inputStream = new DataInputStream(m_socket.getInputStream());

Page: 411 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_as400Call.m_program = ((ObCallInfo)object).m_functionName.substring(0,
((ObCallInfo)object).m_functionName.indexOf("_ObFnc")).toUpperCase();
m_as400Call.m_paramLen = (int)j;
m_as400Call.m_inputLen = (int)i;
if (m_outputStream != null)
{
m_outputStream.write(m_as400Call.getAllBytes(), 0,
m_as400Call.getAllBytes().length);
m_outputStream.flush();
}
}
else if (m_outputStream != null)
{
m_outputStream.write(([B)object, 0, (int)i);
m_outputStream.flush();
}
}
}
catch (StreamCorruptedException e1)
{
ObApplication.log(ObApplication.getResString("StreamCorruption"));
ObApplication.logException(e1);
}
catch (IOException e2)
{
ObApplication.log(ObApplication.getResString("IOExceptionRead"));
ObApplication.logException(e2);
}
catch (Exception e3)
{
ObApplication.logException(e3);
}
}
}

Page: 412 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObAS400SocketStream$AS400DataReading

Full name of class: ObRun.ObComms.ObAS400SocketStream$AS400DataReading.class

package ObRun.ObComms;

import java.io.DataInputStream;

synchronized class ObAS400SocketStream$AS400DataReading extends Thread


{
private final ObAS400SocketStream this$0 = obAS400SocketStream;

ObAS400SocketStream$AS400DataReading(ObAS400SocketStream obAS400SocketStream)
{
}

public void run()


{
try
{
this$0.m_inputStream.readFully(this$0.m_byteArray);
}
catch (Exception e)
{
}
}
}

Page: 413 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObAS400SocketStream$AS400ErrorHandling

Full name of class: ObRun.ObComms.ObAS400SocketStream$AS400ErrorHandling.class

package ObRun.ObComms;

import java.io.DataInputStream;
import java.io.DataOutputStream;

synchronized class ObAS400SocketStream$AS400ErrorHandling extends Thread


{
private final ObAS400SocketStream this$0 = obAS400SocketStream;

ObAS400SocketStream$AS400ErrorHandling(ObAS400SocketStream obAS400SocketStream)
{
}

public void run()


{
byte ab[] = new byte[1024];
while (true)
{
try
{
this$0.m_errorStream.read(ab);
this$0.m_errString = ObAS400SocketStream.decode(ab, this$0.m_encoding).trim();
this$0.m_dataReadThread.stop();
this$0.m_dataReadThread = null;
this$0.m_outputStream = null;
this$0.m_inputStream = null;
}
catch (Exception e)
{
}
}
}
}

Page: 414 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObAS400SocketStream$ObAS400CallInfo

Full name of class: ObRun.ObComms.ObAS400SocketStream$ObAS400CallInfo.class

package ObRun.ObComms;

import ObRun.ObFunction.ObVersionInfo;

synchronized class ObAS400SocketStream$ObAS400CallInfo


{
private final ObAS400SocketStream this$0 = obAS400SocketStream;
public String m_program;
public String m_programLib;
public int m_operation;
public int m_paramLen;
public String m_userId;
public String m_jobd;
public String m_jobdLib;
public short m_versionInfo;
public short m_version;
public short m_release;
public short m_level;
public short m_fixLevel;
public short m_debugBuild;
public String m_padding;
public int m_inputLen;

public ObAS400SocketStream$ObAS400CallInfo(ObAS400SocketStream obAS400SocketStream)


{
m_program =
ObAS400SocketStream.createFixLengthString(ObAS400SocketStream.access$0(obAS400SocketStream),
10).toUpperCase();
m_programLib = ObAS400SocketStream.createFixLengthString(new String(), 10).toUpperCase();
m_operation = 1;
m_paramLen = 0;
m_userId = ObAS400SocketStream.access$1(obAS400SocketStream);
m_jobd = ObAS400SocketStream.access$2(obAS400SocketStream);
m_jobdLib = ObAS400SocketStream.access$3(obAS400SocketStream);
String string = new String(ObVersionInfo.getVersionString());

Page: 415 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_versionInfo = new Short(string.substring(1, 2)).shortValue();


m_version = new Short(string.substring(2, 3)).shortValue();
m_release = new Short(string.substring(3, 4)).shortValue();
m_level = new Short(string.substring(4, 5)).shortValue();
m_fixLevel = new Short(string.substring(5, 8)).shortValue();
m_debugBuild = 0;
m_padding = new String(" ");
m_inputLen = 0;
}

public byte[] getAllBytes()


{
byte ab1[] = new byte[76];
byte ab2[] = ObAS400SocketStream.encode(m_program, this$0.m_encoding);
for (int i1 = 0; i1 < ab2.length; i1++)
ab1[i1] = ab2[i1];
ab2 = ObAS400SocketStream.encode(m_programLib, this$0.m_encoding);
int j1 = 0;
int k1 = 10;
while (j1 < ab2.length)
{
ab1[k1] = ab2[j1];
j1++;
k1++;
}
ab1[20] = (byte)(m_operation >>> 24 & 255);
ab1[21] = (byte)(m_operation >>> 16 & 255);
ab1[22] = (byte)(m_operation >>> 8 & 255);
ab1[23] = (byte)(m_operation & 255);
ab1[24] = (byte)(m_paramLen >>> 24 & 255);
ab1[25] = (byte)(m_paramLen >>> 16 & 255);
ab1[26] = (byte)(m_paramLen >>> 8 & 255);
ab1[27] = (byte)(m_paramLen & 255);
ab2 = ObAS400SocketStream.encode(m_userId, this$0.m_encoding);
int i2 = 0;
int j2 = 28;
while (i2 < ab2.length)
{
ab1[j2] = ab2[i2];
i2++;
j2++;

Page: 416 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
ab2 = ObAS400SocketStream.encode(m_jobd, this$0.m_encoding);
int k2 = 0;
int i3 = 38;
while (k2 < ab2.length)
{
ab1[i3] = ab2[k2];
k2++;
i3++;
}
ab2 = ObAS400SocketStream.encode(m_jobdLib, this$0.m_encoding);
int j3 = 0;
int k3 = 48;
while (j3 < ab2.length)
{
ab1[k3] = ab2[j3];
j3++;
k3++;
}
ab1[58] = (byte)(m_versionInfo >>> 8 & 255);
ab1[59] = (byte)(m_versionInfo & 255);
ab1[60] = (byte)(m_version >>> 8 & 255);
ab1[61] = (byte)(m_version & 255);
ab1[62] = (byte)(m_release >>> 8 & 255);
ab1[63] = (byte)(m_release & 255);
ab1[64] = (byte)(m_level >>> 8 & 255);
ab1[65] = (byte)(m_level & 255);
ab1[66] = (byte)(m_fixLevel >>> 8 & 255);
ab1[67] = (byte)(m_fixLevel & 255);
ab1[68] = (byte)(m_debugBuild >>> 8 & 255);
ab1[69] = (byte)(m_debugBuild & 255);
ab2 = ObAS400SocketStream.encode(m_padding, this$0.m_encoding);
int i4 = 0;
int j4 = 70;
while (i4 < ab2.length)
{
ab1[j4] = ab2[i4];
i4++;
j4++;
}
ab1[72] = (byte)(m_inputLen >>> 24 & 255);

Page: 417 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ab1[73] = (byte)(m_inputLen >>> 16 & 255);


ab1[74] = (byte)(m_inputLen >>> 8 & 255);
ab1[75] = (byte)(m_inputLen & 255);
return ab1;
}
}

Page: 418 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObClientConnect

Full name of class: ObRun.ObComms.ObClientConnect.class

package ObRun.ObComms;

import ObRun.ObFunction.*;
import ObRun.ObEnvironment.ObLog;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.util.Date;

public final synchronized class ObClientConnect extends Thread


{
private static int m_clientId;
private ObService m_service;
private Socket m_socket;
private ThreadGroup m_threadGroup;
private ObSocketStream m_socketStream;
private Date m_startTime;
private int m_callsMade;
private ObApplication m_app;
private ObCallInfo m_callInfo;
private String m_clientName;
private String m_functionName;
private boolean m_isJavaClient;
private boolean m_toomanyClients;
private Integer m_maxClients;

static
{
m_clientId = 0;
}

public ObClientConnect(ObService obService, Socket socket, ThreadGroup threadGroup, boolean flag,


Integer integer)
{

Page: 419 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

super(threadGroup, new StringBuffer("Client #").append(m_clientId = m_clientId + 1).toString());


m_isJavaClient = true;
m_service = obService;
m_socket = socket;
m_threadGroup = threadGroup;
m_startTime = new Date();
m_callsMade = 0;
m_callInfo = null;
m_toomanyClients = flag;
m_maxClients = integer;
start();
}

protected void callFunction()


{
ObFncParameter obFncParameter = null;
m_callInfo.m_rmtExcept = null;
m_functionName = m_callInfo.m_functionName;
Object aobject[] = { m_callInfo.m_functionName };
ObApplication.log(4, ObApplication.getResString("ClientCall"), aobject, getClientAddress());
try
{
obFncParameter = (ObFncParameter)m_socketStream.read();
}
catch (Exception e1)
{
ObApplication.logException(e1);
}
m_callsMade++;
if (obFncParameter != null)
{
obFncParameter.m_environment = m_callInfo.m_environment;
ObApplication.obCallFunction(obFncParameter, m_callInfo.m_functionName, "", "Java",
m_callInfo.m_location);
try
{
m_socketStream.write(m_callInfo);
m_socketStream.write(obFncParameter);
obFncParameter.clearReferences();
}
catch (Exception e2)

Page: 420 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
ObApplication.logException(e2);
}
obFncParameter.clearReferences();
}
}

protected void closeClient()


{
try
{
m_socketStream.write(m_callInfo);
}
catch (Exception e)
{
ObApplication.logException(e);
}
}

protected void endClient()


{
try
{
m_service.removeClient(this);
ObApplication.log(4, ObApplication.getResString("EndClient"), getClientAddress());
reportStatistics();
if (m_app != null)
m_app.clearReferences();
m_app = null;
m_socket.close();
}
catch (Exception e)
{
}
}

public String getClientAddress()


{
return m_socket.getInetAddress().toString();
}

Page: 421 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public String getClientName()


{
return m_clientName;
}

public String getCurrentFunction()


{
return m_functionName;
}

public boolean isJavaClient()


{
return m_isJavaClient;
}

protected void openClient()


{
m_callInfo.m_rmtExcept = null;
try
{
m_app = new ObServerApp(m_service, m_clientName);
m_app.setEnvironment(m_callInfo.m_environment);
registerNotifications();
}
catch (Exception e1)
{
ObApplication.logException(e1);
}
try
{
m_socketStream.write(m_callInfo);
}
catch (Exception e2)
{
ObApplication.logException(e2);
}
ObApplication.log(4, ObApplication.getResString("StartClient"), getClientAddress());
}

protected void raiseError(String string)


{

Page: 422 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_callInfo.m_rmtExcept = new ObRemoteException(string);


}

protected void registerNotifications()


{
if (m_callInfo.m_notify == null)
return;
else
}

protected void reportStatistics()


{
String string1 = new String(ObApplication.getResString("CallsMade"));
String string2 = new String(ObApplication.getResString("ClientStart"));
Integer integer = new Integer(m_callsMade);
string1 = new StringBuffer(String.valueOf(string1)).append(integer.toString()).toString();
string2 = new StringBuffer(String.valueOf(string2)).append(m_startTime.toString()).toString();
ObApplication.log(1, string2);
ObApplication.log(1, string1);
}

public void run()


{
Exception e2;
ObClientType obClientType = new ObClientType();
if (obClientType.isJavaClient(m_socket))
{
m_socketStream = new ObObjectSocketStream();
m_socketStream.connectListener(m_socket, obClientType.m_inputStream,
obClientType.m_outputStream);
}
else
{
m_socketStream = new ObDispatchSocketStream();
m_socketStream.connectListener(m_socket, obClientType.m_inputStream,
obClientType.m_outputStream);
m_isJavaClient = false;
}
m_callInfo = (ObCallInfo)m_socketStream.read();
if (m_callInfo == null)
return;

Page: 423 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_clientName = m_callInfo.m_userId;
if (!m_callInfo.m_operation.equals(ObCallInfo.OBCALL_OPEN)) goto 239 else 141;
if (m_toomanyClients) goto 155 else 148;
openClient();
m_callInfo.m_rmtExcept = null;
try
{
m_app = new ObServerApp(m_service, m_clientName);
String string = new
StringBuffer(String.valueOf(ObApplication.getResString("ToomanyClients"))).append(m_maxClients).toString();
raiseError(string);
m_socketStream.write(m_callInfo);
}
catch (Exception e1)
{
ObApplication.logException(e1);
}
if (!m_callInfo.m_operation.equals(ObCallInfo.OBCALL_CLOSE)) goto 262 else 255;
closeClient();
if (m_callInfo.m_operation.equals(ObCallInfo.OBCALL_FUNCTION))
callFunction();
else
raiseError(ObApplication.getResString("InvalidOp"));
pop e2
ObApplication.logException(e2);
pop local2
endClient();
endfinalize local2
}

public void terminate()


{
endClient();
}
}

Page: 424 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObClientListen

Full name of class: ObRun.ObComms.ObClientListen.class

package ObRun.ObComms;

import java.net.Socket;

public final synchronized class ObClientListen extends ObSocketListen


{
public ObClientListen(int i)
{
super(i);
start();
}

public void createNewClient(Socket socket, boolean flag, Integer integer)


{
ObNotifyConnect obNotifyConnect = new ObNotifyConnect(this, socket, m_threadGroup, flag, integer);
addClient(obNotifyConnect);
}

protected void reportStatistics()


{
}
}

Page: 425 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObClientType

Full name of class: ObRun.ObComms.ObClientType.class

package ObRun.ObComms;

import java.io.*;
import ObRun.ObEnvironment.ObLog;
import ObRun.ObFunction.ObApplication;
import ObRun.ObFunction.ObVersionInfo;
import java.net.Socket;

synchronized class ObClientType


{
public DataInputStream m_inputStream;
public DataOutputStream m_outputStream;

public ObClientType()
{
m_inputStream = null;
m_outputStream = null;
}

public boolean isJavaClient(Socket socket)


{
boolean flag;
flag = true;
try
{
m_inputStream = new DataInputStream(socket.getInputStream());
m_outputStream = new DataOutputStream(socket.getOutputStream());
byte b = m_inputStream.readByte();
if (b != 74)
{
flag = false;
if (b == 67)
{
if (m_inputStream.available() > 0)
m_inputStream.readByte();

Page: 426 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_outputStream.write(0);
m_outputStream.flush();
char ach[] = new char[9];
for (int i = 0; i < 9; i++)
ach[i] = m_inputStream.readByte();
if (m_inputStream.available() > 0)
m_inputStream.readByte();
String string1 = new String(ach);
string1 = string1.substring(0, 8);
if (!ObVersionInfo.confirmVersion(string1))
{
String string2 = new String(string1 + ObApplication.getString("JavaVersion") +
ObVersionInfo.getVersionString() + ".");
byte ab[] = string2.getBytes();
for (int j = 0; j < ab.length; j++)
m_outputStream.writeByte(ab[j]);
Exception e2 = new Exception(string2);
ObApplication.logException(e2);
}
m_outputStream.write(0);
m_outputStream.flush();
}
}
}
catch (Exception e1)
{
ObApplication.log(0, ObApplication.getResString("ErrorType"));
ObApplication.logException(e1);
}
drop
return flag;
}
}

Page: 427 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObConversation

Full name of class: ObRun.ObComms.ObConversation.class

package ObRun.ObComms;

import ObRun.ObFunction.ObApplication;

public synchronized abstract class ObConversation


{
protected String m_location;
protected String m_system;
protected Integer m_port;
protected boolean m_allocated;
protected ObRun.ObFunction.ObCallInfo m_callInfo;

public ObConversation(String string1, String string2)


{
m_allocated = false;
m_location = new String(string1);
m_system = new String(string2);
if (m_system == null || m_system.length() == 0)
ObApplication.log(new
StringBuffer(String.valueOf(ObApplication.getResString("NoSystem"))).append(string1).toString());
String string3 = new String(string1);
string3 = new StringBuffer(String.valueOf(string3)).append(".Port").toString();
String string4 = ObApplication.getRunOptionValue(string3);
if (string4 == null || string4.length() == 0)
ObApplication.log(new
StringBuffer(String.valueOf(ObApplication.getResString("NoPort"))).append(string1).toString());
else
m_port = new Integer(string4);
}

public abstract boolean allocate();


public boolean allocated()
{
return m_allocated;
}

Page: 428 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public abstract boolean deAllocate();


public Integer getPort()
{
return new Integer(m_port.intValue());
}

public String getSystem()


{
return new String(m_system);
}
}

Page: 429 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObDataSocketStream

Full name of class: ObRun.ObComms.ObDataSocketStream.class

package ObRun.ObComms;

import java.io.*;
import ObRun.ObFunction.ObApplication;
import java.net.Socket;

public synchronized abstract class ObDataSocketStream extends ObSocketStream


{
protected BufferedWriter m_outputStream;
protected BufferedReader m_inputStream;
protected int m_dataLength;

public ObDataSocketStream()
{
m_outputStream = null;
m_inputStream = null;
m_dataLength = 0;
}

public ObDataSocketStream(String string, Integer integer)


{
super(string, integer);
m_outputStream = null;
m_inputStream = null;
m_dataLength = 0;
}

public boolean createStreams()


{
try
{
IOException e;
if (m_output == null)
m_outputStream = new BufferedWriter(new OutputStreamWriter(m_socket.getOutputStream()));
else

Page: 430 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_outputStream = new BufferedWriter(new OutputStreamWriter(m_output));


if (m_input == null)
m_inputStream = new BufferedReader(new InputStreamReader(m_socket.getInputStream()));
else
m_inputStream = new BufferedReader(new InputStreamReader(m_input));
return true;
}
catch ()
{
ObApplication.log(ObApplication.getResString("ConnectFailed"));
}
ObApplication.logException(e);
return false;
}

public static synchronized void dumpBuffer(char ach[])


{
System.out.println("Start Dump Buffer >>");
for (int i = 0; i < ach.length; i++)
System.out.print(ach[i]);
System.out.println("");
System.out.println("<< End Dump Buffer");
}

public BufferedReader getInputStream()


{
return m_inputStream;
}

public BufferedWriter getOutputStream()


{
return m_outputStream;
}

public abstract Object read();


public abstract void write(Object object);
}

Page: 431 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObDispatchSocketStream

Full name of class: ObRun.ObComms.ObDispatchSocketStream.class

package ObRun.ObComms;

import ObRun.ObFunction.*;
import java.io.*;
import java.net.InetAddress;
import java.net.Socket;

public final synchronized class ObDispatchSocketStream extends ObDataSocketStream


{
private String m_strFunction;
private String m_strEnv;

public ObDispatchSocketStream()
{
}

public ObDispatchSocketStream(String string, Integer integer)


{
super(string, integer);
}

public Object read()


{
try
{
char ach1[] = new char[9];
m_inputStream.read(ach1, 0, 9);
m_inputStream.read();
String string1 = new String(ach1);
if (string1.equals(ObCallInfo.OBCALL_OPEN))
{
char ach2[] = new char[32];
m_inputStream.read(ach2, 0, 32);
m_inputStream.read();
String string2 = new String(ach2);

Page: 432 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

string2 = string2.trim();
ObCallInfo obCallInfo3 = ObCallInfo.createOpenRequest(string2);
obCallInfo3.m_userId = m_socket.getInetAddress().toString();
return obCallInfo3;
}
if (string1.equals(ObCallInfo.OBCALL_CLOSE))
{
ObCallInfo obCallInfo1 = ObCallInfo.createCloseRequest();
obCallInfo1.m_userId = m_socket.getInetAddress().toString();
return obCallInfo1;
}
if (string1.equals(ObCallInfo.OBCALL_FUNCTION))
{
char ach3[] = new char[32];
m_inputStream.read(ach3, 0, 32);
m_inputStream.read();
m_strEnv = new String(ach3);
m_strEnv = m_strEnv.trim();
m_inputStream.read(ach3, 0, 32);
m_inputStream.read();
m_strFunction = new String(ach3);
m_strFunction = m_strFunction.trim();
ObCallInfo obCallInfo2 = new ObCallInfo("");
obCallInfo2.m_operation = new String(ObCallInfo.OBCALL_FUNCTION);
obCallInfo2.m_functionName = new
StringBuffer(String.valueOf(m_strFunction)).append("_ObFnc").toString();
obCallInfo2.m_environment = m_strEnv;
obCallInfo2.m_userId = m_socket.getInetAddress().toString();
return obCallInfo2;
}
try
{
m_dataLength = new Integer(string1).intValue();
return ObFncParameter.createFromStream(m_inputStream, m_dataLength, m_strFunction,
m_strEnv);
}
catch (NumberFormatException e1)
{
return null;
}
}

Page: 433 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

catch (StreamCorruptedException e2)


{
ObApplication.log(ObApplication.getResString("StreamCorruption"));
ObApplication.logException(e2);
return null;
}
catch (IOException e3)
{
ObApplication.log(ObApplication.getResString("IOExceptionRead"));
ObApplication.logException(e3);
return null;
}
catch (Exception e4)
{
ObApplication.logException(e4);
}
return null;
}

public void write(Object object)


{
try
{
if (object.getClass().getName().equals("ObRun.ObFunction.ObCallInfo"))
{
if (((ObCallInfo)object).m_operation.equals(ObCallInfo.OBCALL_OPEN) &&
((ObCallInfo)object).m_rmtExcept == null)
{
m_outputStream.write(0);
m_outputStream.flush();
}
if (((ObCallInfo)object).m_operation.equals(ObCallInfo.OBCALL_CLOSE) &&
((ObCallInfo)object).m_rmtExcept == null)
return;
if (((ObCallInfo)object).m_rmtExcept != null)
{
String string = ((ObCallInfo)object).m_rmtExcept.toString();
m_outputStream.write(string.toCharArray(), 0, string.length());
m_outputStream.write(0);
m_outputStream.flush();
return;

Page: 434 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
}
else if (object.getClass().getName().equals("ObRun.ObFunction.ObFncParameter"))
((ObFncParameter)object).writeToStream(m_outputStream, m_dataLength);
}
catch (Exception e)
{
ObApplication.log(ObApplication.getResString("IOExceptionWrite"));
ObApplication.logException(e);
}
}
}

Page: 435 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObNotifyConnect

Full name of class: ObRun.ObComms.ObNotifyConnect.class

package ObRun.ObComms;

import ObRun.ObFunction.ObApplication;
import java.net.Socket;

public final synchronized class ObNotifyConnect extends Thread


{
private static int m_serverId;
private ObClientListen m_listener;
private Socket m_socket;
private ThreadGroup m_threadGroup;
private ObObjectSocketStream m_socketStream;
private boolean m_toomanyClients;
private Integer m_maxClients;

static
{
m_serverId = 0;
}

public ObNotifyConnect(ObClientListen obClientListen, Socket socket, ThreadGroup threadGroup, boolean


flag, Integer integer)
{
super(threadGroup, new StringBuffer("Server #").append(m_serverId = m_serverId + 1).toString());
m_listener = obClientListen;
m_socket = socket;
m_threadGroup = threadGroup;
m_toomanyClients = flag;
m_maxClients = integer;
start();
}

public void endConnect()


{
m_listener.removeClient(this);

Page: 436 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObApplication.log(ObApplication.getResString("EndNotify"));
}

public void run()


{
ObNotifyEvent obNotifyEvent;
Exception e;
m_socketStream = new ObObjectSocketStream();
m_socketStream.connectListener(m_socket);
obNotifyEvent = null;
obNotifyEvent = (ObNotifyEvent)m_socketStream.read();
ObApplication.log(new
StringBuffer(String.valueOf(ObApplication.getResString("SvrRec"))).append(obNotifyEvent.getServerName()).to
String());
if (true) goto 25 else 68;
pop e
m_listener.removeClient(this);
ObApplication.logException(e);
pop local2
endConnect();
endfinalize local2
}
}

Page: 437 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObNotifyEvent

Full name of class: ObRun.ObComms.ObNotifyEvent.class

package ObRun.ObComms;

public final synchronized class ObNotifyEvent


{
private String m_eventName;
private String m_serverName;

public ObNotifyEvent(String string1, String string2)


{
m_eventName = new String(string1);
m_serverName = new String(string2);
}

public String getServerName()


{
return new String(m_serverName);
}
}

Page: 438 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObObjectConversation

Full name of class: ObRun.ObComms.ObObjectConversation.class

package ObRun.ObComms;

import ObRun.ObFunction.*;
import ObRun.ObRTTypes.ObCharFld;

public final synchronized class ObObjectConversation extends ObConversation


{
public ObObjectSocketStream m_socket;
protected String m_environment;

public ObObjectConversation(String string1, String string2)


{
super(string1, string2);
m_socket = null;
String string3 = new String(string1);
string3 = new StringBuffer(String.valueOf(string3)).append(".Environment").toString();
m_environment = ObApplication.getRunOptionValue(string3);
if (m_environment == null || m_environment.length() == 0)
m_environment = new String("Default");
m_callInfo = ObCallInfo.createOpenRequest(m_environment);
}

public boolean allocate()


{
if (m_allocated)
return true;
if (m_socket != null)
m_allocated = m_socket.connectClient();
else
{
m_socket = new ObObjectSocketStream(m_system, m_port);
m_allocated = m_socket.connectClient();
}
if (!m_allocated)
{

Page: 439 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObApplication.logException(new ObRemoteException(ObApplication.getResString("NotStartRemote")));
return false;
}
m_callInfo = ObCallInfo.createOpenRequest(m_environment);
try
{
m_socket.write(m_callInfo);
m_callInfo = (ObCallInfo)m_socket.read();
}
catch (Exception e)
{
ObApplication.logException(e);
return false;
}
if (m_callInfo.m_rmtExcept == null)
return m_allocated;
ObApplication.logException(m_callInfo.m_rmtExcept);
return false;
}

public void callFunction(String string, ObFncParameter obFncParameter1)


{
Object object;
try
{
m_callInfo = ObCallInfo.createCallRequest(string);
m_callInfo.m_environment = m_environment;
ObFncParameter obFncParameter2 = new ObFncParameter();
obFncParameter2.m_out = (ObVariableGroup)obFncParameter1.m_out.clone();
obFncParameter2.m_in = (ObVariableGroup)obFncParameter1.m_in.clone();
m_socket.write(m_callInfo);
m_socket.write(obFncParameter2);
object = null;
}
catch ()
{
ObApplication.logException(object);
}
try
{
m_callInfo = (ObCallInfo)m_socket.read();

Page: 440 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

object = (ObFncParameter)m_socket.read();
obFncParameter1.m_out.copy(object.m_out);
obFncParameter1.m_in.copy(object.m_in);
obFncParameter1.setReturningStatus(object.m_returning);
obFncParameter1.setReturnedStatus();
obFncParameter1.setCallStatus(object.m_functionCall.booleanValue());
}
catch ()
{
ObApplication.logException(object);
return;
}
if (m_callInfo.m_rmtExcept != null)
ObApplication.logException(m_callInfo.m_rmtExcept);
}

public boolean deAllocate()


{
m_callInfo = ObCallInfo.createCloseRequest();
try
{
m_socket.write(m_callInfo);
m_callInfo = (ObCallInfo)m_socket.read();
m_socket.Disconnect();
m_allocated = false;
}
catch (Exception e)
{
m_allocated = false;
ObApplication.logException(e);
}
return true;
}

public String getEnvironment()


{
return new String(m_environment);
}
}

Page: 441 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObObjectSocketStream

Full name of class: ObRun.ObComms.ObObjectSocketStream.class

package ObRun.ObComms;

import java.io.*;
import ObRun.ObFunction.ObApplication;
import java.net.Socket;

public final synchronized class ObObjectSocketStream extends ObSocketStream


{
private ObjectOutputStream m_outputStream;
private ObjectInputStream m_inputStream;

public ObObjectSocketStream()
{
m_outputStream = null;
m_inputStream = null;
}

public ObObjectSocketStream(String string, Integer integer)


{
super(string, integer);
m_outputStream = null;
m_inputStream = null;
}

public boolean createStreams()


{
try
{
Exception e;
if (m_output == null)
m_outputStream = new ObjectOutputStream(m_socket.getOutputStream());
else
m_outputStream = new ObjectOutputStream(m_output);
if (m_input == null)
m_inputStream = new ObjectInputStream(m_socket.getInputStream());

Page: 442 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else
m_inputStream = new ObjectInputStream(m_input);
return true;
}
catch ()
{
ObApplication.log(ObApplication.getResString("ConnectFailed"));
}
ObApplication.logException(e);
return false;
}

public Object read()


{
try
{
return m_inputStream.readObject();
}
catch (StreamCorruptedException e1)
{
ObApplication.log(ObApplication.getResString("StreamCorruption"));
ObApplication.logException(e1);
return null;
}
catch (Exception e2)
{
ObApplication.logException(e2);
}
return null;
}

public void write(Object object)


{
try
{
m_outputStream.writeObject(object);
}
catch (Exception e)
{
ObApplication.logException(e);
}

Page: 443 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
}

Page: 444 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObRemoteException

Full name of class: ObRun.ObComms.ObRemoteException.class


package ObRun.ObComms;

import ObRun.ObEnvironment.ObException;

public final synchronized class ObRemoteException extends ObException


{
protected String m_systemName;

public ObRemoteException(String string)


{
super(string);
m_systemName = new String("");
}

public String toString()


{
return super.toString();
}
}

Page: 445 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObService

Full name of class: ObRun.ObComms.ObService.class

package ObRun.ObComms;

import ObRun.ObEnvironment.ObLog;
import ObRun.ObFunction.ObApplication;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date;

public final synchronized class ObService extends ObSocketService


{
protected static final Integer m_defaultPort = new Integer(1997);
private static final String m_defaultOptions = new String("ob400svr.properties");

static
{
}

public ObService(int i, String string1, String string2)


{
super(i, string1, string2);
m_logPrefix = new String("ObJ");
}

public void createNewClient(Socket socket, boolean flag, Integer integer)


{
ObClientConnect obClientConnect = new ObClientConnect(this, socket, m_threadGroup, flag, integer);
addClient(obClientConnect);
}

public void logServiceStart()


{
log(new
StringBuffer(String.valueOf(getResourceString("StartPort"))).append(m_port.intValue()).toString(), 1);
}

Page: 446 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public static void main(String astring[])


{
Object object;
boolean flag = false;
String string1 = null;
String string2 = astring[0].toUpperCase();
if (astring[0].length() > 5 && string2.substring(0, 5).compareTo("PATH=") == 0)
{
string1 = astring[0].substring(5, astring[0].length());
flag = true;
}
int i = 0;
if (astring.length > 0)
{
try
{
i = Integer.parseInt(astring[flag]);
}
catch ()
{
System.out.println("Not a valid port number");
System.out.println("Enter an integer value greater than 1024");
System.out.println(object);
System.exit(1);
}
}
if (i == 0)
i = m_defaultPort.intValue();
object = new ObService(i, string1, m_defaultOptions);
object.startService();
while (object.m_keepWaiting)
{
Thread.currentThread();
Thread.sleep(100);
}
drop
if (object.m_serverSocket == null)
{
System.out.println(object.getResourceString("ServiceNotRunning"));
return;

Page: 447 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
System.out.println(object.getResourceString("DispatcherStarted"));
Thread.currentThread().suspend();
}

protected void reportStatistics()


{
String string1 = new String(ObApplication.getString("ClientsSvr"));
String string2 = new String(ObApplication.getString("ServiceStart"));
Integer integer = new Integer(m_clientsServiced);
string1 = new StringBuffer(String.valueOf(string1)).append(integer.toString()).toString();
string2 = new StringBuffer(String.valueOf(string2)).append(m_startTime.toString()).toString();
m_logFile.log(1, string2);
m_logFile.log(1, string1);
}
}

Page: 448 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObSocketListen

Full name of class: ObRun.ObComms.ObSocketListen.class

package ObRun.ObComms;

import java.util.*;
import ObRun.ObEnvironment.ObLog;
import ObRun.ObFunction.ObApplication;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;

public synchronized abstract class ObSocketListen extends Thread


{
protected Integer m_port;
protected ServerSocket m_serverSocket;
protected ThreadGroup m_threadGroup;
protected Vector m_clientVector;
protected Integer m_clientLimit;
protected Hashtable m_currentClients;
protected boolean m_keepWaiting;
public static final int DEFAULTCLIENTLIMIT = 10;
public static final int DEFAULTPORT = 1997;

public ObSocketListen(int i)
{
m_currentClients = new Hashtable(100);
m_keepWaiting = true;
m_port = new Integer(i);
m_threadGroup = new ThreadGroup(new StringBuffer("COOL:Plex Listener").append(new String(new
Integer(i).toString())).toString());
m_clientLimit = new Integer(10);
m_clientVector = new Vector(m_clientLimit.intValue(), m_clientLimit.intValue());
}

public synchronized void addClient(Object object)


{
m_clientVector.addElement(object);

Page: 449 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_currentClients.put(Thread.currentThread(), object);
}

public Enumeration clients()


{
return m_clientVector.elements();
}

public abstract void createNewClient(Socket socket, boolean flag, Integer integer);


public Integer getPort()
{
return m_port;
}

protected void log(String string, int i)


{
System.out.println(string);
}

public synchronized void removeClient(Object object)


{
m_clientVector.removeElement(object);
m_currentClients.remove(Thread.currentThread());
}

protected abstract void reportStatistics();


public void run()
{
Exception e;
m_serverSocket = new ServerSocket(m_port.intValue());
m_keepWaiting = false;
while (true)
{
Socket socket = m_serverSocket.accept();
boolean flag = false;
if (m_clientVector.size() >= m_clientLimit.intValue())
{
flag = true;
log(new
StringBuffer(String.valueOf(ObApplication.getString("ToomanyClients"))).append(m_clientLimit).toString(),
1);

Page: 450 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
createNewClient(socket, flag, m_clientLimit);
}
pop e
log(e.getMessage(), 0);
log(ObApplication.getString("ServiceNotRunning"), 0);
m_keepWaiting = false;
pop local2
stopListening();
endfinalize local2
}

public void stopListening()


{
try
{
m_threadGroup.stop();
m_serverSocket.close();
reportStatistics();
}
catch (Exception e)
{
}
}

public void terminateClient()


{
ObClientConnect obClientConnect = (ObClientConnect)m_currentClients.get(Thread.currentThread());
if (obClientConnect != null)
obClientConnect.terminate();
}
}

Page: 451 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObSocketService

Full name of class: ObRun.ObComms.ObSocketService.class

package ObRun.ObComms;

import java.util.*;
import ObRun.ObEnvironment.ObLog;
import ObRun.ObEnvironment.ObRunOptions;
import ObRun.ObFunction.ObApplication;
import java.io.PrintStream;
import java.net.Socket;

public synchronized abstract class ObSocketService extends ObSocketListen


{
protected String m_logFileName;
protected String m_optionsFileName;
protected String m_optionsFilePath;
protected Date m_startTime;
protected int m_clientsServiced;
protected ObLog m_logFile;
protected ObRunOptions m_runOptions;
protected ResourceBundle m_stringResources;
protected Locale m_locale;
private Integer m_loggingLevel;
private boolean m_useLog;
private Integer m_securityLevel;
private boolean m_useSecurity;
private byte m_status;
protected String m_logPrefix;
public static final byte NOTSTARTED = 0;
public static final byte STARTED = 1;
public static final byte ENDED = 2;
public static final byte SUSPENDED = 3;

public ObSocketService(int i, String string1, String string2)


{
super(i);
m_optionsFileName = null;

Page: 452 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_optionsFilePath = new String("Plex" + System.getProperty("file.separator") + "objava");


m_stringResources = null;
m_locale = null;
m_loggingLevel = new Integer(1);
m_useLog = true;
m_securityLevel = new Integer(1);
m_useSecurity = true;
m_status = 0;
m_logPrefix = null;
if (string1 != null)
m_optionsFilePath = new String(string1);
m_optionsFileName = new String(m_optionsFilePath + System.getProperty("file.separator") + string2);
}

public synchronized void addClient(Object object)


{
super.addClient(object);
m_clientsServiced++;
}

public abstract void createNewClient(Socket socket, boolean flag, Integer integer);


public Integer getClientLimit()
{
return m_clientLimit;
}

public Integer getClients()


{
return new Integer(m_clientsServiced);
}

public String getLogFileName()


{
return m_logFileName;
}

public int getLoggingLevel()


{
return m_loggingLevel.intValue();
}

Page: 453 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public String getOptionsFile()


{
return new String(m_optionsFileName);
}

public String getResourceString(String string)


{
try
{
return m_stringResources.getString(string);
}
catch (Exception e)
{
log(0, e.getMessage());
}
return null;
}

public int getSecurityLevel()


{
return m_securityLevel.intValue();
}

public byte getStatus()


{
return m_status;
}

private void initService(int i)


{
m_logFileName = getPort().toString() + ".log";
m_runOptions = new ObRunOptions();
if (!m_runOptions.load(m_optionsFileName))
System.out.println(new StringBuffer("Service parameters did not load from file
").append(m_optionsFileName).toString());
loadResources();
if (i > 0)
m_port = new Integer(i);
setParms();
if (m_useLog)
{

Page: 454 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_logFile = new ObLog(m_loggingLevel.intValue());


if (!m_logFile.open(m_logFileName))
System.out.println(ObApplication.getString("NoOpenLog"));
}
m_threadGroup = new ThreadGroup(new StringBuffer("PlexServer").append(getPort()).toString());
m_clientVector = new Vector(m_clientLimit.intValue(), m_clientLimit.intValue());
m_clientsServiced = 0;
m_startTime = new Date();
}

public boolean isEnded()


{
return m_status == 2;
}

public boolean isStarted()


{
return m_status == 1;
}

public boolean isSuspended()


{
return m_status == 3;
}

public boolean loadResources()


{
String string1 = m_runOptions.getProperty("Locale.language");
String string2 = m_runOptions.getProperty("Locale.country");
String string3 = m_runOptions.getProperty("Locale.variant");
try
{
m_locale = new Locale(string1, string2, string3);
}
catch (Exception e1)
{
m_locale = Locale.getDefault();
}
try
{
Exception e2;

Page: 455 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_stringResources = ResourceBundle.getBundle("ObRun.ObEnvironment.ObStringResource", m_locale);


return true;
}
catch ()
{
System.out.println(e2);
}
return false;
}

public void log(int i, String string)


{
if (!m_useLog)
return;
m_logFile.log(i, string);
}

public void log(int i, String string1, String string2)


{
if (!m_useLog)
return;
m_logFile.log(i, string1, string2);
}

public void log(String string, int i)


{
if (string == null)
return;
if (useLog())
m_logFile.log(i, string);
}

public abstract void logServiceStart();


public void removeClient(Object object)
{
super.removeClient(object);
m_clientsServiced--;
}

protected void reportStatistics()


{

Page: 456 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

String string1 = new String(ObApplication.getString("ClientsSvr"));


String string2 = new String(ObApplication.getString("ServiceStart"));
Integer integer = new Integer(m_clientsServiced);
string1 = new StringBuffer(String.valueOf(string1)).append(integer.toString()).toString();
string2 = new StringBuffer(String.valueOf(string2)).append(m_startTime.toString()).toString();
m_logFile.log(1, string2);
m_logFile.log(1, string1);
}

public void resumeService()


{
m_status = 1;
m_threadGroup.resume();
}

public void setClientLimit(int i)


{
m_clientLimit = new Integer(i);
}

public void setLog(boolean flag)


{
m_useLog = flag;
}

public void setLoggingLevel(int i)


{
m_loggingLevel = new Integer(i);
if (m_logFile != null)
m_logFile.setLoggingLevel(i);
}

public void setOptionsFile(String string)


{
m_optionsFileName = new String(string);
}

private void setParms()


{
String string = m_runOptions.getProperty("Default.Service.MaximumClients");
if (string != null)

Page: 457 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_clientLimit = new Integer(string);


string = m_runOptions.getProperty("Default.Service.LoggingLevel");
if (string != null)
m_loggingLevel = new Integer(string);
string = m_runOptions.getProperty("Default.Service.UseLog");
if (string != null)
m_useLog = string.equals("1");
string = m_runOptions.getProperty("Default.Service.SecurityLevel");
if (string != null)
m_securityLevel = new Integer(string);
string = m_runOptions.getProperty("Default.Service.UseSecurity");
if (string != null)
m_useSecurity = string.equals("1");
string = m_runOptions.getProperty(new
StringBuffer(String.valueOf(getPort().toString())).append(".Service.MaximumClients").toString());
if (string != null)
m_clientLimit = new Integer(string);
string = m_runOptions.getProperty(new
StringBuffer(String.valueOf(getPort().toString())).append(".Service.LoggingLevel").toString());
if (string != null)
m_loggingLevel = new Integer(string);
string = m_runOptions.getProperty(new
StringBuffer(String.valueOf(getPort().toString())).append(".Service.UseLog").toString());
if (string != null)
m_useLog = string.equals("1");
string = m_runOptions.getProperty(new
StringBuffer(String.valueOf(getPort().toString())).append(".Service.SecurityLevel").toString());
if (string != null)
m_securityLevel = new Integer(string);
string = m_runOptions.getProperty(new
StringBuffer(String.valueOf(getPort().toString())).append(".Service.UseSecurity").toString());
if (string != null)
m_useSecurity = string.equals("1");
setServiceParms();
}

public void setSecurity(boolean flag)


{
m_useSecurity = flag;
}

Page: 458 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setSecurityLevel(int i)


{
m_securityLevel = new Integer(i);
}

protected void setServiceParms()


{
}

public void startService()


{
m_status = 1;
initService(m_port.intValue());
logServiceStart();
setDaemon(true);
start();
}

public void stopService()


{
stopListening();
m_status = 2;
}

public void suspendService()


{
m_status = 3;
m_threadGroup.suspend();
}

public boolean useLog()


{
return m_useLog;
}

public boolean useSecurity()


{
return m_useSecurity;
}
}

Page: 459 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObDatabase

ObDatabaseConnection

Full name of class: ObRun.ObDatabase.ObDatabaseConnection.class

package ObRun.ObDatabase;

import java.sql.*;
import ObRun.ObFunction.ObApplication;
import java.util.Enumeration;
import java.util.Hashtable;

public final synchronized class ObDatabaseConnection


{
private Connection m_connection;
private String m_url;
private String m_dataSource;
private String m_password;
private String m_user;
private Hashtable m_views;
public ObDatabaseMgr m_dbMgr;
private Hashtable m_typeConverter;
private boolean m_ODBC;

ObDatabaseConnection(String string1, String string2, String string3, String string4)


{
m_ODBC = true;
m_url = new String(string1);
m_views = new Hashtable();
m_typeConverter = new Hashtable();
m_password = string3;
m_user = string2;
m_dataSource = new String(string1.substring(string1.lastIndexOf(":") + 1));
String string5 = string1.toUpperCase();
if (string5.indexOf("ODBC") > -1)
m_ODBC = true;
else

Page: 460 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_ODBC = false;
try
{
Exception e;
String string6;
m_connection = DriverManager.getConnection(string1, string2, string3);
setConnectionOptions(string4);
setSQLTypeConversions();
}
catch ()
{
string6 = new String(new StringBuffer(". DataSource = ").append(m_dataSource).toString());
}
ObApplication.logException(e);
return;
}

public void clearReferences()


{
Enumeration enumeration = m_views.elements();
ObView obView = null;
while (enumeration.hasMoreElements())
{
obView = (ObView)enumeration.nextElement();
obView.close();
}
m_views.clear();
}

public void commit()


{
try
{
if (m_connection != null)
m_connection.commit();
}
catch (Exception e)
{
ObApplication.logException(e);
}
}

Page: 461 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public PreparedStatement createStatement(String string)


{
PreparedStatement preparedStatement;
try
{
Exception e;
if (m_connection != null)
{
preparedStatement = m_connection.prepareStatement(string);
setStatementOptions(preparedStatement);
}
else
preparedStatement = null;
return preparedStatement;
}
catch ()
{
ObApplication.logException(e);
}
return null;
}

public void disconnect()


{
try
{
if (m_connection != null)
m_connection.close();
m_connection = null;
}
catch (Exception e)
{
ObApplication.logException(e);
}
}

public void endCommit()


{
try
{

Page: 462 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (m_connection != null)
m_connection.setAutoCommit(true);
}
catch (Exception e)
{
ObApplication.log(e.getMessage());
}
}

public int getAcceptedSQLType(String string)


{
try
{
ObSQLTypeConversion obSQLTypeConversion = (ObSQLTypeConversion)m_typeConverter.get(string);
if (obSQLTypeConversion != null)
return obSQLTypeConversion.getAcceptedType();
}
catch (Exception e)
{
ObApplication.logException(e);
}
return 1;
}

public ObView getView(String string, boolean flag)


{
ObView obView = (ObView)m_views.get(string);
if (obView == null && flag)
{
obView = new ObView(this);
m_views.put(string, obView);
}
return obView;
}

public void removeView(String string)


{
ObView obView = (ObView)m_views.remove(string);
if (obView != null)
obView.close();
}

Page: 463 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void rollback()


{
try
{
if (m_connection != null)
m_connection.rollback();
}
catch (Exception e)
{
ObApplication.logException(e);
}
}

public void setConnectionOptions(String string1)


{
String string2 = new String(new StringBuffer("Environment.").append(string1).toString());
try
{
String string3 = ObApplication.getRunOptionValue(new
StringBuffer(String.valueOf(string2)).append(".AutoCommit").toString());
if (string3 != null)
m_connection.setAutoCommit(string3.equalsIgnoreCase("Yes"));
else
m_connection.setAutoCommit(true);
string3 = ObApplication.getRunOptionValue(new
StringBuffer(String.valueOf(string2)).append(".ReadOnlyAccess").toString());
if (string3 != null)
m_connection.setReadOnly(string3.equalsIgnoreCase("Yes"));
else
m_connection.setReadOnly(false);
byte b = 0;
string3 = ObApplication.getRunOptionValue(new
StringBuffer(String.valueOf(string2)).append(".TransactionIsolation").toString());
if (string3 != null)
{
if (string3.equalsIgnoreCase("TRANSACTION_NONE"))
b = 0;
else if (string3.equalsIgnoreCase("TRANSACTION_READ_COMMITTED"))
b = 2;
else if (string3.equalsIgnoreCase("TRANSACTION_READ_UNCOMMITTED"))

Page: 464 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

b = 1;
else if (string3.equalsIgnoreCase("TRANSACTION_REPEATABLE_READ"))
b = 4;
else if (string3.equalsIgnoreCase("TRANSACTION_SERIALIZABLE"))
b = 8;
if (b != 0)
m_connection.setTransactionIsolation(b);
}
}
catch (Exception e)
{
ObApplication.logException(e);
}
}

private void setSQLTypeConversions()


{
ObSQLDataTypes obSQLDataTypes = new ObSQLDataTypes(m_connection);
obSQLDataTypes.convert(m_typeConverter);
}

public void setStatementOptions(Statement statement)


{
String string1 = new String(ObApplication.getEnvironment() + ".");
ObRun.ObEnvironment.ObRunOptions obRunOptions = ObApplication.getRunOptions();
try
{
String string2 = new StringBuffer(String.valueOf(string1)).append("SqlNoScan").toString();
String string3 = ObApplication.getRunOptionValue(string2);
if (string3 != null)
{
if (string3.equalsIgnoreCase("Yes"))
statement.setEscapeProcessing(true);
if (string3.equalsIgnoreCase("No"))
statement.setEscapeProcessing(false);
}
string2 = new StringBuffer(String.valueOf(string1)).append("SqlMaxLength").toString();
string3 = ObApplication.getRunOptionValue(string2);
if (string3 != null && string3.length() > 0)
{
Integer integer1 = new Integer(string3);

Page: 465 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

statement.setMaxFieldSize(integer1.intValue());
}
string2 = new StringBuffer(String.valueOf(string1)).append("SqlMaxRows").toString();
string3 = ObApplication.getRunOptionValue(string2);
if (string3 != null && string3.length() > 0)
{
Integer integer2 = new Integer(string3);
statement.setMaxRows(integer2.intValue());
}
string2 = new StringBuffer(String.valueOf(string1)).append("SqlQueryTimeout").toString();
string3 = ObApplication.getRunOptionValue(string2);
if (string3 != null && string3.length() > 0)
{
Integer integer3 = new Integer(string3);
statement.setQueryTimeout(integer3.intValue());
}
}
catch (SQLException e)
{
ObApplication.logException(e);
}
}

public void startCommit()


{
try
{
if (m_connection != null)
m_connection.setAutoCommit(false);
}
catch (Exception e)
{
ObApplication.log(e.getMessage());
}
}

public boolean supportsSQLNull(String string)


{
try
{
ObSQLTypeConversion obSQLTypeConversion = (ObSQLTypeConversion)m_typeConverter.get(string);

Page: 466 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (obSQLTypeConversion != null)
return obSQLTypeConversion.isNullable();
}
catch (Exception e)
{
ObApplication.logException(e);
}
return false;
}
}

Page: 467 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObDatabaseMgr

Full name of class: ObRun.ObDatabase.ObDatabaseMgr.class

package ObRun.ObDatabase;

import ObRun.ObFunction.*;
import ObRun.ObEnvironment.ObODBCOptionValues;
import ObRun.ObRTTypes.ObCharFld;
import ObRun.ObRTTypes.ObField;
import java.io.PrintStream;
import java.text.MessageFormat;
import java.util.Enumeration;
import java.util.Vector;

public final synchronized class ObDatabaseMgr


{
private ObODBCOptionValues m_options;
private ObDatabaseConnection m_connection;
private ObApplication m_app;
private int m_commitCount;
public static final String VIO_OK = " ".intern();
public static final String VIO_EOV = "EOV".intern();
public static final String VIO_ERR = "ERR".intern();
public static final String VIO_INF = "INF".intern();

static
{
}

public ObDatabaseMgr()
{
m_commitCount = 0;
m_options = null;
m_connection = null;
}

public ObDatabaseMgr(ObApplication obApplication)


{

Page: 468 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_commitCount = 0;
m_options = null;
m_connection = null;
m_app = obApplication;
}

public void clearReferences()


{
m_connection.disconnect();
}

public static synchronized void closeViewIO(ObFunction obFunction)


{
ObDatabaseMgr obDatabaseMgr = ObApplication.findDbMgr(false);
if (obDatabaseMgr != null)
{
ObDatabaseConnection obDatabaseConnection = obDatabaseMgr.m_connection;
String string = getKey(obFunction);
if (obDatabaseConnection != null)
obDatabaseConnection.removeView(string);
}
}

public static synchronized void commit()


{
ObDatabaseMgr obDatabaseMgr = ObApplication.findDbMgr(false);
if (obDatabaseMgr != null)
{
ObDatabaseConnection obDatabaseConnection = obDatabaseMgr.m_connection;
if (obDatabaseConnection != null)
obDatabaseConnection.commit();
}
}

public static synchronized void connect()


{
Class class;
ObApplication obApplication = ObApplication.findApp();
if (obApplication == null)
return;
String string1 = ObApplication.getEnvironment();

Page: 469 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

String string2 = string1 + ".Driver";


String string3 = ObApplication.getRunOptionValue(string2);
try
{
class = Class.forName(string3);
}
catch (Exception e)
{
ObApplication.log(string3 + " " + ObApplication.getResString("OnCP"));
ObApplication.logException(e);
return;
}
if (obApplication.m_dbMgr == null)
obApplication.m_dbMgr = new ObDatabaseMgr(obApplication);
obApplication.m_dbMgr.connect(string1);
}

protected ObDatabaseConnection connect(String string1)


{
if (m_connection == null)
{
String string2 = string1 + ".DataSource";
String string3 = ObApplication.getRunOptionValue(string2);
string2 = string1 + ".User";
String string4 = ObApplication.getRunOptionValue(string2);
string2 = string1 + ".Password";
String string5 = ObApplication.getRunOptionValue(string2);
m_connection = new ObDatabaseConnection(string3, string4, string5, string1);
m_connection.m_dbMgr = this;
}
return m_connection;
}

public static synchronized void delete(String string, Vector vector, ObFunction obFunction)
{
ObApplication.findDbMgr(true).insertOrDelete(string, obFunction, vector);
}

public static synchronized void disconnect()


{
<badSignature>;

Page: 470 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObDatabaseMgr obDatabaseMgr = ObApplication.findDbMgr(false);


if (obDatabaseMgr != null)
{
ObDatabaseConnection obDatabaseConnection = obDatabaseMgr.m_connection;
if (obDatabaseConnection != null)
obDatabaseConnection.disconnect();
local = obDatabaseMgr.m_connection = null;
}
obDatabaseMgr = null;
}

public void endCommit()


{
if (m_commitCount <= 0)
return;
m_commitCount--;
if (m_commitCount <= 0)
{
m_connection.endCommit();
m_commitCount = 0;
}
}

public static synchronized void endCommitControl()


{
ObDatabaseMgr obDatabaseMgr = ObApplication.findDbMgr(false);
if (obDatabaseMgr != null)
obDatabaseMgr.endCommit();
}

public static synchronized void execSQL(String string1, Object aobject[], Vector vector, ObFunction
obFunction)
{
ObDatabaseMgr obDatabaseMgr = ObApplication.findDbMgr(true);
ObView obView = obDatabaseMgr.getView(obFunction, true);
String string2 = string1;
if (aobject != null)
string2 = MessageFormat.format(string1, aobject);
System.out.println(string2);
obView.execSQL(string2, vector);
}

Page: 471 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public static synchronized void fetch(String string, Vector vector1, ObVariable obVariable, int i,
ObFunction obFunction)
{
ObDatabaseMgr obDatabaseMgr = ObApplication.findDbMgr(true);
ObView obView = obDatabaseMgr.getView(obFunction, true);
Vector vector2 = obDatabaseMgr.orderFields(vector1, obFunction);
obView.fetch(string, vector2, obVariable, i);
}

public static synchronized void fetchNext(ObVariable obVariable, ObFunction obFunction)


{
ObDatabaseMgr obDatabaseMgr = ObApplication.findDbMgr(true);
ObView obView = obDatabaseMgr.getView(obFunction, true);
obView.fetchNext(obVariable);
}

public static synchronized void fetchNext(ObVariable obVariable, ObFunction obFunction, Vector vector1)
{
ObDatabaseMgr obDatabaseMgr = ObApplication.findDbMgr(true);
ObView obView = obDatabaseMgr.getView(obFunction, true);
Vector vector2 = obDatabaseMgr.orderFields(vector1, obFunction);
obView.fetchNext(obVariable, vector2);
}

public ObDatabaseConnection getConnection()


{
return m_connection;
}

public static synchronized String getKey(ObFunction obFunction1)


{
if (!obFunction1.m_isInternal || obFunction1.isRootFunction())
return obFunction1.getClass().getName();
ObFunction obFunction2 = obFunction1.m_parentFunctionData;
return getKey(obFunction2);
}

private ObView getView(ObFunction obFunction, boolean flag)


{
String string = getKey(obFunction);

Page: 472 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObView obView = null;


if (m_connection != null)
obView = m_connection.getView(string, flag);
else
ObApplication.log(new
StringBuffer(String.valueOf(ObApplication.getResString("NoDBConnect"))).append(string).toString());
return obView;
}

public static synchronized void insert(String string, Vector vector, ObFunction obFunction)
{
ObApplication.findDbMgr(true).insertOrDelete(string, obFunction, vector);
}

private void insertOrDelete(String string, ObFunction obFunction, Vector vector)


{
ObView obView = getView(obFunction, true);
obView.insertOrDelete(string, vector);
}

protected Vector orderFields(Vector vector1, ObFunction obFunction)


{
Vector vector2 = obFunction.m_keySequence;
Vector vector3 = new Vector();
for (Enumeration enumeration1 = vector2.elements(); enumeration1.hasMoreElements(); )
{
String string = (String)enumeration1.nextElement();
for (Enumeration enumeration2 = vector1.elements(); enumeration2.hasMoreElements(); )
{
ObField obField = (ObField)enumeration2.nextElement();
if (obField != null && string != null && obField.m_implName != null &&
obField.m_implName.equalsIgnoreCase(string))
vector3.addElement(obField);
}
}
return vector3;
}

public static synchronized void position(String string, Vector vector1, ObVariable obVariable, int i,
ObFunction obFunction)
{

Page: 473 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObDatabaseMgr obDatabaseMgr = ObApplication.findDbMgr(true);


ObView obView = obDatabaseMgr.getView(obFunction, true);
Vector vector2 = obDatabaseMgr.orderFields(vector1, obFunction);
obView.position(string, vector2, i);
}

public static synchronized void rollback()


{
ObDatabaseMgr obDatabaseMgr = ObApplication.findDbMgr(false);
if (obDatabaseMgr != null)
{
ObDatabaseConnection obDatabaseConnection = obDatabaseMgr.m_connection;
if (obDatabaseConnection != null)
obDatabaseConnection.rollback();
}
}

public static synchronized void setKeySequence(Vector vector, ObFunction obFunction)


{
obFunction.m_keySequence = vector;
}

public static synchronized void setKeySequence(Vector vector, ObPanel obPanel)


{
setKeySequence(vector, obPanel.getFunction());
}

public static synchronized String setViewIOStatus(ObFunction obFunction)


{
ObDatabaseMgr obDatabaseMgr = ObApplication.findDbMgr(true);
ObView obView = obDatabaseMgr.getView(obFunction, true);
return obView.m_status;
}

public static synchronized String setViewIOStatus(ObCharFld obCharFld, ObFunction obFunction)


{
ObDatabaseMgr obDatabaseMgr = ObApplication.findDbMgr(true);
ObView obView = obDatabaseMgr.getView(obFunction, true);
obCharFld.fromString(obView.m_status);
return obCharFld.getValue().intern();
}

Page: 474 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void startCommit()


{
m_connection.startCommit();
m_commitCount++;
}

public static synchronized void startCommitControl()


{
ObDatabaseMgr obDatabaseMgr = ObApplication.findDbMgr(false);
if (obDatabaseMgr != null)
obDatabaseMgr.startCommit();
}

private void update(String string, ObFunction obFunction, Vector vector)


{
ObView obView = getView(obFunction, true);
obView.update(string, vector);
}

public static synchronized void update(String string, Vector vector, ObFunction obFunction)
{
ObApplication.findDbMgr(true).update(string, obFunction, vector);
}
}

Page: 475 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObSocketStream

Full name of class: ObRun.ObDatabase.ObSocketStream.class

package ObRun.ObComms;

import java.io.*;
import java.net.*;
import ObRun.ObFunction.ObApplication;

public synchronized abstract class ObSocketStream


{
protected Socket m_socket;
protected String m_inetAddress;
protected Integer m_port;
protected boolean m_connected;
protected InputStream m_input;
protected OutputStream m_output;

public ObSocketStream()
{
m_socket = null;
m_inetAddress = null;
m_port = new Integer(0);
m_connected = false;
m_input = null;
m_output = null;
m_inetAddress = null;
m_port = new Integer(0);
}

public ObSocketStream(String string, Integer integer)


{
m_socket = null;
m_inetAddress = null;
m_port = new Integer(0);
m_connected = false;
m_input = null;
m_output = null;

Page: 476 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_inetAddress = new String(string);


m_port = new Integer(integer.intValue());
}

public boolean Disconnect()


{
if (m_socket == null)
return true;
try
{
Exception e;
m_socket.close();
m_connected = false;
return true;
}
catch ()
{
m_connected = false;
}
ObApplication.logException(e);
return false;
}

public boolean connectClient()


{
try
{
Exception e2;
m_socket = new Socket(m_inetAddress, m_port.intValue());
sendJavaClient();
}
catch (UnknownHostException e1)
{
ObApplication.log("Unknown host exception");
return false;
}
catch ()
{
ObApplication.logException(e2);
return false;
}

Page: 477 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (createStreams() != 1)
return false;
m_connected = true;
return true;
}

public boolean connectListener(Socket socket)


{
m_socket = socket;
m_connected = true;
m_port = new Integer(socket.getPort());
m_inetAddress = new String(socket.getInetAddress().toString());
return createStreams();
}

public boolean connectListener(Socket socket, InputStream inputStream, OutputStream outputStream)


{
m_socket = socket;
m_connected = true;
m_port = new Integer(socket.getPort());
m_inetAddress = new String(socket.getInetAddress().toString());
m_input = inputStream;
m_output = outputStream;
return createStreams();
}

public boolean createStreams()


{
return false;
}

public abstract Object read();


private void sendJavaClient()
{
try
{
DataOutputStream dataOutputStream = new DataOutputStream(m_socket.getOutputStream());
dataOutputStream.writeByte(74);
dataOutputStream.flush();
}
catch (Exception e)

Page: 478 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
ObApplication.logException(e);
}
}

public abstract void write(Object object);


}

Page: 479 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObSQLDataTypes

Full name of class: ObRun.ObDatabase.ObSQLDataTypes.class

package ObRun.ObDatabase;

import ObRun.ObRTTypes.*;
import java.sql.*;
import java.util.*;
import java.io.PrintStream;

public final synchronized class ObSQLDataTypes


{
private Connection m_connection;
private boolean m_moneyDatatype;

public ObSQLDataTypes(Connection connection)


{
m_connection = connection;
m_moneyDatatype = false;
}

public void convert(Hashtable hashtable1)


{
Hashtable hashtable2 = getMetaData();
createTypeConverter(hashtable1);
for (Enumeration enumeration = hashtable1.elements(); enumeration.hasMoreElements(); )
{
try
{
ObSQLTypeConversion obSQLTypeConversion = (ObSQLTypeConversion)enumeration.nextElement();
obSQLTypeConversion.setAcceptedType(hashtable2);
}
catch (NoSuchElementException e)
{
}
}
}

Page: 480 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

protected void createTypeConverter(Hashtable hashtable)


{
hashtable.put("ObRun.ObRTTypes.ObByteFld".intern(), new ObSQLTypeConversion(new ObByteFld()));
hashtable.put("ObRun.ObRTTypes.ObCharFld".intern(), new ObSQLTypeConversion(new ObCharFld()));
hashtable.put("ObRun.ObRTTypes.ObDateFld".intern(), new ObSQLTypeConversion(new ObDateFld()));
hashtable.put("ObRun.ObRTTypes.ObDblFld".intern(), new ObSQLTypeConversion(new ObDblFld()));
hashtable.put("ObRun.ObRTTypes.ObFixedDecFld".intern(), new ObSQLTypeConversion(new
ObFixedDecFld()));
hashtable.put("ObRun.ObRTTypes.ObIntFld".intern(), new ObSQLTypeConversion(new ObIntFld()));
hashtable.put("ObRun.ObRTTypes.ObLongDblFld".intern(), new ObSQLTypeConversion(new ObLongDblFld()));
hashtable.put("ObRun.ObRTTypes.ObLongFld".intern(), new ObSQLTypeConversion(new ObLongFld()));
hashtable.put("ObRun.ObRTTypes.ObSglFld".intern(), new ObSQLTypeConversion(new ObSglFld()));
hashtable.put("ObRun.ObRTTypes.ObTimeFld".intern(), new ObSQLTypeConversion(new ObTimeFld()));
hashtable.put("ObRun.ObRTTypes.ObTimeStampFld".intern(), new ObSQLTypeConversion(new
ObTimeStampFld()));
}

protected Hashtable getMetaData()


{
SQLException e;
Hashtable hashtable = new Hashtable();
try
{
ResultSet resultSet;
DatabaseMetaData databaseMetaData = m_connection.getMetaData();
for (resultSet = databaseMetaData.getTypeInfo(); resultSet.next(); )
{
String string = resultSet.getString(1);
if (string.compareTo("money") == 0)
m_moneyDatatype = true;
short s1 = resultSet.getShort(2);
int i = resultSet.getInt(3);
short s2 = resultSet.getShort(7);
boolean flag = resultSet.getBoolean(11);
if (!hashtable.containsKey(new Integer(s1)))
hashtable.put(new Integer(s1), new ObValidSQLType(string, s1, i, s2, flag));
}
resultSet.close();
e = null;
}
catch ()

Page: 481 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
System.out.println(e.getMessage());
System.out.println(new StringBuffer("exception: ").append(e.getMessage()).toString());
e.printStackTrace();
}
return hashtable;
}

public boolean isMoneyDatatype()


{
return m_moneyDatatype;
}
}

Page: 482 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObSQLTypeConversion

Full name of class: ObRun.ObDatabase.ObSQLTypeConversion.class

package ObRun.ObDatabase;

import ObRun.ObRTTypes.ObField;
import java.util.Hashtable;

public final synchronized class ObSQLTypeConversion


{
private ObField m_field;
private int m_acceptedType;
private String m_typeName;
private boolean m_isNullable;
private boolean m_isFixedPrecision;

ObSQLTypeConversion(ObField obField)
{
m_field = obField;
m_acceptedType = 0;
}

public boolean convertPrecision()


{
return false;
}

public int getAcceptedType()


{
return m_acceptedType;
}

public String getTypeName()


{
return new String(m_typeName);
}

public boolean isFixedPrecision()

Page: 483 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
return m_isFixedPrecision;
}

public boolean isNullable()


{
return m_isNullable;
}

public void setAcceptedType(Hashtable hashtable)


{
ObValidSQLType obValidSQLType = (ObValidSQLType)hashtable.get(new
Integer(m_field.getDefaultType()));
if (obValidSQLType != null)
{
m_acceptedType = obValidSQLType.getDataType();
m_typeName = obValidSQLType.getTypeName();
m_isFixedPrecision = obValidSQLType.isFixedPrecision();
m_isNullable = obValidSQLType.isNullable();
}
else
{
for (int i = 0; i < m_field.getAlternateSQLTypes().length; i++)
{
obValidSQLType = (ObValidSQLType)hashtable.get(new Integer(m_field.getAlternateSQLTypes()
[i]));
if (obValidSQLType == null)
continue;
m_acceptedType = obValidSQLType.getDataType();
m_typeName = obValidSQLType.getTypeName();
m_isNullable = obValidSQLType.isNullable();
m_isFixedPrecision = obValidSQLType.isFixedPrecision();
break;
}
}
if (m_acceptedType == 0)
m_acceptedType = m_field.getDefaultType();
}
}

Page: 484 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObValidSQLType

Full name of class: ObRun.ObDatabase.ObValidSQLType.class

package ObRun.ObDatabase;

import java.sql.DatabaseMetaData;

synchronized class ObValidSQLType


{
private String m_typeName;
private short m_dataType;
private int m_precision;
private short m_isNullable;
private boolean m_isFixedPrecision;

ObValidSQLType()
{
}

ObValidSQLType(String string, short s1, int i, short s2, boolean flag)


{
m_typeName = new String(string);
m_dataType = s1;
m_precision = i;
m_isNullable = s2;
m_isFixedPrecision = flag;
}

protected short getDataType()


{
return m_dataType;
}

protected String getTypeName()


{
return new String(m_typeName);
}

Page: 485 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

protected boolean isFixedPrecision()


{
return m_isFixedPrecision;
}

protected boolean isNullable()


{
return m_isNullable == 1;
}
}

Page: 486 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObEnvironment

ObException

Full name of class: ObRun.ObEnvironment.ObException.class

package ObRun.ObEnvironment;

public synchronized class ObException extends Exception


{
private static final String m_defaultMessage = new String("An error has occurred in the COOL:Plex
runtime system");
protected String m_message;

static
{
}

public ObException()
{
super(m_defaultMessage);
m_message = new String(m_defaultMessage);
}

public ObException(String string)


{
super(string);
m_message = new String(string);
}

public String toString()


{
return m_message;
}
}

Page: 487 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObJavaApi

Full name of class: ObRun.ObEnvironment.ObJavaApi.class

package ObRun.ObEnvironment;

import ObRun.ObFunction.ObApplication;

public final synchronized class ObJavaApi


{
public ObJavaApi()
{
}

public static synchronized String getClientName()


{
ObApplication obApplication = ObApplication.findApp();
if (obApplication == null)
return null;
else
return obApplication.clientName();
}
}

Page: 488 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObLog

Full name of class: ObRun.ObEnvironment.ObLog.class

package ObRun.ObEnvironment;

import ObRun.ObFunction.ObApplication;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.Date;

public final synchronized class ObLog


{
public static final int ERROR = 0;
public static final int WARNING = 2;
public static final int INFO = 1;
public static final int TRACE = 4;
private int m_loggingLevel;
private FileOutputStream m_fileOutput;
private PrintStream m_logFile;
public ObLog(int i)
{
if (i > 4 || i < 1)
m_loggingLevel = 0;
else
m_loggingLevel = i;
}

public void clearReferences()


{
m_logFile.close();
}

public void log(int i, String string)


{
if (i > m_loggingLevel)
return;
Date date = new Date();
m_logFile.println(" Type=" + i + " " + string);

Page: 489 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_logFile.flush();
}

public void log(int i, String string1, String string2)


{
if (i > m_loggingLevel)
return;
Date date = new Date();
if (string2 != null)
m_logFile.println(" Type=" + i + " " + string1 + " Client=" + string2);
else
m_logFile.println(" Type=" + i + " " + string1);
m_logFile.flush();
}

public boolean open(String string1)


{
String string2 = new String(string1);
try
{
Exception e;
m_fileOutput = new FileOutputStream(string2);
m_logFile = new PrintStream(m_fileOutput, 1);
return true;
}
catch ()
{
ObApplication.logException(e);
}
return false;
}

public void setLoggingLevel(int i)


{
if (i > 4 || i < 1)
m_loggingLevel = 0;
else
m_loggingLevel = i;
}
}

Page: 490 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObODBCOptionValues

Full name of class: ObRun.ObEnvironment.ObODBCOptionValues.class

package ObRun.ObEnvironment;

import java.util.Vector;

public final synchronized class ObODBCOptionValues


{
private ObOptionsList m_connectList;
private ObOptionsList m_stmtList;

public ObODBCOptionValues()
{
m_connectList = new ObOptionsList("SQLConnection");
m_stmtList = new ObOptionsList("SQLStatement");
loadConnectOptions();
loadStmtOptions();
}

public Vector GetValuesList(String string)


{
ObValidElement obValidElement = (ObValidElement)m_connectList.findElement(string);
if (obValidElement == null)
obValidElement = (ObValidElement)m_stmtList.findElement(string);
if (obValidElement != null)
return obValidElement.getValues();
else
return null;
}

public ObOptionsList getConnectOptions()


{
return m_connectList;
}

public ObOptionsList getStmtOptions()


{

Page: 491 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

return m_stmtList;
}

private void loadConnectOptions()


{
ObValidElement obValidElement = new ObValidElement("SQL_ACCESS_MODE");
obValidElement.addElement("SQL_MODE_READ_WRITE");
obValidElement.addElement("SQL_MODE_READ_ONLY");
obValidElement.addElement("SQL_MODE_DEFAULT");
m_connectList.addElement(obValidElement);
obValidElement = new ObValidElement("SQL_AUTOCOMMIT");
obValidElement.addElement("SQL_AUTOCOMMIT_OFF");
obValidElement.addElement("SQL_AUTOCOMMIT_ON");
obValidElement.addElement("SQL_AUTOCOMMIT_DEFAULT");
m_connectList.addElement(obValidElement);
obValidElement = new ObValidElement("SQL_LOGIN_TIMEOUT");
obValidElement.addElement("SQL_LOGIN_TIMEOUT_DEFAULT");
m_connectList.addElement(obValidElement);
obValidElement = new ObValidElement("SQL_OPT_TRACE");
obValidElement.addElement("SQL_OPT_TRACE_OFF");
obValidElement.addElement("SQL_OPT_TRACE_ON");
obValidElement.addElement("SQL_OPT_TRACE_DEFAULT");
obValidElement.addElement("SQL_OPT_TRACE_FILE_DEFAULT");
m_connectList.addElement(obValidElement);
obValidElement = new ObValidElement("SQL_ODBC_CURSORS");
obValidElement.addElement("SQL_CUR_USE_IF_NEEDED");
obValidElement.addElement("SQL_CUR_USE_ODBC");
obValidElement.addElement("SQL_CUR_USE_DRIVER");
obValidElement.addElement("SQL_CUR_DEFAULT");
m_connectList.addElement(obValidElement);
obValidElement = new ObValidElement("SQL_OPT_TRACEFILE");
m_connectList.addElement(obValidElement);
obValidElement = new ObValidElement("SQL_TRANSLATE_DLL");
m_connectList.addElement(obValidElement);
obValidElement = new ObValidElement("SQL_TRANSLATE_OPTION");
m_connectList.addElement(obValidElement);
obValidElement = new ObValidElement("SQL_TXN_ISOLATION");
m_connectList.addElement(obValidElement);
obValidElement = new ObValidElement("SQL_CURRENT_QUALIFIER");
m_connectList.addElement(obValidElement);
obValidElement = new ObValidElement("SQL_QUIET_MODE");

Page: 492 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_connectList.addElement(obValidElement);
obValidElement = new ObValidElement("SQL_PACKET_SIZE");
m_connectList.addElement(obValidElement);
}

private void loadStmtOptions()


{
ObValidElement obValidElement = new ObValidElement("SQL_QUERY_TIMEOUT");
obValidElement.addElement("SQL_QUERY_TIMEOUT_DEFAULT");
m_stmtList.addElement(obValidElement);
obValidElement = new ObValidElement("SQL_MAX_ROWS");
obValidElement.addElement("SQL_MAX_ROWS_DEFAULT");
m_stmtList.addElement(obValidElement);
obValidElement = new ObValidElement("SQL_NOSCAN");
obValidElement.addElement("SQL_NOSCAN_OFF");
obValidElement.addElement("SQL_NOSCAN_ON");
obValidElement.addElement("SQL_NOSCAN_DEFAULT");
m_stmtList.addElement(obValidElement);
obValidElement = new ObValidElement("SQL_MAX_LENGTH");
obValidElement.addElement("SQL_MAX_LENGTH_DEFAULT");
m_stmtList.addElement(obValidElement);
obValidElement = new ObValidElement("SQL_ASYNC_ENABLE");
obValidElement.addElement("SQL_ASYNC_ENABLE_OFF");
obValidElement.addElement("SQL_ASYNC_ENABLE_ON");
obValidElement.addElement("SQL_ASYNC_ENABLE_DEFAULT");
m_stmtList.addElement(obValidElement);
obValidElement = new ObValidElement("SQL_CURSOR_TYPE");
obValidElement.addElement("SQL_CURSOR_FORWARD_ONLY");
obValidElement.addElement("SQL_CURSOR_KEYSET_DRIVEN");
obValidElement.addElement("SQL_CURSOR_DYNAMIC");
obValidElement.addElement("SQL_CURSOR_STATIC");
obValidElement.addElement("SQL_CURSOR_TYPE_DEFAULT");
m_stmtList.addElement(obValidElement);
obValidElement = new ObValidElement("SQL_CONCURRENCY");
obValidElement.addElement("SQL_CONCUR_READ_ONLY");
obValidElement.addElement("SQL_CONCUR_LOCK");
obValidElement.addElement("SQL_CONCUR_ROWVER");
obValidElement.addElement("SQL_CONCUR_VALUES");
m_stmtList.addElement(obValidElement);
obValidElement = new ObValidElement("SQL_KEYSET_SIZE");
obValidElement.addElement("SQL_KEYSET_SIZE_DEFAULT");

Page: 493 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_stmtList.addElement(obValidElement);
obValidElement = new ObValidElement("SQL_ROWSET_SIZE");
obValidElement.addElement("SQL_ROWSET_SIZE_DEFAULT");
m_stmtList.addElement(obValidElement);
obValidElement = new ObValidElement("SQL_SIMULATE_CURSOR");
obValidElement.addElement("SQL_SC_NON_UNIQUE");
obValidElement.addElement("SQL_SC_TRY_UNIQUE");
obValidElement.addElement("SQL_SC_UNIQUE");
m_stmtList.addElement(obValidElement);
obValidElement = new ObValidElement("SQL_RETRIEVE_DATA");
obValidElement.addElement("SQL_RD_OFF");
obValidElement.addElement("SQL_RD_ON");
obValidElement.addElement("SQL_RD_DEFAULT");
m_stmtList.addElement(obValidElement);
obValidElement = new ObValidElement("SQL_USE_BOOKMARKS");
obValidElement.addElement("SQL_UB_OFF");
obValidElement.addElement("SQL_UB_ON");
obValidElement.addElement("SQL_UB_DEFAULT");
m_stmtList.addElement(obValidElement);
obValidElement = new ObValidElement("SQL_GET_BOOKMARK");
m_stmtList.addElement(obValidElement);
}
}

Page: 494 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObOptionsElement

Full name of class: ObRun.ObEnvironment.ObOptionsElement.class

package ObRun.ObEnvironment;

import ObRun.ObFunction.ObApplication;
import java.io.BufferedWriter;
import java.io.IOException;

public synchronized class ObOptionsElement


{
protected String m_option;
protected String m_value;

public ObOptionsElement(String string)


{
m_option = new String(string);
}

public ObOptionsElement(String string1, String string2)


{
m_option = new String(string1);
m_value = new String(string2);
}

public String getName()


{
return new String(m_option);
}

public String getOption()


{
return new String(m_value);
}

public void setOption(String string)


{
m_value = new String(string);

Page: 495 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public boolean writeLine(BufferedWriter bufferedWriter)


{
String string = new String(m_option);
string = new StringBuffer(String.valueOf(string)).append("=").toString();
string = new StringBuffer(String.valueOf(string)).append(m_value).toString();
string = new StringBuffer(String.valueOf(string)).append(ObApplication.getNewLine()).toString();
try
{
IOException e;
bufferedWriter.write(string, 0, string.length());
return true;
}
catch ()
{
ObApplication.log(e.getMessage());
}
return false;
}
}

Page: 496 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObOptionsList

Full name of class: ObRun.ObEnvironment.ObOptionsList.class

package ObRun.ObEnvironment;

import ObRun.ObFunction.ObApplication;
import java.io.BufferedWriter;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Vector;

public final synchronized class ObOptionsList


{
protected String m_listName;
protected Vector m_optionElements;

public ObOptionsList(String string)


{
m_listName = new String(string);
m_optionElements = new Vector(10, 10);
}

public synchronized void addElement(ObOptionsElement obOptionsElement)


{
m_optionElements.addElement(obOptionsElement);
}

public void clearReferences()


{
m_optionElements.removeAllElements();
}

public Enumeration elements()


{
return m_optionElements.elements();
}

public ObOptionsElement findElement(String string)

Page: 497 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
for (int i = 0; i < m_optionElements.size(); i++)
{
ObOptionsElement obOptionsElement = (ObOptionsElement)m_optionElements.elementAt(i);
if (obOptionsElement.getName().equalsIgnoreCase(string))
return obOptionsElement;
}
return null;
}

public String getName()


{
return new String(m_listName);
}

public String getOption(String string)


{
for (int i = 0; i < m_optionElements.size(); i++)
{
ObOptionsElement obOptionsElement = (ObOptionsElement)m_optionElements.elementAt(i);
if (obOptionsElement.getName().equalsIgnoreCase(string))
return obOptionsElement.getOption();
}
return null;
}

public void setOption(String string1, String string2)


{
ObOptionsElement obOptionsElement = findElement(string1);
if (obOptionsElement == null)
return;
obOptionsElement.setOption(string2);
}

public boolean writeLine(BufferedWriter bufferedWriter)


{
int i;
String string = new String("[");
string = new StringBuffer(String.valueOf(string)).append(m_listName).toString();
string = "]" + ObApplication.getNewLine();
try

Page: 498 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
IOException e;
bufferedWriter.write(ObApplication.getNewLine(), 0, 1);
bufferedWriter.write(string, 0, string.length());
i = 0;
}
catch ()
{
ObApplication.log(e.getMessage());
return false;
}
for (; i < m_optionElements.size(); i++)
{
ObOptionsElement obOptionsElement = (ObOptionsElement)m_optionElements.elementAt(i);
if (!obOptionsElement.writeLine(bufferedWriter))
return false;
}
return true;
}
}

Page: 499 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObRunOptions

Full name of class: ObRun.ObEnvironment.ObRunOptions.class

package ObRun.ObEnvironment;

import java.io.*;
import ObRun.ObFunction.ObApplication;
import java.net.URL;
import java.net.URLConnection;
import java.util.Hashtable;
import java.util.Properties;

public final synchronized class ObRunOptions extends Properties


{
private static final String m_header = new String("COOL:Plex Java runtime options - version 4.0.0");
private URL m_optionsURL;
private URLConnection m_connectURL;

static
{
}

public ObRunOptions()
{
}

private void createPropertyLine(String string1, String string2, BufferedWriter bufferedWriter)


{
String string3 = new String("." + string2);
String string4 = getProperty(string3);
String string5 = new String("=" + string4).trim();
try
{
bufferedWriter.newLine();
bufferedWriter.write(string5, 0, string5.length());
}
catch (Exception e)
{

Page: 500 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObApplication.logException(e);
}
}

public String getProperty(String string1)


{
String string2 = super.getProperty(string1);
if (string2 != null && string2.length() == 0 || string2 == null)
{
ObApplication obApplication = ObApplication.findApp();
if (obApplication != null)
{
String string3 = ObApplication.getEnvironment();
String string4 = "Environment.";
string4 = new StringBuffer(String.valueOf(string4)).append(string3).toString();
int i = string1.indexOf(string4);
if (i != -1)
{
String string5 = "Environment.Default";
int j = string1.indexOf(string5);
if (j == -1)
{
String string6 = string1.substring(string4.length());
String string7 = new
StringBuffer(String.valueOf(string5)).append(string6).toString();
string2 = super.getProperty(string7);
}
}
}
}
return string2;
}

public boolean load(String string)


{
if (m_optionsURL != null)
return true;
try
{
Exception e;
m_optionsURL = new URL(string);

Page: 501 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_connectURL = m_optionsURL.openConnection();
super.load(m_connectURL.getInputStream());
return true;
}
catch ()
{
e.printStackTrace();
}
ObApplication.logException(e);
return false;
}

public boolean saveLoginInfo(String string1, boolean flag1, boolean flag2, boolean flag3)
{
ObApplication obApplication = ObApplication.findApp();
File file = new File(m_optionsURL.getFile());
try
{
Object object = new LineNumberReader(new FileReader(file));
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(new
StringBuffer(String.valueOf(String.valueOf(file))).append("plex").toString()));
while (object.ready())
{
String string2 = object.readLine();
if (flag1)
{
String string4 = updatePropertyLine(string2, string1, new String("System"));
if (string4 != null)
{
string2 = string4;
flag1 = false;
}
}
if (flag2)
{
String string5 = updatePropertyLine(new String(string2), string1, new String("User"));
if (string5 != null)
{
string2 = string5;
flag2 = false;
}

Page: 502 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
if (flag3)
{
String string6 = updatePropertyLine(new String(string2), string1, new
String("Password"));
if (string6 != null)
{
string2 = string6;
flag3 = false;
}
}
bufferedWriter.write(string2, 0, string2.length());
bufferedWriter.newLine();
}
if (flag1)
createPropertyLine(string1, new String("System"), bufferedWriter);
if (flag2)
createPropertyLine(string1, new String("User"), bufferedWriter);
if (flag3)
createPropertyLine(string1, new String("Password"), bufferedWriter);
bufferedWriter.flush();
object = new LineNumberReader(new FileReader(new
StringBuffer(String.valueOf(String.valueOf(file))).append("plex").toString()));
bufferedWriter = new BufferedWriter(new FileWriter(file));
while (object.ready())
{
String string3 = object.readLine();
bufferedWriter.write(string3, 0, string3.length());
bufferedWriter.newLine();
}
bufferedWriter.flush();
return true;
}
catch ()
{
ObApplication.logException(object);
}
return false;
}

public void setPropertyValue(String string1, String string2)

Page: 503 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
remove(string1);
put(string1, string2);
}

private String updatePropertyLine(String string1, String string2, String string3)


{
String string4 = new String("." + string3);
if (string1.indexOf(string4) == -1)
return null;
String string5 = getProperty(string4);
return new String("=" + string5).trim();
}
}

Page: 504 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObStringResource

Full name of class: ObRun.ObEnvironment.ObStringResource.class

package ObRun.ObEnvironment;

import java.io.*;
import java.net.URL;
import java.util.PropertyResourceBundle;

public final synchronized class ObStringResource extends PropertyResourceBundle


{
public ObStringResource()
throws IOException
{
super(new BufferedInputStream(new URL("file:ObStringResource.properties").openStream()));
}

public ObStringResource(InputStream inputStream)


throws IOException
{
super(new BufferedInputStream(inputStream));
}
}

Page: 505 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObView

Full name of class: ObRun.ObEnvironment.ObView.class

package ObRun.ObDatabase;

import java.sql.*;
import ObRun.ObFunction.ObApplication;
import ObRun.ObFunction.ObVariable;
import ObRun.ObRTTypes.ObField;
import java.util.Enumeration;
import java.util.Vector;

final synchronized class ObView


{
private ResultSet m_resultSet;
private ObDatabaseConnection m_connect;
private PreparedStatement m_stmt;
public String m_status;
private boolean m_resultSetINF;
private Vector m_execSQLFields;
private boolean m_execSQL;

public ObView(ObDatabaseConnection obDatabaseConnection)


{
m_resultSetINF = false;
m_execSQLFields = null;
m_execSQL = false;
m_resultSet = null;
m_stmt = null;
m_connect = obDatabaseConnection;
}

private boolean bindColumns(ObVariable obVariable)


{
ObField aobField[] = null;
if (obVariable == null)
{
aobField = new ObField[m_execSQLFields.size()];

Page: 506 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

int i = 0;
for (Enumeration enumeration = m_execSQLFields.elements(); enumeration.hasMoreElements(); )
{
aobField[i] = (ObField)enumeration.nextElement();
i++;
}
}
else
aobField = obVariable.getObFields();
int j = 1;
for (int k = 0; k < aobField.length; )
{
ObField obField = null;
try
{
Exception e;
obField = aobField[k];
if (obField != null && !obField.isDerived())
{
obField.fromResultSet(m_resultSet, j);
j++;
}
k++;
}
catch ()
{
ObApplication.logException(e);
return false;
}
}
return true;
}

private boolean bindKeys(Vector vector, int i)


{
int j = 1;
for (Enumeration enumeration1 = vector.elements(); enumeration1.hasMoreElements(); )
{
ObField obField1 = (ObField)enumeration1.nextElement();
if (!obField1.isKey())
j++;

Page: 507 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
try
{
Exception e;
for (Enumeration enumeration2 = vector.elements(); enumeration2.hasMoreElements(); )
{
ObField obField2 = (ObField)enumeration2.nextEle

Incomplete source ends here.

Page: 508 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObFunction

ObApplication

Full name of class: ObRun.ObFunction.ObApplication.class

package ObRun.ObFunction;

import java.util.*;
import ObRun.ObDatabase.ObDatabaseMgr;
import ObRun.ObEnvironment.ObLog;
import ObRun.ObEnvironment.ObRunOptions;
import java.applet.Applet;
import java.awt.Font;
import java.io.PrintStream;
import java.net.URL;
import java.text.MessageFormat;
import javax.swing.JApplet;

public synchronized abstract class ObApplication


{
protected static ObApplication m_app;
protected ObRunOptions m_runOptions;
protected static Hashtable m_clientApps;
public ObCallMgr m_callMgr;
public ObDatabaseMgr m_dbMgr;
protected ResourceBundle m_stringResources;
protected Locale m_locale;
protected String m_environment;
protected JApplet m_applet;
protected Boolean m_useFrame;
protected ObFunction m_currentFunction;
public static final int DIALOG = 1000;
public static final int ENQUIRY = 1010;
public static final int LOG = 1020;
public static final int STATUS = 1030;
public static final int DEFAULT = 1020;

Page: 509 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

static
{
m_app = null;
m_clientApps = new Hashtable(50);
}

public ObApplication()
{
m_callMgr = null;
m_dbMgr = null;
m_stringResources = null;
m_locale = null;
m_environment = null;
m_applet = null;
m_useFrame = null;
m_currentFunction = null;
m_callMgr = new ObCallMgr(this);
m_dbMgr = null;
}

protected static synchronized void addApp(ObApplication obApplication)


{
try
{
m_clientApps.put(Thread.currentThread(), obApplication);
}
catch (Exception e)
{
System.out.println(e);
}
}

public void clearReferences()


{
ObDatabaseMgr.disconnect();
m_callMgr.cleanUp();
}

public String clientName()


{
return null;

Page: 510 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public static synchronized ObApplication findApp()


{
if (m_app != null)
return m_app;
else
return (ObApplication)m_clientApps.get(Thread.currentThread());
}

public static synchronized ObCallMgr findCallMgr()


{
ObApplication obApplication = findApp();
return obApplication.m_callMgr;
}

public static synchronized ObDatabaseMgr findDbMgr(boolean flag)


{
ObApplication obApplication = findApp();
if (obApplication.m_dbMgr == null && flag)
ObDatabaseMgr.connect();
return obApplication.m_dbMgr;
}

public JApplet getApplet()


{
return m_applet;
}

public static synchronized URL getCodeBase()


{
ObApplication obApplication = findApp();
return obApplication.getApplet().getCodeBase();
}

public ObFunction getCurrentFunction()


{
return m_currentFunction;
}

public static synchronized String getEnvironment()

Page: 511 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
ObApplication obApplication = findApp();
if (obApplication == null)
return null;
if (obApplication.m_environment == null)
obApplication.m_environment = new String("Default");
return new String(obApplication.m_environment);
}

public Font getLoadedFont(String string)


{
return null;
}

public String getMessageBoxTitle()


{
String string = null;
try
{
string = getCurrentFunction().getPanel().getPanelName();
}
catch (Exception e)
{
}
finally
if ((string == null || string.length() == 0) && getCurrentFunction() != null)
string = getCurrentFunction().getFunctionName();
return string;
}

public static synchronized String getNewLine()


{
return new String("\r\n");
}

public abstract String getOptionsURL();


public static String getResString(String string)
{
ObApplication obApplication = findApp();
if (obApplication == null)
return null;

Page: 512 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else
return obApplication.getResourceString(string);
}

public String getResourceString(String string)


{
try
{
return m_stringResources.getString(string);
}
catch (Exception e)
{
return null;
}
}

public static synchronized String getRunOptionValue(String string1)


{
ObApplication obApplication = findApp();
if (obApplication == null)
return null;
obApplication.loadOptions();
String string2 = obApplication.m_runOptions.getProperty(string1);
return string2;
}

public static synchronized ObRunOptions getRunOptions()


{
ObApplication obApplication = findApp();
if (obApplication == null)
return null;
obApplication.loadOptions();
return obApplication.m_runOptions;
}

public static String getString(String string)


{
return getResString(string);
}

public void handleException(Exception e)

Page: 513 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
}

public static synchronized boolean isApplet()


{
ObApplication obApplication = findApp();
if (obApplication != null)
return obApplication.getApplet() != null;
else
return false;
}

public void loadOptions()


{
if (m_runOptions == null)
m_runOptions = new ObRunOptions();
if (getOptionsURL() != null)
m_runOptions.load(getOptionsURL());
}

public boolean loadResources()


{
String string1 = m_runOptions.getProperty("Locale.language");
String string2 = m_runOptions.getProperty("Locale.country");
String string3 = m_runOptions.getProperty("Locale.variant");
try
{
m_locale = new Locale(string1, string2, string3);
}
catch (Exception e1)
{
m_locale = Locale.getDefault();
}
try
{
Exception e2;
m_stringResources = ResourceBundle.getBundle("ObRun.ObEnvironment.ObStringResource", m_locale);
return true;
}
catch ()
{

Page: 514 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

System.out.println(e2);
}
return false;
}

public static synchronized int log(int i, String string)


{
if (string == null)
return -1;
ObApplication obApplication = findApp();
if (obApplication == null)
return -1;
else
return obApplication.logError(i, string);
}

public static int log(int i, String string, int j)


{
if (string == null)
return -1;
ObApplication obApplication = findApp();
if (obApplication == null)
return -1;
else
return obApplication.logError(i, string, j);
}

public static synchronized int log(int i, String string1, String string2)


{
if (string1 == null)
return -1;
ObApplication obApplication = findApp();
if (obApplication == null)
return -1;
else
return obApplication.logError(i, string1, string2);
}

public static synchronized int log(int i, String string, Object aobject[])


{
if (string == null)

Page: 515 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

return -1;
else
return log(i, MessageFormat.format(string, aobject));
}

public static synchronized int log(int i, String string, Object aobject[], int j)
{
if (string == null)
return -1;
else
return log(i, MessageFormat.format(string, aobject), j);
}

public static synchronized int log(int i, String string1, Object aobject[], String string2)
{
if (string1 == null)
return -1;
else
return log(i, MessageFormat.format(string1, aobject), string2);
}

public static synchronized int log(String string)


{
if (string == null)
return -1;
ObApplication obApplication = findApp();
if (obApplication == null)
return -1;
else
return obApplication.logError(2, string);
}

public static int log(String string, int i)


{
if (string == null)
return -1;
ObApplication obApplication = findApp();
if (obApplication == null)
return -1;
else
return obApplication.logError(2, string, i);

Page: 516 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public static synchronized int log(String string, Object aobject[])


{
if (string == null)
return -1;
else
return log(2, MessageFormat.format(string, aobject));
}

public static int log(String string, Object aobject[], int i)


{
if (string == null)
return -1;
else
return log(2, MessageFormat.format(string, aobject), i);
}

public int logError(int i, String string)


{
System.out.println(string);
return -1;
}

public int logError(int i, String string, int j)


{
System.out.println(string);
return -1;
}

public int logError(int i, String string1, String string2)


{
System.out.println(string1);
return -1;
}

public static synchronized void logException(Exception e)


{
ObApplication obApplication = findApp();
if (obApplication == null)
return;

Page: 517 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

obApplication.handleException(e);
}

public static void obCallFunction(ObFncParameter obFncParameter, String string1, String string2, String
string3, String string4)
{
findCallMgr().obCallFunction(obFncParameter, string1, string2, string3, string4);
}

public static void obCallFunction(ObFunction obFunction, ObVariableGroup obVariableGroup1,


ObVariableGroup obVariableGroup2, String string1, String string2, String string3, String string4)
{
findCallMgr().obCallFunction(obFunction, obVariableGroup1, obVariableGroup2, string1, string2,
string3, string4);
}

public static String[] obCallFunction(String astring[], String string1, String string2)


{
ObFncParameter obFncParameter = ObFncParameter.createFromStringArray(astring, string1, string2);
findCallMgr().obCallFunction(obFncParameter, new
StringBuffer(String.valueOf(string1)).append("_ObFnc").toString(), "", "", "");
return obFncParameter.writeToStringArray();
}

protected static synchronized void removeApp()


{
try
{
m_clientApps.remove(Thread.currentThread());
}
catch (Exception e)
{
logException(e);
}
}

public static synchronized void saveLoginInfo(String string, boolean flag1, boolean flag2, boolean
flag3)
{
ObApplication obApplication = findApp();
if (obApplication == null)

Page: 518 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

return;
obApplication.m_runOptions.saveLoginInfo(string, flag1, flag2, flag3);
}

public void setApplet(JApplet jApplet)


{
m_applet = jApplet;
loadOptions();
loadResources();
}

public void setCurrentFunction(ObFunction obFunction)


{
m_currentFunction = obFunction;
}

public void setEnvironment(String string)


{
m_environment = string;
}

public void setLoadedFont(String string, Font font)


{
}

public static synchronized void setRunOptionValue(String string1, String string2)


{
ObApplication obApplication = findApp();
if (obApplication == null)
return;
obApplication.m_runOptions.setPropertyValue(string1, string2);
}

public static synchronized boolean useAppletFrame()


{
ObApplication obApplication = findApp();
if (obApplication == null)
return false;
if (obApplication.m_useFrame == null)
{
String string = getRunOptionValue("Applet.UseFrame");

Page: 519 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (string == null)
obApplication.m_useFrame = new Boolean(0);
else
{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
obApplication.m_useFrame = new Boolean(1);
else
obApplication.m_useFrame = new Boolean(0);
}
}
return obApplication.m_useFrame.booleanValue();
}
}

Page: 520 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCall

Full name of class: ObRun.ObFunction.ObCall.class


package ObRun.ObFunction;

public synchronized abstract class ObCall


{
public ObCallMgr m_callMgr;

public ObCall(ObCallMgr obCallMgr)


{
m_callMgr = null;
m_callMgr = obCallMgr;
}

abstract void call(ObFncParameter obFncParameter, String string1, String string2);


static synchronized ObCall getCallType(ObFncParameter obFncParameter, String string1, String string2,
String string3, String string4, ObCallMgr obCallMgr)
{
String string5 = getFunctionLocation(string1, string4);
if (string5 == null && string4 != null && string4.length() > 0)
string5 = string4;
if (string5 == null && (string4 == null || string4.length() < 1) && string3 == "RPG400")
string5 = "DefaultAS400";
boolean flag = false;
if (string5 == null)
flag = true;
String string6 = null;
if (!flag && string5 != null && string5.length() != 0)
{
String string7 = new String(string5);
string7 = new StringBuffer(String.valueOf(string7)).append(".System").toString();
string6 = ObApplication.getRunOptionValue(string7);
if (string6 != null && string6.compareTo("*THIS") == 0)
flag = true;
}
if (flag)
return new ObLocalJavaCall(obCallMgr);

Page: 521 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (string5.compareTo("DefaultAS400") == 0)
return new ObRemoteRPGCall(string5, string6, obCallMgr);
String string8 = new String(string5);
string8 = new StringBuffer(String.valueOf(string8)).append(".Protocol").toString();
String string9 = ObApplication.getRunOptionValue(string8);
if (string9 == null || string9.compareTo("JAVATCPIP") == 0)
return new ObRemoteJavaCall(string5, string6, obCallMgr);
if (string9.compareTo("AS400TCPIP") == 0)
return new ObRemoteRPGCall(string5, string6, obCallMgr);
else
return new ObLocalJavaCall(obCallMgr);
}

private static String getFunctionLocation(String string1, String string2)


{
String string3 = new String("FunctionLocation.");
string3 = new StringBuffer(String.valueOf(string3)).append(string1).toString();
String string4 = ObApplication.getRunOptionValue(string3);
if (string4 == null)
return null;
string2 = new String(string4);
if (string2.length() == 0)
return null;
string3 = new String(string2);
string3 = new StringBuffer(String.valueOf(string3)).append(".System").toString();
String string5 = ObApplication.getRunOptionValue(string3);
if (string5 != null)
return new String(string2);
ObApplication.log(new
StringBuffer(String.valueOf(ObApplication.getResString("NoLoc"))).append(string2).toString());
return null;
}
}

Page: 522 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCallInfo

Full name of class: ObRun.ObFunction.ObCallInfo.class

package ObRun.ObFunction;

import java.io.*;
import ObRun.ObComms.ObNotifyEvent;
import ObRun.ObComms.ObRemoteException;
import java.net.InetAddress;

public final synchronized class ObCallInfo implements Serializable


{
public static final String OBCALL_OPEN = "Open ".intern();
public static final String OBCALL_FUNCTION = "Call ".intern();
public static final String OBCALL_CLOSE = "Close ".intern();
public String m_functionName;
public String m_location;
public String m_operation;
public String m_userId;
public String m_envDesc;
public String m_envLib;
public String m_environment;
public ObVersionInfo m_verInfo;
public ObRemoteException m_rmtExcept;
public ObNotifyEvent m_notify;

static
{
}

public ObCallInfo()
{
init();
}

public ObCallInfo(String string)


{
m_functionName = new String(string);

Page: 523 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

init();
}

public static ObCallInfo createCallRequest(String string)


{
ObCallInfo obCallInfo = new ObCallInfo(string);
obCallInfo.m_operation = new String(OBCALL_FUNCTION);
return obCallInfo;
}

public static ObCallInfo createCloseRequest()


{
ObCallInfo obCallInfo = new ObCallInfo("");
obCallInfo.m_operation = new String(OBCALL_CLOSE);
return obCallInfo;
}

public static ObCallInfo createOpenRequest(String string)


{
ObCallInfo obCallInfo = new ObCallInfo("");
obCallInfo.m_operation = new String(OBCALL_OPEN);
obCallInfo.m_environment = new String(string);
return obCallInfo;
}

private void init()


{
String string = new String("Location.");
string = new StringBuffer(String.valueOf(string)).append(m_functionName).toString();
m_location = ObApplication.getRunOptionValue(string);
m_operation = new String(OBCALL_OPEN);
try
{
m_userId = InetAddress.getLocalHost().getHostName();
}
catch (Exception e)
{
m_userId = ObApplication.getString("UnknownClient");
}
m_envDesc = new String("");
m_envLib = new String("");

Page: 524 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_verInfo = new ObVersionInfo();


m_rmtExcept = null;
m_notify = null;
}

private void readObject(ObjectInputStream objectInputStream)


throws IOException, ClassNotFoundException
{
objectInputStream.defaultReadObject();
}

private void writeObject(ObjectOutputStream objectOutputStream)


throws IOException
{
objectOutputStream.defaultWriteObject();
}
}

Page: 525 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCallMgr

Full name of class: ObRun.ObFunction.ObCallMgr.class

package ObRun.ObFunction;

import ObRun.ObComms.ObConversation;
import java.util.Enumeration;
import java.util.Hashtable;

public final synchronized class ObCallMgr


{
protected Hashtable m_remoteConvs;
private ObApplication m_app;
private Hashtable m_children;
private Hashtable m_packages;
public static final String CALLOK = new String(" ");
public static final String CALLERROR = new String("*Failed");

static
{
}

public ObCallMgr()
{
m_remoteConvs = new Hashtable(10);
m_app = null;
m_children = new Hashtable();
m_packages = new Hashtable();
}

public ObCallMgr(ObApplication obApplication)


{
m_app = obApplication;
m_remoteConvs = new Hashtable(10);
m_children = new Hashtable();
m_packages = new Hashtable();
}

Page: 526 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void addChild(ObFunction obFunction)


{
m_children.put(obFunction.getClass().getName().intern(), obFunction);
m_app.setCurrentFunction(obFunction);
}

public void addRemoteConversation(String string, Object object)


{
m_remoteConvs.put(string, object);
}

public void cleanUp()


{
Enumeration enumeration = m_remoteConvs.elements();
ObCallInfo obCallInfo = ObCallInfo.createCloseRequest();
while (enumeration.hasMoreElements())
{
ObConversation obConversation = (ObConversation)enumeration.nextElement();
try
{
obConversation.deAllocate();
}
catch (Exception e)
{
ObApplication.logException(e);
}
}
m_remoteConvs.clear();
m_children.clear();
}

public void clearReferences()


{
m_children.clear();
m_packages.clear();
}

public ObFunction findFunction(String string)


{
if (string == null)
return null;

Page: 527 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

for (Enumeration enumeration = m_children.elements(); enumeration.hasMoreElements(); )


{
ObFunction obFunction = (ObFunction)enumeration.nextElement();
if (obFunction.getFunctionName().equals(string))
return obFunction;
}
return null;
}

public ObFunction getFunction(String string)


{
ObFunction obFunction = (ObFunction)m_children.get(string);
if (obFunction != null)
return obFunction;
else
return ObFunction.loadFunction(string, true);
}

public String getPackage(String string1, String string2)


{
String string3 = (String)m_packages.get(new String(new
StringBuffer(String.valueOf(string1)).append(string2).toString()).intern());
if (string3 != null)
return string3;
string3 = ObFunction.locatePackage(string1, string2);
if (string3 != null)
m_packages.put(new String(new
StringBuffer(String.valueOf(string1)).append(string2).toString()).intern(), string3);
return string3;
}

public Object getRemoteConversation(String string)


{
return m_remoteConvs.get(string);
}

public void obCallFunction(ObFncParameter obFncParameter, String string1, String string2, String


string3, String string4)
{
ObCall obCall = ObCall.getCallType(obFncParameter, string1, string2, string3, string4, this);
obCall.call(obFncParameter, string1, string2);

Page: 528 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void obCallFunction(ObFunction obFunction, ObVariableGroup obVariableGroup1, ObVariableGroup


obVariableGroup2, String string1, String string2, String string3, String string4)
{
ObFncParameter obFncParameter = new ObFncParameter(obFunction, obVariableGroup1, obVariableGroup2);
if (obFncParameter.m_environment != null)
obFncParameter.m_environment = obFunction.m_parameter.m_environment;
obCallFunction(obFncParameter, string1, string2, string3, string4);
}

public void removeChild(ObFunction obFunction)


{
m_children.remove(obFunction.getClass().getName().intern());
if (m_app.getCurrentFunction() == null)
{
clearReferences();
m_app.clearReferences();
if (m_app instanceof ObClientApp)
System.exit(0);
}
}

public void removeRemoteConversation(String string)


{
m_remoteConvs.remove(string);
}
}

Page: 529 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObClientApp

Full name of class: ObRun.ObFunction.ObClientApp.class

This calss is hidden from view.

Page: 530 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObFncParameter

Full name of class: ObRun.ObFunction.ObFncParameter.class

package ObRun.ObFunction;

import java.io.*;
import ObRun.ObComms.ObAS400SocketStream;
import ObRun.ObRTTypes.ObCharFld;
import ObRun.ObRTTypes.ObField;
import java.util.Vector;

public final synchronized class ObFncParameter implements Serializable


{
public transient ObFunction m_calledFncData;
public transient ObFunction m_callerFncData;
public ObVariableGroup m_in;
public ObVariableGroup m_out;
public ObCharFld m_returned;
public ObCharFld m_returning;
public Boolean m_functionCall;
public String m_environment;

public ObFncParameter()
{
m_returned = null;
m_returning = null;
m_functionCall = null;
m_in = new ObVariableGroup();
m_out = new ObVariableGroup();
m_calledFncData = null;
m_callerFncData = null;
m_returned = null;
m_functionCall = null;
}

public ObFncParameter(ObFunction obFunction, ObVariableGroup obVariableGroup1, ObVariableGroup


obVariableGroup2)
{

Page: 531 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_returned = null;
m_returning = null;
m_functionCall = null;
m_in = obVariableGroup1;
m_out = obVariableGroup2;
m_calledFncData = null;
m_callerFncData = obFunction;
m_returned = null;
m_functionCall = null;
}

public void SetCallerFncData(ObFunction obFunction)


{
m_callerFncData = obFunction;
}

public void clearReferences()


{
m_in = null;
m_out = null;
m_calledFncData = null;
m_callerFncData = null;
m_returned = null;
m_functionCall = null;
m_environment = null;
}

public static synchronized ObFncParameter createFromStream(BufferedReader bufferedReader, int i, String


string1, String string2)
{
Object object1;
Object object2;
<badSignature>;
ObFncParameter obFncParameter;
String string3 = new String(new StringBuffer(String.valueOf(string1)).append("_ObIn").toString());
object1 = null;
Class class1 = null;
String string4 = new String(new StringBuffer(String.valueOf(string1)).append("_ObOut").toString());
object2 = null;
Class class2 = null;
String string5 = new String(new StringBuffer(String.valueOf(string1)).append("_ObFnc").toString());

Page: 532 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

String string6 = null;


if (ObApplication.findCallMgr() != null)
string6 = ObApplication.findCallMgr().getPackage(string5, string2);
if (string6 == null)
{
ObApplication.log(1, new
StringBuffer(String.valueOf(ObApplication.getResString("NoPack"))).append(string5).toString());
return null;
}
if (!string6.equals("*NoPack"))
{
string3 = "." + string3;
string4 = "." + string4;
string5 = "." + string5;
}
ObFunction ob

Incomplete source ends here.

Page: 533 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObFunction

Full name of class: ObRun.ObFunction.ObFunction.class

package ObRun.ObFunction;

import java.io.*;
import ObRun.ObDatabase.ObDatabaseMgr;
import ObRun.ObPanel.ObCtrlData.ObCtrlData;
import ObRun.ObPanel.ObCtrlGui.ObCtrlGui;
import ObRun.ObPanel.ObLaunch;
import ObRun.ObRTTypes.ObCharFld;
import java.applet.Applet;
import java.awt.Window;
import java.util.StringTokenizer;
import java.util.Vector;
import javax.swing.JApplet;

public synchronized class ObFunction implements Serializable


{
public ObFunction m_parentFunctionData;
public ObVariableGroup m_in;
public ObVariableGroup m_out;
public ObVariableGroup m_locVariable;
public ObFncParameter m_parameter;
private ObCallMgr m_parent;
public Vector m_children;
private boolean m_hasReturned;
private boolean m_hasTerminated;
public ObFunctionHandler m_handler;
public boolean m_isInternal;
public Vector m_keySequence;
protected ObPanel m_panel;
private String m_functionName;
boolean m_stopped;

public ObFunction()
{
m_panel = null;

Page: 534 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_functionName = null;
m_stopped = true;
m_parameter = null;
m_parentFunctionData = null;
m_in = null;
m_out = null;
m_parent = null;
m_children = new Vector();
m_hasReturned = false;
m_handler = null;
}

public void ObRun()


{
ObApplication.log("You should never see this.");
}

public void addChild(ObVariableGroup obVariableGroup)


{
if (m_children != null)
m_children.addElement(obVariableGroup);
}

public void clearReferences()


{
m_locVariable = null;
m_parentFunctionData = null;
if (m_parameter != null && m_panel != null)
m_parameter.clearReferences();
if (m_panel != null)
m_panel.clearReferences();
m_panel = null;
m_in = null;
m_out = null;
m_parameter = null;
m_children = null;
m_parent = null;
m_handler = null;
m_functionName = null;
}

Page: 535 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void detachParameter()


{
m_parameter = null;
}

public boolean entry()


{
m_in = getInVariable();
m_out = getOutVariable();
return true;
}

public boolean exit()


{
ObDatabaseMgr.endCommitControl();
if (m_handler != null)
m_handler.clearReferences();
if (m_hasTerminated)
clearReferences();
return true;
}

public void exitPanel()


{
if (m_panel != null)
m_panel.exitPanel();
}

public ObFunction getCaller()


{
return m_parentFunctionData;
}

public ObVariableGroup getDatVariable()


{
if (m_locVariable == null)
m_locVariable = new ObVariableGroup(ObVariableGroup.VT_LOCAL, this);
return m_locVariable;
}

public String getFunctionName()

Page: 536 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
return m_functionName;
}

public ObVariableGroup getInVariable()


{
if (m_in == null)
m_in = new ObVariableGroup(ObVariableGroup.VT_INPUT, this);
return m_in;
}

public ObVariableGroup getOutVariable()


{
if (m_out == null)
m_out = new ObVariableGroup(ObVariableGroup.VT_OUTPUT, this);
return m_out;
}

public ObPanel getPanel()


{
return m_panel;
}

public ObCharFld getReturningStatus()


{
return null;
}

public boolean hasReturned()


{
return m_hasReturned;
}

public boolean isInternal()


{
return m_isInternal;
}

public boolean isRootFunction()


{
return m_parentFunctionData == null;

Page: 537 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public static synchronized ObFunction loadFunction(String string, boolean flag)


{
Class class = null;
ObFunction obFunction = null;
try
{
class = Class.forName(string);
}
catch (ClassNotFoundException e1)
{
if (flag)
ObApplication.logException(e1);
return null;
}
try
{
obFunction = (ObFunction)class.newInstance();
}
catch (InstantiationException e2)
{
if (flag)
{
ObApplication.log(new
StringBuffer(String.valueOf(ObApplication.getResString("NoInstance"))).append(string).toString());
ObApplication.logException(e2);
}
}
catch (IllegalAccessException e3)
{
if (flag)
{
ObApplication.log(string + ObApplication.getResString("AccErr"));
ObApplication.logException(e3);
}
}
catch (Exception e4)
{
if (flag)
ObApplication.logException(e4);

Page: 538 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
return obFunction;
}

public static synchronized String locatePackage(String string1, String string2)


{
String string3 = string2 + ".Package";
String string4 = ObApplication.getRunOptionValue(string3);
if (string4 != null && string4.length() != 0)
{
String string5 = new String("." + string1);
if (loadFunction(string5, false) != null)
return string4;
string3 = string2 + ".PackageList";
String string7 = ObApplication.getRunOptionValue(string3);
if ((string7 == null || string7.length() == 0) && loadFunction(string1, false) != null)
return new String("*NoPack");
for (StringTokenizer stringTokenizer1 = new StringTokenizer(string7);
stringTokenizer1.hasMoreTokens(); )
{
string4 = stringTokenizer1.nextToken();
string5 = new String("." + string1);
if (loadFunction(string5, false) != null)
return string4;
}
}
else
{
string3 = string2 + ".PackageList";
String string8 = ObApplication.getRunOptionValue(string3);
if ((string8 == null || string8.length() == 0) && loadFunction(string1, false) != null)
return new String("*NoPack");
for (StringTokenizer stringTokenizer2 = new StringTokenizer(string8);
stringTokenizer2.hasMoreTokens(); )
{
string4 = stringTokenizer2.nextToken();
String string6 = new String("." + string1);
if (loadFunction(string6, false) != null)
return string4;
}
}

Page: 539 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (loadFunction(string1, false) != null)


return new String("*NoPack");
else
return null;
}

private void readObject(ObjectInputStream objectInputStream)


throws IOException, ClassNotFoundException
{
objectInputStream.defaultReadObject();
}

public void removeChild(ObVariableGroup obVariableGroup)


{
m_children.removeElement(obVariableGroup);
}

public void setCallMgr(ObCallMgr obCallMgr)


{
m_parent = obCallMgr;
m_parent.addChild(this);
}

public void setCallStatus(ObCharFld obCharFld)


{
}

public void setFunctionName(String string)


{
m_functionName = string;
}

public void setFunctionParameters(ObFncParameter obFncParameter)


{
m_parameter = obFncParameter;
m_parentFunctionData = obFncParameter.getCallerFncData();
m_parameter.setCalledFncData(this);
m_in = m_parameter.m_in;
m_out = m_parameter.m_out;
m_children = new Vector();
m_hasReturned = false;

Page: 540 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

entry();
m_handler = new ObFunctionHandler(this);
}

public void setLocalVariable(ObVariableGroup obVariableGroup)


{
m_locVariable = obVariableGroup;
}

public void setPanel(ObPanel obPanel)


{
m_panel = obPanel;
}

public void setReturn()


{
m_hasReturned = true;
if (m_parent != null)
m_parent.removeChild(this);
if (m_panel != null)
{
if (m_panel.getPanelData().getGuiCtrl().getComponent() instanceof ObLaunch)
((JApplet)m_panel.getPanelData().getGuiCtrl().getComponent()).destroy();
else
((Window)m_panel.getPanelData().getGuiCtrl().getComponent()).dispose();
}
}

public void setReturnedStatus(ObCharFld obCharFld)


{
}

public void setReturningStatus(ObCharFld obCharFld)


{
}

public void setTerminate()


{
m_hasTerminated = true;
setReturn();
}

Page: 541 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public synchronized void startWait()


{
if (m_parentFunctionData != null)
return;
try
{
wait();
}
catch (Exception e)
{
e.printStackTrace();
}
}

public synchronized void stopWait()


{
if (m_parentFunctionData != null)
return;
notify();
}

private void writeObject(ObjectOutputStream objectOutputStream)


throws IOException
{
objectOutputStream.defaultWriteObject();
}
}

Page: 542 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObFunctionHandler

Full name of class: ObRun.ObFunction.ObFunctionHandler.class

package ObRun.ObFunction;

public final synchronized class ObFunctionHandler


{
ObFunction m_function;

public ObFunctionHandler(ObFunction obFunction)


{
if (obFunction != null)
m_function = obFunction;
}

public void clearReferences()


{
ObRun.ObRTTypes.ObCharFld obCharFld = m_function.getReturningStatus();
if (obCharFld != null && m_function != null && m_function.m_parameter != null)
{
m_function.m_parameter.setReturningStatus(obCharFld);
m_function.m_parameter.setReturnedStatus();
}
m_function = null;
}
}

Page: 543 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObLocalJavaCall

Full name of class: ObRun.ObFunction.ObLocalJavaCall.class

package ObRun.ObFunction;

final synchronized class ObLocalJavaCall extends ObCall


{
public ObLocalJavaCall(ObCallMgr obCallMgr)
{
super(obCallMgr);
}

public void call(ObFncParameter obFncParameter, String string1, String string2)


{
ObFunction obFunction1 = ObApplication.findApp().getCurrentFunction();
obFncParameter.m_environment = ObApplication.getEnvironment();
String string3 = m_callMgr.getPackage(string1, obFncParameter.m_environment);
if (string3 == null)
{
if (obFncParameter != null)
obFncParameter.setCallStatus(false);
Object aobject1[] = { string1 };
ObApplication.log(ObApplication.getResString("CheckCP"), aobject1);
return;
}
if (!string3.equals("*NoPack"))
string1 = "." + string1;
ObFunction obFunction2 = m_callMgr.getFunction(string1);
if (obFunction2 != null)
{
obFunction2.setCallMgr(m_callMgr);
obFncParameter.setCallStatus(true);
obFunction2.setFunctionParameters(obFncParameter);
ObApplication.findApp().setCurrentFunction(obFunction2);
obFunction2.ObRun();
ObApplication.findApp().setCurrentFunction(obFunction1);
obFunction2.exit();
if (obFunction2.getPanel() == null)

Page: 544 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

obFunction2.clearReferences();
}
else
{
if (obFncParameter != null)
obFncParameter.setCallStatus(false);
Object aobject2[] = { string1 };
ObApplication.log(ObApplication.getResString("CheckCP1"), aobject2);
}
obFunction2 = null;
}
}

Page: 545 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMessageLog

Full name of class: ObRun.ObFunction.ObMessageLog.class

package ObRun.ObFunction;

import java.awt.*;
import javax.swing.*;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

public final synchronized class ObMessageLog implements WindowListener


{
private ObClientApp m_app;
private JFrame m_messageLog;
private JList m_list;
private boolean m_alwaysOnTop;
private String m_messages[];

public ObMessageLog(ObClientApp obClientApp)


{
m_app = null;
m_messageLog = null;
m_list = null;
m_alwaysOnTop = false;
m_messages = new String[0];
m_app = obClientApp;
m_messageLog = new JFrame(ObApplication.getString("MessageLogTitle"));
m_messageLog.getContentPane().setLayout(new BorderLayout());
m_messageLog.addWindowListener(this);
m_list = new JList(m_messages);
JScrollPane jScrollPane = new JScrollPane(m_list);
m_list.setBackground(SystemColor.window);
m_messageLog.getContentPane().add(jScrollPane);
JMenuBar jMenuBar = new JMenuBar();
JMenu jMenu = new JMenu(ObApplication.getString("Log"));
jMenu.setMnemonic('L');
JMenuItem jMenuItem = new JMenuItem(ObApplication.getString("Clear"));
jMenuItem.setMnemonic('C');

Page: 546 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

jMenuItem.setActionCommand("Clear");
jMenuItem.addActionListener(new ObMessageLog$ObMenuListener(this));
jMenu.add(jMenuItem);
jMenuBar.add(jMenu);
m_messageLog.setJMenuBar(jMenuBar);
m_messageLog.setSize(new Dimension(300, 300));
m_messageLog.show();
}

public void addMessage(String string)


{
String astring[] = new String[m_list.getModel().getSize() + 1];
for (int i = 0; i < m_messages.length; i++)
astring[i] = m_messages[i];
astring[m_list.getModel().getSize()] = new String(string);
m_list.clearSelection();
m_messages = astring;
m_list.setListData(m_messages);
m_messageLog.repaint();
m_messageLog.show();
m_list.ensureIndexIsVisible(m_list.getModel().getSize());
}

public void clearMessages()


{
m_messages = new String[0];
m_list.setListData(m_messages);
m_messageLog.getContentPane().repaint();
}

public void clearReferences()


{
m_messageLog.dispose();
}

public void windowActivated(WindowEvent windowEvent)


{
}

public void windowClosed(WindowEvent windowEvent)


{

Page: 547 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void windowClosing(WindowEvent windowEvent)


{
m_app.setMessageLog(null);
}

public void windowDeactivated(WindowEvent windowEvent)


{
}

public void windowDeiconified(WindowEvent windowEvent)


{
}

public void windowIconified(WindowEvent windowEvent)


{
}

public void windowOpened(WindowEvent windowEvent)


{
}
}

Page: 548 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMessageLog$ObMenuListener

Full name of class: ObRun.ObFunction.ObMessageLog$ObMenuListener.class

package ObRun.ObFunction;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.EventObject;
import javax.swing.AbstractButton;
import javax.swing.JMenuItem;

synchronized class ObMessageLog$ObMenuListener implements ActionListener


{
private final ObMessageLog this$0 = obMessageLog;

ObMessageLog$ObMenuListener(ObMessageLog obMessageLog)
{
}

public void actionPerformed(ActionEvent actionEvent)


{
JMenuItem jMenuItem = (JMenuItem)actionEvent.getSource();
if (jMenuItem.getActionCommand().equals("Clear"))
this$0.clearMessages();
}
}

Page: 549 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObPanel

Full name of class: ObRun.ObFunction.ObPanel.class

package ObRun.ObFunction;

import ObRun.ObPanel.ObCtrlData.*;
import ObRun.ObPanel.ObCtrlGui.ObCtrlGui;
import ObRun.ObPanel.ObCtrlGui.ObWindowGui;
import ObRun.ObPanel.ObLaunch;
import ObRun.ObPanel.ObPanelUtils.ObPanelResource;
import ObRun.ObRTTypes.ObField;
import java.util.Enumeration;
import java.util.ResourceBundle;
import javax.swing.UIManager;

public synchronized abstract class ObPanel extends Thread


{
private boolean m_flag;
private ObFunction m_owningFunction;
private ObPanelResource m_resource;
private String m_language;
private ObWindowData m_panelData;
private String m_panelName;
private int m_currentAction;
private boolean m_mouseOver;
private String m_name;

public ObPanel(ObFunction obFunction, String string1, int i, String string2)


{
m_flag = true;
m_owningFunction = null;
m_resource = null;
m_language = null;
m_panelData = null;
m_panelName = null;
m_currentAction = 0;
m_mouseOver = false;
m_owningFunction = obFunction;

Page: 550 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_owningFunction.setPanel(this);
m_panelName = string2;
m_name = string1;
initResources();
String string3 = m_resource.getString("WindowId");
String string4 = "Dialog";
try
{
string4 = m_resource.getString(new
StringBuffer(String.valueOf(string3)).append(".WindowType").toString());
}
catch (Exception e1)
{
}
ObWindowData obWindowData = null;
if (m_owningFunction.getCaller() != null && m_owningFunction.getCaller().getPanel() != null)
obWindowData = m_owningFunction.getCaller().getPanel().getPanelData();
if (string4.equals("Dialog"))
m_panelData = new ObDialogData(this, string1, i, obWindowData);
else
m_panelData = new ObTopAppData(this, string1, i);
try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
UIManager.setLookAndFeel(ObApplication.getRunOptionValue(ObApplication.getEnvironment() +
".LookAndFeel"));
}
catch (Exception e2)
{
}
setShouldShowMouseOver();
ObLaunch obLaunch = (ObLaunch)ObApplication.findApp().getApplet();
if (obLaunch != null && getFunction().m_parentFunctionData == null)
obLaunch.setPanel(this);
}

public ObCtrlData bindControl(int i)


{
return m_panelData.bindControl(i);
}

Page: 551 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObCtrlData bindControl(int i, int j)


{
return m_panelData.bindControl(i, j);
}

public ObCtrlData bindControl(int i, ObField obField)


{
return m_panelData.bindControl(i, obField);
}

public void clearReferences()


{
m_owningFunction.setPanel(null);
m_owningFunction = null;
if (m_panelData != null && m_panelData.getGuiCtrl() != null)
m_panelData.getGuiCtrl().clearReferences();
m_panelData = null;
m_resource = null;
m_language = null;
m_panelName = null;
m_name = null;
m_flag = false;
}

public abstract void eventsHandler();


public void exitPanel()
{
if (m_panelData != null)
m_panelData.exitPanel();
}

public int getCurrentAction()


{
return m_currentAction;
}

public ObFunction getFunction()


{
return m_owningFunction;
}

Page: 552 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public String getImplName()


{
return m_name;
}

public String getLanguage()


{
return m_language;
}

public ObWindowData getPanelData()


{
return m_panelData;
}

public String getPanelName()


{
return m_panelName;
}

public String getProperty(String string1)


{
if (m_resource == null)
initResources();
String string2 = null;
try
{
string2 = m_resource.getString(string1);
}
catch (Exception e)
{
}
return string2;
}

public boolean getShouldShowMouseOver()


{
return m_mouseOver;
}

protected void initResources()

Page: 553 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
try
{
if (ObApplication.isApplet())
m_resource = ObPanelResource.getResourceFromName(m_name);
else
{
String string = ObApplication.getRunOptionValue(ObApplication.getEnvironment() +
".Resources");
if (string.length() < 1)
m_resource = new ObPanelResource(getClass().getResource(m_name + ".panelresource"));
else
m_resource = ObPanelResource.getResourceFromName(m_name);
}
}
catch (Exception e)
{
e.printStackTrace();
}
}

public void layout()


{
m_panelData.layout();
}

public void layoutWindow()


{
for (Enumeration enumeration = m_panelData.getPanel().getAllControls();
enumeration.hasMoreElements(); )
{
ObCtrlData obCtrlData = (ObCtrlData)enumeration.nextElement();
if (obCtrlData instanceof ObGridData)
{
((ObGridData)obCtrlData).complete();
obCtrlData.render(null);
}
}
m_panelData.getGuiCtrl().getPanel().sortTabSequence();
m_panelData.getGuiCtrl().getPanel().layoutWindow();

Page: 554 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

String string = ObApplication.getRunOptionValue(ObApplication.getEnvironment() +


".ClearResourceCache");
if (string == null)
string = new String("No");
if (string.compareTo("Yes") == 0 || string.compareTo("YES") == 0)
m_resource = null;
}

public void load()


{
try
{
m_language = m_resource.getString(new StringBuffer(String.valueOf(new
Integer(m_panelData.getID()).toString())).append(".Language").toString());
}
catch (Exception e)
{
}
m_panelData.loadChildren();
m_panelData.render(null);
}

public void notifyFunction(boolean flag)


{
if (m_panelData != null && !m_panelData.isDialog())
getFunction().stopWait();
else if (m_panelData != null && m_panelData.isDialog() && flag)
m_panelData.closeWindow();
if (m_panelData != null)
m_panelData.clearReferences();
m_panelData = null;
if (getFunction() != null)
getFunction().clearReferences();
}

public void postProcess()


{
if (m_panelData != null && !m_panelData.isDialog())
getFunction().startWait();
}

Page: 555 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void run()


{
while (m_flag)
{
try
{
Thread.sleep(1000);
}
catch (InterruptedException e)
{
}
}
}

public void setCurrentAction(int i)


{
m_currentAction = i;
}

public void setExitPanel()


{
clearReferences();
}

protected void setShouldShowMouseOver()


{
String string = ObApplication.getRunOptionValue("UseMouseOverCursor");
if (string == null)
m_mouseOver = false;
else if (string.compareTo("No") == 0)
m_mouseOver = false;
else
m_mouseOver = true;
}

public void setState(int i)


{
m_panelData.setState(i);
}

public void show()

Page: 556 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
m_panelData.show();
try
{
start();
}
catch (Exception e)
{
}
}
}

Page: 557 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObRemoteJavaCall

Full name of class: ObRun.ObFunction.ObRemoteJavaCall.class

package ObRun.ObFunction;

import ObRun.ObComms.ObObjectConversation;

final synchronized class ObRemoteJavaCall extends ObCall


{
String m_logicalLocation;
String m_remoteMachine;

public ObRemoteJavaCall(String string1, String string2, ObCallMgr obCallMgr)


{
super(obCallMgr);
m_logicalLocation = string1;
m_remoteMachine = string2;
}

public void call(ObFncParameter obFncParameter, String string1, String string2)


{
if (m_remoteMachine == null)
{
ObApplication.log(m_logicalLocation + " " + ObApplication.getResString("NotComp"));
ObLocalJavaCall obLocalJavaCall = new ObLocalJavaCall(m_callMgr);
obLocalJavaCall.call(obFncParameter, string1, string2);
return;
}
ObObjectConversation obObjectConversation =
(ObObjectConversation)m_callMgr.getRemoteConversation(m_remoteMachine);
if (obObjectConversation == null)
{
obObjectConversation = new ObObjectConversation(m_logicalLocation, m_remoteMachine);
m_callMgr.addRemoteConversation(m_remoteMachine, obObjectConversation);
try
{
obObjectConversation.allocate();
}

Page: 558 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

catch (Exception e)
{
obFncParameter.setCallStatus(false);
ObApplication.logException(e);
return;
}
}
obObjectConversation.callFunction(string1, obFncParameter);
}
}

Page: 559 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObRemoteRPGCall

Full name of class: ObRun.ObFunction.ObRemoteRPGCall.class

package ObRun.ObFunction;

import ObRun.ObComms.ObAS400Conversation;

final synchronized class ObRemoteRPGCall extends ObCall


{
String m_logicalLocation;
String m_remoteMachine;

public ObRemoteRPGCall(String string1, String string2, ObCallMgr obCallMgr)


{
super(obCallMgr);
m_logicalLocation = string1;
m_remoteMachine = string2;
}

public void call(ObFncParameter obFncParameter, String string1, String string2)


{
if (m_remoteMachine == null)
{
ObApplication.log(m_logicalLocation + " " + ObApplication.getResString("NotComp"));
ObLocalJavaCall obLocalJavaCall = new ObLocalJavaCall(m_callMgr);
obLocalJavaCall.call(obFncParameter, string1, string2);
return;
}
ObAS400Conversation obAS400Conversation =
(ObAS400Conversation)m_callMgr.getRemoteConversation(m_remoteMachine);
if (obAS400Conversation == null)
{
obAS400Conversation = new ObAS400Conversation(m_logicalLocation, m_remoteMachine);
m_callMgr.addRemoteConversation(m_remoteMachine, obAS400Conversation);
try
{
boolean flag = obAS400Conversation.allocate();
if (flag == 0)

Page: 560 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
obAS400Conversation = null;
m_callMgr.removeRemoteConversation(m_remoteMachine);
obFncParameter.setCallStatus(false);
ObApplication.log(ObApplication.getResString("ConnectFailed"));
return;
}
}
catch (Exception e)
{
obAS400Conversation = null;
m_callMgr.removeRemoteConversation(m_remoteMachine);
obFncParameter.setCallStatus(false);
ObApplication.logException(e);
return;
}
}
if (obAS400Conversation.callFunction(string1, string2, obFncParameter))
obAS400Conversation = null;
obFncParameter.setCallStatus(false);
return;
}
}

Page: 561 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObServerApp

Full name of class: ObRun.ObFunction.ObServerApp.class

Formal parameters:

Page: 562 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObValidElement

Full name of class: ObRun.ObFunction.ObValidElement.class

package ObRun.ObEnvironment;

import java.util.Vector;

public final synchronized class ObValidElement extends ObOptionsElement


{
protected Vector m_optionValues;

public ObValidElement(String string)


{
super(string);
m_optionValues = new Vector(10, 10);
}

public synchronized void addElement(String string)


{
m_optionValues.addElement(string);
}

public void clearReferences()


{
m_optionValues.removeAllElements();
}

public Vector getValues()


{
return m_optionValues;
}
}

Page: 563 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObVariable

Full name of class: ObRun.ObFunction.ObVariable.class

package ObRun.ObFunction;

import java.io.*;
import ObRun.ObRTTypes.ObField;
import ObRun.ObRTTypes.ObStructuredFld;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;

public synchronized class ObVariable implements Serializable


{
private ObVariableGroup m_parent;

public ObVariable()
{
m_parent = null;
}

public ObVariable(ObVariableGroup obVariableGroup)


{
setOwner(obVariableGroup);
}

public void clearReferences()


{
m_parent.removeChild(this);
m_parent = null;
}

public Object[] getArrayObj(Field field)


{
return null;
}

public int getFieldCount()


{

Page: 564 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Field afield[] = getClass().getDeclaredFields();


int i = 0;
for (int j = 0; j < afield.length; j++)
{
if (afield[j].getType().isArray())
{
Object aobject1[] = getArrayObj(afield[j]);
if
(aobject1[0].getClass().getSuperclass().getName().equals("ObRun.ObRTTypes.ObStructuredFld"))
{
if (afield[j].getModifiers() == 1)
{
Object aobject2[] = getArrayObj(afield[j]);
ObStructuredFld obStructuredFld2 = (ObStructuredFld)aobject2[0];
int k = obStructuredFld2.getFieldCount();
i += k * aobject2.length;
}
}
else if (afield[j].getModifiers() == 1)
{
Object aobject3[] = getArrayObj(afield[j]);
i += aobject3.length;
}
}
else if (afield[j].getType().getSuperclass().getName().equals("ObRun.ObRTTypes.ObField"))
i++;
else if
(afield[j].getType().getSuperclass().getName().equals("ObRun.ObRTTypes.ObStructuredFld") &&
afield[j].getModifiers() == 1)
{
ObStructuredFld obStructuredFld1 = (ObStructuredFld)getObj(afield[j]);
i += obStructuredFld1.getFieldCount();
}
}
return i;
}

public ObField[] getObFields()


{
int i1 = getFieldCount();
ObField aobField[] = new ObField[i1];

Page: 565 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Field afield[] = getClass().getDeclaredFields();


i1 = 0;
for (int j = 0; j < afield.length; j++)
{
if (afield[j].getType().isArray())
{
Object aobject1[] = getArrayObj(afield[j]);
if (!
aobject1[0].getClass().getSuperclass().getName().equals("ObRun.ObRTTypes.ObStructuredFld"))
{
Object aobject3[] = getArrayObj(afield[j]);
for (int i2 = 0; i2 < aobject3.length; i2++)
{
if (afield[j].getModifiers() == 1)
{
aobField[i1] = (ObField)aobject3[i2];
i1++;
}
}
}
else if (afield[j].getModifiers() == 1)
{
Object aobject2[] = getArrayObj(afield[j]);
for (int k = 0; k < aobject2.length; k++)
{
ObStructuredFld obStructuredFld2 = (ObStructuredFld)aobject2[k];
i1 = obStructuredFld2.getObFields(aobField, i1);
}
}
}
else if (afield[j].getType().getSuperclass().getName().equals("ObRun.ObRTTypes.ObField"))
{
aobField[i1] = (ObField)getObj(afield[j]);
i1++;
}
else if
(afield[j].getType().getSuperclass().getName().equals("ObRun.ObRTTypes.ObStructuredFld") &&
afield[j].getModifiers() == 1)
{
ObStructuredFld obStructuredFld1 = (ObStructuredFld)getObj(afield[j]);
i1 = obStructuredFld1.getObFields(aobField, i1);

Page: 566 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
}
return aobField;
}

public Object getObj(Field field)


{
return null;
}

public ObVariableGroup getOwner()


{
return m_parent;
}

private void readObject(ObjectInputStream objectInputStream)


throws IOException, ClassNotFoundException
{
objectInputStream.defaultReadObject();
}

public void setOwner(ObVariableGroup obVariableGroup)


{
m_parent = obVariableGroup;
m_parent.addChild(this);
}

private void writeObject(ObjectOutputStream objectOutputStream)


throws IOException
{
objectOutputStream.defaultWriteObject();
}
}

Page: 567 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObVariableGroup

Full name of class: ObRun.ObFunction.ObVariableGroup.class

package ObRun.ObFunction;

import ObRun.ObRTTypes.*;
import java.io.*;
import ObRun.ObComms.ObAS400SocketStream;
import [LObRun.ObFunction.ObVariable;;
import java.lang.reflect.Field;
import java.util.Enumeration;
import java.util.Vector;

public synchronized class ObVariableGroup implements Serializable, Cloneable


{
public static transient String VT_INPUT;
public static transient String VT_OUTPUT;
public static transient String VT_LOCAL;
public static transient String VT_CALLS;
public static transient String VT_ENVIRONMENT;
protected transient ObFunction m_parent;
public transient String m_groupType;
public transient Vector m_children;

static
{
VT_INPUT = "VT_INPUT".intern();
VT_OUTPUT = "VT_OUTPUT".intern();
VT_LOCAL = "VT_LOCAL".intern();
VT_CALLS = "VT_CALLS".intern();
VT_ENVIRONMENT = "VT_ENVIRONMENT".intern();
}

public ObVariableGroup()
{
}

public ObVariableGroup(String string, ObFunction obFunction)

Page: 568 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
m_parent = null;
m_groupType = string;
setOwnerFncData(obFunction);
m_children = new Vector();
}

public void addChild(ObVariable obVariable)


{
m_children.addElement(obVariable);
}

public int addToHeader(int an[], int i1, int j1, boolean flag1)
{
i1 = i1--;
Field afield[] = getClass().getDeclaredFields();
for (int k = 0; k < afield.length; k++)
{
boolean flag2 = false;
if (flag1 && (afield[k].getName().endsWith("OBJECTS_Input") ||
afield[k].getName().endsWith("OBJECTS_Output")))
flag2 = true;
int i2 = 0;
ObField aobField[] = getObFieldsFromVar(k);
if (aobField.length >= 1)
{
for (int j2 = 0; j2 < aobField.length; j2++)
{
ObField obField = aobField[j2];
if (((ObField)obField).getAS400DataType() == 112)
i2 += ((ObField)obField).getDesignLength() / 2 + 1;
else
i2 += ((ObField)obField).getDesignLength();
if (flag1 && ((ObField)obField instanceof ObDateFld || (ObField)obField instanceof
ObTimeFld || (ObField)obField instanceof ObTimeStampFld))
{
i2 += 2;
if ((ObField)obField instanceof ObTimeStampFld)
i2 += 4;
}
if (flag2)

Page: 569 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
an[i1++] = i2;
an[i1++] = j1;
j1 += i2;
i2 = 0;
}
}
if (!flag2)
{
an[i1++] = i2;
an[i1++] = j1;
j1 += i2;
}
}
}
return j1;
}

public void clearReferences()


{
m_parent.removeChild(this);
m_parent = null;
m_groupType = null;
for (Enumeration enumeration = m_children.elements(); enumeration.hasMoreElements(); )
{
ObVariable obVariable = (ObVariable)enumeration.nextElement();
obVariable.clearReferences();
}
m_children = null;
}

public Object clone()


throws CloneNotSupportedException
{
ObVariableGroup obVariableGroup = (ObVariableGroup)super.clone();
obVariableGroup.copy(this);
return obVariableGroup;
}

public void copy(ObVariableGroup obVariableGroup)


{

Page: 570 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (obVariableGroup.getClass().getName().equals(getClass().getName()))
{
Class class = obVariableGroup.getClass();
Field afield1[] = class.getFields();
Field afield2[] = getClass().getFields();
for (int i = 0; i < afield1.length; i++)
{
Object object = null;
try
{
object = afield1[i].get(obVariableGroup);
if (object != null)
afield2[i].set(this, object);
}
catch (IllegalAccessException e1)
{
}
catch (Exception e2)
{
ObApplication.log(e2.getMessage());
return;
}
}
}
}

public int countFields()


{
int i = 0;
Field afield[] = getClass().getDeclaredFields();
for (int j = 0; j < afield.length; j++)
{
ObField aobField[] = getObFieldsFromVar(j);
i += aobField.length;
}
return i;
}

public int countVariables(boolean flag)


{
int i = 0;

Page: 571 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Field afield[] = getClass().getDeclaredFields();


for (int j = 0; j < afield.length; j++)
{
ObField aobField[] = getObFieldsFromVar(j);
if (flag && (afield[j].getName().endsWith("OBJECTS_Input") ||
afield[j].getName().endsWith("OBJECTS_Output")))
i += aobField.length;
else if (aobField.length > 0)
i++;
}
return i;
}

public String fieldValueFromStream(char ach[], int i)


{
CharArrayWriter charArrayWriter;
charArrayWriter = new CharArrayWriter();
try
{
for (local = ach[i]; local != 0 && i < ach.length; i++)
{
local = ach[i];
if (local == 0)
break;
charArrayWriter.write(local);
}
}
catch ()
{
ObApplication.logException(local);
}
return charArrayWriter.toString();
}

public Object[] getArrayObj(Field field)


{
return null;
}

public int getLength(boolean flag)


{

Page: 572 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

int i = false;
try
{
Field afield[] = getClass().getDeclaredFields();
for (int j = 0; j < afield.length; j++)
{
ObField aobField[] = getObFieldsFromVar(j);
for (int k = 0; k < aobField.length; k++)
{
ObField obField = aobField[k];
if (((ObField)obField).getAS400DataType() == 112)
i += ((ObField)obField).getDesignLength() / 2 + 1;
else
i += ((ObField)obField).getDesignLength();
if (flag && ((ObField)obField instanceof ObDateFld || (ObField)obField instanceof
ObTimeFld || (ObField)obField instanceof ObTimeStampFld))
{
i += 2;
if ((ObField)obField instanceof ObTimeStampFld)
i += 4;
}
}
}
}
catch (Exception e)
{
ObApplication.logException(e);
i = false;
}
return i;
}

public ObField[] getObFieldsFromVar(int i1)


{
try
{
Field afield[] = getClass().getDeclaredFields();
if (!afield[i1].getType().isArray())
{
ObVariable obVariable = (ObVariable)getObj(afield[i1]);
return obVariable.getObFields();

Page: 573 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
[LObRun.ObFunction.ObVariable obVariable; = (ObVariable;)getArrayObj(afield[i1]);
int j = obVariable;[0].getFieldCount();
j *= obVariable;.length;
ObField aobField1[] = new ObField[j];
for (int k = 0; k < obVariable;.length; k++)
{
ObField aobField2[] = obVariable;[k].getObFields();
for (int i2 = 0; i2 < aobField2.length; i2++)
aobField1[k * aobField2.length + i2] = aobField2[i2];
}
return aobField1;
}
catch (Exception e)
{
ObApplication.logException(e);
}
return null;
}

public Object getObj(Field field)


{
return null;
}

public ObFunction getOwnerFncData()


{
return m_parent;
}

private void readObject(ObjectInputStream objectInputStream)


throws IOException, ClassNotFoundException
{
objectInputStream.defaultReadObject();
}

public int readRPGVariables(byte ab1[], int i1, String string1, boolean flag)
{
try
{
byte ab2[] = null;

Page: 574 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Field afield[] = getClass().getDeclaredFields();


for (int j1 = 0; j1 < afield.length; j1++)
{
ObField aobField[] = getObFieldsFromVar(j1);
<badSignature>;
for (int k1 = 0; k1 < aobField.length; k1++)
{
ObField obField = aobField[k1];
String string2 = null;
ab2 = new byte[((ObField)obField).getDesignLength()];
if ((ObField)obField instanceof ObCharFld)
{
int i2 = 0;
int k2 = i1;
while (i2 < ab2.length)
{
ab2[i2] = ab1[k2];
i2++;
k2++;
}
i1 += ((ObField)obField).getDesignLength();
if (((ObField)obField).hasSpecialValues())
string2 = ((ObField)obField).getAS400State(new String(ab2));
if (string2 == null)
{
string2 = ObAS400SocketStream.decode(ab2, string1);
((ObField)obField).fromString(string2.trim());
}
string2 = null;
}
else if (!((ObField)obField instanceof ObDateFld) && !((ObField)obField instanceof
ObTimeFld) && !((ObField)obField instanceof ObTimeStampFld))
{
char ach2[];
if (((ObField)obField).getAS400DataType() == 112)
ach2 = new char[((ObField)obField).getDesignLength() / 2 + 1];
else
ach2 = new char[((ObField)obField).getDesignLength()];
int k3 = 0;
int k4 = i1;
while (k3 < ach2.length)

Page: 575 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
ach2[k3] = ab1[k4];
k3++;
k4++;
}
if (((ObField)obField).getAS400DataType() == 112)
i1 += ((ObField)obField).getDesignLength() / 2 + 1;
else
i1 += ((ObField)obField).getDesignLength();
if (((ObField)obField).getAS400DataType() == 112)
ach2 = ObAS400SocketStream.convertPackedToZoned(ach2,
((ObField)obField).getDesignLength(), ((ObField)obField).getDesignDecimals());
if (((ObField)obField).hasSpecialValues())
string2 = ((ObField)obField).getAS400State(new String(ab2));
if (string2 == null)
{
string2 = ObAS400SocketStream.convertZonedToAscii(ach2,
((ObField)obField).getDesignLength(), ((ObField)obField).getDesignDecimals());
((ObField)obField).fromString(string2.trim());
}
local = null;
}
else if (flag)
{
int j2 = ((ObField)obField).getDesignLength();
j2 += 2;
if ((ObField)obField instanceof ObTimeStampFld)
j2 += 4;
ab2 = new byte[j2];
int i3 = 0;
int i4 = i1;
while (i3 < ab2.length)
{
ab2[i3] = ab1[i4];
i3++;
i4++;
}
i1 += j2;
if (((ObField)obField).hasSpecialValues())
string2 = ((ObField)obField).getAS400State(new String(ab2));
if (string2 == null)

Page: 576 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
string2 = ObAS400SocketStream.decode(ab2, string1);
((ObField)obField).fromString(string2.trim());
}
string2 = null;
}
else
{
char ach1[];
if (((ObField)obField).getAS400DataType() == 112)
ach1 = new char[((ObField)obField).getDesignLength() / 2 + 1];
else
ach1 = new char[((ObField)obField).getDesignLength()];
int j3 = 0;
int j4 = i1;
while (j3 < ach1.length)
{
ach1[j3] = ab1[j4];
j3++;
j4++;
}
if (((ObField)obField).getAS400DataType() == 112)
i1 += ((ObField)obField).getDesignLength() / 2 + 1;
else
i1 += ((ObField)obField).getDesignLength();
if (((ObField)obField).hasSpecialValues())
{
ab2 = new byte[ach1.length];
for (int i5 = 0; i5 < ach1.length; i5++)
ab2[i5] = (byte)ach1[i5];
string2 = ((ObField)obField).getAS400State(new String(ab2));
}
if (string2 == null)
{
if (((ObField)obField).getAS400DataType() == 112)
ach1 = ObAS400SocketStream.convertPackedToZoned(ach1,
((ObField)obField).getDesignLength(), ((ObField)obField).getDesignDecimals());
string2 = ObAS400SocketStream.convertZonedToAscii(ach1,
((ObField)obField).getDesignLength(), ((ObField)obField).getDesignDecimals());
((ObField)obField).fromStringWithoutSeparators(string2.trim());
}

Page: 577 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

string2 = null;
}
}
}
}
catch (Exception e)
{
ObApplication.logException(e);
}
return i1;
}

public void readVariables(char ach[], int i)


{
try
{
Field afield[] = getClass().getDeclaredFields();
for (int j = 0; j < afield.length; j++)
{
ObField aobField[] = getObFieldsFromVar(j);
for (int k = 0; k < aobField.length; k++)
{
ObField obField = aobField[k];
byte b = specialValueFromStream(ach, i);
i += 2;
String string = fieldValueFromStream(ach, i);
if (b != 0)
obField.setState(b);
else
obField.fromString(string);
i += obField.getCLength();
}
}
}
catch (Exception e)
{
ObApplication.logException(e);
}
}

public void readVariables(String astring[])

Page: 578 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
try
{
Field afield[] = getClass().getDeclaredFields();
int i = 0;
for (int j = 0; j < afield.length; j++)
{
ObField aobField[] = getObFieldsFromVar(j);
for (int k = 0; k < aobField.length; k++)
{
ObField obField = aobField[k];
obField.fromString(astring[i]);
i++;
}
}
}
catch (Exception e)
{
ObApplication.logException(e);
}
}

public void removeChild(ObVariable obVariable)


{
m_children.removeElement(obVariable);
}

public void setOwnerFncData(ObFunction obFunction)


{
m_parent = obFunction;
if (m_parent != null)
m_parent.addChild(this);
}

public void setReturnedStatus(ObCharFld obCharFld)


{
}

public byte specialValueFromStream(char ach[], int i)


{
CharArrayWriter charArrayWriter = new CharArrayWriter();

Page: 579 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

byte b = 0;
try
{
b = (byte)ach[i];
}
catch (Exception e)
{
ObApplication.logException(e);
}
return b;
}

private void writeObject(ObjectOutputStream objectOutputStream)


throws IOException
{
objectOutputStream.defaultWriteObject();
}

public void writeRPGVariables(byte ab1[], int i1, String string1, boolean flag)
{
try
{
byte ab2[] = null;
Field afield[] = getClass().getDeclaredFields();
for (int j1 = 0; j1 < afield.length; j1++)
{
ObField aobField[] = getObFieldsFromVar(j1);
for (int k1 = 0; k1 < aobField.length; k1++)
{
ObField obField = aobField[k1];
String string2 = null;
if (((ObField)obField).hasState())
ab2 = ((ObField)obField).getAS400Content();
if ((ObField)obField instanceof ObCharFld)
{
if (ab2 == null)
{
string2 =
ObAS400SocketStream.createFixLengthString(((ObField)obField).toString(),
((ObField)obField).getDesignLength());
ab2 = ObAS400SocketStream.encode(string2, string1);

Page: 580 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
int i2 = 0;
int k2 = i1;
while (i2 < ab2.length)
{
ab1[k2] = ab2[i2];
i2++;
k2++;
}
i1 += ((ObField)obField).getDesignLength();
ab2 = null;
}
else if ((ObField)obField instanceof ObDateFld || (ObField)obField instanceof ObTimeFld
|| (ObField)obField instanceof ObTimeStampFld)
{
int j2 = ((ObField)obField).getDesignLength();
if (flag)
{
if (ab2 == null)
{
j2 += 2;
if ((ObField)obField instanceof ObTimeStampFld)
j2 += 4;
string2 =
ObAS400SocketStream.createFixLengthString(((ObField)obField).toString(), j2);
ab2 = ObAS400SocketStream.encode(string2, string1);
}
int i3 = 0;
int j4 = i1;
while (i3 < ab2.length)
{
ab1[j4] = ab2[i3];
i3++;
j4++;
}
i1 += j2;
ab2 = null;
}
else
{
char ach2[] = null;

Page: 581 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (ab2 == null)
{
string2 = ((ObField)obField).toStringWithoutSeparators();
ach2 = ObAS400SocketStream.convertAsciiToZoned(string2, j2,
((ObField)obField).getDesignDecimals());
if (((ObField)obField).getAS400DataType() == 112)
ach2 = ObAS400SocketStream.convertZonedToPacked(ach2, j2,
((ObField)obField).getDesignDecimals());
}
else
{
ach2 = new char[ab2.length];
for (int k4 = 0; k4 < ab2.length; k4++)
ach2[k4] = (char)ab2[k4];
}
int i5 = 0;
int k5 = i1;
while (i5 < ach2.length)
{
ab1[k5] = (byte)ach2[i5];
i5++;
k5++;
}
if (((ObField)obField).getAS400DataType() == 112)
i1 += ((ObField)obField).getDesignLength() / 2 + 1;
else
i1 += ((ObField)obField).getDesignLength();
ab2 = null;
}
}
else
{
char ach1[] = null;
if (ab2 == null)
{
string2 = ((ObField)obField).toString();
int j3 = ((ObField)obField).getDesignLength();
ach1 = ObAS400SocketStream.convertAsciiToZoned(string2, j3,
((ObField)obField).getDesignDecimals());
if (((ObField)obField).getAS400DataType() == 112)

Page: 582 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ach1 = ObAS400SocketStream.convertZonedToPacked(ach1, j3,


((ObField)obField).getDesignDecimals());
}
else
{
ach1 = new char[ab2.length];
for (int k3 = 0; k3 < ab2.length; k3++)
ach1[k3] = (char)ab2[k3];
}
int i4 = 0;
int j5 = i1;
while (i4 < ach1.length)
{
ab1[j5] = (byte)ach1[i4];
i4++;
j5++;
}
if (((ObField)obField).getAS400DataType() == 112)
i1 += ((ObField)obField).getDesignLength() / 2 + 1;
else
i1 += ((ObField)obField).getDesignLength();
ab2 = null;
}
}
}
}
catch (Exception e)
{
ObApplication.logException(e);
}
}

public void writeVariables(CharArrayWriter charArrayWriter)


{
try
{
Field afield[] = getClass().getDeclaredFields();
for (int i1 = 0; i1 < afield.length; i1++)
{
ObField aobField[] = getObFieldsFromVar(i1);
for (int j = 0; j < aobField.length; j++)

Page: 583 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
ObField obField = aobField[j];
charArrayWriter.write(((ObField)obField).getState());
charArrayWriter.write(0);
String string = ((ObField)obField).toString();
if (string.length() > ((ObField)obField).getCLength())
string = string.substring(0, ((ObField)obField).getCLength() - 1);
charArrayWriter.write(string, 0, string.length());
int k = ((ObField)obField).getCLength() - string.length();
for (int i2 = 0; i2 < k; i2++)
charArrayWriter.write(0);
}
}
}
catch (Exception e)
{
ObApplication.logException(e);
}
}

public void writeVariables(Vector vector)


{
try
{
Field afield[] = getClass().getDeclaredFields();
for (int i = 0; i < afield.length; i++)
{
ObField aobField[] = getObFieldsFromVar(i);
for (int j = 0; j < aobField.length; j++)
{
ObField obField = aobField[j];
String string = ((ObField)obField).toString();
vector.addElement(string);
}
}
}
catch (Exception e)
{
ObApplication.logException(e);
}
}

Page: 584 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Page: 585 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObPanel

ObCtrlData

ObBeanData

Full name of class: ObRun.ObPanel.ObCtrlData.ObBeanData.class

package ObRun.ObPanel.ObCtrlData;

import ObRun.ObFunction.ObPanel;
import ObRun.ObPanel.ObCtrlGui.ObBeanGui;
import ObRun.ObPanel.ObCtrlGui.ObCtrlGui;

public final synchronized class ObBeanData extends ObCtrlData


{
public ObBeanData()
{
}

public void clearReferences()


{
getParent().removeChild(this);
}

public void init(int i)


{
String string1 = new String();
String string2 = "." + new Integer(i).toString() + ".Name";
string1 = getParent().getPanel().getOwner().getProperty(string2);
m_guiCtrl = new ObBeanGui(string1);
m_guiCtrl.setData(this);
setID(i);
getParent().addChild(this);
}
}

Page: 586 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCheckboxData

Full name of class: ObRun.ObPanel.ObCtrlData.ObCheckboxData.class

package ObRun.ObPanel.ObCtrlData;

import ObRun.ObPanel.ObCtrlGui.ObCheckboxGui;
import ObRun.ObPanel.ObCtrlGui.ObCtrlGui;

public final synchronized class ObCheckboxData extends ObCtrlData


{
private ObValuePairList m_valuePairs;

public ObCheckboxData()
{
m_valuePairs = new ObValuePairList();
}

public void addValuePair(Object object1, Object object2)


{
m_valuePairs.addPair(object1, object2);
}

public void clearReferences()


{
if (m_valuePairs != null)
m_valuePairs.clearReferences();
m_valuePairs = null;
super.clearReferences();
}

public void finishValues()


{
((ObCheckboxGui)m_guiCtrl).addItems(m_valuePairs.toAArray());
}

public Object getAValue(Object object)


{
return m_valuePairs.getAValue(object);

Page: 587 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public Object getBValue(Object object)


{
return m_valuePairs.getBValue(object);
}

public void init(int i)


{
m_guiCtrl = new ObCheckboxGui();
m_guiCtrl.setData(this);
setID(i);
getParent().addChild(this);
}
}

Page: 588 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObColumnHeadingData

Full name of class: ObRun.ObPanel.ObCtrlData.ObColumnHeadingData.class

package ObRun.ObPanel.ObCtrlData;

import ObRun.ObPanel.ObCtrlGui.ObColumnHeadingGui;
import ObRun.ObPanel.ObCtrlGui.ObCtrlGui;

public final synchronized class ObColumnHeadingData extends ObCtrlData


{
public ObColumnHeadingData()
{
}

public void init(int i)


{
m_guiCtrl = new ObColumnHeadingGui();
m_guiCtrl.setData(this);
setID(i);
getParent().addChild(this);
}
}

Page: 589 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObComboData

Full name of class: ObRun.ObPanel.ObCtrlData.ObComboData.class

package ObRun.ObPanel.ObCtrlData;

import ObRun.ObPanel.ObCtrlGui.ObComboGui;
import ObRun.ObPanel.ObCtrlGui.ObCtrlGui;

public final synchronized class ObComboData extends ObCtrlData


{
private ObValuePairList m_valuePairs;

public ObComboData()
{
m_valuePairs = new ObValuePairList();
}

public void addValuePair(Object object1, Object object2)


{
m_valuePairs.addPair(object1, object2);
}

public void clearReferences()


{
if (m_valuePairs != null)
m_valuePairs.clearReferences();
m_valuePairs = null;
super.clearReferences();
}

public void clearValues()


{
m_valuePairs.clearValues();
finishValues();
}

public void finishValues()


{

Page: 590 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (((ObComboGui)m_guiCtrl).isSorted())
((ObComboGui)m_guiCtrl).addItems(m_valuePairs.toAArraySorted());
else
((ObComboGui)m_guiCtrl).addItems(m_valuePairs.toAArray());
}

public Object getAValue(Object object)


{
return m_valuePairs.getAValue(object);
}

public Object getBValue(Object object)


{
return m_valuePairs.getBValue(object);
}

public void init(int i)


{
m_guiCtrl = new ObComboGui();
m_guiCtrl.setData(this);
setID(i);
getParent().addChild(this);
}

public void removeValue(Object object)


{
m_valuePairs.removeValue(object);
finishValues();
}
}

Page: 591 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObControlState

Full name of class: ObRun.ObPanel.ObCtrlData.ObControlState.class

package ObRun.ObPanel.ObCtrlData;

import java.io.PrintStream;
import java.util.Hashtable;

public final synchronized class ObControlState


{
private Hashtable m_controlTable;

public ObControlState()
{
m_controlTable = new Hashtable(39);
}

private void addPropertyValue(int i, String string1, String string2)


{
Integer integer = new Integer(i);
if (!m_controlTable.containsKey(integer))
m_controlTable.put(new Integer(i), new Hashtable(39));
Hashtable hashtable = (Hashtable)m_controlTable.get(integer);
hashtable.put(string1, string2);
}

public void clearReferences()


{
m_controlTable = null;
}

void dump()
{
System.out.println(m_controlTable.toString());
}

public boolean isChangedPropertyValue(int i, String string1, String string2)


{

Page: 592 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Integer integer = new Integer(i);


if (!m_controlTable.containsKey(integer))
{
addPropertyValue(i, string1, string2);
return true;
}
Hashtable hashtable = (Hashtable)m_controlTable.get(integer);
if (!hashtable.containsKey(string1))
{
addPropertyValue(i, string1, string2);
return true;
}
String string3 = (String)hashtable.get(string1);
if (string3.equals(string2))
return false;
hashtable.remove(string1);
hashtable.put(string1, string2);
return true;
}
}

Page: 593 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCtrlData

Full name of class: ObRun.ObPanel.ObCtrlData.ObCtrlData.class

package ObRun.ObPanel.ObCtrlData;

import ObRun.ObPanel.ObCtrlGui.*;
import ObRun.ObRTTypes.*;
import java.awt.event.*;
import java.util.*;
import ObRun.ObFunction.ObApplication;
import ObRun.ObFunction.ObPanel;
import java.awt.Color;
import java.io.PrintStream;
import java.lang.reflect.Method;

public synchronized abstract class ObCtrlData


{
protected ObCtrlGui m_guiCtrl;
protected ObCtrlData m_parent;
protected Vector m_children;
private ObWindowData m_panel;
private int m_id;
private String m_state;
private Hashtable m_gridRowPropertyTable;
private Hashtable m_propTable;
private Hashtable m_methodsTable;
private ObEventMap m_eventMap;
private ObField m_field;
private boolean m_inWrite;
private boolean m_ignoreEvents;
public static final byte NONE = 0;
public static final byte READ = 1;
public static final byte WRITE = 2;
public static final byte CLEAR = 3;
public static final byte REFRESH = 4;
public static final byte INSERT = 5;
public static final byte GRIDENDOFF = 6;
public static final byte GRIDENDON = 7;

Page: 594 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public static final byte REMOVE = 8;


public static final byte BEFOREIMAGE = 9;
public static final byte AFTERIMAGE = 10;
public static final byte SETMODIFIED = 11;
public static final byte SETUNMODIFIED = 12;
public static final byte LOCATE = 13;
public static final byte SETFOCUS = 14;
public static final byte IFFOCUS = 15;
public static final byte IFEDITABLE = 16;
public static final int GRIDLOAD = 1000;
public static final int GRIDSELECTION = 1010;
public static final int MENUSELECTION = 1020;
public static final int FOCUSGAINED = 1004;
public static final int FOCUSLOST = 1005;
public static final int MODIFIED = 1030;
public static final int UPDATED = 1040;
public static final int MOUSEDOWN = 501;
public static final int MOUSEUP = 502;
public static final int MOUSEMOVE = 503;
public static final int DOUBLECLICK = 1050;
public static final int PRESSED = 500;
public static final int CLOCKTICK = 1060;
public static final int NOTIFIED = 1070;
public static final int QUERYCLOSE = 201;
public static final int DECREMENT = 1080;
public static final int INCREMENT = 1090;
public static final int MAXIMUM = 1100;
public static final int MINIMUM = 1110;
public static final int ACTIVATED = 1120;
public static final int DEACTIVATED = 1130;
public static final int PROPERTYCHANGE = 1140;
public static final int VETOABLECHANGE = 1150;
public static final int MOUSE_ENTERED = 504;
public static final int MOUSE_EXITED = 505;
public static final int COMPONENT_RESIZED = 101;
public static final int COMPONENT_MOVED = 100;
public static final int COMPONENT_SHOWN = 102;
public static final int COMPONENT_HIDDEN = 103;
public static final int KEY_TYPED = 400;
public static final int KEY_PRESSED = 401;
public static final int KEY_RELEASED = 402;

Page: 595 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public static final int ITEM_STATE_CHANGED = 701;


public static final int SELECTED = 1;
public static final int DESELECTED = 2;
public static final String OK = "";
public static final String NOTFOUND = "*Not Found";

public ObCtrlData()
{
m_children = new Vector(20);
m_panel = null;
m_state = null;
m_gridRowPropertyTable = null;
m_propTable = null;
m_methodsTable = new Hashtable();
m_eventMap = null;
m_inWrite = false;
m_ignoreEvents = false;
m_guiCtrl = null;
}

public ObCtrlData(ObCtrlGui obCtrlGui)


{
m_children = new Vector(20);
m_panel = null;
m_state = null;
m_gridRowPropertyTable = null;
m_propTable = null;
m_methodsTable = new Hashtable();
m_eventMap = null;
m_inWrite = false;
m_ignoreEvents = false;
m_guiCtrl = obCtrlGui;
}

public void addChild(ObCtrlData obCtrlData)


{
m_children.addElement(obCtrlData);
obCtrlData.setPanel(getPanel());
getPanel().storeCompByID(new Integer(obCtrlData.getID()), obCtrlData);
getGuiCtrl().addChild(obCtrlData.getGuiCtrl());
}

Page: 596 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void addValuePair(Object object1, Object object2)


{
}

public void clearReferences()


{
if (getParent() != null)
getParent().removeChild(this);
if (m_eventMap != null)
m_eventMap.clearReferences();
m_eventMap = null;
if (m_guiCtrl != null)
m_guiCtrl.clearReferences();
m_guiCtrl = null;
if (m_children != null)
m_children.removeAllElements();
m_children = null;
m_panel = null;
m_parent = null;
m_state = null;
m_methodsTable = null;
m_field = null;
}

public int decRecurseCount()


{
return getPanel().m_recurseCount--;
}

public boolean exchangeData(byte b, ObField obField)


{
boolean flag = true;
switch (b)
{
case 2:
m_inWrite = true;
if (m_field == null)
setField(obField);
getGuiCtrl().setValue(obField.toString());
m_inWrite = false;

Page: 597 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

break;

case 1:
if (m_field == null)
setField(obField);
if (!(getGuiCtrl() instanceof ObRadiobuttonGui))
obField.fromString(getGuiCtrl().getValue());
else if (((ObRadiobuttonGui)getGuiCtrl()).isFirstRadioButton())
obField.fromString(getGuiCtrl().getValue());
else if (getGuiCtrl().getValue() != null)
obField.fromString(getGuiCtrl().getValue());
break;

case 0:
case 4:
flag = true;
break;

case 5:
String string = obField.toString();
if (obField instanceof ObDateFld)
string = getGuiCtrl().formatDateForDisplay(string,
ObApplication.getRunOptionValue(ObApplication.getEnvironment() + ".DefaultDateMask"));
else if (obField instanceof ObTimeFld)
string = getGuiCtrl().formatTimeForDisplay(string,
ObApplication.getRunOptionValue(ObApplication.getEnvironment() + ".DefaultTimeMask"));
else if (obField instanceof ObTimeStampFld)
string = getGuiCtrl().formatTimeStampForDisplay(string,
ObApplication.getRunOptionValue(ObApplication.getEnvironment() + ".DefaultTimeStampMask"));
addValuePair(string, obField.toString());
finishValues();
break;

case 3:
getGuiCtrl().clear();
break;

case 8:
removeValue(obField.toString());
break;

Page: 598 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

case 13:
getGuiCtrl().setValue(obField.toString());
if (getGuiCtrl().inGrid())
{
((ObGridGui)getParent().getGuiCtrl()).startAccess(13);
((ObGridGui)getParent().getGuiCtrl()).populateGridFromFields();
}
break;

case 14:
if (getPanel().whoHasFocus() == 0)
getGuiCtrl().setFocus();
else
{
int i = getGuiCtrl().getTabSequence();
int j = getPanel().getCompByID(new
Integer(getPanel().whoHasFocus())).getGuiCtrl().getTabSequence();
if (i > -1 && i < j)
getGuiCtrl().setFocus();
}
break;

case 15:
if (getGuiCtrl().ifFocus())
getPanel().setCurrentFocus(m_id);
break;

case 16:
return getGuiCtrl().isEditable();

default:
flag = false;
break;
}
return flag;
}

public void finishValues()


{
}

Page: 599 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObField getField()


{
return m_field;
}

public Hashtable getGridRowPropertyTable()


{
return m_gridRowPropertyTable;
}

public ObCtrlGui getGuiCtrl()


{
return m_guiCtrl;
}

public int getID()


{
return m_id;
}

public ObWindowData getPanel()


{
return m_panel;
}

public ObCtrlData getParent()


{
return m_parent;
}

public String getProperty(String string, boolean flag)


{
if (getPanel() == null)
return null;
StringBuffer stringBuffer = new StringBuffer(50);
if (flag)
stringBuffer.append(getPanel().getOwner().getLanguage()).append(".").append(getState()).append(
".").append(string);
else
stringBuffer.append(getPanel().getOwner().getLanguage()).append(".").append(string);
return getPanel().getOwner().getProperty(stringBuffer.toString());

Page: 600 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public int getRecurseCount()


{
if (getPanel() == null)
return 0;
else
return getPanel().m_recurseCount;
}

public String getState()


{
return m_state;
}

public boolean inWrite()


{
return m_inWrite;
}

public int incRecurseCount()


{
return getPanel().m_recurseCount++;
}

public abstract void init(int i);


public void loadChildren()
{
StringBuffer stringBuffer1 = new StringBuffer(30);
stringBuffer1.append(new Integer(getID()).toString()).append(".Contains");
String string1 = getProperty(stringBuffer1.toString(), false);
if (string1 == null)
return;
StringTokenizer stringTokenizer = new StringTokenizer(string1);
if (this instanceof ObDialogData || this instanceof ObTopAppData)
{
StringBuffer stringBuffer2 = new StringBuffer();
while (stringTokenizer.hasMoreTokens())
{
String string3 = stringTokenizer.nextToken();
stringBuffer2.insert(0, new String(string3.concat(" ")));

Page: 601 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
stringTokenizer = new StringTokenizer(stringBuffer2.toString());
}
while (stringTokenizer.hasMoreTokens())
{
String string2 = stringTokenizer.nextToken();
StringBuffer stringBuffer3 = new StringBuffer(40);
stringBuffer3.append(string2).append(".Type");
String string4 = getProperty(stringBuffer3.toString(), false);
int i = new Integer(string2).intValue();
ObCtrlData obCtrlData = loadControlbyClass(string4);
if (obCtrlData != null)
{
obCtrlData.setParent(this);
obCtrlData.init(i);
obCtrlData.loadChildren();
}
}
getGuiCtrl().getPanel().layoutWindow();
}

protected ObCtrlData loadControlbyClass(String string)


{
Class class = null;
ObCtrlData obCtrlData = null;
StringBuffer stringBuffer = new StringBuffer(50);
stringBuffer.append("ObRun.ObPanel.ObCtrlData.Ob").append(string).append("Data");
try
{
class = Class.forName(stringBuffer.toString());
obCtrlData = (ObCtrlData)class.newInstance();
}
catch (Exception e)
{
e.printStackTrace();
}
return obCtrlData;
}

private ObCtrlData loadControlbyString(String string)


{

Page: 602 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Object object = null;


if (string.compareTo("Pushbutton") == 0)
object = new ObPushbuttonData();
if (string.compareTo("Edit") == 0)
object = new ObEditData();
return object;
}

public void registerEvent(int i, int j, String string)


{
if (m_eventMap == null)
m_eventMap = new ObEventMap(this, i, j);
m_eventMap.addEvent(i, j);
getGuiCtrl().registerEvent(i);
}

public void removeChild(ObCtrlData obCtrlData)


{
if (m_children != null)
m_children.removeElement(obCtrlData);
if (getPanel() != null)
getPanel().removeCompByID(new Integer(obCtrlData.getID()));
if (getGuiCtrl() != null)
getGuiCtrl().removeChild(obCtrlData.getGuiCtrl());
}

public void removeValue(Object object)


{
}

public final void render(Hashtable hashtable)


{
if (m_methodsTable.isEmpty())
{
try
{
Method amethod[] = getPanel().getMethods(getClass().getName());
if (amethod == null)
{
getPanel().setMethods(getClass().getName(), m_guiCtrl.getClass().getDeclaredMethods());
amethod = getPanel().getMethods(getClass().getName());

Page: 603 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
for (int i = 0; i < amethod.length; i++)
if (amethod[i].getName().startsWith("set"))
m_methodsTable.put(amethod[i].getName(), amethod[i]);
}
catch (Exception e1)
{
System.out.println(ObApplication.getString("MethodLoadFailed"));
return;
}
}
StringBuffer stringBuffer1 = new StringBuffer(50);
stringBuffer1.append(new Integer(getID()).toString()).append(".Properties");
String string1 = getProperty(stringBuffer1.toString(), true);
if (string1 == null)
return;
for (StringTokenizer stringTokenizer = new StringTokenizer(string1);
stringTokenizer.hasMoreTokens(); )
{
String string2 = stringTokenizer.nextToken();
StringBuffer stringBuffer2 = new StringBuffer(20);
stringBuffer2.append("set").append(string2);
String astring[] = new String[1];
StringBuffer stringBuffer3 = new StringBuffer(50);
stringBuffer3.append(new Integer(getID()).toString()).append(".").append(string2);
astring[0] = getProperty(stringBuffer3.toString(), true);
try
{
Method method = (Method)m_methodsTable.get(stringBuffer2.toString());
if (method != null && astring[0] != null)
{
if (getParent() instanceof ObGridData && hashtable != null)
if (string2.compareTo("BackgroundColor") == 0 || string2.compareTo("TextColor") ==
0 || string2.compareTo("Mode") == 0 || string2.compareTo("Font") == 0 || string2.compareTo("Disabled") == 0)
hashtable.put(method.getName(), astring);
else if (getPanel().getControlStateTable().isChangedPropertyValue(getID(), string2,
astring[0]))
method.invoke(m_guiCtrl, astring);
}
}
catch (Exception e2)

Page: 604 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
System.out.println(string2 + " " + ObApplication.getString("NotSupported") + getID());
}
try
{
m_guiCtrl.setBackgroundImage();
}
catch (Exception e3)
{
}
}
}

public void setField(ObField obField)


{
m_field = obField;
}

public void setID(int i)


{
m_id = i;
}

public void setIgnoreEvents(boolean flag)


{
m_ignoreEvents = flag;
}

public void setPanel(ObWindowData obWindowData)


{
m_panel = obWindowData;
}

public void setParent(ObCtrlData obCtrlData)


{
m_parent = obCtrlData;
}

public void setState(int i)


{
if (m_state == null)

Page: 605 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_state = new Integer(i).toString();


else
{
m_state = new Integer(i).toString();
if (!(getParent() instanceof ObGridData) || this instanceof ObColumnHeadingData ||
((ObGridGui)getParent().getGuiCtrl()).getGridRowCount() == 0)
render(null);
else
{
if (m_gridRowPropertyTable == null)
m_gridRowPropertyTable = new
Hashtable(((ObGridGui)getParent().getGuiCtrl()).getGridRowCount());
m_propTable = new Hashtable(10);
if (((ObGridGui)getParent().getGuiCtrl()).getCurrentRow() != -1)
m_gridRowPropertyTable.put(new
Integer(((ObGridGui)getParent().getGuiCtrl()).getCurrentRow()), m_propTable);
render(m_propTable);
}
}
}

public boolean testEvent(int i)


{
if (m_ignoreEvents)
return false;
if (getRecurseCount() > 1)
{
decRecurseCount();
return false;
}
if (m_eventMap == null)
return true;
incRecurseCount();
int j = m_eventMap.getLogicalID(i);
if (j != 0 && getPanel().isLogicalEventEnabled(j) && getPanel() != null && m_guiCtrl != null &&
m_guiCtrl.getPanel() != null)
{
m_guiCtrl.getPanel().setBusyCursor();
if (getPanel().getOwner() != null)
{
getPanel().getOwner().setCurrentAction(j);

Page: 606 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

getPanel().getOwner().eventsHandler();
}
m_guiCtrl.getPanel().setNotBusyCursor();
}
getPanel().layout();
decRecurseCount();
return true;
}

public static synchronized Color whatColor(String string)


{
if (string.equals("[BLACK]"))
return Color.black;
if (string.equals("[BLUE]"))
return Color.blue;
if (string.equals("[CYAN]"))
return Color.cyan;
if (string.equals("[DARKGRAY]"))
return Color.darkGray;
if (string.equals("[GRAY]"))
return Color.gray;
if (string.equals("[GREEN]"))
return Color.green;
if (string.equals("[LIGHTGRAY]"))
return Color.lightGray;
if (string.equals("[MAGENTA]"))
return Color.magenta;
if (string.equals("[ORANGE]"))
return Color.orange;
if (string.equals("[PINK]"))
return Color.pink;
if (string.equals("[RED]"))
return Color.red;
if (string.equals("[WHITE]"))
return Color.white;
if (string.equals("[YELLOW]"))
return Color.yellow;
else
return Color.black;
}

Page: 607 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public static synchronized byte whatEditType(String string)


{
byte b = 1;
if (string.equals("ObRun.ObRTTypes.ObByteFld"))
b = 3;
else if (string.equals("ObRun.ObRTTypes.ObDblFld"))
b = 2;
else if (string.equals("ObRun.ObRTTypes.ObFixedDecFld"))
b = 2;
else if (string.equals("ObRun.ObRTTypes.ObIntFld"))
b = 3;
else if (string.equals("ObRun.ObRTTypes.ObLongFld"))
b = 3;
else if (string.equals("ObRun.ObRTTypes.ObLongDblFld"))
b = 2;
else if (string.equals("ObRun.ObRTTypes.ObSglFld"))
b = 2;
else if (string.equals("ObRun.ObRTTypes.ObDateFld"))
b = 4;
else if (string.equals("ObRun.ObRTTypes.ObTimeFld"))
b = 5;
else if (string.equals("ObRun.ObRTTypes.ObTimeStampFld"))
b = 6;
return b;
}
}

Page: 608 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObDialogData

Full name of class: ObRun.ObPanel.ObCtrlData.ObDialogData.class

package ObRun.ObPanel.ObCtrlData;

import ObRun.ObFunction.ObPanel;
import ObRun.ObPanel.ObCtrlGui.ObCtrlGui;
import ObRun.ObPanel.ObCtrlGui.ObDialogGui;

public final synchronized class ObDialogData extends ObWindowData


{
public ObDialogData(ObPanel obPanel, String string, int i, ObWindowData obWindowData)
{
super(new ObDialogGui(obWindowData));
m_guiCtrl.setData(this);
setID(i);
m_owner = obPanel;
setPanel(this);
m_isDialogType = true;
}

public void closeWindow()


{
getWindowGui().closeWindow();
}

public ObDialogGui getWindowGui()


{
return (ObDialogGui)m_guiCtrl;
}

public void layout()


{
getWindowGui().layout();
}

public void setEnabled(boolean flag)


{

Page: 609 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

super.setEnabled(flag);
getWindowGui().setEnabled(flag);
}

public void setResizable(boolean flag)


{
super.setResizable(flag);
getWindowGui().setResize(flag);
}

public void setTitle(String string)


{
super.setTitle(string);
getWindowGui().setTitle(string);
}

public void setVisible(boolean flag)


{
super.setVisible(flag);
getWindowGui().setVisible(flag);
}

public void show()


{
getWindowGui().show();
}
}

Page: 610 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObEditData

Full name of class: ObRun.ObPanel.ObCtrlData.ObEditData.class

package ObRun.ObPanel.ObCtrlData;

import ObRun.ObPanel.ObCtrlGui.ObCtrlGui;
import ObRun.ObPanel.ObCtrlGui.ObEditGui;

public final synchronized class ObEditData extends ObCtrlData


{
public ObEditData()
{
}

public void init(int i)


{
m_guiCtrl = new ObEditGui();
m_guiCtrl.setData(this);
setID(i);
getParent().addChild(this);
}
}

Page: 611 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObEventMap

Full name of class: ObRun.ObPanel.ObCtrlData.ObEventMap.class

package ObRun.ObPanel.ObCtrlData;

import java.util.Hashtable;

final synchronized class ObEventMap


{
private ObCtrlData m_ctrl;
private int m_lastpID;
private int m_lastlID;
Hashtable m_eventPairs;

public ObEventMap(ObCtrlData obCtrlData, int i, int j)


{
m_eventPairs = null;
m_ctrl = obCtrlData;
m_eventPairs = new Hashtable(30);
}

public void addEvent(int i, int j)


{
m_eventPairs.put(new Integer(i), new Integer(j));
}

public void clearReferences()


{
m_ctrl = null;
m_eventPairs = null;
}

public int getLogicalID(int i)


{
if (i == m_lastpID)
return m_lastlID;
Integer integer = (Integer)m_eventPairs.get(new Integer(i));
if (integer == null)

Page: 612 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

return 0;
m_lastlID = integer.intValue();
return m_lastlID;
}
}

Page: 613 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObGridData

Full name of class: ObRun.ObPanel.ObCtrlData.ObGridData.class

package ObRun.ObPanel.ObCtrlData;

import ObRun.ObPanel.ObCtrlGui.ObCtrlGui;
import ObRun.ObPanel.ObCtrlGui.ObGridGui;

public final synchronized class ObGridData extends ObCtrlData


{
public ObGridData()
{
}

public void complete()


{
((ObGridGui)m_guiCtrl).loadComplete();
}

public void endAccess(byte b)


{
((ObGridGui)m_guiCtrl).endAccess(b);
}

public byte getFieldAccessMode(byte b)


{
switch (b)
{
case 0:
case 1:
case 2:
return b;

case 3:
case 4:
case 6:
case 7:
case 8:

Page: 614 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

case 9:
case 10:
return 0;

case 5:
return 2;

default:
return 0;
}
}

public boolean getFirstModified()


{
return ((ObGridGui)getGuiCtrl()).getFirstModified();
}

public boolean getFirstRecord()


{
return ((ObGridGui)getGuiCtrl()).getFirstRecord();
}

public boolean getFirstSelected()


{
return ((ObGridGui)getGuiCtrl()).getFirstSelected();
}

public boolean getNextModified()


{
return ((ObGridGui)getGuiCtrl()).getNextModified();
}

public boolean getNextRecord()


{
return ((ObGridGui)getGuiCtrl()).getNextRecord();
}

public boolean getNextSelected()


{
return ((ObGridGui)getGuiCtrl()).getNextSelected();
}

Page: 615 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void init(int i)


{
m_guiCtrl = new ObGridGui();
m_guiCtrl.setData(this);
setID(i);
getParent().addChild(this);
}

public void startAccess(byte b)


{
((ObGridGui)m_guiCtrl).startAccess(b);
}
}

Page: 616 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObKeyStrokeMap

Full name of class: ObRun.ObPanel.ObCtrlData.ObKeyStrokeMap.class

package ObRun.ObPanel.ObCtrlData;

import java.util.Hashtable;
import javax.swing.KeyStroke;

final synchronized class ObKeyStrokeMap


{
Hashtable m_keyPairs;

public ObKeyStrokeMap()
{
m_keyPairs = null;
m_keyPairs = new Hashtable(10);
}

public void addKeyStroke(KeyStroke keyStroke, int i, boolean flag)


{
ObKeyStrokeMap$ObKeyDetails obKeyStrokeMap$ObKeyDetails = new ObKeyStrokeMap$ObKeyDetails(this, i,
flag);
m_keyPairs.put(keyStroke, obKeyStrokeMap$ObKeyDetails);
}

public void enableKeyStroke(KeyStroke keyStroke, boolean flag)


{
ObKeyStrokeMap$ObKeyDetails obKeyStrokeMap$ObKeyDetails =
(ObKeyStrokeMap$ObKeyDetails)m_keyPairs.get(keyStroke);
obKeyStrokeMap$ObKeyDetails.m_enabled = flag;
}

public int getLogicalID(KeyStroke keyStroke)


{
ObKeyStrokeMap$ObKeyDetails obKeyStrokeMap$ObKeyDetails =
(ObKeyStrokeMap$ObKeyDetails)m_keyPairs.get(keyStroke);
if (obKeyStrokeMap$ObKeyDetails == null || obKeyStrokeMap$ObKeyDetails.m_enabled == 0)
return 0;

Page: 617 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else
return obKeyStrokeMap$ObKeyDetails.m_logicalEvent;
}
}

Page: 618 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObKeyStrokeMap$ObKeyDetails

Full name of class: ObRun.ObPanel.ObCtrlData.ObKeyStrokeMap$ObKeyDetails.class

package ObRun.ObPanel.ObCtrlData;

final synchronized class ObKeyStrokeMap$ObKeyDetails


{
private final ObKeyStrokeMap this$0 = obKeyStrokeMap;
public int m_logicalEvent;
public boolean m_enabled;

public ObKeyStrokeMap$ObKeyDetails(ObKeyStrokeMap obKeyStrokeMap, int i, boolean flag)


{
m_enabled = true;
m_logicalEvent = i;
m_enabled = flag;
}
}

Page: 619 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObLabelData

Full name of class: ObRun.ObPanel.ObCtrlData.ObLabelData.class

package ObRun.ObPanel.ObCtrlData;

import ObRun.ObPanel.ObCtrlGui.ObCtrlGui;
import ObRun.ObPanel.ObCtrlGui.ObLabelGui;

public final synchronized class ObLabelData extends ObCtrlData


{
public ObLabelData()
{
}

public void init(int i)


{
m_guiCtrl = new ObLabelGui();
m_guiCtrl.setData(this);
setID(i);
getParent().addChild(this);
}
}

Page: 620 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObListData

Full name of class: ObRun.ObPanel.ObCtrlData.ObListData.class

package ObRun.ObPanel.ObCtrlData;

import ObRun.ObPanel.ObCtrlGui.ObCtrlGui;
import ObRun.ObPanel.ObCtrlGui.ObListGui;

public final synchronized class ObListData extends ObCtrlData


{
private ObValuePairList m_valuePairs;

public ObListData()
{
m_valuePairs = new ObValuePairList();
}

public void addValuePair(Object object1, Object object2)


{
m_valuePairs.addPair(object1, object2);
}

public void clearReferences()


{
if (m_valuePairs != null)
m_valuePairs.clearReferences();
m_valuePairs = null;
super.clearReferences();
}

public void clearValues()


{
m_valuePairs.clearValues();
finishValues();
}

public void finishValues()


{

Page: 621 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (((ObListGui)m_guiCtrl).isSorted())
((ObListGui)m_guiCtrl).addItems(m_valuePairs.toAArraySorted());
else
((ObListGui)m_guiCtrl).addItems(m_valuePairs.toAArray());
}

public Object getAValue(Object object)


{
return m_valuePairs.getAValue(object);
}

public Object getBValue(Object object)


{
return m_valuePairs.getBValue(object);
}

public void init(int i)


{
m_guiCtrl = new ObListGui();
m_guiCtrl.setData(this);
setID(i);
getParent().addChild(this);
}

public void removeValue(Object object)


{
m_valuePairs.removeValue(object);
finishValues();
}
}

Page: 622 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObLogicalEvents

Full name of class: ObRun.ObPanel.ObCtrlData.ObLogicalEvents.class

package ObRun.ObPanel.ObCtrlData;

final synchronized class ObLogicalEvents


{
public int m_ID;
public String m_name;
public boolean m_enabled;

public ObLogicalEvents(int i, String string)


{
m_name = null;
m_enabled = true;
m_ID = i;
m_name = string;
}
}

Page: 623 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMenubarData

Full name of class: ObRun.ObPanel.ObCtrlData.ObMenubarData.class

package ObRun.ObPanel.ObCtrlData;

import ObRun.ObPanel.ObCtrlGui.ObCtrlGui;
import ObRun.ObPanel.ObCtrlGui.ObMenubarGui;

public final synchronized class ObMenubarData extends ObCtrlData


{
public ObMenubarData()
{
}

public void init(int i)


{
m_guiCtrl = new ObMenubarGui();
m_guiCtrl.setData(this);
setID(i);
getParent().addChild(this);
}
}

Page: 624 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMenuData

Full name of class: ObRun.ObPanel.ObCtrlData.ObMenuData.class

package ObRun.ObPanel.ObCtrlData;

import ObRun.ObPanel.ObCtrlGui.ObCtrlGui;
import ObRun.ObPanel.ObCtrlGui.ObMenuGui;

public final synchronized class ObMenuData extends ObCtrlData


{
public ObMenuData()
{
}

public void init(int i)


{
m_guiCtrl = new ObMenuGui();
m_guiCtrl.setData(this);
setID(i);
getParent().addChild(this);
((ObMenuGui)m_guiCtrl).setDefaultFont();
}
}

Page: 625 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMenuitemData

Full name of class: ObRun.ObPanel.ObCtrlData.ObMenuitemData.class

package ObRun.ObPanel.ObCtrlData;

import ObRun.ObPanel.ObCtrlGui.ObCtrlGui;
import ObRun.ObPanel.ObCtrlGui.ObMenuitemGui;

public final synchronized class ObMenuitemData extends ObCtrlData


{
public ObMenuitemData()
{
}

public void init(int i)


{
m_guiCtrl = new ObMenuitemGui();
m_guiCtrl.setData(this);
setID(i);
getParent().addChild(this);
((ObMenuitemGui)m_guiCtrl).setDefaultFont();
}
}

Page: 626 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMultilineEditData

Full name of class: ObRun.ObPanel.ObCtrlData.ObMultilineEditData.class

package ObRun.ObPanel.ObCtrlData;

import ObRun.ObPanel.ObCtrlGui.ObCtrlGui;
import ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui;

public final synchronized class ObMultilineEditData extends ObCtrlData


{
public ObMultilineEditData()
{
}

public void init(int i)


{
m_guiCtrl = new ObMultilineEditGui();
m_guiCtrl.setData(this);
setID(i);
getParent().addChild(this);
}
}

Page: 627 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObPasswordData

Full name of class: ObRun.ObPanel.ObCtrlData.ObPasswordData.class

package ObRun.ObPanel.ObCtrlData;

import ObRun.ObPanel.ObCtrlGui.ObCtrlGui;
import ObRun.ObPanel.ObCtrlGui.ObPasswordGui;

public final synchronized class ObPasswordData extends ObCtrlData


{
public ObPasswordData()
{
}

public void init(int i)


{
m_guiCtrl = new ObPasswordGui();
m_guiCtrl.setData(this);
setID(i);
getParent().addChild(this);
}
}

Page: 628 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObPictureData

Full name of class: ObRun.ObPanel.ObCtrlData.ObPictureData.class

package ObRun.ObPanel.ObCtrlData;

import ObRun.ObPanel.ObCtrlGui.ObCtrlGui;
import ObRun.ObPanel.ObCtrlGui.ObPictureGui;

public final synchronized class ObPictureData extends ObCtrlData


{
public ObPictureData()
{
}

public void init(int i)


{
m_guiCtrl = new ObPictureGui();
m_guiCtrl.setData(this);
setID(i);
getParent().addChild(this);
}
}

Page: 629 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObPushbuttonData

Full name of class: ObRun.ObPanel.ObCtrlData.ObPushbuttonData.class

package ObRun.ObPanel.ObCtrlData;

import ObRun.ObPanel.ObCtrlGui.ObCtrlGui;
import ObRun.ObPanel.ObCtrlGui.ObPushbuttonGui;

public final synchronized class ObPushbuttonData extends ObCtrlData


{
public ObPushbuttonData()
{
}

public void init(int i)


{
m_guiCtrl = new ObPushbuttonGui();
m_guiCtrl.setData(this);
setID(i);
getParent().addChild(this);
}
}

Page: 630 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObRadiobuttonData

Full name of class: ObRun.ObPanel.ObCtrlData.ObRadiobuttonData.class

package ObRun.ObPanel.ObCtrlData;

import ObRun.ObPanel.ObCtrlGui.ObCtrlGui;
import ObRun.ObPanel.ObCtrlGui.ObRadiobuttonGui;

public final synchronized class ObRadiobuttonData extends ObCtrlData


{
private ObValuePairList m_valuePairs;

public ObRadiobuttonData()
{
m_valuePairs = new ObValuePairList();
}

public void addValuePair(Object object1, Object object2)


{
m_valuePairs.addPair(object1, object2);
}

public void clearReferences()


{
if (m_valuePairs != null)
m_valuePairs.clearReferences();
m_valuePairs = null;
super.clearReferences();
}

public void finishValues()


{
((ObRadiobuttonGui)m_guiCtrl).addItems(m_valuePairs.toAArray());
}

public Object getAValue(Object object)


{
return m_valuePairs.getAValue(object);

Page: 631 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public Object getBValue(Object object)


{
return m_valuePairs.getBValue(object);
}

public void init(int i)


{
m_guiCtrl = new ObRadiobuttonGui();
m_guiCtrl.setData(this);
setID(i);
getParent().addChild(this);
}
}

Page: 632 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObSeparatorData

Full name of class: ObRun.ObPanel.ObCtrlData.ObSeparatorData.class

package ObRun.ObPanel.ObCtrlData;

import ObRun.ObPanel.ObCtrlGui.ObCtrlGui;
import ObRun.ObPanel.ObCtrlGui.ObSeparatorGui;

public final synchronized class ObSeparatorData extends ObCtrlData


{
public ObSeparatorData()
{
}

public void init(int i)


{
m_guiCtrl = new ObSeparatorGui();
m_guiCtrl.setData(this);
setID(i);
getParent().addChild(this);
}
}

Page: 633 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObSpinData

Full name of class: ObRun.ObPanel.ObCtrlData.ObSpinData.class

package ObRun.ObPanel.ObCtrlData;

import ObRun.ObPanel.ObCtrlGui.ObCtrlGui;
import ObRun.ObPanel.ObCtrlGui.ObSpinGui;

public final synchronized class ObSpinData extends ObCtrlData


{
public ObSpinData()
{
}

public void init(int i)


{
m_guiCtrl = new ObSpinGui();
m_guiCtrl.setData(this);
setID(i);
getParent().addChild(this);
}
}

Page: 634 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObStaticData

Full name of class: ObRun.ObPanel.ObCtrlData.ObStaticData.class

package ObRun.ObPanel.ObCtrlData;

import ObRun.ObPanel.ObCtrlGui.ObCtrlGui;
import ObRun.ObPanel.ObCtrlGui.ObStaticGui;

public final synchronized class ObStaticData extends ObCtrlData


{
public ObStaticData()
{
}

public void init(int i)


{
m_guiCtrl = new ObStaticGui();
m_guiCtrl.setData(this);
setID(i);
getParent().addChild(this);
}
}

Page: 635 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObStatusbarData

Full name of class: ObRun.ObPanel.ObCtrlData.ObStatusbarData.class

package ObRun.ObPanel.ObCtrlData;

import ObRun.ObPanel.ObCtrlGui.ObCtrlGui;
import ObRun.ObPanel.ObCtrlGui.ObStatusbarGui;

public final synchronized class ObStatusbarData extends ObCtrlData


{
public ObStatusbarData()
{
}

public void init(int i)


{
m_guiCtrl = new ObStatusbarGui();
m_guiCtrl.setData(this);
setID(i);
getParent().addChild(this);
}
}

Page: 636 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObToolbarbuttonData

Full name of class: ObRun.ObPanel.ObCtrlData.ObToolbarbuttonData.class

package ObRun.ObPanel.ObCtrlData;

import ObRun.ObPanel.ObCtrlGui.ObCtrlGui;
import ObRun.ObPanel.ObCtrlGui.ObToolbarbuttonGui;

public final synchronized class ObToolbarbuttonData extends ObCtrlData


{
public ObToolbarbuttonData()
{
}

public void init(int i)


{
m_guiCtrl = new ObToolbarbuttonGui();
m_guiCtrl.setData(this);
setID(i);
getParent().addChild(this);
}
}

Page: 637 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObToolbarData

Full name of class: ObRun.ObPanel.ObCtrlData.ObToolbarData.class

package ObRun.ObPanel.ObCtrlData;

import ObRun.ObPanel.ObCtrlGui.ObCtrlGui;
import ObRun.ObPanel.ObCtrlGui.ObToolbarGui;

public final synchronized class ObToolbarData extends ObCtrlData


{
public ObToolbarData()
{
}

public void init(int i)


{
m_guiCtrl = new ObToolbarGui();
m_guiCtrl.setData(this);
setID(i);
getParent().addChild(this);
}
}

Page: 638 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObTopAppData

Full name of class: ObRun.ObPanel.ObCtrlData.ObTopAppData.class

package ObRun.ObPanel.ObCtrlData;

import ObRun.ObFunction.ObPanel;
import ObRun.ObPanel.ObCtrlGui.ObCtrlGui;
import ObRun.ObPanel.ObCtrlGui.ObTopAppGui;

public final synchronized class ObTopAppData extends ObWindowData


{
public ObTopAppData(ObPanel obPanel, String string, int i)
{
super(new ObTopAppGui());
m_guiCtrl.setData(this);
setID(i);
m_owner = obPanel;
setPanel(this);
}

public void closeWindow()


{
getWindowGui().closeWindow();
}

public ObTopAppGui getWindowGui()


{
return (ObTopAppGui)m_guiCtrl;
}

public void layout()


{
getWindowGui().layout();
}

public void setEnabled(boolean flag)


{
super.setEnabled(flag);

Page: 639 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

getWindowGui().setEnabled(flag);
}

public void setResizable(boolean flag)


{
super.setResizable(flag);
getWindowGui().setResize(flag);
}

public void setTitle(String string)


{
super.setTitle(string);
getWindowGui().setTitle(string);
}

public void setVisible(boolean flag)


{
super.setVisible(flag);
getWindowGui().setVisible(flag);
}

public void show()


{
getWindowGui().show();
}
}

Page: 640 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObUserAPI

Full name of class: ObRun.ObPanel.ObCtrlData.ObUserAPI.class

package ObRun.ObPanel.ObCtrlData;

import ObRun.ObFunction.*;
import ObRun.ObRTTypes.*;
import ObRun.ObComms.ObAS400SocketStream;
import ObRun.ObPanel.ObCtrlGui.ObCtrlGui;
import ObRun.ObPanel.ObCtrlGui.ObWindowGui;
import java.applet.Applet;
import java.applet.AppletContext;
import java.io.PrintStream;
import java.lang.reflect.Method;
import java.net.URL;

public final synchronized class ObUserAPI


{
public ObUserAPI()
{
}

public static void callMethod(String string1, String string2)


{
if (string1 == null || string2 == null)
return;
ObCtrlData obCtrlData = getCurrentPanel().getCompByName(string1);
if (obCtrlData == null)
return;
try
{
Method method = obCtrlData.getGuiCtrl().getComponent().getClass().getMethod(string2, null);
method.invoke(obCtrlData.getGuiCtrl().getComponent(), null);
}
catch (NoSuchMethodException e1)
{
System.out.println(string2 + " not supported.");
}

Page: 641 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

catch (Exception e2)


{
e2.printStackTrace();
}
}

public static void callMethod(String string1, String string2, Object object)


{
if (string1 == null || string2 == null || object == null)
return;
ObCtrlData obCtrlData = getCurrentPanel().getCompByName(string1);
if (obCtrlData == null)
return;
Object aobject[] = new Object[1];
aobject[0] = object;
aobject[0] = getPlexBasicType(object);
executeMethod(obCtrlData, string2, aobject);
}

public static void callMethod(String string1, String string2, Object object1, Object object2)
{
if (string1 == null || string2 == null || object1 == null || object2 == null)
return;
ObCtrlData obCtrlData = getCurrentPanel().getCompByName(string1);
if (obCtrlData == null)
return;
Object aobject[] = new Object[2];
aobject[0] = object1;
aobject[1] = object2;
aobject[0] = getPlexBasicType(object1);
aobject[1] = getPlexBasicType(object2);
executeMethod(obCtrlData, string2, aobject);
}

public static Object convertDataType(Class class, Object object1)


{
Object object2 = null;
if (class.toString().equals("boolean"))
object2 = new Boolean(object1.toString());
else if (class.toString().equals("byte"))
object2 = new Byte(object1.toString());

Page: 642 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else if (class.toString().equals("char"))
object2 = new Character(object1.toString().charAt(0));
else if (class.toString().equals("short"))
object2 = new Short(object1.toString());
else if (class.toString().equals("int"))
object2 = new Integer(object1.toString());
else if (class.toString().equals("long"))
object2 = new Long(object1.toString());
else if (class.toString().equals("float"))
object2 = new Float(object1.toString());
else if (class.toString().equals("double"))
object2 = new Double(object1.toString());
return object2;
}

public static void enableLogicalEvent(ObWindowData obWindowData, ObCharFld obCharFld, ObLongFld


obLongFld)
{
if (obWindowData == null)
obWindowData = getCurrentPanel();
boolean flag = true;
if (obLongFld.toString().equals("0"))
flag = false;
if (obWindowData != null)
obWindowData.enableLogicalEvent(new String(obCharFld.toString()), flag);
}

public static boolean execProcess(String string1, String string2, boolean flag)


{
string1 = new StringBuffer(String.valueOf(string1)).append(" ").toString();
string1 = new StringBuffer(String.valueOf(string1)).append(string2).toString();
try
{
Exception e;
Runtime.getRuntime().exec(string1);
return true;
}
catch ()
{
if (flag)
{

Page: 643 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

System.out.println(new StringBuffer("Error executing ").append(string1).toString());


e.printStackTrace();
}
}
return false;
}

public static void executeMethod(ObCtrlData obCtrlData, String string, Object aobject[])


{
try
{
Method amethod[] = obCtrlData.getGuiCtrl().getComponent().getClass().getMethods();
for (int i = 0; i < amethod.length; i++)
{
if (amethod[i].getName().compareTo(string) == 0)
{
try
{
amethod[i].invoke(obCtrlData.getGuiCtrl().getComponent(), aobject);
}
catch (IllegalArgumentException e1)
{
Class aclass[] = amethod[i].getParameterTypes();
for (int j = 0; j < aclass.length; j++)
{
if (!aclass[j].isAssignableFrom(aobject[j].getClass()))
{
if (aclass[j].toString().equals("boolean"))
aobject[j] = new Boolean(aobject[j].toString());
else if (aclass[j].toString().equals("byte"))
aobject[j] = new Byte(aobject[j].toString());
else if (aclass[j].toString().equals("char"))
aobject[j] = new Character(aobject[j].toString().charAt(0));
else if (aclass[j].toString().equals("short"))
aobject[j] = new Short(aobject[j].toString());
else if (aclass[j].toString().equals("int"))
aobject[j] = new Integer(aobject[j].toString());
else if (aclass[j].toString().equals("long"))
aobject[j] = new Long(aobject[j].toString());
else if (aclass[j].toString().equals("float"))
aobject[j] = new Float(aobject[j].toString());

Page: 644 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else if (aclass[j].toString().equals("double"))
aobject[j] = new Double(aobject[j].toString());
}
}
try
{
amethod[i].invoke(obCtrlData.getGuiCtrl().getComponent(), aobject);
}
catch (Exception e4)
{
e4.printStackTrace();
}
}
catch (Exception e3)
{
e3.printStackTrace();
}
}
}
}
catch (Exception e2)
{
e2.printStackTrace();
}
}

public static ObCtrlGui getControlByName(String string)


{
return getCurrentPanel().getCompByName(string).getGuiCtrl();
}

public static ObWindowData getCurrentPanel()


{
try
{
return ObApplication.findApp().getCurrentFunction().getPanel().getPanelData();
}
catch (Exception e)
{
return null;
}

Page: 645 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public static Object getPlexBasicType(Object object)


{
if (object instanceof ObByteFld || object instanceof ObCharFld || object instanceof ObDateFld ||
object instanceof ObDblFld || object instanceof ObFixedDecFld || object instanceof ObIntFld || object
instanceof ObLongDblFld || object instanceof ObLongFld || object instanceof ObSglFld || object instanceof
ObTimeFld || object instanceof ObTimeStampFld)
return ((ObField)object).getData();
else
return object;
}

public static void getProperty(String string1, String string2, Object object1)


{
if (string1 == null || string2 == null)
return;
ObCtrlData obCtrlData = getCurrentPanel().getCompByName(string1);
if (obCtrlData == null)
return;
Object object2 = null;
try
{
String string3 = new StringBuffer("get").append(string2).toString();
Method method = obCtrlData.getGuiCtrl().getComponent().getClass().getMethod(string3, null);
object2 = method.invoke(obCtrlData.getGuiCtrl().getComponent(), null);
if (object1 instanceof ObByteFld)
((ObByteFld)object1).fromString(object2.toString());
else if (object1 instanceof ObCharFld)
((ObCharFld)object1).fromString(object2.toString());
else if (object1 instanceof ObDateFld)
((ObDateFld)object1).fromString(object2.toString());
else if (object1 instanceof ObDblFld)
((ObDblFld)object1).fromString(object2.toString());
else if (object1 instanceof ObFixedDecFld)
((ObFixedDecFld)object1).fromString(object2.toString());
else if (object1 instanceof ObIntFld)
((ObIntFld)object1).fromString(object2.toString());
else if (object1 instanceof ObLongDblFld)
((ObLongDblFld)object1).fromString(object2.toString());
else if (object1 instanceof ObLongFld)

Page: 646 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

((ObLongFld)object1).fromString(object2.toString());
else if (object1 instanceof ObSglFld)
((ObSglFld)object1).fromString(object2.toString());
else if (object1 instanceof ObTimeFld)
((ObTimeFld)object1).fromString(object2.toString());
else if (object1 instanceof ObTimeStampFld)
((ObTimeStampFld)object1).fromString(object2.toString());
}
catch (NoSuchMethodException e1)
{
System.out.println(string2 + " not supported.");
}
catch (Exception e2)
{
e2.printStackTrace();
}
}

public static String padString(String string, int i)


{
return ObAS400SocketStream.createFixLengthString(string, i);
}

public static ObCharFld processLogicalEvent(ObCharFld obCharFld1, ObCharFld obCharFld2)


{
ObWindowData obWindowData;
obWindowData = null;
if (!obCharFld1.toString().equals("*Active") && !obCharFld1.toString().equals("*Current")) goto 33
else 26;
obWindowData = getCurrentPanel();
if (!obCharFld1.toString().equals("*Main")) goto 96 else 45;
local = ObApplication.findApp().getCurrentFunction().getCaller();
if (local != null) goto 81 else 59;
obWindowData = getCurrentPanel();
for (local = local.getCaller(); local != null && local.getCaller() != null; local =
local.getCaller()) /* null body */ ;
obWindowData = local.getPanel().getPanelData();
if (obCharFld1.toString().equals("*Caller"))
{
local = ObApplication.findApp().getCurrentFunction().getCaller();
if (local == null)

Page: 647 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

obWindowData = getCurrentPanel();
else
obWindowData = local.getPanel().getPanelData();
}
else
{
local = ObApplication.findCallMgr().findFunction(obCharFld1.toString());
obWindowData = local.getPanel().getPanelData();
}
if (obWindowData != null)
{
local = obWindowData.getLogicalEventID(new String(obCharFld2.toString()));
if (local != 0)
{
obWindowData.testLogicalEvent(local);
return new ObCharFld("");
}
}
return new ObCharFld("*Not Found");
}

public static void setControlText(String string1, String string2)


{
ObCtrlData obCtrlData = getCurrentPanel().getCompByName(string1);
if (obCtrlData != null)
obCtrlData.getGuiCtrl().setText(string2);
}

public static void setProperty(String string1, String string2, Object object)


{
if (string1 == null || string2 == null || object == null)
return;
ObCtrlData obCtrlData = getCurrentPanel().getCompByName(string1);
if (obCtrlData == null)
return;
Object aobject[] = new Object[1];
aobject[0] = object;
aobject[0] = getPlexBasicType(object);
String string3 = new StringBuffer("set").append(string2).toString();
executeMethod(obCtrlData, string3, aobject);
}

Page: 648 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public static void setWindowTitle(String string)


{
((ObWindowGui)getCurrentPanel().getGuiCtrl()).setTitle(string);
}

public static boolean showURL(String string1, String string2, boolean flag)


{
javax.swing.JApplet jApplet = ObApplication.findApp().getApplet();
if (jApplet == null)
{
if (flag)
System.out.println("Not running as applet, can't show HTML");
return false;
}
try
{
Object object = new URL(string1);
if (string2 == null)
string2 = "_blank";
jApplet.getAppletContext().showDocument(object, string2);
return true;
}
catch ()
{
if (flag)
{
System.out.println("Unable to display URL");
object.printStackTrace();
}
}
return false;
}
}

Page: 649 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObValuePairList

Full name of class: ObRun.ObPanel.ObCtrlData.ObValuePairList.class

package ObRun.ObPanel.ObCtrlData;

import java.util.Enumeration;
import java.util.Vector;

final synchronized class ObValuePairList


{
private Vector m_pairs;

public ObValuePairList()
{
m_pairs = new Vector(10);
}

public void addPair(Object object1, Object object2)


{
ObValuePairList$ObValuePair obValuePairList$ObValuePair = new ObValuePairList$ObValuePair(this,
object1, object2);
m_pairs.addElement(obValuePairList$ObValuePair);
}

public void clearReferences()


{
if (m_pairs != null)
{
<badSignature>;
for (Enumeration enumeration = m_pairs.elements(); enumeration.hasMoreElements(); )
{
ObValuePairList$ObValuePair obValuePairList$ObValuePair =
(ObValuePairList$ObValuePair)enumeration.nextElement();
obValuePairList$ObValuePair.clearReferences();
local = null;
}
m_pairs.removeAllElements();
}

Page: 650 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_pairs = null;
}

public void clearValues()


{
m_pairs.removeAllElements();
}

public Object getAValue(Object object)


{
for (Enumeration enumeration = m_pairs.elements(); enumeration.hasMoreElements(); )
{
ObValuePairList$ObValuePair obValuePairList$ObValuePair =
(ObValuePairList$ObValuePair)enumeration.nextElement();
if (obValuePairList$ObValuePair.m_b.toString().equals(object.toString()))
return obValuePairList$ObValuePair.m_a;
}
return null;
}

public Object getBValue(Object object)


{
if (object == null)
return null;
for (Enumeration enumeration = m_pairs.elements(); enumeration.hasMoreElements(); )
{
ObValuePairList$ObValuePair obValuePairList$ObValuePair =
(ObValuePairList$ObValuePair)enumeration.nextElement();
if (obValuePairList$ObValuePair.m_a.toString().equals(object.toString()))
return obValuePairList$ObValuePair.m_b;
}
return null;
}

public void removeValue(Object object)


{
for (Enumeration enumeration = m_pairs.elements(); enumeration.hasMoreElements(); )
{
ObValuePairList$ObValuePair obValuePairList$ObValuePair =
(ObValuePairList$ObValuePair)enumeration.nextElement();
if (obValuePairList$ObValuePair.m_a.toString().equals(object.toString()))

Page: 651 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_pairs.removeElement(obValuePairList$ObValuePair);
}
}

public Object[] toAArray()


{
Object aobject[] = new Object[m_pairs.size()];
int i = 0;
for (Enumeration enumeration = m_pairs.elements(); enumeration.hasMoreElements(); )
{
aobject[i] = ((ObValuePairList$ObValuePair)enumeration.nextElement()).m_a;
i++;
}
return aobject;
}

public Object[] toAArraySorted()


{
Object aobject[] = new Object[m_pairs.size()];
int i1 = 0;
for (Enumeration enumeration = m_pairs.elements(); enumeration.hasMoreElements(); )
{
aobject[i1] = ((ObValuePairList$ObValuePair)enumeration.nextElement()).m_a;
i1++;
}
try
{
int j = m_pairs.size();
for (int k = 0; k < j - 1; k++)
{
for (int i2 = j - 1; i2 >= k + 1; i2--)
{
String string1 = aobject[i2].toString();
String string2 = aobject[i2 - 1].toString();
if (string1.compareTo(string2) < 0)
{
String string3 = aobject[i2].toString();
aobject[i2] = aobject[i2 - 1];
aobject[i2 - 1] = string3;
}
}

Page: 652 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
}
catch (Exception e)
{
}
return aobject;
}

public Object[] toArrayPairs()


{
Object aobject[] = new Object[m_pairs.size()];
m_pairs.copyInto(aobject);
return aobject;
}

public Object[] toBArray()


{
Object aobject[] = new Object[m_pairs.size()];
int i = 0;
for (Enumeration enumeration = m_pairs.elements(); enumeration.hasMoreElements(); )
{
aobject[i] = ((ObValuePairList$ObValuePair)enumeration.nextElement()).m_b;
i++;
}
return aobject;
}
}

Page: 653 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObValuePairList$ObValuePair

Full name of class: ObRun.ObPanel.ObCtrlData.ObValuePairList$ObValuePair.class

package ObRun.ObPanel.ObCtrlData;

final synchronized class ObValuePairList$ObValuePair


{
private final ObValuePairList this$0 = obValuePairList;
public Object m_a;
public Object m_b;

public ObValuePairList$ObValuePair(ObValuePairList obValuePairList, Object object1, Object object2)


{
m_a = null;
m_b = null;
m_a = object1;
m_b = object2;
}

public void clearReferences()


{
m_a = null;
m_b = null;
}
}

Page: 654 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObWindowData

Full name of class: ObRun.ObPanel.ObCtrlData.ObWindowData.class

package ObRun.ObPanel.ObCtrlData;

import java.awt.*;
import java.util.*;
import ObRun.ObFunction.ObFunction;
import ObRun.ObFunction.ObPanel;
import ObRun.ObPanel.ObCtrlGui.ObCtrlGui;
import ObRun.ObPanel.ObCtrlGui.ObWindowGui;
import ObRun.ObRTTypes.ObField;
import [Ljava.lang.reflect.Method;;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.lang.reflect.Method;
import javax.swing.KeyStroke;

public synchronized abstract class ObWindowData extends ObCtrlData


{
private Hashtable m_compByID;
private Hashtable m_compByName;
protected ObPanel m_owner;
private String m_title;
private boolean m_resizable;
private int m_width;
private int m_height;
private int m_xpos;
private int m_ypos;
private boolean m_visible;
private boolean m_enabled;
protected int m_currentFocus;
private ObKeyStrokeMap m_keyMap;
private ObControlState m_controlState;
private Vector m_logicalEvents;
private Hashtable controlTypeMethodsTable;
protected boolean m_isDialogType;
public int m_recurseCount;

Page: 655 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

int m_lastEvt;

public ObWindowData(ObCtrlGui obCtrlGui)


{
super(obCtrlGui);
m_compByID = new Hashtable(20);
m_compByName = new Hashtable();
m_owner = null;
m_title = null;
m_resizable = false;
m_width = 0;
m_height = 0;
m_xpos = 0;
m_ypos = 0;
m_visible = false;
m_enabled = false;
m_currentFocus = 0;
m_keyMap = null;
m_controlState = null;
m_logicalEvents = null;
controlTypeMethodsTable = new Hashtable(50);
m_isDialogType = false;
m_recurseCount = 0;
m_lastEvt = 0;
m_controlState = new ObControlState();
}

public ObCtrlData bindControl(int i)


{
ObCtrlData obCtrlData = (ObCtrlData)m_compByID.get(new Integer(i));
if (obCtrlData instanceof ObRadiobuttonData)
getGuiCtrl().getPanel().addToButtonGroup(obCtrlData.getGuiCtrl());
return obCtrlData;
}

public ObCtrlData bindControl(int i, int j)


{
ObCtrlData obCtrlData = (ObCtrlData)m_compByID.get(new Integer(i));
if (obCtrlData instanceof ObRadiobuttonData)
getGuiCtrl().getPanel().addToButtonGroup(obCtrlData.getGuiCtrl());
obCtrlData.setState(j);

Page: 656 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (!(obCtrlData instanceof ObGridData))


obCtrlData.render(null);
return obCtrlData;
}

public ObCtrlData bindControl(int i, ObField obField)


{
ObCtrlData obCtrlData = (ObCtrlData)m_compByID.get(new Integer(i));
if (obCtrlData instanceof ObRadiobuttonData)
getGuiCtrl().getPanel().addToButtonGroup(obCtrlData.getGuiCtrl());
obCtrlData.setField(obField);
return obCtrlData;
}

public void clearReferences()


{
super.clearReferences();
if (m_compByID != null)
m_compByID.clear();
m_compByID = null;
if (m_compByName != null)
m_compByName.clear();
m_compByName = null;
if (m_keyMap != null)
m_keyMap = null;
m_owner = null;
if (m_controlState != null)
m_controlState = null;
controlTypeMethodsTable = null;
m_logicalEvents = null;
}

public void closeWindow()


{
((ObWindowGui)getGuiCtrl()).closeWindow();
}

public void enableKeyBoardState(String string, int i)


{
if (string.equals(""))
return;

Page: 657 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

KeyStroke keyStroke = getKeyStroke(string);


if (i == 0)
m_keyMap.enableKeyStroke(keyStroke, false);
else
m_keyMap.enableKeyStroke(keyStroke, true);
}

public void enableLogicalEvent(String string, boolean flag)


{
if (m_logicalEvents == null)
return;
for (Enumeration enumeration = m_logicalEvents.elements(); enumeration.hasMoreElements(); )
{
ObLogicalEvents obLogicalEvents = (ObLogicalEvents)enumeration.nextElement();
if (obLogicalEvents.m_name.equals(string))
{
obLogicalEvents.m_enabled = flag;
return;
}
}
}

public void exitPanel()


{
m_owner.getFunction().setReturn();
closeWindow();
setPanel(null);
}

public void finishButtonGroup()


{
((ObWindowGui)getGuiCtrl()).setButtonGroup(null);
}

public Enumeration getAllControls()


{
return m_compByID.elements();
}

public ObCtrlData getCompByID(Integer integer)


{

Page: 658 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

return (ObCtrlData)m_compByID.get(integer);
}

public ObCtrlData getCompByName(String string)


{
return (ObCtrlData)m_compByName.get(string);
}

public ObControlState getControlStateTable()


{
return m_controlState;
}

public static KeyStroke getKeyStroke(String string1)


{
boolean flag1 = false;
boolean flag2 = false;
String string2 = string1;
if (string1.indexOf("Shift") >= 0)
flag1 = true;
if (string1.indexOf("Ctrl") >= 0)
flag2 = true;
int i = string1.lastIndexOf("+");
if (i >= 0)
string2 = string1.substring(i + 1);
int j = 0;
if (flag1)
j++;
if (flag2)
j += 2;
KeyStroke keyStroke = null;
if (string2.trim().length() > 1)
keyStroke = KeyStroke.getKeyStroke(ObCtrlGui.getKeyCode(string2), j, true);
else
keyStroke = KeyStroke.getKeyStroke(string2.charAt(0), j, true);
return keyStroke;
}

public String getLanguage()


{
return getPanel().getOwner().getLanguage();

Page: 659 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public int getLogicalEventID(String string)


{
if (m_logicalEvents == null)
return 0;
for (Enumeration enumeration = m_logicalEvents.elements(); enumeration.hasMoreElements(); )
{
ObLogicalEvents obLogicalEvents = (ObLogicalEvents)enumeration.nextElement();
if (obLogicalEvents.m_name.equals(string))
return obLogicalEvents.m_ID;
}
return 0;
}

public Method[] getMethods(String string)


{
return (Method;)controlTypeMethodsTable.get(string);
}

public ObPanel getOwner()


{
return m_owner;
}

public int getPositionX()


{
return m_xpos;
}

public int getPositionY()


{
return m_ypos;
}

public boolean getShouldShowMouseOver()


{
return m_owner.getShouldShowMouseOver();
}

public int getSizeHeight()

Page: 660 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
return m_height;
}

public int getSizeWidth()


{
return m_width;
}

public String getTitle()


{
return m_title;
}

public void init(int i)


{
}

public boolean isDialog()


{
return m_isDialogType;
}

public boolean isEnabled()


{
return m_enabled;
}

public boolean isLogicalEventEnabled(int i)


{
if (m_logicalEvents == null)
return true;
for (Enumeration enumeration = m_logicalEvents.elements(); enumeration.hasMoreElements(); )
{
ObLogicalEvents obLogicalEvents = (ObLogicalEvents)enumeration.nextElement();
if (obLogicalEvents.m_ID == i)
return obLogicalEvents.m_enabled;
}
return true;
}

Page: 661 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public boolean isResizable()


{
return m_resizable;
}

public boolean isVisible()


{
return m_visible;
}

public void layout()


{
((ObWindowGui)m_guiCtrl).layout();
}

public void processKeyEvent(KeyEvent keyEvent)


{
if (m_keyMap == null)
return;
String string = KeyEvent.getKeyModifiersText(keyEvent.getModifiers());
string = new StringBuffer(String.valueOf(string)).append("+").toString();
string = new
StringBuffer(String.valueOf(string)).append(KeyEvent.getKeyText(keyEvent.getKeyCode())).toString();
KeyStroke keyStroke = getKeyStroke(string);
testEvent(keyStroke);
}

public void recalculateConstraints()


{
Dimension dimension = getGuiCtrl().getComponent().getSize();
for (Enumeration enumeration = m_compByID.elements(); enumeration.hasMoreElements(); )
{
ObCtrlGui obCtrlGui = ((ObCtrlData)enumeration.nextElement()).getGuiCtrl();
if (obCtrlGui.isFixRight())
{
Rectangle rectangle1 = ((ObWindowGui)getGuiCtrl()).getChildConstraints(obCtrlGui);
if (rectangle1 != null)
{
if (obCtrlGui.isFixLeft())
((ObWindowGui)getGuiCtrl()).setChildSize(obCtrlGui, dimension.width - rectangle1.x
- (m_width - rectangle1.x - rectangle1.width), rectangle1.height);

Page: 662 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else
((ObWindowGui)getGuiCtrl()).setChildPosition(obCtrlGui, dimension.width - (m_width
- rectangle1.x - rectangle1.width) - rectangle1.width, rectangle1.y);
obCtrlGui.getComponent().invalidate();
}
}
if (obCtrlGui.isFixBottom())
{
Rectangle rectangle2 = ((ObWindowGui)getGuiCtrl()).getChildConstraints(obCtrlGui);
if (rectangle2 != null)
{
if (obCtrlGui.isFixTop())
((ObWindowGui)getGuiCtrl()).setChildSize(obCtrlGui, rectangle2.width,
dimension.height - rectangle2.y - (m_height - rectangle2.y - rectangle2.height));
else
((ObWindowGui)getGuiCtrl()).setChildPosition(obCtrlGui, rectangle2.x,
dimension.height - (m_height - rectangle2.y - rectangle2.height) - rectangle2.height);
obCtrlGui.getComponent().invalidate();
}
}
}
m_width = dimension.width;
m_height = dimension.height;
}

public void registerKeyboardEvent(String string, int i)


{
if (string.equals(""))
return;
KeyStroke keyStroke = getKeyStroke(string);
if (m_keyMap == null)
m_keyMap = new ObKeyStrokeMap();
m_keyMap.addKeyStroke(keyStroke, i, true);
}

public void registerLogicalEvent(int i, String string)


{
if (m_logicalEvents == null)
m_logicalEvents = new Vector();
m_logicalEvents.addElement(new ObLogicalEvents(i, string));
}

Page: 663 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

protected void removeCompByID(Integer integer)


{
if (m_compByID != null)
m_compByID.remove(integer);
}

public void setCurrentFocus(int i)


{
m_currentFocus = i;
}

protected void setEnabled(boolean flag)


{
m_enabled = flag;
}

public void setMethods(String string, Method amethod[])


{
controlTypeMethodsTable.put(string, amethod);
}

protected void setPosition(int i, int j)


{
m_xpos = i;
m_ypos = j;
}

protected void setResizable(boolean flag)


{
m_resizable = flag;
}

public void setSize(int i, int j)


{
m_width = i;
m_height = j;
}

protected void setTitle(String string)


{

Page: 664 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_title = string;
}

protected void setVisible(boolean flag)


{
m_visible = flag;
}

public void show()


{
((ObWindowGui)m_guiCtrl).show();
}

public void startFocusProcess()


{
m_currentFocus = 0;
}

protected void storeCompByID(Integer integer, ObCtrlData obCtrlData)


{
m_compByID.put(integer, obCtrlData);
}

public void storeCompByName(String string, ObCtrlData obCtrlData)


{
m_compByName.put(string, obCtrlData);
}

public void testEvent(KeyStroke keyStroke)


{
int i = m_keyMap.getLogicalID(keyStroke);
if (i != 0 && getPanel().isLogicalEventEnabled(i))
{
getPanel().getOwner().setCurrentAction(i);
getPanel().getOwner().eventsHandler();
}
}

public void testLogicalEvent(int i)


{
if (i != 0 && getPanel().isLogicalEventEnabled(i))

Page: 665 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
getPanel().getOwner().setCurrentAction(i);
getPanel().getOwner().eventsHandler();
getPanel().getOwner().setCurrentAction(0);
}
}

public int whoHasFocus()


{
return m_currentFocus;
}
}

Page: 666 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCtrlGui

ObBackgroundPanel

package ObRun.ObPanel.ObCtrlGui;

import java.awt.*;
import javax.swing.JComponent;
import javax.swing.JPanel;

final synchronized class ObBackgroundPanel extends JPanel


{
int m_imageWidth;
int m_imageHeight;
int m_myWidth;
int m_myHeight;
ObWindowGui m_guiObject;

public ObBackgroundPanel(ObWindowGui obWindowGui)


{
m_guiObject = obWindowGui;
}

public void clearReferences()


{
m_guiObject = null;
}

public void paint(Graphics g)


{
if (m_guiObject.m_backImage != null)
{
m_imageWidth = m_guiObject.m_backImage.getWidth(m_guiObject.m_panelDesign);
m_imageHeight = m_guiObject.m_backImage.getHeight(m_guiObject.m_panelDesign);
m_myWidth = m_guiObject.m_panelDesign.getSize().width;
m_myHeight = m_guiObject.m_panelDesign.getSize().height;
int i1 = m_myWidth / m_imageWidth;
int j1 = m_myHeight / m_imageHeight;
int k1 = 0;

Page: 667 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

int i2 = 0;
for (i2 = 0; i2 <= j1; i2++)
{
int j2 = 0;
int k2 = 0;
for (j2 = 0; j2 <= i1; j2++)
{
g.drawImage(m_guiObject.m_backImage, k2, k1, this);
k2 += m_imageWidth;
}
k1 += m_imageHeight;
}
}
super.paint(g);
}
}

Page: 668 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObBaseGridEditorDelegate

Full name of class: ObRun.ObPanel.ObCtrlGui.ObBaseGridEditorDelegate.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.event.*;
import ObRun.ObPanel.ObCtrlData.ObCtrlData;
import java.util.EventObject;

synchronized class ObBaseGridEditorDelegate implements ActionListener, ItemListener


{
protected Object value;
protected ObGridCellEditor m_editor;

protected ObBaseGridEditorDelegate(ObGridCellEditor obGridCellEditor)


{
m_editor = null;
m_editor = obGridCellEditor;
}

public void actionPerformed(ActionEvent actionEvent)


{
}

public void cancelCellEditing()


{
}

public void clearReferences()


{
value = null;
m_editor = null;
}

public Object getCellEditorValue()


{
return value;
}

Page: 669 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public boolean isCellEditable(EventObject eventObject)


{
return true;
}

public void itemStateChanged(ItemEvent itemEvent)


{
m_editor.m_grid.setIgnoreEvents(true);
m_editor.fireEditingStopped();
if (itemEvent.getStateChange() != 2)
m_editor.m_grid.setLastEdited(m_editor.m_dataCtrl.getGuiCtrl());
m_editor.m_grid.setIgnoreEvents(false);
}

public void setValue(Object object)


{
value = object;
}

public boolean startCellEditing(EventObject eventObject)


{
return true;
}

public boolean stopCellEditing()


{
return true;
}
}

Page: 670 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObBasicTreeCellRenderer

Full name of class: ObRun.ObPanel.ObCtrlGui.ObBasicTreeCellRenderer.class

package ObRun.ObPanel.ObCtrlGui;

import javax.swing.JComponent;
import javax.swing.JLabel;

synchronized class ObBasicTreeCellRenderer extends JLabel


{
ObBasicTreeCellRenderer()
{
setOpaque(true);
}
}

Page: 671 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObBeanGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObBeanGui.class

package ObRun.ObPanel.ObCtrlGui;

import java.applet.Applet;
import java.awt.Component;
import java.awt.SystemColor;
import java.lang.reflect.Method;

public final synchronized class ObBeanGui extends ObCtrlGui


{
public ObBeanGui(String string1)
{
Class class = null;
try
{
class = Class.forName(string1);
m_ctrl = (Component)class.newInstance();
m_ctrl.setBackground(SystemColor.control);
try
{
if (m_ctrl instanceof Applet)
{
String string2 = "start";
Method method = m_ctrl.getClass().getMethod(string2, null);
method.invoke(m_ctrl, null);
}
}
catch (Exception e1)
{
e1.printStackTrace();
}
}
catch (Exception e2)
{
e2.printStackTrace();
}

Page: 672 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setControlName(String string)


{
super.setControlName(string);
}

public void setPosition(String string)


{
super.setPosition(string);
}

public void setSize(String string)


{
super.setSize(string);
}
}

Page: 673 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObButton

Full name of class: ObRun.ObPanel.ObCtrlGui.ObButton.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.*;
import javax.swing.*;
import javax.swing.plaf.basic.BasicGraphicsUtils;

synchronized class ObButton extends JButton


{
private ObPushbuttonGui m_parent;

public ObButton(ObPushbuttonGui obPushbuttonGui)


{
m_parent = null;
m_parent = obPushbuttonGui;
}

public void clearReferences()


{
m_parent = null;
}

public void paintComponent(Graphics g)


{
super.paintComponent(g);
if (m_parent.getTextLines() != null)
{
int i1 = 0;
Dimension dimension = getSize();
dimension.height = dimension.height - 2;
FontMetrics fontMetrics = getToolkit().getFontMetrics(getFont());
int j1 = fontMetrics.getHeight();
int k = fontMetrics.getAscent();
int i2 = 0;
JButton jButton = (JButton)m_parent.m_ctrl;
switch (jButton.getVerticalTextPosition())

Page: 674 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
case 0:
i2 = k + (dimension.height - m_parent.getTextLines().length * j1) / 2;
break;

case 3:
i2 = k + (dimension.height - m_parent.getTextLines().length * j1);
break;

default:
i2 = k;
break;
}
for (int j2 = 0; j2 < m_parent.getTextLines().length; )
{
Insets insets = jButton.getInsets();
switch (jButton.getHorizontalTextPosition())
{
case 0:
i1 = (dimension.width - fontMetrics.stringWidth(m_parent.getTextLines()[j2])) / 2;
break;

case 4:
i1 = dimension.width - insets.right - fontMetrics.stringWidth(m_parent.getTextLines()
[j2]);
break;

default:
i1 = insets.left;
break;
}
if (jButton.isEnabled())
BasicGraphicsUtils.drawString(g, m_parent.getTextLines()[j2], jButton.getMnemonic(),
i1, i2);
else
{
g.setColor(jButton.getBackground().brighter());
BasicGraphicsUtils.drawString(g, m_parent.getTextLines()[j2], jButton.getMnemonic(),
i1, i2);
g.setColor(jButton.getBackground().darker());

Page: 675 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

BasicGraphicsUtils.drawString(g, m_parent.getTextLines()[j2], jButton.getMnemonic(), i1


- 1, i2 - 1);
}
j2++;
i2 += j1;
}
invalidate();
}
}
}

Page: 676 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCheckboxGridEditorDelegate

Full name of class: ObRun.ObPanel.ObCtrlGui.ObCheckboxGridEditorDelegate.class

package ObRun.ObPanel.ObCtrlGui;

import javax.swing.*;
import ObRun.ObPanel.ObCtrlData.ObCtrlData;
import java.awt.AWTEvent;
import java.awt.Component;
import java.util.EventObject;

synchronized class ObCheckboxGridEditorDelegate extends ObBaseGridEditorDelegate


{
protected ObCheckboxGridEditorDelegate(ObGridCellEditor obGridCellEditor)
{
super(obGridCellEditor);
}

public Object getCellEditorValue()


{
Boolean boolean = new Boolean(((JCheckBox)m_editor.getComponent()).isSelected());
return boolean.toString();
}

public boolean isCellEditable(EventObject eventObject)


{
return ((JCheckBox)m_editor.getComponent()).isEnabled();
}

public void setValue(Object object)


{
super.setValue(object);
((JCheckBox)m_editor.getComponent()).setText("");
((JCheckBox)m_editor.getComponent()).setVerticalTextPosition(0);
((JCheckBox)m_editor.getComponent()).setHorizontalTextPosition(0);
((JCheckBox)m_editor.getComponent()).setVerticalAlignment(0);
((JCheckBox)m_editor.getComponent()).setHorizontalAlignment(0);
m_editor.m_dataCtrl.setIgnoreEvents(true);

Page: 677 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (object == null)
((JCheckBox)m_editor.getComponent()).setSelected(false);
else if (object instanceof Boolean)
((JCheckBox)m_editor.getComponent()).setSelected(((Boolean)object).booleanValue());
else if (object instanceof String)
{
Boolean boolean = new Boolean((String)object);
((JCheckBox)m_editor.getComponent()).setSelected(boolean.booleanValue());
}
else
((JCheckBox)m_editor.getComponent()).setSelected(false);
m_editor.m_dataCtrl.setIgnoreEvents(false);
}

public boolean startCellEditing(EventObject eventObject)


{
if (eventObject instanceof AWTEvent)
return true;
else
return false;
}

public boolean stopCellEditing()


{
return true;
}
}

Page: 678 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCheckboxGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObCheckboxGui.class

package ObRun.ObPanel.ObCtrlGui;

import javax.swing.*;
import ObRun.ObPanel.ObCtrlData.ObCheckboxData;
import ObRun.ObPanel.ObCtrlData.ObCtrlData;
import java.awt.Component;
import java.awt.SystemColor;

public final synchronized class ObCheckboxGui extends ObCtrlGui


{
private Object m_checkedValue;
private Object m_uncheckedValue;

public ObCheckboxGui()
{
m_checkedValue = null;
m_uncheckedValue = null;
m_ctrl = new JCheckBox();
m_ctrl.setBackground(SystemColor.control);
((JCheckBox)m_ctrl).setVerticalAlignment(0);
((JCheckBox)m_ctrl).setHorizontalAlignment(2);
if (!m_focusListener)
{
m_ctrl.addFocusListener(this);
m_focusListener = true;
}
}

public void addItems(Object aobject[])


{
m_checkedValue = aobject[0];
m_uncheckedValue = aobject[1];
}

public void clearReferences()

Page: 679 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
m_checkedValue = null;
m_uncheckedValue = null;
super.clearReferences();
}

protected void createRenderer()


{
m_renderer = new ObCheckBoxTreeCellRenderer();
}

public Object getCheckedValue()


{
return m_checkedValue;
}

public Object getUnCheckedValue()


{
return m_uncheckedValue;
}

public String getValue()


{
String string = null;
if (inGrid())
string = getGridValue();
else if (((JCheckBox)m_ctrl).isSelected())
string = m_checkedValue.toString();
else
string = m_uncheckedValue.toString();
Object object = ((ObCheckboxData)getData()).getBValue(string);
if (object == null)
return "";
else
return object.toString();
}

public void setBackgroundColor(String string)


{
if (string.length() == 0)
m_ctrl.setBackground(SystemColor.control);

Page: 680 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else
super.setBackgroundColor(string);
((JCheckBox)m_ctrl).setOpaque(true);
}

public void setColumnHeading(String string)


{
super.setColumnHeading(string);
}

public void setControlName(String string)


{
super.setControlName(string);
}

public void setDisabled(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
((JCheckBox)m_ctrl).setEnabled(false);
else
((JCheckBox)m_ctrl).setEnabled(true);
}

public void setFixBottom(String string)


{
super.setFixBottom(string);
}

public void setFixLeft(String string)


{
super.setFixLeft(string);
}

public void setFixRight(String string)


{
super.setFixRight(string);
}

public void setFixTop(String string)


{

Page: 681 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

super.setFixTop(string);
}

public void setFont(String string)


{
super.setFont(string);
}

public void setGridText(String string)


{
if (m_renderer != null)
{
((JCheckBox)m_renderer).setText("");
((JCheckBox)m_renderer).setVerticalTextPosition(0);
((JCheckBox)m_renderer).setHorizontalTextPosition(0);
((JCheckBox)m_renderer).setVerticalAlignment(0);
((JCheckBox)m_renderer).setHorizontalAlignment(0);
}
if (string.compareTo(m_checkedValue.toString()) == 0 || string.compareTo("true") == 0)
((JCheckBox)m_renderer).setSelected(true);
else
((JCheckBox)m_renderer).setSelected(false);
}

public void setGridValue(String string)


{
setGridText(string);
((ObGridGui)m_parent).addCell(string, getData().getField(), m_columnHeading.getColumn());
}

public void setLeftContextMenu(String string)


{
super.setLeftContextMenu(string);
}

public void setMode(String string)


{
string = string.toUpperCase();
if (string.compareTo("READ ONLY") == 0)
((JCheckBox)m_ctrl).setEnabled(false);
else

Page: 682 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

((JCheckBox)m_ctrl).setEnabled(true);
}

public void setPosition(String string)


{
super.setPosition(string);
}

public void setRightContextMenu(String string)


{
super.setRightContextMenu(string);
}

public void setSize(String string)


{
super.setSize(string);
}

public void setTabSequence(String string)


{
super.setTabSequence(string);
}

public void setTabStop(String string)


{
super.setTabStop(string);
}

public void setText(String string1)


{
String string2 = string1;
int i = string1.indexOf(38);
if (i != -1)
{
String string3 = string1.substring(0, i);
String string4 = string1.substring(i + 1);
string2 = new StringBuffer(String.valueOf(string3)).append(string4).toString();
char ach[] = string1.substring(i + 1, i + 2).toCharArray();
((JCheckBox)m_ctrl).setMnemonic(ach[0]);
((JCheckBox)m_ctrl).setToolTipText(string2);
}

Page: 683 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

((JCheckBox)m_ctrl).setText(string2);
}

public void setTextColor(String string)


{
super.setTextColor(string);
}

public void setValue(String string)


{
Object object = ((ObCheckboxData)getData()).getAValue(string);
try
{
if (inGrid())
setGridValue(object.toString());
else if (object != null && object.toString().compareTo(m_checkedValue.toString()) == 0)
((JCheckBox)m_ctrl).setSelected(true);
else
((JCheckBox)m_ctrl).setSelected(false);
}
catch (Exception e)
{
}
}

public void setVisible(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
((JCheckBox)m_ctrl).setVisible(true);
else
((JCheckBox)m_ctrl).setVisible(false);
}
}

Page: 684 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCheckBoxTreeCellRenderer

Full name of class: ObRun.ObPanel.ObCtrlGui.ObCheckBoxTreeCellRenderer.class

package ObRun.ObPanel.ObCtrlGui;

import javax.swing.JCheckBox;
import javax.swing.JComponent;

synchronized class ObCheckBoxTreeCellRenderer extends JCheckBox


{
ObCheckBoxTreeCellRenderer()
{
setOpaque(true);
}
}

Page: 685 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObClockTick

Full name of class: ObRun.ObPanel.ObCtrlGui.ObClockTick.class

package ObRun.ObPanel.ObCtrlGui;

import ObRun.ObPanel.ObCtrlData.ObCtrlData;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

synchronized class ObClockTick implements ActionListener


{
private ObWindowGui m_panelGui;

ObClockTick(ObWindowGui obWindowGui)
{
m_panelGui = null;
m_panelGui = obWindowGui;
}

public void actionPerformed(ActionEvent actionEvent)


{
m_panelGui.getData().testEvent(1060);
}
}

Page: 686 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObColumnHeadingGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObColumnHeadingGui.class

package ObRun.ObPanel.ObCtrlGui;

import ObRun.ObPanel.ObCtrlData.ObCtrlData;
import java.awt.Component;

public final synchronized class ObColumnHeadingGui extends ObCtrlGui


{
private String m_value;
private int m_width;
private int m_column;
private boolean m_visible;

public ObColumnHeadingGui()
{
m_value = null;
m_width = -1;
m_column = -1;
m_visible = true;
m_ctrl = null;
}

public void clearReferences()


{
m_value = null;
super.clearReferences();
}

public int getColumn()


{
return m_column;
}

public String getValue()


{
return m_value;

Page: 687 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public int getWidth()


{
return m_width;
}

public boolean isVisible()


{
return m_visible;
}

public void setColumn(int i)


{
m_column = i;
}

public void setText(String string)


{
m_value = string;
}

public void setValue(String string)


{
setText(string);
}

public void setVisible(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
m_visible = true;
else
m_visible = false;
}

public void setWidth(String string)


{
m_width = new Integer(string).intValue();
((ObGridGui)getData().getParent().getGuiCtrl()).columnWidthChanged(m_column, m_width);
}

Page: 688 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public String toString()


{
return m_value;
}
}

Page: 689 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObComboGridEditorDelegate

Full name of class: ObRun.ObPanel.ObCtrlGui.ObComboGridEditorDelegate.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.AWTEvent;
import java.awt.Component;
import java.util.EventObject;
import javax.swing.JComboBox;

synchronized class ObComboGridEditorDelegate extends ObBaseGridEditorDelegate


{
protected ObComboGridEditorDelegate(ObGridCellEditor obGridCellEditor)
{
super(obGridCellEditor);
}

public Object getCellEditorValue()


{
return ((JComboBox)m_editor.getComponent()).getSelectedItem();
}

public boolean isCellEditable(EventObject eventObject)


{
return ((JComboBox)m_editor.getComponent()).isEnabled();
}

public void setValue(Object object)


{
super.setValue(object);
((JComboBox)m_editor.getComponent()).setSelectedItem(object);
}

public boolean startCellEditing(EventObject eventObject)


{
((JComboBox)m_editor.getComponent()).setPopupVisible(false);
if (eventObject instanceof AWTEvent)
return true;

Page: 690 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else
return false;
}

public boolean stopCellEditing()


{
return true;
}
}

Page: 691 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObComboGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObComboGui.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.*;
import javax.swing.border.*;
import ObRun.ObPanel.ObCtrlData.ObComboData;
import javax.swing.JComboBox;
import javax.swing.JComponent;

public final synchronized class ObComboGui extends ObCtrlGui


{
private boolean m_sorted;

public ObComboGui()
{
m_sorted = false;
m_ctrl = new JComboBox();
m_ctrl.setBackground(SystemColor.window);
if (!m_focusListener)
{
m_ctrl.addFocusListener(this);
Component acomponent[] = ((JComboBox)m_ctrl).getComponents();
for (int i = 0; i < acomponent.length; i++)
acomponent[i].addFocusListener(this);
m_focusListener = true;
}
}

public void addItems(Object aobject[])


{
if (((JComboBox)m_ctrl).getItemCount() > 0)
((JComboBox)m_ctrl).removeAllItems();
for (int i = 0; i < aobject.length; i++)
((JComboBox)m_ctrl).addItem(aobject[i]);
}

Page: 692 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void clear()


{
((JComboBox)m_ctrl).removeAllItems();
((ObComboData)getData()).clearValues();
}

public String getValue()


{
Object object1 = null;
if (inGrid())
object1 = getGridValue();
else
object1 = ((JComboBox)m_ctrl).getSelectedItem();
Object object2 = ((ObComboData)getData()).getBValue(object1);
if (object2 == null)
return "";
else
return object2.toString();
}

public boolean isSorted()


{
return m_sorted;
}

public void setBackgroundColor(String string)


{
if (string.length() == 0)
m_ctrl.setBackground(SystemColor.window);
else
super.setBackgroundColor(string);
}

public void setBorder(String string)


{
Insets insets = ((JComboBox)m_ctrl).getInsets();
Object object = null;
if (string.compareTo("None") == 0)
object = new EmptyBorder(insets);
else if (string.compareTo("Standard") == 0)
object = new LineBorder(Color.black, 1);

Page: 693 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else if (string.compareTo("Indented") == 0)
object = new BevelBorder(1, Color.white, new Color(128, 128, 128));
else if (string.compareTo("Extruded") == 0)
object = new BevelBorder(0, Color.white, new Color(128, 128, 128));
else if (string.compareTo("Bump") == 0)
object = new EtchedBorder(Color.white, new Color(128, 128, 128));
((JComboBox)m_ctrl).setBorder(object);
}

public void setColumnHeading(String string)


{
super.setColumnHeading(string);
}

public void setControlName(String string)


{
super.setControlName(string);
}

public void setDisabled(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
((JComboBox)m_ctrl).setEnabled(false);
else
((JComboBox)m_ctrl).setEnabled(true);
}

public void setFixBottom(String string)


{
super.setFixBottom(string);
}

public void setFixLeft(String string)


{
super.setFixLeft(string);
}

public void setFixRight(String string)


{
super.setFixRight(string);

Page: 694 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setFixTop(String string)


{
super.setFixTop(string);
}

public void setFont(String string)


{
super.setFont(string);
}

public void setLeftContextMenu(String string)


{
super.setLeftContextMenu(string);
}

public void setMode(String string)


{
string = string.toUpperCase();
if (string.compareTo("READ ONLY") == 0)
((JComboBox)m_ctrl).setEnabled(false);
else
((JComboBox)m_ctrl).setEnabled(true);
}

public void setPosition(String string)


{
super.setPosition(string);
}

public void setRightContextMenu(String string)


{
super.setRightContextMenu(string);
}

public void setSize(String string)


{
super.setSize(string);
}

Page: 695 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setSorted(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
m_sorted = true;
else
m_sorted = false;
}

public void setTabSequence(String string)


{
super.setTabSequence(string);
}

public void setTabStop(String string)


{
super.setTabStop(string);
}

public void setTextColor(String string)


{
super.setTextColor(string);
}

public void setValue(String string)


{
Object object = ((ObComboData)getData()).getAValue(string);
try
{
if (inGrid())
setGridValue(object.toString());
else
((JComboBox)m_ctrl).setSelectedItem(object);
}
catch (Exception e)
{
}
}

public void setVisible(String string)


{

Page: 696 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

string = string.toUpperCase();
if (string.compareTo("YES") == 0)
((JComboBox)m_ctrl).setVisible(true);
else
((JComboBox)m_ctrl).setVisible(false);
}
}

Page: 697 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCtrlGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObCtrlGui.class

package ObRun.ObPanel.ObCtrlGui;

import ObRun.ObFunction.*;
import ObRun.ObPanel.ObCtrlData.*;
import ObRun.ObRTTypes.*;
import java.awt.*;
import java.awt.event.*;
import java.beans.*;
import java.text.*;
import java.util.*;
import javax.swing.*;
import javax.swing.text.*;
import ObRun.ObEnvironment.ObLog;
import [Ljava.lang.String;;
import java.io.PrintStream;
import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.net.URL;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;

public synchronized class ObCtrlGui implements ComponentListener, FocusListener, KeyListener,


MouseListener, MouseMotionListener, WindowListener, ItemListener, TextListener, TableCellRenderer,
PropertyChangeListener, VetoableChangeListener
{
protected ObCtrlData m_dataCtrl;
protected Component m_ctrl;
protected Vector m_children;
protected ObCtrlGui m_parent;
protected ObWindowGui m_panel;
protected PlainDocument m_document;
boolean m_componentListener;
boolean m_focusListener;
boolean m_keyListener;
boolean m_mouseListener;

Page: 698 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

boolean m_mouseMotionListener;
boolean m_windowListener;
boolean m_itemListener;
boolean m_textListener;
boolean m_listDataListener;
boolean m_modifiedEvent;
boolean m_actionListener;
boolean m_propertyChangeListener;
boolean m_vetoableChangeListener;
protected String m_ctrlName;
protected ObColumnHeadingGui m_columnHeading;
protected Component m_renderer;
protected ObGridCellEditor m_editor;
protected String m_initialValue;
protected ObClientApp m_clientApp;
protected boolean m_inApplet;
protected ObTabSequence m_tab;
protected boolean m_tabStop;
protected boolean m_fixLeft;
protected boolean m_fixRight;
protected boolean m_fixTop;
protected boolean m_fixBottom;
protected int m_leftMenuID;
protected int m_rightMenuID;
public static final byte MIXED = 0;
public static final byte UPPER = 1;
public static final byte LOWER = 2;
public static final byte UNINITIALIZED = 0;
public static final byte CHAR = 1;
public static final byte NUMERIC = 2;
public static final byte NUMERIC_NO_DECIMALS = 3;
public static final byte DATE = 4;
public static final byte TIME = 5;
public static final byte TIMESTAMP = 6;
protected boolean m_mousePressedMapped;
protected static SystemColor m_javaCol[];
private Cursor m_handCursor;

static
{

Page: 699 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_javaCol = { SystemColor.scrollbar, SystemColor.desktop, SystemColor.activeCaption,


SystemColor.inactiveCaption, SystemColor.menu, SystemColor.window, SystemColor.windowBorder,
SystemColor.menuText, SystemColor.windowText, SystemColor.activeCaptionText,
SystemColor.activeCaptionBorder, SystemColor.inactiveCaptionBorder, SystemColor.window,
SystemColor.textHighlight, SystemColor.textHighlightText, SystemColor.control, SystemColor.controlShadow,
SystemColor.textInactiveText, SystemColor.controlText, SystemColor.inactiveCaptionText,
SystemColor.controlLtHighlight, SystemColor.controlDkShadow, SystemColor.controlHighlight,
SystemColor.infoText, SystemColor.info };
}

public ObCtrlGui()
{
m_dataCtrl = null;
m_ctrl = null;
m_children = new Vector(20);
m_parent = null;
m_panel = null;
m_document = null;
m_componentListener = false;
m_focusListener = false;
m_keyListener = false;
m_mouseListener = false;
m_mouseMotionListener = false;
m_windowListener = false;
m_itemListener = false;
m_textListener = false;
m_listDataListener = false;
m_modifiedEvent = false;
m_actionListener = false;
m_propertyChangeListener = false;
m_vetoableChangeListener = false;
m_ctrlName = null;
m_columnHeading = null;
m_renderer = null;
m_editor = null;
m_initialValue = null;
m_clientApp = null;
m_inApplet = false;
m_tab = null;
m_tabStop = true;
m_fixLeft = true;

Page: 700 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_fixRight = false;
m_fixTop = true;
m_fixBottom = false;
m_leftMenuID = 0;
m_rightMenuID = 0;
m_mousePressedMapped = false;
m_handCursor = Cursor.getPredefinedCursor(12);
m_clientApp = (ObClientApp)ObApplication.findApp();
m_inApplet = ObApplication.isApplet();
}

public void addChild(ObCtrlGui obCtrlGui)


{
obCtrlGui.setPanel(getPanel());
m_children.addElement(obCtrlGui);
}

public void clear()


{
}

public void clearReferences()


{
m_handCursor = null;
try
{
if (m_mouseListener)
m_ctrl.removeMouseListener(this);
if (m_mouseMotionListener)
m_ctrl.removeMouseMotionListener(this);
if (m_componentListener)
m_ctrl.removeComponentListener(this);
if (m_focusListener)
m_ctrl.removeFocusListener(this);
if (m_keyListener)
m_ctrl.removeKeyListener(this);
if (m_itemListener && m_ctrl instanceof ItemSelectable)
((ItemSelectable)m_ctrl).removeItemListener(this);
if (m_textListener && m_ctrl instanceof TextComponent)
((TextComponent)m_ctrl).removeTextListener(this);
if (m_itemListener && m_ctrl instanceof ItemSelectable)

Page: 701 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

((ItemSelectable)m_ctrl).removeItemListener(this);
if (m_ctrl != null && m_windowListener && (!m_inApplet || m_inApplet &&
ObApplication.useAppletFrame()))
((Window)m_ctrl).removeWindowListener(this);
}
catch (Exception e1)
{
}
try
{
if (m_ctrl != null)
{
((Container)m_ctrl).removeAll();
if (m_document != null)
m_document = null;
}
}
catch (Exception e2)
{
}
try
{
m_ctrl = null;
if (m_children != null)
m_children.removeAllElements();
m_children = null;
m_dataCtrl = null;
m_parent = null;
m_panel = null;
m_clientApp = null;
m_tab = null;
if (m_editor != null)
m_editor.clearReferences();
m_editor = null;
m_renderer = null;
}
catch (Exception e3)
{
}
}

Page: 702 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void componentHidden(ComponentEvent componentEvent)


{
getData().testEvent(componentEvent.getID());
}

public void componentMoved(ComponentEvent componentEvent)


{
getData().testEvent(componentEvent.getID());
}

public void componentResized(ComponentEvent componentEvent)


{
getData().testEvent(componentEvent.getID());
}

public void componentShown(ComponentEvent componentEvent)


{
getData().testEvent(componentEvent.getID());
}

protected int countDecimalDigits(String string)


{
int i = 0;
boolean flag = false;
for (int j = 0; j < string.length(); j++)
{
if (isDigit(string.charAt(j)))
{
i++;
if (string.charAt(j) > 48)
flag = true;
}
if (string.charAt(j) == 46 || string.charAt(j) == 59)
break;
}
if (!flag)
return 0;
else
return i;
}

Page: 703 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

protected int countFractionalDigits(String string)


{
int i = 0;
int j = string.indexOf(".");
if (j != -1)
{
for (int k = j; k < string.length(); k++)
{
if (isDigit(string.charAt(k)))
i++;
if (string.charAt(k) == 59)
break;
}
}
return i;
}

public JComponent createPopupMenu(int i, boolean flag)


{
Object object = null;
if (flag)
object = new JMenu();
else
object = new JPopupMenu();
String string1 = getData().getProperty(new StringBuffer(String.valueOf(new
Integer(i).toString())).append(".Contains").toString(), false);
if (string1 == null)
return null;
for (StringTokenizer stringTokenizer = new StringTokenizer(string1);
stringTokenizer.hasMoreTokens(); )
{
String string2 = stringTokenizer.nextToken();
String string3 = getData().getProperty(new
StringBuffer(String.valueOf(string2)).append(".Type").toString(), false);
ObCtrlGui obCtrlGui = getData().getPanel().getCompByID(new Integer(string2)).getGuiCtrl();
if (obCtrlGui instanceof ObMenuitemGui)
{
ObMenuitemGui obMenuitemGui = (ObMenuitemGui)obCtrlGui;
ObCtrlGui$ObPopupItem obCtrlGui$ObPopupItem = new ObCtrlGui$ObPopupItem(this, new
JMenuItem(((JMenuItem)obMenuitemGui.getComponent()).getText()), new Integer(string2));
obCtrlGui$ObPopupItem.setMenuItemProperties(obMenuitemGui);

Page: 704 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

object.add(obCtrlGui$ObPopupItem.getMenuItem());
}
else if (obCtrlGui instanceof ObMenuGui)
{
JMenu jMenu1 = (JMenu)obCtrlGui.getComponent();
JMenu jMenu2 = (JMenu)createPopupMenu(new Integer(string2).intValue(), true);
try
{
jMenu2.setText(jMenu1.getText());
jMenu2.setMnemonic(jMenu1.getMnemonic());
jMenu2.setEnabled(jMenu1.isEnabled());
jMenu2.setVisible(jMenu1.isVisible());
jMenu2.setToolTipText(jMenu1.getToolTipText());
}
catch (Exception e)
{
}
object.add(jMenu2);
}
else
object.add(obCtrlGui.getComponent());
}
return object;
}

protected void createRenderer()


{
m_renderer = new ObBasicTreeCellRenderer();
}

public void focusGained(FocusEvent focusEvent)


{
getData().getPanel().setCurrentFocus(getData().getID());
if (m_clientApp.getConsumeFocusEvent())
{
m_clientApp.setConsumeFocusEvent(false);
return;
}
getData().testEvent(focusEvent.getID());
}

Page: 705 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void focusLost(FocusEvent focusEvent)


{
if (m_clientApp.getConsumeFocusEvent())
{
m_clientApp.setConsumeFocusEvent(false);
return;
}
String string = getValue();
if (inGrid())
{
if (this instanceof ObCheckboxGui)
{
if (((JCheckBox)m_ctrl).isSelected())
string = ((ObCheckboxGui)this).getCheckedValue().toString();
else
string = ((ObCheckboxGui)this).getUnCheckedValue().toString();
}
else if (this instanceof ObComboGui && ((JComboBox)m_ctrl).getSelectedItem() != null)
string = ((JComboBox)m_ctrl).getSelectedItem().toString();
}
if (m_initialValue != null && !m_initialValue.equals(string))
{
if (inGrid() && !((ObGridGui)getParent()).getIgnoreEvents())
getData().testEvent(1040);
if (!inGrid())
getData().testEvent(1040);
}
if (m_initialValue != null)
setInitialValue();
if (inGrid() && getParent().isModifiedEvent() &&
((ObGridGui)getParent()).getDataModel().isCellModified(((ObGridGui)getParent()).getGrid().getSelectedRow(),
((ObGridGui)getParent()).getGrid().getSelectedColumn()))
getParent().getData().testEvent(1030);
getData().testEvent(focusEvent.getID());
}

protected String formatCharacterForDisplay(String string1, String string2)


{
int i;
int j;
int k;

Page: 706 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (string2.length() < 1)
return string1;
StringBuffer stringBuffer1 = new StringBuffer(string1);
StringBuffer stringBuffer2 = new StringBuffer(string2);
StringBuffer stringBuffer3 = new StringBuffer();
if (stringBuffer1.length() > 0)
{
i = 0;
for (j = 0; i < stringBuffer2.length() && j < stringBuffer1.length(); i++)
{
if (stringBuffer2.charAt(i) == 35)
{
if (Character.isDigit(stringBuffer1.charAt(j)))
stringBuffer3.append(stringBuffer1.charAt(j));
else
i--;
}
else if (stringBuffer2.charAt(i) == 64)
{
if (Character.isLetter(stringBuffer1.charAt(j)) ||
Character.isSpaceChar(stringBuffer1.charAt(j)))
stringBuffer3.append(stringBuffer1.charAt(j));
else
i--;
}
else if (stringBuffer2.charAt(i) == 33)
{
k = Character.getType(stringBuffer1.charAt(j));
if (k == 23 || k == 20 || k == 22 || k == 24 || k == 21 || k == 7)
stringBuffer3.append(stringBuffer1.charAt(j));
else
i--;
}
else if (stringBuffer2.charAt(i) == 42)
stringBuffer3.append(stringBuffer1.charAt(j));
else
{
stringBuffer3.append(stringBuffer2.charAt(i));
j--;
}
j++;

Page: 707 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
}
return stringBuffer3.toString();
}

protected String formatCharacterForInternal(String string1, String string2)


{
StringBuffer stringBuffer = new StringBuffer();
try
{
for (int i = 0; i < string1.length(); i++)
if (string2.charAt(i) == 35 || string2.charAt(i) == 64 || string2.charAt(i) == 33 ||
string2.charAt(i) == 42)
stringBuffer.append(string1.charAt(i));
}
catch (Exception e)
{
e.printStackTrace();
}
return stringBuffer.toString();
}

public String formatDateForDisplay(String string1, String string2)


{
SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat();
try
{
simpleDateFormat1.applyPattern(string2);
}
catch (IllegalArgumentException e1)
{
Object aobject[] = { string2, new Integer(getData().getID()) };
ObApplication.log(2, ObApplication.getResString("EditMaskInvalid"), aobject);
}
SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy/MM/dd");
try
{
string1 = string1.replace('-', '/');
Date date = simpleDateFormat2.parse(string1, new ParsePosition(0));
if (date != null)
return new String(simpleDateFormat1.format(date));

Page: 708 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else
return null;
}
catch (Exception e2)
{
e2.printStackTrace();
}
return null;
}

protected String formatDateForInternal(String string1, String string2)


{
if (string1.length() < 1)
return null;
SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat();
simpleDateFormat1.setLenient(false);
try
{
simpleDateFormat1.applyPattern(string2);
}
catch (IllegalArgumentException e1)
{
Object aobject1[] = { string2, new Integer(getData().getID()) };
ObApplication.log(2, ObApplication.getResString("EditMaskInvalid"), aobject1);
}
SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy/MM/dd");
try
{
string1 = string1.replace('-', '/');
Date date = simpleDateFormat1.parse(string1, new ParsePosition(0));
if (date != null)
return new String(simpleDateFormat2.format(date));
Object aobject2[] = { string2, string1 };
ObApplication.log(2, ObApplication.getResString("ValueInvalidForMask"), aobject2);
return null;
}
catch (Exception e2)
{
e2.printStackTrace();
}
return null;

Page: 709 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public String formatForDisplay(String string)


{
return string;
}

public String formatForInternal(String string)


{
return string;
}

protected String formatNumericForDisplay(String string1, String string2)


{
DecimalFormat decimalFormat = new DecimalFormat();
try
{
decimalFormat.applyPattern(string2);
}
catch (IllegalArgumentException e1)
{
Object aobject[] = { string2, new Integer(getData().getID()) };
ObApplication.log(2, ObApplication.getResString("EditMaskInvalid"), aobject);
}
try
{
String string3 = getData().getField().getClass().getName();
if (string3.equals("ObRun.ObRTTypes.ObByteFld"))
{
ObByteFld obByteFld = new ObByteFld(string1);
if (obByteFld != null)
return new String(decimalFormat.format(obByteFld.getData()));
else
return null;
}
if (string3.equals("ObRun.ObRTTypes.ObDblFld"))
{
ObDblFld obDblFld = new ObDblFld(string1);
if (obDblFld != null)
return new String(decimalFormat.format(obDblFld.getData()));
else

Page: 710 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

return null;
}
if (string3.equals("ObRun.ObRTTypes.ObFixedDecFld"))
{
ObFixedDecFld obFixedDecFld = new ObFixedDecFld(string1);
if (obFixedDecFld != null)
return new String(decimalFormat.format(obFixedDecFld.getValue().doubleValue()));
else
return null;
}
if (string3.equals("ObRun.ObRTTypes.ObIntFld"))
{
ObIntFld obIntFld = new ObIntFld(string1);
if (obIntFld != null)
return new String(decimalFormat.format(obIntFld.getData()));
else
return null;
}
if (string3.equals("ObRun.ObRTTypes.ObLongFld"))
{
ObLongFld obLongFld = new ObLongFld(string1);
if (obLongFld != null)
return new String(decimalFormat.format(obLongFld.getData()));
else
return null;
}
if (string3.equals("ObRun.ObRTTypes.ObLongDblFld"))
{
ObLongDblFld obLongDblFld = new ObLongDblFld(string1);
if (obLongDblFld != null)
return new String(decimalFormat.format(obLongDblFld.getData()));
else
return null;
}
if (string3.equals("ObRun.ObRTTypes.ObSglFld"))
{
ObSglFld obSglFld = new ObSglFld(string1);
if (obSglFld != null)
return new String(decimalFormat.format(obSglFld.getData()));
else
return null;

Page: 711 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
}
catch (Exception e2)
{
}
return null;
}

protected String formatNumericForInternal(String string1, String string2)


{
DecimalFormat decimalFormat = new DecimalFormat();
try
{
decimalFormat.applyPattern(string2);
}
catch (IllegalArgumentException e1)
{
Object aobject[] = { string2, new Integer(getData().getID()) };
ObApplication.log(2, ObApplication.getResString("EditMaskInvalid"), aobject);
}
try
{
String string3 = getData().getField().getClass().getName();
if (string3.equals("ObRun.ObRTTypes.ObByteFld"))
{
ObByteFld obByteFld = new ObByteFld(decimalFormat.parse(string1, new
ParsePosition(0)).toString());
if (obByteFld != null)
return new String(obByteFld.toString());
else
return null;
}
if (string3.equals("ObRun.ObRTTypes.ObDblFld"))
{
ObDblFld obDblFld = new ObDblFld(decimalFormat.parse(string1, new
ParsePosition(0)).toString());
if (obDblFld != null)
return new String(obDblFld.toString());
else
return null;
}

Page: 712 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (string3.equals("ObRun.ObRTTypes.ObFixedDecFld"))
{
ObFixedDecFld obFixedDecFld = new ObFixedDecFld(decimalFormat.parse(string1, new
ParsePosition(0)).toString());
if (obFixedDecFld != null)
return new String(obFixedDecFld.toString());
else
return null;
}
if (string3.equals("ObRun.ObRTTypes.ObIntFld"))
{
ObIntFld obIntFld = new ObIntFld(decimalFormat.parse(string1, new
ParsePosition(0)).toString());
if (obIntFld != null)
return new String(obIntFld.toString());
else
return null;
}
if (string3.equals("ObRun.ObRTTypes.ObLongFld"))
{
ObLongFld obLongFld = new ObLongFld(decimalFormat.parse(string1, new
ParsePosition(0)).toString());
if (obLongFld != null)
return new String(obLongFld.toString());
else
return null;
}
if (string3.equals("ObRun.ObRTTypes.ObLongDblFld"))
{
ObLongDblFld obLongDblFld = new ObLongDblFld(decimalFormat.parse(string1, new
ParsePosition(0)).toString());
if (obLongDblFld != null)
return new String(obLongDblFld.toString());
else
return null;
}
if (string3.equals("ObRun.ObRTTypes.ObSglFld"))
{
ObSglFld obSglFld = new ObSglFld(decimalFormat.parse(string1, new
ParsePosition(0)).toString());
if (obSglFld != null)

Page: 713 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

return new String(obSglFld.toString());


else
return null;
}
}
catch (Exception e2)
{
}
return null;
}

public String formatTimeForDisplay(String string1, String string2)


{
SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat();
try
{
simpleDateFormat1.applyPattern(string2);
}
catch (IllegalArgumentException e1)
{
Object aobject[] = { string2, new Integer(getData().getID()) };
ObApplication.log(2, ObApplication.getResString("EditMaskInvalid"), aobject);
}
SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("HH:mm:ss");
try
{
Date date = simpleDateFormat2.parse(string1, new ParsePosition(0));
if (date != null)
return new String(simpleDateFormat1.format(date));
else
return null;
}
catch (Exception e2)
{
e2.printStackTrace();
}
return null;
}

protected String formatTimeForInternal(String string1, String string2)


{

Page: 714 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (string1.length() < 1)
return null;
SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat();
if (string2.indexOf(97) != -1 && string1.indexOf(97) == -1 && string1.indexOf(65) == -1 &&
string1.indexOf(112) == -1 && string1.indexOf(80) == -1)
string1 = new StringBuffer(String.valueOf(string1)).append(" AM").toString();
if (string2.indexOf(97) != -1 && string1.indexOf(109) == -1 && string1.indexOf(77) == -1)
string1 = new StringBuffer(String.valueOf(string1)).append("M").toString();
simpleDateFormat1.setLenient(false);
try
{
simpleDateFormat1.applyPattern(string2);
}
catch (IllegalArgumentException e1)
{
Object aobject1[] = { string2, new Integer(getData().getID()) };
ObApplication.log(2, ObApplication.getResString("EditMaskInvalid"), aobject1);
}
SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("HH:mm:ss");
try
{
Date date = simpleDateFormat1.parse(string1, new ParsePosition(0));
if (date != null)
return new String(simpleDateFormat2.format(date));
Object aobject2[] = { string2, string1 };
ObApplication.log(2, ObApplication.getResString("ValueInvalidForMask"), aobject2);
return null;
}
catch (Exception e2)
{
e2.printStackTrace();
}
return null;
}

public String formatTimeStampForDisplay(String string1, String string2)


{
SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat();
simpleDateFormat1.setLenient(false);
try
{

Page: 715 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

simpleDateFormat1.applyPattern(string2);
}
catch (IllegalArgumentException e1)
{
Object aobject[] = { string2, new Integer(getData().getID()) };
ObApplication.log(2, ObApplication.getResString("EditMaskInvalid"), aobject);
}
SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
try
{
string1 = string1.replace('-', '/');
Date date = simpleDateFormat2.parse(string1, new ParsePosition(0));
if (date != null)
return new String(simpleDateFormat1.format(date));
else
return null;
}
catch (Exception e2)
{
e2.printStackTrace();
}
return null;
}

protected String formatTimeStampForInternal(String string1, String string2)


{
if (string1.length() < 1)
return null;
SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat();
if (string2.indexOf(97) != -1 && string1.indexOf(97) == -1 && string1.indexOf(65) == -1 &&
string1.indexOf(112) == -1 && string1.indexOf(80) == -1)
string1 = new StringBuffer(String.valueOf(string1)).append(" AM").toString();
if (string2.indexOf(97) != -1 && string1.indexOf(109) == -1 && string1.indexOf(77) == -1)
string1 = new StringBuffer(String.valueOf(string1)).append("M").toString();
simpleDateFormat1.setLenient(false);
try
{
simpleDateFormat1.applyPattern(string2);
}
catch (IllegalArgumentException e1)
{

Page: 716 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Object aobject1[] = { string2, new Integer(getData().getID()) };


ObApplication.log(2, ObApplication.getResString("EditMaskInvalid"), aobject1);
}
SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss:SS");
try
{
string1 = string1.replace('-', '/');
Date date = simpleDateFormat1.parse(string1, new ParsePosition(0));
if (date != null)
return new String(simpleDateFormat2.format(date));
Object aobject2[] = { string2, string1 };
ObApplication.log(2, ObApplication.getResString("ValueInvalidForMask"), aobject2);
return null;
}
catch (Exception e2)
{
e2.printStackTrace();
}
return null;
}

public Component getComponent()


{
return m_ctrl;
}

public ObCtrlData getData()


{
return m_dataCtrl;
}

public TableCellEditor getEditor()


{
if (m_editor == null && !((ObGridGui)m_parent).getReadOnly())
m_editor = new ObGridCellEditor(this);
return m_editor;
}

public String getGridValue()


{
ObField obField = getData().getField();

Page: 717 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (obField == null)
return "";
if (this instanceof ObComboGui)
{
Object object1 = ((ObComboData)getData()).getAValue(obField);
if (object1 != null)
return object1.toString();
else
return "";
}
if (this instanceof ObCheckboxGui)
{
Object object2 = ((ObCheckboxData)getData()).getAValue(obField);
if (object2 != null)
return object2.toString();
else
return "";
}
if (obField != null)
return obField.toString();
else
return "";
}

public String getInitialValue()


{
return m_initialValue;
}

public Integer[] getIntegers(String string)


{
Integer ainteger[] = null;
if (string != null && string.length() != 0)
{
StringTokenizer stringTokenizer = new StringTokenizer(string);
ainteger = new Integer[stringTokenizer.countTokens()];
int i = 0;
while (stringTokenizer.hasMoreTokens())
{
try
{

Page: 718 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ainteger[i] = new Integer(stringTokenizer.nextToken());


}
catch (Exception e)
{
ainteger[i] = new Integer(0);
}
i++;
}
}
return ainteger;
}

public static int getKeyCode(String string)


{
if (string.equals("F1"))
return 112;
if (string.equals("F2"))
return 113;
if (string.equals("F3"))
return 114;
if (string.equals("F4"))
return 115;
if (string.equals("F5"))
return 116;
if (string.equals("F6"))
return 117;
if (string.equals("F7"))
return 118;
if (string.equals("F8"))
return 119;
if (string.equals("F9"))
return 120;
if (string.equals("F10"))
return 121;
if (string.equals("F11"))
return 122;
if (string.equals("F12"))
return 123;
if (string.equals("Del"))
return 127;
if (string.equals("Enter"))

Page: 719 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

return 10;
if (string.equals("Esc"))
return 27;
if (string.equals("Ins"))
return 155;
if (string.equals("Page Down"))
return 34;
if (string.equals("Page Up"))
return 33;
else
return 0;
}

public ObWindowGui getPanel()


{
return m_panel;
}

public ObCtrlGui getParent()


{
return m_parent;
}

public String[] getStrings(String string)


{
String astring[] = null;
if (string != null && string.length() != 0)
{
StringTokenizer stringTokenizer = new StringTokenizer(string);
astring = new String[stringTokenizer.countTokens()];
int i = 0;
while (stringTokenizer.hasMoreTokens())
{
try
{
astring[i] = stringTokenizer.nextToken();
}
catch (Exception e)
{
astring[i] = "";
}

Page: 720 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

i++;
}
}
return astring;
}

public int getTabSequence()


{
if (m_tab != null)
return getPanel().m_allTabs.indexOf(m_tab);
else
return -1;
}

public Component getTableCellRendererComponent(JTable jTable, Object object, boolean flag1, boolean


flag2, int i, int j)
{
if (object != null && object instanceof String)
setGridText((String)object);
if (object == null)
setGridText(new String(""));
m_renderer.setBackground(m_ctrl.getBackground());
if (this instanceof ObPictureGui)
m_renderer.setForeground(m_ctrl.getBackground());
else
m_renderer.setForeground(m_ctrl.getForeground());
Hashtable hashtable1 = getData().getGridRowPropertyTable();
if (hashtable1 != null)
{
Hashtable hashtable2 = (Hashtable)hashtable1.get(new Integer(i));
if (hashtable2 != null)
{
for (Enumeration enumeration = hashtable2.keys(); enumeration.hasMoreElements(); )
{
String string = (String)enumeration.nextElement();
[Ljava.lang.String string; = (String;)hashtable2.get(string);
if (string.equals("setBackgroundColor"))
setRendererBackgroundColor(string;[0]);
else if (string.equals("setTextColor"))
setRendererForegroundColor(string;[0]);
else if (string.equals("setFont"))

Page: 721 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_renderer.setFont(loadFont(string;[0]));
else if (string.equals("setDisabled"))
setRendererDisabled(string;[0]);
}
}
}
if (jTable.getEditingRow() == i && jTable.getEditingColumn() == j)
{
((ObGridGui)getParent()).setGridRowSel(jTable.getEditingRow());
((ObGridGui)getParent()).setGridColumnSel(jTable.getEditingColumn());
}
if (flag1)
{
m_renderer.setBackground(jTable.getSelectionBackground());
if (this instanceof ObPictureGui)
m_renderer.setForeground(jTable.getSelectionBackground());
else
m_renderer.setForeground(jTable.getSelectionForeground());
}
return m_renderer;
}

public String getValue()


{
return null;
}

public boolean ifFocus()


{
if (this instanceof ObMultilineEditGui)
return ((ObMultilineEditGui)this).getEditControl().hasFocus();
if (this instanceof ObSpinGui)
return ((ObSpinGui)this).getEditControl().hasFocus();
if (this instanceof ObListGui)
return ((ObListGui)this).getListControl().hasFocus();
else
return ((JComponent)m_ctrl).hasFocus();
}

public boolean inGrid()


{

Page: 722 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (m_columnHeading == null)
return false;
else
return true;
}

protected boolean isDigit(char ch)


{
if (ch >= 48 && ch <= 57)
return true;
else
return false;
}

public boolean isEditable()


{
return m_ctrl.isEnabled();
}

public boolean isFixBottom()


{
return m_fixBottom;
}

public boolean isFixLeft()


{
return m_fixLeft;
}

public boolean isFixRight()


{
return m_fixRight;
}

public boolean isFixTop()


{
return m_fixTop;
}

public boolean isModifiedEvent()


{

Page: 723 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

return m_modifiedEvent;
}

public boolean isTabStop()


{
return m_tabStop;
}

public void itemStateChanged(ItemEvent itemEvent)


{
if ((m_modifiedEvent & (getData().inWrite() ^ 1)) != 0 && (!(m_ctrl instanceof JComboBox) ||
itemEvent.getStateChange() == 1))
{
if (m_ctrl instanceof JRadioButton && itemEvent.getStateChange() != 1)
return;
getData().testEvent(1030);
}
getData().testEvent(itemEvent.getID());
}

public void keyPressed(KeyEvent keyEvent)


{
int j;
if (keyEvent.getKeyChar() == 9)
{
boolean flag = true;
if (inGrid())
{
int k = ((ObGridGui)m_parent).getGrid().getEditingColumn() + 1;
if (keyEvent.isShiftDown())
k -= 2;
if (k >= ((ObGridGui)m_parent).getGrid().getColumnCount())
k = ((ObGridGui)m_parent).getGrid().getColumnCount() - 1;
if (k < 0)
k = 0;
((ObGridGui)m_parent).getGrid().setRowSelectionInterval(((ObGridGui)m_parent).getGrid().get
EditingRow(), ((ObGridGui)m_parent).getGrid().getEditingRow());
((ObGridGui)m_parent).getGrid().setColumnSelectionInterval(k, k);
((ObGridGui)m_parent).getGrid().requestFocus();

Page: 724 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

flag =
((ObGridGui)m_parent).getGrid().editCellAt(((ObGridGui)m_parent).getGrid().getSelectedRow(),
((ObGridGui)m_parent).getGrid().getSelectedColumn());
if (flag)
((ObGridGui)m_parent).getGrid().getEditorComponent().requestFocus();
keyEvent.consume();
}
else if (this instanceof ObGridGui)
{
((ObGridGui)this).getGrid().setRowSelectionInterval(((ObGridGui)this).getGrid().getSelected
Row(), ((ObGridGui)this).getGrid().getSelectedRow());
((ObGridGui)this).getGrid().setColumnSelectionInterval(((ObGridGui)this).getGrid().getSelec
tedColumn(), ((ObGridGui)this).getGrid().getSelectedColumn());
((ObGridGui)this).getGrid().requestFocus();
flag = ((ObGridGui)this).getGrid().editCellAt(((ObGridGui)this).getGrid().getSelectedRow(),
((ObGridGui)this).getGrid().getSelectedColumn());
if (flag)
((ObGridGui)this).getGrid().getEditorComponent().requestFocus();
}
else if (m_tab != null)
{
ObTabSequence obTabSequence = null;
if (keyEvent.isShiftDown())
obTabSequence =
((ObWindowGui)getData().getPanel().getGuiCtrl()).getPreviousTabSequence(m_tab);
else
obTabSequence =
((ObWindowGui)getData().getPanel().getGuiCtrl()).getNextTabSequence(m_tab);
ObCtrlGui obCtrlGui = getData().getPanel().getCompByID(new
Integer(obTabSequence.m_guiId)).getGuiCtrl();
if (obCtrlGui instanceof ObMultilineEditGui)
((ObMultilineEditGui)obCtrlGui).getEditControl().requestFocus();
else if (obCtrlGui instanceof ObSpinGui)
((ObSpinGui)obCtrlGui).getEditControl().requestFocus();
else if (obCtrlGui instanceof ObListGui)
((ObListGui)obCtrlGui).getListControl().requestFocus();
else
obCtrlGui.m_ctrl.requestFocus();
keyEvent.consume();
}
}

Page: 725 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (m_modifiedEvent && keyEvent.getKeyChar() != 9)


getData().testEvent(1030);
if (keyEvent.getKeyChar() == 10)
{
ObWindowGui obWindowGui = getPanel();
if (inGrid())
obWindowGui = getParent().getPanel();
if (obWindowGui.getDefaultButton() != null)
obWindowGui.getDefaultButton().getData().testEvent(500);
}
if (!inGrid() || keyEvent.getKeyCode() != 38 && keyEvent.getKeyCode() != 40) goto 786 else 613;
int i = ((ObGridGui)m_parent).getGrid().getEditingRow();
if (keyEvent.getKeyCode() == 38)
i--;
else
i++;
if (i > ((ObGridGui)m_parent).getGrid().getRowCount() - 1 && ((ObGridGui)m_parent).notifyGridEnd())
{
m_parent.getData().testEvent(1000);
if (i > ((ObGridGui)m_parent).getGrid().getRowCount() - 1)
j--;
}
expression j
if >= goto 719
j = false;
((ObGridGui)m_parent).getGrid().setRowSelectionInterval(j, j);
((ObGridGui)m_parent).getGrid().setColumnSelectionInterval(((ObGridGui)m_parent).getGrid().getEditi
ngColumn(), ((ObGridGui)m_parent).getGrid().getEditingColumn());
((ObGridGui)m_parent).getGrid().requestFocus();
if (this instanceof ObGridGui && (keyEvent.getKeyCode() == 33 || keyEvent.getKeyCode() == 34))
((ObGridGui)this).setPaging(keyEvent.getKeyCode());
getData().testEvent(keyEvent.getID());
}

public void keyReleased(KeyEvent keyEvent)


{
getData().getPanel().processKeyEvent(keyEvent);
getData().testEvent(keyEvent.getID());
}

public void keyTyped(KeyEvent keyEvent)

Page: 726 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
getData().testEvent(keyEvent.getID());
}

public static ImageIcon loadBitmapFile(String string1)


{
ImageIcon imageIcon = null;
string1 = string1.toUpperCase();
try
{
int i = string1.indexOf(".BMP");
if (i != -1)
string1 = string1.substring(0, i).concat(".GIF");
i = string1.indexOf(".ICO");
if (i != -1)
string1 = string1.substring(0, i).concat(".GIF");
if (string1.indexOf(System.getProperty("file.separator")) != -1)
{
URL uRL1 = new URL(new StringBuffer("file:").append(string1).toString());
if (uRL1 != null)
{
imageIcon = new ImageIcon(uRL1);
if (imageIcon.getImageLoadStatus() == 8)
return imageIcon;
}
}
else
{
String string2 = ObApplication.getEnvironment() + ".ImagePath";
String string3 = ObApplication.getRunOptionValue(string2);
if (string3 == null || string3.length() == 0)
{
ObApplication.log(2, ObApplication.getResString("NoImagePath"));
return imageIcon;
}
StringTokenizer stringTokenizer = new StringTokenizer(string3);
String string4 = null;
<badSignature> = null;
while (stringTokenizer.hasMoreTokens())
{
URL uRL2;

Page: 727 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

string4 = stringTokenizer.nextToken();
if (string4.endsWith("/") || string4.endsWith("\\"))
uRL2 = new URL(new
StringBuffer(String.valueOf(string4)).append(string1).toString());
else
uRL2 = new URL(System.getProperty("file.separator") + string1);
if (uRL2 != null)
{
imageIcon = new ImageIcon(uRL2);
if (imageIcon.getImageLoadStatus() == 8)
return imageIcon;
}
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
return imageIcon;
}

public Font loadFont(String string1)


{
String astring[] = getStrings(string1);
String string2 = ObApplication.getRunOptionValue("DefaultFont");
String string3 = new String("PLAIN");
String string4 = new String(astring[0].toUpperCase());
if (string4.compareTo("REGULAR") == 0)
string3 = new String("PLAIN");
else
string3 = string4;
byte b = 0;
if (astring[0].compareTo("Bold") == 0)
b = 1;
else if (astring[0].compareTo("Italic") == 0)
b = 2;
else if (astring[0].compareTo("BoldItalic") == 0)
b = 3;
String string5 = "";
for (int i = 2; i < astring.length; i++)

Page: 728 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

string5 = new StringBuffer(String.valueOf(string5)).append(astring[i]).toString();


Font font = ObApplication.findApp().getLoadedFont(string1);
if (font == null)
{
String string6 = ObApplication.getRunOptionValue(string5);
if (string6 != null)
string5 = string6;
else if (string2 != null)
string5 = string2;
int j = new Integer(astring[1]).intValue() + 3;
String string7 = new String(string5.concat("-").concat(string3).concat("-").concat(new
Integer(j).toString()));
font = Font.decode(string7);
if (font == null)
font = new Font(string5, b, j);
ObApplication.findApp().setLoadedFont(string1, font);
}
return font;
}

public void mouseClicked(MouseEvent mouseEvent)


{
if (mouseEvent.getClickCount() > 1)
{
getData().testEvent(1050);
if (inGrid())
getParent().getData().testEvent(1050);
}
if (m_modifiedEvent)
getData().testEvent(1030);
if (!(this instanceof ObPushbuttonGui) || !m_actionListener)
getData().testEvent(mouseEvent.getID());
}

public void mouseDragged(MouseEvent mouseEvent)


{
getData().testEvent(mouseEvent.getID());
}

public void mouseEntered(MouseEvent mouseEvent)


{

Page: 729 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (getPanel().getShouldShowMouseOver() && m_mousePressedMapped)


setMouseOverCursor();
getData().testEvent(mouseEvent.getID());
}

public void mouseExited(MouseEvent mouseEvent)


{
if (getPanel().getShouldShowMouseOver() && m_mousePressedMapped)
setNotMouseOverCursor();
getData().testEvent(mouseEvent.getID());
}

public void mouseMoved(MouseEvent mouseEvent)


{
getData().testEvent(mouseEvent.getID());
}

public void mousePressed(MouseEvent mouseEvent)


{
if (getPanel().getShouldShowMouseOver() && m_mousePressedMapped)
m_ctrl.setCursor(Cursor.getPredefinedCursor(3));
getData().testEvent(mouseEvent.getID());
}

public void mouseReleased(MouseEvent mouseEvent)


{
if (mouseEvent.isPopupTrigger())
{
if (m_rightMenuID > 0)
{
JPopupMenu jPopupMenu1 = (JPopupMenu)createPopupMenu(m_rightMenuID, false);
Point point1 = mouseEvent.getPoint();
if (mouseEvent.getComponent() instanceof JTable)
{
int i1 = ((JTable)mouseEvent.getComponent()).getX();
if (i1 < 0)
point1.x = point1.x - i1 * -1;
int k1 = ((JTable)mouseEvent.getComponent()).getY();
if (k1 < 0)
point1.y = point1.y - k1 * -1;
int j2 = ((JTable)mouseEvent.getComponent()).getTableHeader().getHeight();

Page: 730 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

point1.y = point1.y + j2;


}
jPopupMenu1.show(m_ctrl, point1.x, point1.y);
}
}
else if (m_leftMenuID > 0)
{
JPopupMenu jPopupMenu2 = (JPopupMenu)createPopupMenu(m_leftMenuID, false);
Point point2 = mouseEvent.getPoint();
if (mouseEvent.getComponent() instanceof JTable)
{
int j1 = ((JTable)mouseEvent.getComponent()).getX();
if (j1 < 0)
point2.x = point2.x - j1 * -1;
int i2 = ((JTable)mouseEvent.getComponent()).getY();
if (i2 < 0)
point2.y = point2.y - i2 * -1;
int k2 = ((JTable)mouseEvent.getComponent()).getTableHeader().getHeight();
point2.y = point2.y + k2;
}
jPopupMenu2.show(m_ctrl, point2.x, point2.y);
}
getData().testEvent(mouseEvent.getID());
if (getPanel().getShouldShowMouseOver() && m_mousePressedMapped)
setMouseOverCursor();
}

public void propertyChange(PropertyChangeEvent propertyChangeEvent)


{
getData().testEvent(1140);
}

public void registerEvent(int i1)


{
if (i1 == 500)
m_mousePressedMapped = true;
switch (i1)
{
case 500:
case 501:
case 502:

Page: 731 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

case 504:
case 505:
if (!m_mouseListener)
{
m_ctrl.addMouseListener(this);
m_mouseListener = true;
}
break;

case 503:
case 506:
if (!m_mouseMotionListener)
{
m_ctrl.addMouseMotionListener(this);
m_mouseMotionListener = true;
}
break;

case 100:
case 101:
case 102:
case 103:
if (!m_componentListener)
{
m_ctrl.addComponentListener(this);
m_componentListener = true;
}
break;

case 1004:
case 1005:
if (!m_focusListener)
{
m_ctrl.addFocusListener(this);
if (this instanceof ObComboGui)
{
Component acomponent1[] = ((JComboBox)m_ctrl).getComponents();
for (int j = 0; j < acomponent1.length; j++)
acomponent1[j].addFocusListener(this);
}
m_focusListener = true;

Page: 732 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
break;

case 400:
case 401:
case 402:
if (!m_keyListener)
{
m_ctrl.addKeyListener(this);
if (this instanceof ObComboGui)
{
Component acomponent2[] = ((JComboBox)m_ctrl).getComponents();
for (int k = 0; k < acomponent2.length; k++)
acomponent2[k].addKeyListener(this);
}
m_keyListener = true;
}
break;

case 1:
case 2:
case 701:
if (!m_itemListener && m_ctrl instanceof ItemSelectable)
{
((ItemSelectable)m_ctrl).addItemListener(this);
m_itemListener = true;
}
break;

case 900:
if (!m_textListener && m_ctrl instanceof TextComponent)
{
((TextComponent)m_ctrl).addTextListener(this);
m_textListener = true;
}
break;

case 1040:
setInitialValue();
if (!m_focusListener)
{

Page: 733 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_ctrl.addFocusListener(this);
if (this instanceof ObComboGui)
{
Component acomponent3[] = ((JComboBox)m_ctrl).getComponents();
for (int i2 = 0; i2 < acomponent3.length; i2++)
acomponent3[i2].addFocusListener(this);
}
m_focusListener = true;
}
break;

case 1050:
if (!m_mouseListener)
{
m_ctrl.addMouseListener(this);
m_mouseListener = true;
}
break;

case 1030:
if (!m_itemListener && m_ctrl instanceof ItemSelectable)
{
((ItemSelectable)m_ctrl).addItemListener(this);
m_itemListener = true;
}
m_modifiedEvent = true;
break;

case 1060:
Timer timer = new Timer(250, new ObClockTick(getPanel()));
timer.start();
break;

case 1120:
case 1130:
if (!m_windowListener)
m_windowListener = true;
break;

case 1140:
if (!m_propertyChangeListener)

Page: 734 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
Object aobject1[] = new Object[1];
aobject1[0] = this;
Class aclass1[] = new Class[1];
try
{
aclass1[0] = Class.forName("java.beans.PropertyChangeListener");
}
catch (ClassNotFoundException e3)
{
e3.printStackTrace();
}
catch (Exception e4)
{
e4.printStackTrace();
}
String string1 = "addPropertyChangeListener";
try
{
Method method1 = m_ctrl.getClass().getMethod(string1, aclass1);
method1.invoke(m_ctrl, aobject1);
}
catch (NoSuchMethodException e1)
{
System.out.println(string1 + " not supported.");
}
catch (Exception e7)
{
e7.printStackTrace();
}
}
m_propertyChangeListener = true;
break;

case 1150:
if (!m_vetoableChangeListener)
{
Object aobject2[] = new Object[1];
aobject2[0] = this;
Class aclass2[] = new Class[1];
try

Page: 735 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
aclass2[0] = Class.forName("java.beans.VetoableChangeListener");
}
catch (ClassNotFoundException e5)
{
e5.printStackTrace();
}
catch (Exception e6)
{
e6.printStackTrace();
}
String string2 = "addVetoableChangeListener";
try
{
Method method2 = m_ctrl.getClass().getMethod(string2, aclass2);
method2.invoke(m_ctrl, aobject2);
}
catch (NoSuchMethodException e2)
{
System.out.println(string2 + " not supported.");
}
catch (Exception e8)
{
e8.printStackTrace();
}
}
m_vetoableChangeListener = true;
break;
}
}

protected String removeCharMask(String string1, String string2)


{
StringBuffer stringBuffer = new StringBuffer();
for (int i = 0; i < string1.length(); i++)
if (string2.charAt(i) == 35 || string2.charAt(i) == 64 || string2.charAt(i) == 42)
stringBuffer.append(string1.charAt(i));
return stringBuffer.toString();
}

public void removeChild(ObCtrlGui obCtrlGui)

Page: 736 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
m_children.removeElement(obCtrlGui);
}

protected String removeNonNumerics(String string)


{
StringBuffer stringBuffer = new StringBuffer();
for (int i = 0; i < string.length(); i++)
if (isDigit(string.charAt(i)) || string.charAt(i) == 46 || string.charAt(i) == 45)
stringBuffer.append(string.charAt(i));
return stringBuffer.toString();
}

public void setBackgroundColor(String string)


{
if (string.length() == 0)
return;
Integer ainteger[] = getIntegers(string);
if (string.indexOf(40) != -1 || ainteger.length == 1)
{
try
{
m_ctrl.setBackground(m_javaCol[ainteger[0].intValue()]);
}
catch (Exception e)
{
}
}
else
m_ctrl.setBackground(new Color(ainteger[0].intValue(), ainteger[1].intValue(),
ainteger[2].intValue()));
}

public void setBackgroundImage()


{
}

public void setColumnHeading(String string)


{
m_columnHeading = (ObColumnHeadingGui)getData().getPanel().getCompByID(new
Integer(string)).getGuiCtrl();

Page: 737 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setControlName(String string)


{
m_ctrlName = string;
((ObWindowData)getPanel().getData()).storeCompByName(m_ctrlName, getData());
}

public void setData(ObCtrlData obCtrlData)


{
m_dataCtrl = obCtrlData;
m_parent = m_dataCtrl.getParent().getGuiCtrl();
if (m_parent instanceof ObGridGui && !(this instanceof ObColumnHeadingGui))
{
createRenderer();
((ObGridGui)m_parent).notifyColumnControl(this);
if (!((ObGridGui)m_parent).getReadOnly())
m_editor = new ObGridCellEditor(this);
}
}

protected void setFieldDetails(boolean flag, String string1)


{
if (!flag)
{
int i1 = false;
int j1 = 0;
Color color1 = null;
Color color2 = null;
String string2 = getData().getField().getClass().getName();
if (ObCtrlData.whatEditType(string2) == 3 || ObCtrlData.whatEditType(string2) == 2)
{
m_document = new ObCtrlGui$ObNumericDocument();
((JTextField)m_ctrl).setDocument(m_document);
i1 = false;
if (string1 != null)
{
for (int k1 = 0; k1 < string1.length(); k1++)
{
if (string1.charAt(k1) == 35 || string1.charAt(k1) == 48)
i1++;

Page: 738 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (string1.charAt(k1) == 46 || string1.charAt(k1) == 59)


break;
}
j1 = 0;
int i3 = string1.indexOf(".");
if (i3 != -1)
{
for (int j3 = i3; j3 < string1.length(); j3++)
{
if (string1.charAt(j3) == 35 || string1.charAt(j3) == 48)
j1++;
if (string1.charAt(j3) == 59)
break;
}
}
if (string1.indexOf("[") != -1 && string1.indexOf("]") != -1 && string1.indexOf("[") <
string1.indexOf(";"))
{
color1 = ObCtrlData.whatColor(string1.substring(string1.indexOf("["),
string1.indexOf("]") + 1));
string1 = string1.substring(string1.indexOf("]") + 1);
}
if (string1.lastIndexOf("[") != -1 && string1.lastIndexOf("]") != -1 &&
string1.lastIndexOf("[") > string1.indexOf(";"))
{
color2 = ObCtrlData.whatColor(string1.substring(string1.lastIndexOf("["),
string1.lastIndexOf("]") + 1));
string1 = new StringBuffer(String.valueOf(string1.substring(0, string1.indexOf(";")
+ 1))).append(string1.substring(string1.lastIndexOf("]") + 1)).toString();
}
}
}
else if (ObCtrlData.whatEditType(string2) == 4)
{
m_document = new ObCtrlGui$ObDateDocument();
((JTextField)m_ctrl).setDocument(m_document);
i1 = false;
if (string1 == null || string1.length() == 0)
string1 = ObApplication.getRunOptionValue(ObApplication.getEnvironment() +
".DefaultDateMask");
for (int i2 = 0; i2 < string1.length(); i2++)

Page: 739 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

i1++;
string1 = string1.replace('-', '/');
string1 = string1.replace('m', 'M');
if (string1.indexOf("MM") == -1)
i1++;
if (string1.indexOf("ddd") != -1)
string1 = string1.replace('d', 'E');
if (string1.indexOf("dd") == -1)
i1++;
}
else if (ObCtrlData.whatEditType(string2) == 5)
{
m_document = new ObCtrlGui$ObTimeDocument();
((JTextField)m_ctrl).setDocument(m_document);
i1 = false;
if (string1 == null || string1.length() == 0)
string1 = ObApplication.getRunOptionValue(ObApplication.getEnvironment() +
".DefaultTimeMask");
for (int j2 = 0; j2 < string1.length(); j2++)
i1++;
if (string1.indexOf(65) != -1)
string1 = string1.replace('A', 'a');
if (string1.indexOf(80) != -1)
string1 = string1.replace('P', 'p');
if (string1.indexOf(112) != -1)
string1 = new StringBuffer(String.valueOf(string1.substring(0,
string1.indexOf(112)))).append(string1.substring(string1.indexOf(112) + 1)).toString();
if (string1.indexOf(97) == -1)
string1 = string1.replace('h', 'H');
else
i1++;
string1 = string1.replace('f', 'S');
if (string1.indexOf("HH") == -1 && string1.indexOf("hh") == -1)
i1++;
}
else if (ObCtrlData.whatEditType(string2) == 6)
{
m_document = new ObCtrlGui$ObTimeStampDocument();
((JTextField)m_ctrl).setDocument(m_document);
i1 = false;
if (string1 == null || string1.length() == 0)

Page: 740 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

string1 = ObApplication.getRunOptionValue(ObApplication.getEnvironment() +
".DefaultTimeStampMask");
for (int k2 = 0; k2 < string1.length(); k2++)
i1++;
string1 = string1.replace('-', '/');
if (string1.indexOf(65) != -1)
string1 = string1.replace('A', 'a');
if (string1.indexOf(80) != -1)
string1 = string1.replace('P', 'p');
if (string1.indexOf(112) != -1)
string1 = new StringBuffer(String.valueOf(string1.substring(0,
string1.indexOf(112)))).append(string1.substring(string1.indexOf(112) + 1)).toString();
if (string1.indexOf(97) == -1)
string1 = string1.replace('h', 'H');
else
i1++;
string1 = string1.replace('f', 'S');
StringBuffer stringBuffer = new StringBuffer(string1);
for (int k3 = 0; k3 < string1.indexOf(" "); k3++)
if (stringBuffer.charAt(k3) == 109)
stringBuffer.setCharAt(k3, 'M');
string1 = stringBuffer.toString();
if (string1.indexOf("MM") == -1)
i1++;
if (string1.indexOf("ddd") != -1)
string1 = string1.replace('d', 'E');
if (string1.indexOf("dd") == -1)
i1++;
if (string1.indexOf("HH") == -1 && string1.indexOf("hh") == -1)
i1++;
}
else
{
try
{
i1 = getData().getField().getCLength() - 1;
}
catch (Exception e)
{
i1 = false;
}

Page: 741 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
setValidationMembers(i1, j1, string1, color1, color2);
}
}

public void setFixBottom(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
m_fixBottom = true;
else
m_fixBottom = false;
}

public void setFixLeft(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
m_fixLeft = true;
else
m_fixLeft = false;
}

public void setFixRight(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
m_fixRight = true;
else
m_fixRight = false;
}

public void setFixTop(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
m_fixTop = true;
else
m_fixTop = false;
}

Page: 742 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setFocus()


{
boolean flag = false;
if (this instanceof ObMultilineEditGui &&
((ObMultilineEditGui)this).getEditControl().isFocusTraversable())
{
((ObMultilineEditGui)this).getEditControl().requestFocus();
flag = true;
}
else if (this instanceof ObSpinGui && ((ObSpinGui)this).getEditControl().isFocusTraversable())
{
((ObSpinGui)this).getEditControl().requestFocus();
flag = true;
}
else if (this instanceof ObListGui && ((ObListGui)this).getListControl().isFocusTraversable())
{
((ObListGui)this).getListControl().requestFocus();
flag = true;
}
else if (m_ctrl.isFocusTraversable())
{
m_ctrl.requestFocus();
flag = true;
}
if (flag)
getData().getPanel().setCurrentFocus(getData().getID());
}

public void setFocusToCurrent()


{
ObCtrlGui obCtrlGui = getData().getPanel().getCompByID(new
Integer(getData().getPanel().whoHasFocus())).getGuiCtrl();
if (obCtrlGui instanceof ObMultilineEditGui &&
((ObMultilineEditGui)obCtrlGui).getEditControl().isFocusTraversable())
((ObMultilineEditGui)obCtrlGui).getEditControl().requestFocus();
else if (obCtrlGui instanceof ObSpinGui &&
((ObSpinGui)obCtrlGui).getEditControl().isFocusTraversable())
((ObSpinGui)obCtrlGui).getEditControl().requestFocus();
else if (obCtrlGui instanceof ObListGui &&
((ObListGui)obCtrlGui).getListControl().isFocusTraversable())
((ObListGui)obCtrlGui).getListControl().requestFocus();

Page: 743 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else if (obCtrlGui.getComponent().isFocusTraversable())
obCtrlGui.getComponent().requestFocus();
}

public void setFont(String string)


{
m_ctrl.setFont(loadFont(string));
}

public void setGridText(String string)


{
if (m_renderer != null)
{
Font font = ((JComponent)m_ctrl).getFont();
((JLabel)m_renderer).setFont(font);
if (this instanceof ObPasswordGui)
{
StringBuffer stringBuffer = new StringBuffer(string);
for (int i = 0; i < stringBuffer.length(); i++)
stringBuffer.setCharAt(i, '*');
string = stringBuffer.toString();
}
if (this instanceof ObPictureGui)
{
ImageIcon imageIcon = loadBitmapFile(string);
if (imageIcon != null)
((JLabel)m_renderer).setIcon(imageIcon);
}
((JLabel)m_renderer).setText(string);
}
}

public void setGridValue(String string)


{
if (m_renderer != null)
{
Font font = ((JComponent)m_ctrl).getFont();
((JLabel)m_renderer).setFont(font);
int i = -1;
if (this instanceof ObEditGui)
i = ((JTextField)m_ctrl).getHorizontalAlignment();

Page: 744 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else if (this instanceof ObPasswordGui)


i = ((JPasswordField)m_ctrl).getHorizontalAlignment();
if (i != -1)
((JLabel)m_renderer).setHorizontalAlignment(i);
((JLabel)m_renderer).setText(string);
}
((ObGridGui)m_parent).addCell(string, getData().getField(), m_columnHeading.getColumn());
}

public void setInitialValue()


{
m_initialValue = getValue();
}

public void setLeftContextMenu(String string)


{
m_leftMenuID = new Integer(string).intValue();
if (!m_mouseListener)
{
m_ctrl.addMouseListener(this);
m_mouseListener = true;
}
}

public void setMouseOverCursor()


{
m_ctrl.setCursor(null);
m_ctrl.setCursor(m_handCursor);
}

public void setNotMouseOverCursor()


{
m_ctrl.setCursor(Cursor.getPredefinedCursor(0));
}

public void setPanel(ObWindowGui obWindowGui)


{
m_panel = obWindowGui;
}

public void setPosition(String string)

Page: 745 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
Integer ainteger[] = getIntegers(string);
getPanel().setChildPosition(this, ainteger[0].intValue(), ainteger[1].intValue());
}

public void setRendererBackgroundColor(String string)


{
Integer ainteger[] = getIntegers(string);
if (string.indexOf(40) != -1 || ainteger.length == 1)
{
try
{
m_renderer.setBackground(m_javaCol[ainteger[0].intValue()]);
}
catch (Exception e)
{
}
}
else
m_renderer.setBackground(new Color(ainteger[0].intValue(), ainteger[1].intValue(),
ainteger[2].intValue()));
}

public void setRendererDisabled(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
{
m_renderer.setEnabled(false);
getParent().getPanel().setRendererDisabled(true);
}
else
{
m_renderer.setEnabled(true);
getParent().getPanel().setRendererDisabled(false);
}
}

public void setRendererForegroundColor(String string)


{
Integer ainteger[] = getIntegers(string);

Page: 746 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (string.indexOf(40) != -1 || ainteger.length == 1)
{
try
{
m_renderer.setForeground(m_javaCol[ainteger[0].intValue()]);
}
catch (Exception e)
{
}
}
else
m_renderer.setForeground(new Color(ainteger[0].intValue(), ainteger[1].intValue(),
ainteger[2].intValue()));
}

public void setRightContextMenu(String string)


{
m_rightMenuID = new Integer(string).intValue();
if (!m_mouseListener)
{
m_ctrl.addMouseListener(this);
m_mouseListener = true;
}
}

public void setSize(String string)


{
Integer ainteger[] = getIntegers(string);
getPanel().setChildSize(this, ainteger[0].intValue(), ainteger[1].intValue());
}

public void setTabSequence(String string)


{
Integer ainteger[] = getIntegers(string);
m_tab = new ObTabSequence(getData().getID(), ainteger[0].intValue());
((ObWindowGui)getData().getPanel().getGuiCtrl()).m_allTabs.addElement(m_tab);
if (!m_keyListener)
{
m_ctrl.addKeyListener(this);
if (this instanceof ObComboGui)
{

Page: 747 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Component acomponent[] = ((JComboBox)m_ctrl).getComponents();


for (int i = 0; i < acomponent.length; i++)
acomponent[i].addKeyListener(this);
}
m_keyListener = true;
}
}

public void setTabStop(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
m_tabStop = true;
else
m_tabStop = false;
}

public void setText(String string)


{
}

public void setTextColor(Color color)


{
m_ctrl.setForeground(color);
}

public void setTextColor(String string)


{
Integer ainteger[] = getIntegers(string);
if (string.indexOf(40) != -1 || ainteger.length == 1)
{
try
{
m_ctrl.setForeground(m_javaCol[ainteger[0].intValue()]);
}
catch (Exception e)
{
}
}
else

Page: 748 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_ctrl.setForeground(new Color(ainteger[0].intValue(), ainteger[1].intValue(),


ainteger[2].intValue()));
}

protected void setValidationMembers(int i, int j, String string, Color color1, Color color2)
{
}

public void setValue(String string)


{
}

public void storeGridValue(String string)


{
if (string == null)
{
getData().getField().fromString(string);
return;
}
if (this instanceof ObComboGui)
{
Object object1 = ((ObComboData)getData()).getBValue(string);
if (object1 != null)
getData().getField().fromString(object1.toString());
else
getData().getField().fromString(string);
}
else if (this instanceof ObCheckboxGui)
{
Object object2 = ((ObCheckboxData)getData()).getBValue(string);
if (object2 != null)
getData().getField().fromString(object2.toString());
else
getData().getField().fromString(string);
}
else
getData().getField().fromString(formatForInternal(string));
}

public void textValueChanged(TextEvent textEvent)


{

Page: 749 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

getData().testEvent(textEvent.getID());
}

protected void validateCharacterEntry(String string1, String string2, KeyEvent keyEvent, int i, int j,
String string3)
{
if (string1.length() + 1 > i && string3 == null)
{
keyEvent.consume();
Toolkit.getDefaultToolkit().beep();
}
}

protected void validateDateEntry(String string1, String string2, KeyEvent keyEvent, int i, int j,
String string3)
{
if (string1.length() + 1 > i && string3 == null)
{
keyEvent.consume();
Toolkit.getDefaultToolkit().beep();
}
Character character = null;
if (j < string2.length())
character = new Character(string2.charAt(j));
if (character != null && character.charValue() != keyEvent.getKeyChar() && character.charValue() !=
71 && character.charValue() != 121 && character.charValue() != 77 && character.charValue() != 100 &&
character.charValue() != 69 && character.charValue() != 68 && character.charValue() != 70 &&
character.charValue() != 119 && character.charValue() != 87)
{
try
{
((JTextField)m_ctrl).getDocument().insertString(((JTextField)m_ctrl).getDocument().getEndPo
sition().getOffset() - 1, character.toString(), null);
character = new Character(string2.charAt(j + 1));
}
catch (Exception e)
{
}
}
}

Page: 750 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

protected void validateNumericEntry(String string1, int i, int j, KeyEvent keyEvent, int k, String
string2)
{
double d = 0.0;
StringBuffer stringBuffer = new StringBuffer(string1);
stringBuffer.insert(k, keyEvent.getKeyChar());
try
{
if (keyEvent.getKeyChar() != 8 && !keyEvent.isControlDown())
d = new Double(stringBuffer.toString()).doubleValue();
}
catch (Exception e1)
{
}
if (d == 0.0 && keyEvent.getKeyChar() != 45 && keyEvent.getKeyChar() != 46 && string1.indexOf(".")
== -1)
{
keyEvent.consume();
Toolkit.getDefaultToolkit().beep();
}
else
{
String string3 = stringBuffer.toString();
if (countDecimalDigits(string3) > i)
{
if (j != 0 && string1.indexOf(46) == -1)
{
try
{
((JTextField)m_ctrl).getDocument().insertString(((JTextField)m_ctrl).getDocument().
getEndPosition().getOffset() - 1, ".", null);
}
catch (Exception e2)
{
}
}
else if (string2 == null)
{
keyEvent.consume();
Toolkit.getDefaultToolkit().beep();
}

Page: 751 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
if (j > 0 && countFractionalDigits(string3) > j && string2 == null)
{
keyEvent.consume();
Toolkit.getDefaultToolkit().beep();
}
if (j == 0 && keyEvent.getKeyChar() == 46)
{
keyEvent.consume();
Toolkit.getDefaultToolkit().beep();
}
}
}

protected void validateTimeEntry(String string1, String string2, KeyEvent keyEvent, int i, int j,
String string3)
{
if (string1.length() + 1 > i && string3 == null)
{
keyEvent.consume();
Toolkit.getDefaultToolkit().beep();
}
Character character = null;
if (j < string2.length())
character = new Character(string2.charAt(j));
if (character != null && character.charValue() != keyEvent.getKeyChar())
{
if (character.charValue() != 115 && character.charValue() != 83 && character.charValue() != 104
&& character.charValue() != 72 && character.charValue() != 109 && character.charValue() != 97 &&
character.charValue() != 107 && character.charValue() != 75 && character.charValue() != 122)
{
try
{
((JTextField)m_ctrl).getDocument().insertString(((JTextField)m_ctrl).getDocument().getE
ndPosition().getOffset() - 1, character.toString(), null);
character = new Character(string2.charAt(j + 1));
}
catch (Exception e)
{
}
}

Page: 752 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (character.charValue() == 97 && isDigit(keyEvent.getKeyChar()))


{
keyEvent.consume();
Toolkit.getDefaultToolkit().beep();
}
}
}

protected void validateTimeStampEntry(String string1, String string2, KeyEvent keyEvent, int i, int j,
String string3)
{
if (string1.length() + 1 > i && string3 == null)
{
keyEvent.consume();
Toolkit.getDefaultToolkit().beep();
}
Character character = null;
if (j < string2.length())
character = new Character(string2.charAt(j));
if (character != null && character.charValue() != keyEvent.getKeyChar())
{
if (character.charValue() != 71 && character.charValue() != 121 && character.charValue() != 77
&& character.charValue() != 100 && character.charValue() != 69 && character.charValue() != 68 &&
character.charValue() != 70 && character.charValue() != 119 && character.charValue() != 87 &&
character.charValue() != 115 && character.charValue() != 83 && character.charValue() != 104 &&
character.charValue() != 72 && character.charValue() != 109 && character.charValue() != 97 &&
character.charValue() != 107 && character.charValue() != 75 && character.charValue() != 122)
{
try
{
((JTextField)m_ctrl).getDocument().insertString(((JTextField)m_ctrl).getDocument().getE
ndPosition().getOffset() - 1, character.toString(), null);
character = new Character(string2.charAt(j + 1));
}
catch (Exception e)
{
}
}
if (character.charValue() == 97 && isDigit(keyEvent.getKeyChar()))
{
keyEvent.consume();

Page: 753 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Toolkit.getDefaultToolkit().beep();
}
}
}

public void vetoableChange(PropertyChangeEvent propertyChangeEvent)


{
getData().testEvent(1150);
}

public void windowActivated(WindowEvent windowEvent)


{
getData().testEvent(1120);
getData().testEvent(windowEvent.getID());
}

public void windowClosed(WindowEvent windowEvent)


{
if (getData() != null)
getData().testEvent(windowEvent.getID());
try
{
((ObWindowData)getPanel().getData()).getOwner().notifyFunction(false);
}
catch (Exception e)
{
}
}

public void windowClosing(WindowEvent windowEvent)


{
getData().testEvent(windowEvent.getID());
((ObWindowData)getPanel().getData()).getOwner().notifyFunction(false);
}

public void windowDeactivated(WindowEvent windowEvent)


{
try
{
getData().testEvent(1130);
getData().testEvent(windowEvent.getID());

Page: 754 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
catch (Exception e)
{
}
}

public void windowDeiconified(WindowEvent windowEvent)


{
getData().testEvent(windowEvent.getID());
}

public void windowIconified(WindowEvent windowEvent)


{
getData().testEvent(windowEvent.getID());
}

public void windowOpened(WindowEvent windowEvent)


{
getData().testEvent(windowEvent.getID());
}
}

Page: 755 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCtrlGui$1

Full name of class: ObRun.ObPanel.ObCtrlGui.ObCtrlGui$1.class

package ObRun.ObPanel.ObCtrlGui;

import ObRun.ObPanel.ObCtrlData.ObCtrlData;
import ObRun.ObPanel.ObCtrlData.ObWindowData;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

final synchronized class ObCtrlGui$1 implements ActionListener


{
private final ObCtrlGui$ObPopupItem this$1 = obCtrlGui$ObPopupItem;

ObCtrlGui$1(ObCtrlGui$ObPopupItem obCtrlGui$ObPopupItem)
{
}

public void actionPerformed(ActionEvent actionEvent)


{
ObCtrlGui$ObPopupItem.access$0(this$1).getData().getPanel().getCompByID(ObCtrlGui$ObPopupItem.acces
s$1(this$1)).testEvent(1020);
}
}

Page: 756 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCtrlGui$ObDateDocument

Full name of class: ObRun.ObPanel.ObCtrlGui.ObCtrlGui$ObDateDocument.class

package ObRun.ObPanel.ObCtrlGui;

import javax.swing.text.*;
import java.awt.Toolkit;

synchronized class ObCtrlGui$ObDateDocument extends PlainDocument


{
ObCtrlGui$ObDateDocument()
{
}

public void insertString(int i, String string, AttributeSet attributeSet)


throws BadLocationException
{
if (string == null)
return;
char ach[] = string.toCharArray();
if (ach.length > 1)
super.insertString(i, new String(ach), attributeSet);
else
{
for (int j = 0; j < ach.length; j++)
{
if (ach[j] >= 48 && ach[j] <= 57)
super.insertString(i, new String(ach), attributeSet);
else if (ach[j] == 47)
super.insertString(i, new String(ach), attributeSet);
else if (ach[j] == 32)
super.insertString(i, new String(ach), attributeSet);
else
Toolkit.getDefaultToolkit().beep();
}
}
}
}

Page: 757 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCtrlGui$ObLowerCaseDocument

Full name of class: ObRun.ObPanel.ObCtrlGui.ObCtrlGui$ObLowerCaseDocument.class

package ObRun.ObPanel.ObCtrlGui;

import javax.swing.text.*;

synchronized class ObCtrlGui$ObLowerCaseDocument extends PlainDocument


{
ObCtrlGui$ObLowerCaseDocument()
{
}

public void insertString(int i, String string, AttributeSet attributeSet)


throws BadLocationException
{
if (string == null)
return;
char ach[] = string.toCharArray();
for (int j = 0; j < ach.length; j++)
ach[j] = Character.toLowerCase(ach[j]);
super.insertString(i, new String(ach), attributeSet);
}
}

Page: 758 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCtrlGui$ObNumericDocument

Full name of class: ObRun.ObPanel.ObCtrlGui.ObCtrlGui$ObNumericDocument.class

package ObRun.ObPanel.ObCtrlGui;

import javax.swing.text.*;
import java.awt.Toolkit;

synchronized class ObCtrlGui$ObNumericDocument extends PlainDocument


{
ObCtrlGui$ObNumericDocument()
{
}
public void insertString(int i, String string, AttributeSet attributeSet)
throws BadLocationException
{
if (string == null)
return;
char ach[] = string.toCharArray();
if (ach.length > 1)
super.insertString(i, new String(ach), attributeSet);
else
{
for (int j = 0; j < ach.length; j++)
{
if (ach[j] >= 48 && ach[j] <= 57)
super.insertString(i, new String(ach), attributeSet);
else if (ach[j] == 46 && getText(0, getEndPosition().getOffset()).indexOf(46) == -1)
super.insertString(i, new String(ach), attributeSet);
else if (ach[j] == 45 && i == 0 && getText(0, getEndPosition().getOffset()).indexOf(45) ==
-1)
super.insertString(i, new String(ach), attributeSet);
else
Toolkit.getDefaultToolkit().beep();
}
}
}
}

Page: 759 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCtrlGui$ObPopupItem

Full name of class: ObRun.ObPanel.ObCtrlGui.ObCtrlGui$ObPopupItem.class

package ObRun.ObPanel.ObCtrlGui;

import javax.swing.*;
import java.awt.Component;

synchronized class ObCtrlGui$ObPopupItem


{
private final ObCtrlGui this$0 = obCtrlGui;
private JMenuItem m_item;
private Integer m_itemID;

ObCtrlGui$ObPopupItem(ObCtrlGui obCtrlGui, JMenuItem jMenuItem, Integer integer)


{
m_item = null;
m_itemID = null;
m_itemID = integer;
m_item = jMenuItem;
ObCtrlGui$1 obCtrlGui$1 = new ObCtrlGui$1(this);
m_item.addActionListener(obCtrlGui$1);
}

static ObCtrlGui access$0(ObCtrlGui$ObPopupItem obCtrlGui$ObPopupItem)


{
return obCtrlGui$ObPopupItem.this$0;
}

static Integer access$1(ObCtrlGui$ObPopupItem obCtrlGui$ObPopupItem)


{
return obCtrlGui$ObPopupItem.m_itemID;
}

public JMenuItem getMenuItem()


{
return m_item;
}

Page: 760 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setMenuItemProperties(ObMenuitemGui obMenuitemGui)


{
JMenuItem jMenuItem = (JMenuItem)obMenuitemGui.getComponent();
try
{
m_item.setVisible(jMenuItem.isVisible());
m_item.setAccelerator(jMenuItem.getAccelerator());
m_item.setMnemonic(jMenuItem.getMnemonic());
m_item.setEnabled(jMenuItem.isEnabled());
m_item.setToolTipText(jMenuItem.getToolTipText());
m_item.setFont(jMenuItem.getFont());
}
catch (Exception e)
{
}
}
}

Page: 761 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCtrlGui$ObTimeDocument

Full name of class: ObRun.ObPanel.ObCtrlGui.ObCtrlGui$ObTimeDocument.class

package ObRun.ObPanel.ObCtrlGui;

import javax.swing.text.*;
import java.awt.Toolkit;

synchronized class ObCtrlGui$ObTimeDocument extends PlainDocument


{
ObCtrlGui$ObTimeDocument()
{
}

public void insertString(int i, String string, AttributeSet attributeSet)


throws BadLocationException
{
if (string == null)
return;
char ach[] = string.toCharArray();
if (ach.length > 1)
super.insertString(i, new String(ach), attributeSet);
else
{
for (int j = 0; j < ach.length; j++)
{
if (ach[j] >= 48 && ach[j] <= 57)
super.insertString(i, new String(ach), attributeSet);
else if (ach[j] == 58)
super.insertString(i, new String(ach), attributeSet);
else if (ach[j] == 97 || ach[j] == 65 || ach[j] == 112 || ach[j] == 80 || ach[j] == 109 ||
ach[j] == 77)
super.insertString(i, new String(ach), attributeSet);
else if (ach[j] == 32)
super.insertString(i, new String(ach), attributeSet);
else
Toolkit.getDefaultToolkit().beep();
}

Page: 762 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
}
}

Page: 763 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCtrlGui$ObTimeStampDocument

Full name of class: ObRun.ObPanel.ObCtrlGui.ObCtrlGui$ObTimeStampDocument.class

package ObRun.ObPanel.ObCtrlGui;

import javax.swing.text.*;
import java.awt.Toolkit;

synchronized class ObCtrlGui$ObTimeStampDocument extends PlainDocument


{
ObCtrlGui$ObTimeStampDocument()
{
}

public void insertString(int i, String string, AttributeSet attributeSet)


throws BadLocationException
{
if (string == null)
return;
char ach[] = string.toCharArray();
if (ach.length > 1)
super.insertString(i, new String(ach), attributeSet);
else
{
for (int j = 0; j < ach.length; j++)
{
if (ach[j] >= 48 && ach[j] <= 57)
super.insertString(i, new String(ach), attributeSet);
else if (ach[j] == 58 || ach[j] == 47)
super.insertString(i, new String(ach), attributeSet);
else if (ach[j] == 97 || ach[j] == 65 || ach[j] == 112 || ach[j] == 80 || ach[j] == 109 ||
ach[j] == 77)
super.insertString(i, new String(ach), attributeSet);
else if (ach[j] == 32)
super.insertString(i, new String(ach), attributeSet);
else
Toolkit.getDefaultToolkit().beep();
}

Page: 764 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
}
}

Page: 765 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCtrlGui$ObUpperCaseDocument

Full name of class: ObRun.ObPanel.ObCtrlGui.ObCtrlGui$ObUpperCaseDocument.class

package ObRun.ObPanel.ObCtrlGui;

import javax.swing.text.*;

synchronized class ObCtrlGui$ObUpperCaseDocument extends PlainDocument


{
ObCtrlGui$ObUpperCaseDocument()
{
}

public void insertString(int i, String string, AttributeSet attributeSet)


throws BadLocationException
{
if (string == null)
return;
char ach[] = string.toCharArray();
for (int j = 0; j < ach.length; j++)
ach[j] = Character.toUpperCase(ach[j]);
super.insertString(i, new String(ach), attributeSet);
}
}

Page: 766 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObDialogGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObDialogGui.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.*;
import ObRun.ObFunction.ObApplication;
import ObRun.ObPanel.ObCtrlData.ObCtrlData;
import ObRun.ObPanel.ObCtrlData.ObWindowData;
import ObRun.ObPanel.ObPanelUtils.ObXYLayoutManager;
import java.awt.event.WindowEvent;
import javax.swing.JDialog;
import javax.swing.JFrame;

public final synchronized class ObDialogGui extends ObWindowGui


{
protected boolean m_internalFrame;
boolean m_componentListener;

public ObDialogGui(ObWindowData obWindowData)


{
m_internalFrame = false;
m_componentListener = true;
if (obWindowData == null)
{
m_ctrl = new JDialog();
((JDialog)m_ctrl).setModal(true);
}
else if (!(obWindowData.getGuiCtrl() instanceof ObTopAppGui))
m_ctrl = new JDialog(new JFrame(), 1);
else if (ObApplication.isApplet())
m_ctrl = new JDialog(new JFrame(), 1);
else
m_ctrl = new JDialog((JFrame)obWindowData.getGuiCtrl().getComponent(), 1);
setLayoutManager(new ObXYLayoutManager());
setPanel(this);
if (!m_componentListener)
{

Page: 767 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_ctrl.addComponentListener(this);
m_componentListener = true;
}
if (!m_windowListener)
{
((JDialog)m_ctrl).addWindowListener(this);
m_windowListener = true;
}
}

public void closeWindow()


{
getFrame().dispose();
}

public Container getContentPane()


{
return getFrame().getContentPane();
}

public JDialog getFrame()


{
return (JDialog)m_ctrl;
}

public Component getGlassPane()


{
return getFrame().getGlassPane();
}

public String getTitle()


{
return getFrame().getTitle();
}

public boolean hasInternalFrame()


{
return m_internalFrame;
}

public boolean isEnabled()

Page: 768 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
return getFrame().isEnabled();
}

public boolean isResizable()


{
return getFrame().isResizable();
}

public boolean isVisible()


{
return getFrame().isVisible();
}

public void layout()


{
getFrame().getContentPane().doLayout();
getFrame().getContentPane().repaint();
}

public void setBackgroundColor(String string)


{
super.setBackgroundColor(string);
}

public void setBackgroundImage(String string)


{
super.setBackgroundImage(string);
}

public void setEnabled(boolean flag)


{
getFrame().setEnabled(flag);
}

public void setInternalFrame(boolean flag)


{
m_internalFrame = flag;
}

public void setLayoutManager(LayoutManager layoutManager)

Page: 769 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
getFrame().getContentPane().setLayout(layoutManager);
}

public void setLeftContextMenu(String string)


{
super.setLeftContextMenu(string);
}

public void setPosition(String string)


{
javax.swing.JApplet jApplet = ObApplication.findApp().getApplet();
if (jApplet != null)
string = "0 0";
Integer ainteger[] = getIntegers(string);
Dimension dimension = m_ctrl.getSize();
m_ctrl.setBounds(ainteger[0].intValue(), ainteger[1].intValue(), dimension.width, dimension.height);
}

public void setResizable(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
((JDialog)m_ctrl).setResizable(true);
else
((JDialog)m_ctrl).setResizable(false);
}

public void setResize(boolean flag)


{
getFrame().setResizable(flag);
}

public void setRightContextMenu(String string)


{
super.setRightContextMenu(string);
}

public void setSize(String string1)


{
Integer ainteger[] = getIntegers(string1);

Page: 770 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

String string2 = ObApplication.getRunOptionValue(ObApplication.getEnvironment() +


".HeightAdjustment");
int i = false;
if (string2 != null)
{
try
{
i = new Integer(string2).intValue();
}
catch (Exception e)
{
i = false;
}
}
getFrame().setSize(ainteger[0].intValue(), ainteger[1].intValue() + i);
((ObWindowData)getData()).setSize(ainteger[0].intValue(), ainteger[1].intValue() + i);
}

public void setTitle(String string)


{
getFrame().setTitle(string);
}

public void setVisible(boolean flag)


{
getFrame().setVisible(flag);
}

public void show()


{
setFocusOnFirst();
getFrame().doLayout();
m_complete = true;
getFrame().setVisible(true);
}

public void windowOpened(WindowEvent windowEvent)


{
try
{
setFocusToCurrent();

Page: 771 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
catch (Exception e)
{
}
}
}

Page: 772 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObEditGridEditorDelegate

Full name of class: ObRun.ObPanel.ObCtrlGui.ObEditGridEditorDelegate.class

package ObRun.ObPanel.ObCtrlGui;

import java.util.EventObject;
import javax.swing.JTextField;
import javax.swing.text.JTextComponent;

synchronized class ObEditGridEditorDelegate extends ObBaseGridEditorDelegate


{
protected ObEditGridEditorDelegate(ObGridCellEditor obGridCellEditor)
{
super(obGridCellEditor);
}

public Object getCellEditorValue()


{
return ((JTextField)m_editor.getComponent()).getText();
}

public boolean isCellEditable(EventObject eventObject)


{
return ((JTextField)m_editor.getComponent()).isEditable();
}

public void setValue(Object object)


{
super.setValue(object);
if (object != null)
((JTextField)m_editor.getComponent()).setText(object.toString());
else
((JTextField)m_editor.getComponent()).setText("");
}

public boolean startCellEditing(EventObject eventObject)


{

Page: 773 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

return true;
}

public boolean stopCellEditing()


{
return true;
}
}

Page: 774 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObEditGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObEditGui.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import ObRun.ObPanel.ObCtrlData.ObCtrlData;
import ObRun.ObPanel.ObCtrlData.ObWindowData;
import javax.swing.text.JTextComponent;

public final synchronized class ObEditGui extends ObCtrlGui


{
private boolean m_hiliteOnFocus;
private Color m_backgroundColor;
private String m_editMask;
private int m_maxLength;
private int m_maxFractions;
private Color m_positiveColor;
private Color m_negativeColor;
private String m_lastString;
private byte m_case;
private boolean m_fieldDefined;

public ObEditGui()
{
m_hiliteOnFocus = false;
m_backgroundColor = null;
m_editMask = null;
m_maxLength = 0;
m_maxFractions = 0;
m_positiveColor = null;
m_negativeColor = null;
m_lastString = null;
m_case = 0;

Page: 775 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_fieldDefined = false;
m_ctrl = new JTextField();
m_ctrl.setBackground(SystemColor.window);
m_ctrl.setForeground(SystemColor.windowText);
((JTextField)m_ctrl).setSelectionColor(SystemColor.textHighlight);
((JTextField)m_ctrl).setSelectedTextColor(SystemColor.textHighlightText);
if (!m_focusListener)
{
m_ctrl.addFocusListener(this);
m_focusListener = true;
}
if (!m_keyListener)
{
m_ctrl.addKeyListener(this);
m_keyListener = true;
}
}

public void clearReferences()


{
m_backgroundColor = null;
m_editMask = null;
m_positiveColor = null;
m_negativeColor = null;
m_lastString = null;
super.clearReferences();
}

public void focusGained(FocusEvent focusEvent)


{
getData().getPanel().setCurrentFocus(getData().getID());
if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObNumericDocument)
setText(formatNumericForInternal(((JTextField)m_ctrl).getText(), m_editMask));
else if (!(((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObDateDocument) && !
(((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObTimeDocument) && !
(((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObTimeStampDocument) && m_editMask != null)
setText(formatCharacterForInternal(((JTextField)m_ctrl).getText(), m_editMask));
((JTextField)m_ctrl).selectAll();
if (m_hiliteOnFocus)
{
if (m_backgroundColor == null)

Page: 776 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_backgroundColor = ((JTextField)m_ctrl).getBackground();
if (SystemColor.window.getRed() == Color.white.getRed() && SystemColor.window.getGreen() ==
Color.white.getGreen() && SystemColor.window.getBlue() == Color.white.getBlue())
((JTextField)m_ctrl).setBackground(Color.lightGray);
else
((JTextField)m_ctrl).setBackground(Color.white);
}
if (m_initialValue != null)
setInitialValue();
getData().testEvent(focusEvent.getID());
}

public void focusLost(FocusEvent focusEvent)


{
if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObNumericDocument)
setValue(((JTextField)m_ctrl).getText());
else if (!(((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObDateDocument) && !
(((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObTimeDocument) && !
(((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObTimeStampDocument))
setValue(((JTextField)m_ctrl).getText());
if (m_initialValue != null && !m_initialValue.equals(((JTextField)m_ctrl).getText()))
getData().testEvent(1040);
if (m_hiliteOnFocus)
((JTextField)m_ctrl).setBackground(m_backgroundColor);
if (m_initialValue != null)
setInitialValue();
getData().testEvent(focusEvent.getID());
}

public String formatForDisplay(String string1)


{
String string2 = string1;
if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObNumericDocument)
{
if (m_positiveColor != null && string2.indexOf(45) == -1)
setTextColor(m_positiveColor);
if (m_negativeColor != null && string2.indexOf(45) != -1)
setTextColor(m_negativeColor);
string2 = formatNumericForDisplay(string2, m_editMask);
}
else if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObDateDocument)

Page: 777 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

string2 = formatDateForDisplay(string2, m_editMask);


else if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObTimeDocument)
string2 = formatTimeForDisplay(string2, m_editMask);
else if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObTimeStampDocument)
string2 = formatTimeStampForDisplay(string2, m_editMask);
else if (m_editMask != null)
string2 = formatCharacterForDisplay(string2, m_editMask);
return string2;
}

public String formatForInternal(String string)


{
if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObNumericDocument)
return formatNumericForInternal(string, m_editMask);
if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObDateDocument)
return formatDateForInternal(string, m_editMask);
if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObTimeDocument)
return formatTimeForInternal(string, m_editMask);
if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObTimeStampDocument)
return formatTimeStampForInternal(string, m_editMask);
if (m_editMask != null)
return formatCharacterForInternal(string, m_editMask);
else
return string;
}

public String getValue()


{
if (inGrid())
return getGridValue();
else
return formatForInternal(((JTextField)m_ctrl).getText());
}

public void keyPressed(KeyEvent keyEvent)


{
if (keyEvent.getKeyCode() == 86 && keyEvent.isControlDown())
{
pasteFromClipboard();
keyEvent.consume();
}

Page: 778 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

super.keyPressed(keyEvent);
getData().testEvent(keyEvent.getID());
}

public void keyTyped(KeyEvent keyEvent)


{
if (keyEvent.getKeyChar() != 9 && keyEvent.getKeyChar() != 8)
{
setFieldDetails(m_fieldDefined, m_editMask);
if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObNumericDocument)
validateNumericEntry(((JTextField)m_ctrl).getText(), m_maxLength, m_maxFractions, keyEvent,
((JTextField)m_ctrl).getCaretPosition(), ((JTextField)m_ctrl).getSelectedText());
else if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObDateDocument)
validateDateEntry(((JTextField)m_ctrl).getText(), m_editMask, keyEvent, m_maxLength,
((JTextField)m_ctrl).getCaretPosition(), ((JTextField)m_ctrl).getSelectedText());
else if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObTimeDocument)
validateTimeEntry(((JTextField)m_ctrl).getText(), m_editMask, keyEvent, m_maxLength,
((JTextField)m_ctrl).getCaretPosition(), ((JTextField)m_ctrl).getSelectedText());
else if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObTimeStampDocument)
validateTimeStampEntry(((JTextField)m_ctrl).getText(), m_editMask, keyEvent, m_maxLength,
((JTextField)m_ctrl).getCaretPosition(), ((JTextField)m_ctrl).getSelectedText());
else
validateCharacterEntry(((JTextField)m_ctrl).getText(), m_editMask, keyEvent, m_maxLength,
((JTextField)m_ctrl).getCaretPosition(), ((JTextField)m_ctrl).getSelectedText());
}
getData().testEvent(keyEvent.getID());
}

public void mouseClicked(MouseEvent mouseEvent)


{
if (mouseEvent.getClickCount() > 1)
{
getData().testEvent(1050);
if (inGrid())
getParent().getData().testEvent(1050);
}
getData().testEvent(mouseEvent.getID());
}

public void pasteFromClipboard()


{

Page: 779 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Transferable transferable = m_ctrl.getToolkit().getSystemClipboard().getContents(this);


if (transferable == null)
setValue(null);
else if (transferable.isDataFlavorSupported(DataFlavor.stringFlavor))
{
try
{
setFieldDetails(m_fieldDefined, m_editMask);
((JTextField)m_ctrl).paste();
setValue(formatForInternal(((JTextField)m_ctrl).getText()));
}
catch (Exception e)
{
}
}
}

public void setBackgroundColor(String string)


{
if (string.length() == 0)
m_ctrl.setBackground(SystemColor.control);
else
super.setBackgroundColor(string);
}

public void setBorder(String string)


{
Insets insets = ((JTextField)m_ctrl).getInsets();
EmptyBorder emptyBorder = new EmptyBorder(insets);
Object object = null;
if (string.compareTo("None") == 0)
object = new EmptyBorder(insets);
else if (string.compareTo("Standard") == 0)
object = new LineBorder(Color.black, 1);
else if (string.compareTo("Indented") == 0)
object = new BevelBorder(1);
else if (string.compareTo("Extruded") == 0)
object = new BevelBorder(0);
else if (string.compareTo("Bump") == 0)
object = new EtchedBorder();
((JTextField)m_ctrl).setBorder(new CompoundBorder(object, emptyBorder));

Page: 780 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setCase(String string)


{
string = string.toUpperCase();
if (string.compareTo("MIXED") == 0)
m_case = 0;
else if (string.compareTo("UPPER") == 0)
m_case = 1;
else if (string.compareTo("LOWER") == 0)
m_case = 2;
}

public void setColumnHeading(String string)


{
super.setColumnHeading(string);
}

public void setControlName(String string)


{
super.setControlName(string);
}

public void setDisabled(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
{
((JTextField)m_ctrl).setEditable(false);
((JTextField)m_ctrl).setEnabled(false);
}
else
{
((JTextField)m_ctrl).setEditable(true);
((JTextField)m_ctrl).setEnabled(true);
}
}

public void setEditMask(String string)


{
if (string.startsWith("%ss"))

Page: 781 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_editMask = null;
else
m_editMask = new String(string);
}

protected void setFieldDetails(boolean flag, String string)


{
if (m_maxLength == 0 && m_maxFractions == 0)
flag = false;
if (!flag)
{
if (m_case == 1)
((JTextField)m_ctrl).setDocument(new ObCtrlGui$ObUpperCaseDocument());
else if (m_case == 2)
((JTextField)m_ctrl).setDocument(new ObCtrlGui$ObLowerCaseDocument());
super.setFieldDetails(flag, string);
}
}

public void setFixBottom(String string)


{
super.setFixBottom(string);
}

public void setFixLeft(String string)


{
super.setFixLeft(string);
}

public void setFixRight(String string)


{
super.setFixRight(string);
}

public void setFixTop(String string)


{
super.setFixTop(string);
}

public void setFont(String string)


{

Page: 782 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

super.setFont(string);
}

public void setHiliteOnFocus(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
m_hiliteOnFocus = true;
else
m_hiliteOnFocus = false;
}

public void setInitialValue()


{
m_initialValue = getValue();
}

public void setLeftContextMenu(String string)


{
super.setLeftContextMenu(string);
}

public void setMode(String string)


{
string = string.toUpperCase();
if (string.compareTo("READ ONLY") == 0)
((JTextField)m_ctrl).setEditable(false);
else
((JTextField)m_ctrl).setEditable(true);
}

public void setPosition(String string)


{
super.setPosition(string);
}

public void setRightContextMenu(String string)


{
super.setRightContextMenu(string);
}

Page: 783 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setSize(String string)


{
super.setSize(string);
}

public void setTabSequence(String string)


{
super.setTabSequence(string);
}

public void setTabStop(String string)


{
super.setTabStop(string);
}

public void setText(String string)


{
((JTextField)m_ctrl).setText(string);
}

public void setTextAlignment(String string)


{
byte b = 0;
if (string.compareTo("Left") == 0)
b = 2;
else if (string.compareTo("Center") == 0)
b = 0;
else if (string.compareTo("Right") == 0)
b = 4;
((JTextField)m_ctrl).setHorizontalAlignment(b);
}

public void setTextColor(String string)


{
super.setTextColor(string);
}

protected void setValidationMembers(int i, int j, String string, Color color1, Color color2)
{
m_maxLength = i;
m_maxFractions = j;

Page: 784 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_editMask = string;
if (color1 == null && color2 != null)
color1 = m_ctrl.getForeground();
m_positiveColor = color1;
m_negativeColor = color2;
m_fieldDefined = true;
}

public void setValue(String string)


{
setFieldDetails(m_fieldDefined, m_editMask);
string = formatForDisplay(string);
if (inGrid())
setGridValue(string);
else
((JTextField)m_ctrl).setText(string);
}

public void setVisible(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
((JTextField)m_ctrl).setVisible(true);
else
((JTextField)m_ctrl).setVisible(false);
}
}

Page: 785 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObGridCellEditor

Full name of class: ObRun.ObPanel.ObCtrlGui.ObGridCellEditor.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import ObRun.ObFunction.ObApplication;
import ObRun.ObFunction.ObClientApp;
import ObRun.ObPanel.ObCtrlData.ObCtrlData;
import java.awt.Component;
import java.util.EventObject;
import javax.swing.table.TableCellEditor;

public final synchronized class ObGridCellEditor implements TableCellEditor, FocusListener


{
protected EventListenerList m_listenerList;
protected ChangeEvent m_changeEvent;
protected JComponent m_editorComponent;
protected ObBaseGridEditorDelegate m_delegate;
protected int m_clickCountToStart;
protected ObClientApp m_clientApp;
protected ObCtrlData m_dataCtrl;
protected ObGridGui m_grid;
static Class class$javax$swing$event$CellEditorListener;

public ObGridCellEditor(ObCtrlGui obCtrlGui)


{
m_listenerList = new EventListenerList();
m_changeEvent = null;
m_clickCountToStart = 1;
m_clientApp = null;
m_dataCtrl = null;
m_grid = null;
m_grid = (ObGridGui)obCtrlGui.getParent();
m_dataCtrl = obCtrlGui.getData();
m_clientApp = (ObClientApp)ObApplication.findApp();

Page: 786 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_editorComponent = (JComponent)obCtrlGui.getComponent();
if (obCtrlGui instanceof ObEditGui)
{
m_clickCountToStart = 2;
m_delegate = new ObEditGridEditorDelegate(this);
((JTextField)m_editorComponent).addActionListener(m_delegate);
}
else if (obCtrlGui instanceof ObCheckboxGui)
{
m_clickCountToStart = 2;
m_delegate = new ObCheckboxGridEditorDelegate(this);
((JCheckBox)m_editorComponent).addActionListener(m_delegate);
}
else if (obCtrlGui instanceof ObComboGui)
{
m_clickCountToStart = 2;
m_delegate = new ObComboGridEditorDelegate(this);
((JComboBox)m_editorComponent).addItemListener(m_delegate);
}
else if (obCtrlGui instanceof ObPasswordGui)
{
m_clickCountToStart = 2;
m_delegate = new ObPasswordGridEditorDelegate(this);
((JPasswordField)m_editorComponent).addActionListener(m_delegate);
}
else if (obCtrlGui instanceof ObPictureGui)
{
m_delegate = new ObPictureGridEditorDelegate(this);
((JButton)m_editorComponent).addActionListener(m_delegate);
}
m_editorComponent.addFocusListener(this);
}

public void addCellEditorListener(CellEditorListener cellEditorListener)


{
m_listenerList.add((class$javax$swing$event$CellEditorListener != null) ?
class$javax$swing$event$CellEditorListener : (class$javax$swing$event$CellEditorListener = class$
("javax.swing.event.CellEditorListener")), cellEditorListener);
}

public void cancelCellEditing()

Page: 787 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
m_delegate.cancelCellEditing();
fireEditingCanceled();
}

static Class class$(String string)


{
try
{
return Class.forName(string);
}
catch (ClassNotFoundException e)
{
throw new NoClassDefFoundError(e.getMessage());
}
}

public void clearReferences()


{
ObCtrlGui obCtrlGui = m_dataCtrl.getGuiCtrl();
if (obCtrlGui instanceof ObEditGui)
((JTextField)m_editorComponent).removeActionListener(m_delegate);
else if (obCtrlGui instanceof ObCheckboxGui)
((JCheckBox)m_editorComponent).removeActionListener(m_delegate);
else if (obCtrlGui instanceof ObComboGui)
((JComboBox)m_editorComponent).removeItemListener(m_delegate);
else if (obCtrlGui instanceof ObPasswordGui)
((JPasswordField)m_editorComponent).removeActionListener(m_delegate);
else if (obCtrlGui instanceof ObPictureGui)
((JButton)m_editorComponent).removeActionListener(m_delegate);
m_editorComponent.removeFocusListener(this);
m_changeEvent = null;
m_editorComponent = null;
if (m_delegate != null)
m_delegate.clearReferences();
m_delegate = null;
m_clientApp = null;
m_dataCtrl = null;
m_grid = null;
}

Page: 788 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

protected void fireEditingCanceled()


{
Object aobject[] = m_listenerList.getListenerList();
for (int i = aobject.length - 2; i >= 0; i -= 2)
{
if (aobject[i] == ((class$javax$swing$event$CellEditorListener != null) ?
class$javax$swing$event$CellEditorListener : (class$javax$swing$event$CellEditorListener = class$
("javax.swing.event.CellEditorListener"))))
{
if (m_changeEvent == null)
m_changeEvent = new ChangeEvent(this);
((CellEditorListener)aobject[i + 1]).editingCanceled(m_changeEvent);
}
}
}

protected void fireEditingStopped()


{
Object aobject[] = m_listenerList.getListenerList();
for (int i = aobject.length - 2; i >= 0; i -= 2)
{
if (aobject[i] == ((class$javax$swing$event$CellEditorListener != null) ?
class$javax$swing$event$CellEditorListener : (class$javax$swing$event$CellEditorListener = class$
("javax.swing.event.CellEditorListener"))))
{
if (m_changeEvent == null)
m_changeEvent = new ChangeEvent(this);
((CellEditorListener)aobject[i + 1]).editingStopped(m_changeEvent);
}
}
}

public void focusGained(FocusEvent focusEvent)


{
}

public void focusLost(FocusEvent focusEvent)


{
fireEditingStopped();
}

Page: 789 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public Object getCellEditorValue()


{
return m_delegate.getCellEditorValue();
}

public int getClickCountToStart()


{
return m_clickCountToStart;
}

public Component getComponent()


{
return m_editorComponent;
}

public Component getTableCellEditorComponent(JTable jTable, Object object, boolean flag, int i, int j)
{
m_delegate.setValue(object);
return m_editorComponent;
}

public boolean isCellEditable(EventObject eventObject)


{
if (eventObject instanceof MouseEvent)
{
if (((MouseEvent)eventObject).getClickCount() < m_clickCountToStart)
return false;
eventObject = null;
}
eventObject = null;
return m_delegate.isCellEditable(eventObject);
}

public void removeCellEditorListener(CellEditorListener cellEditorListener)


{
m_listenerList.remove((class$javax$swing$event$CellEditorListener != null) ?
class$javax$swing$event$CellEditorListener : (class$javax$swing$event$CellEditorListener = class$
("javax.swing.event.CellEditorListener")), cellEditorListener);
}

public void setClickCountToStart(int i)

Page: 790 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
m_clickCountToStart = i;
}

public boolean shouldSelectCell(EventObject eventObject)


{
boolean flag = true;
if (isCellEditable(eventObject) && (eventObject == null ||
((MouseEvent)eventObject).getClickCount() >= m_clickCountToStart))
flag = false;
return flag;
}

public boolean stopCellEditing()


{
boolean flag = m_delegate.stopCellEditing();
if (flag)
fireEditingStopped();
return flag;
}
}

Page: 791 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObGridCellEditor$ObMouseAdapter

Full name of class: ObRun.ObPanel.ObCtrlGui.ObGridCellEditor$ObMouseAdapter.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.event.MouseAdapter;

synchronized class ObGridCellEditor$ObMouseAdapter extends MouseAdapter


{
private final ObGridCellEditor this$0 = obGridCellEditor;

ObGridCellEditor$ObMouseAdapter(ObGridCellEditor obGridCellEditor)
{
}
}

Page: 792 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObGridGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObGridGui.class

package ObRun.ObPanel.ObCtrlGui;

import ObRun.ObPanel.ObCtrlData.*;
import java.awt.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
import ObRun.ObRTTypes.ObField;
import java.awt.event.MouseEvent;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public final synchronized class ObGridGui extends ObCtrlGui implements ListSelectionListener


{
private ObGridModel m_model;
protected JTable m_grid;
private boolean m_complete;
private boolean m_gridend;
private boolean m_justCleared;
private Vector m_cells;
private byte m_accessMode;
private Vector m_renderersEditors;
private int m_pageSize;
protected int m_GridInitialHeight;
private Font m_font;
private boolean m_sortable;
public static final byte UNSORTED = 0;
public static final byte ASCENDING = 1;
public static final byte DESCENDING = 2;
private byte m_sortMode[];
protected Class m_fieldTypes[];
protected int m_fieldCount;
protected boolean m_readOnly;
private int m_currentRow;
private int m_currentRowCount;

Page: 793 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

private int m_gridRowSel;


private int m_gridColumnSel;
private boolean m_inForLoop;
private int m_paging;
private boolean m_ignoreEvents;
private ObCtrlGui m_lastEdited;
protected boolean m_fireChanged;
protected ObGridGui$ObGridColumnListener m_headingListener;

public ObGridGui()
{
m_model = null;
m_grid = null;
m_complete = false;
m_gridend = true;
m_justCleared = false;
m_accessMode = 0;
m_renderersEditors = new Vector();
m_pageSize = 0;
m_GridInitialHeight = 0;
m_font = null;
m_sortable = false;
m_sortMode = null;
m_fieldTypes = null;
m_fieldCount = 0;
m_readOnly = true;
m_currentRow = 0;
m_currentRowCount = 0;
m_gridRowSel = -1;
m_gridColumnSel = -1;
m_inForLoop = false;
m_paging = -1;
m_ignoreEvents = false;
m_lastEdited = null;
m_fireChanged = false;
m_headingListener = null;
m_model = new ObGridModel(this);
m_grid = new JTable(m_model);
m_ctrl = new JScrollPane(m_grid);
m_grid.setAutoResizeMode(0);
m_grid.setRowSelectionAllowed(true);

Page: 794 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

JScrollBar jScrollBar1 = ((JScrollPane)m_ctrl).getVerticalScrollBar();


if (jScrollBar1 != null)
jScrollBar1.addAdjustmentListener(new ObGridGui$ObTableListener(this, jScrollBar1, this));
JScrollBar jScrollBar2 = ((JScrollPane)m_ctrl).getHorizontalScrollBar();
if (jScrollBar2 != null)
jScrollBar2.addAdjustmentListener(new ObGridGui$ObTableListener(this, jScrollBar2, this));
m_headingListener = new ObGridGui$ObGridColumnListener(this, this);
JTableHeader jTableHeader = m_grid.getTableHeader();
jTableHeader.addMouseListener(m_headingListener);
jTableHeader.addMouseMotionListener(m_headingListener);
if (!m_focusListener)
{
m_ctrl.addFocusListener(this);
m_grid.addFocusListener(this);
m_focusListener = true;
}
if (!m_mouseListener)
{
m_ctrl.addMouseListener(this);
m_grid.addMouseListener(this);
m_mouseListener = true;
}
m_grid.addKeyListener(this);
}

static ObGridModel access$0(ObGridGui obGridGui)


{
return obGridGui.m_model;
}

public void addCell(String string, ObField obField, int i)


{
resetSortModes();
m_cells.setElementAt(string, i);
if (m_fieldTypes != null && obField != null && m_fieldCount < m_fieldTypes.length)
{
m_fieldTypes[m_fieldCount] = obField.getClass();
m_fieldCount++;
}
}

Page: 795 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public boolean canSort()


{
return m_sortable;
}

public void clearReferences()


{
JTableHeader jTableHeader = m_grid.getTableHeader();
jTableHeader.removeMouseListener(m_headingListener);
jTableHeader.removeMouseMotionListener(m_headingListener);
m_grid.removeKeyListener(this);
}

public void columnWidthChanged(int i, int j)


{
if (i == -1)
return;
TableColumn tableColumn = null;
try
{
tableColumn = m_grid.getColumnModel().getColumn(i);
}
catch (Exception e)
{
}
if (tableColumn != null)
{
if (m_model.isColumnResizable(i))
{
tableColumn.setMinWidth(0);
tableColumn.setWidth(j);
tableColumn.setPreferredWidth(j);
}
else
{
tableColumn.setMinWidth(-1);
tableColumn.setPreferredWidth(-1);
}
}
}

Page: 796 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void endAccess(byte b)


{
switch (m_accessMode)
{
case 2:
if (m_inForLoop && m_currentRow < m_model.getRowCount())
{
resetSortModes();
populateGridFromFields();
}
break;

case 5:
resetSortModes();
m_model.addRow(m_cells);
populateGridFromFields();
break;

case 4:
resetSortModes();
m_model.rowAddComplete();
if (m_grid.getSelectedRow() == -1 && m_grid.getRowCount() > 0)
m_grid.addRowSelectionInterval(0, 0);
break;

case 3:
setJustCleared(true);
m_model.clear();
break;
}
m_accessMode = 0;
}

public Class getColumnClass(int i)


{
Class class = null;
try
{
class = m_fieldTypes[i];
}
catch (Exception e)

Page: 797 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
}
return class;
}

public int getCurrentRow()


{
return m_currentRow;
}

public ObGridModel getDataModel()


{
return m_model;
}

protected TableCellEditor getEditor(int i)


{
ObCtrlGui obCtrlGui = (ObCtrlGui)m_renderersEditors.elementAt(i);
return obCtrlGui.getEditor();
}

public boolean getFirstModified()


{
m_currentRow = m_currentRowCount = 0;
m_inForLoop = false;
if (m_model.getRowCount() == 0)
{
m_currentRowCount = -1;
return false;
}
m_currentRowCount = m_model.getRowCount();
if (locateNextModified())
{
m_inForLoop = true;
return true;
}
m_currentRowCount = -1;
return false;
}

public boolean getFirstRecord()

Page: 798 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
m_inForLoop = true;
m_currentRow = m_currentRowCount = 0;
if (m_model.getRowCount() == 0)
{
m_currentRowCount = -1;
return false;
}
m_currentRowCount = m_model.getRowCount();
return true;
}

public boolean getFirstSelected()


{
m_inForLoop = false;
try
{
m_currentRow = m_currentRowCount = 0;
if (m_model.getRowCount() == 0)
{
m_currentRowCount = -1;
return false;
}
int an[] = m_grid.getSelectedRows();
if (an.length <= 0)
{
m_currentRowCount = -1;
return false;
}
m_currentRow = an[m_currentRowCount];
m_inForLoop = true;
return true;
}
catch (Exception e)
{
m_currentRowCount = -1;
}
return false;
}

public Font getFont()

Page: 799 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
return m_font;
}

public JTable getGrid()


{
return m_grid;
}

public int getGridColumnSel()


{
return m_gridColumnSel;
}

public int getGridRowCount()


{
return m_model.getRowCount();
}

public int getGridRowSel()


{
return m_gridRowSel;
}

public boolean getIgnoreEvents()


{
return m_ignoreEvents;
}

public boolean getNextModified()


{
m_inForLoop = false;
m_currentRow++;
if (m_currentRow > m_model.getRowCount() - 1)
{
m_currentRowCount = -1;
return false;
}
if (locateNextModified())
{
m_inForLoop = true;

Page: 800 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

return true;
}
m_currentRowCount = -1;
return false;
}

public boolean getNextRecord()


{
m_currentRow++;
if (m_currentRow <= m_model.getRowCount() - 1)
return true;
m_currentRowCount = -1;
return false;
}

public boolean getNextSelected()


{
m_inForLoop = false;
m_currentRowCount++;
try
{
int an[] = m_grid.getSelectedRows();
if (an.length <= 0)
{
m_currentRowCount = -1;
return false;
}
if (m_currentRowCount >= an.length)
{
m_currentRowCount = -1;
return false;
}
m_currentRow = an[m_currentRowCount];
m_inForLoop = true;
return true;
}
catch (Exception e)
{
m_currentRowCount = -1;
}
return false;

Page: 801 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public int getPaging()


{
return m_paging;
}

public boolean getReadOnly()


{
return m_readOnly;
}

protected TableCellRenderer getRenderer(int i)


{
return (TableCellRenderer)m_renderersEditors.elementAt(i);
}

public byte getSortMode(int i)


{
return m_sortMode[i];
}

protected boolean justCleared()


{
return m_justCleared;
}

public void loadComplete()


{
m_model.setColumns(m_children);
m_complete = true;
m_model.setColumnWidths();
m_gridend = true;
m_sortMode = new byte[m_children.size()];
m_fieldTypes = new Class[m_children.size()];
resetSortModes();
m_grid.getSelectionModel().addListSelectionListener(this);
}

protected boolean locateNextModified()


{

Page: 802 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

boolean flag1 = false;


boolean flag2;
for (; m_currentRow < m_model.getRowCount(); m_currentRow++)
{
flag2 = m_model.isRowModified(m_currentRow);
if (flag2 != 1)
continue;
flag1 = true;
break;
}
return flag1;
}

public void mouseClicked(MouseEvent mouseEvent)


{
if (m_gridRowSel != m_grid.getSelectedRow() || m_gridColumnSel != m_grid.getSelectedColumn())
{
if (m_lastEdited != null)
m_lastEdited.getData().testEvent(1040);
m_lastEdited = null;
if (m_fireChanged)
getData().testEvent(1030);
m_fireChanged = false;
}
m_gridRowSel = m_grid.getSelectedRow();
m_gridColumnSel = m_grid.getSelectedColumn();
if (mouseEvent.getClickCount() > 1)
getData().testEvent(1050);
getData().testEvent(mouseEvent.getID());
}

public void notifyColumnControl(ObCtrlGui obCtrlGui)


{
m_renderersEditors.addElement(obCtrlGui);
}

public boolean notifyGridEnd()


{
return m_gridend;
}

Page: 803 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

protected void populateControlsFromData()


{
if (m_accessMode != 1 || m_currentRow == -1)
return;
if (m_cells == null)
{
m_cells = new Vector();
m_cells.setSize(m_grid.getColumnCount());
}
try
{
for (int i = 0; i < m_renderersEditors.size(); i++)
{
ObCtrlGui obCtrlGui = (ObCtrlGui)m_renderersEditors.elementAt(i);
String string = (String)m_model.getValueAt(m_currentRow, i);
if (m_cells.size() > i)
m_cells.setElementAt(string, i);
if (obCtrlGui instanceof ObCheckboxGui)
{
if (string == "true")
string = ((ObCheckboxGui)obCtrlGui).getCheckedValue().toString();
else if (string == "false")
string = ((ObCheckboxGui)obCtrlGui).getUnCheckedValue().toString();
}
obCtrlGui.storeGridValue(string);
}
}
catch (Exception e)
{
e.printStackTrace();
}
}

public void populateGridFromFields()


{
if (m_accessMode != 2 && m_accessMode != 13 || m_currentRow == -1)
return;
try
{
for (int i = 0; i < m_renderersEditors.size(); i++)
{

Page: 804 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCtrlGui obCtrlGui = (ObCtrlGui)m_renderersEditors.elementAt(i);


String string = obCtrlGui.getData().getField().toString();
obCtrlGui.setValue(string);
if (obCtrlGui instanceof ObCheckboxGui)
string = (String)((ObCheckboxData)obCtrlGui.getData()).getAValue(string);
if (obCtrlGui instanceof ObComboGui)
string = (String)((ObComboData)obCtrlGui.getData()).getAValue(string);
m_model.setValueAt(obCtrlGui.formatForDisplay(string), m_currentRow, i);
}
}
catch (Exception e)
{
}
}

protected void resetSortModes()


{
if (!canSort())
return;
if (m_sortMode != null)
for (int i = 0; i < m_sortMode.length; i++)
m_sortMode[i] = 0;
}

public void setBackgroundColor(String string)


{
if (string.length() == 0)
{
m_grid.setBackground(SystemColor.window);
return;
}
Integer ainteger[] = getIntegers(string);
if (string.indexOf(40) != -1 || ainteger.length == 1)
{
try
{
m_grid.setBackground(ObCtrlGui.m_javaCol[ainteger[0].intValue()]);
}
catch (Exception e)
{
}

Page: 805 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
else
m_grid.setBackground(new Color(ainteger[0].intValue(), ainteger[1].intValue(),
ainteger[2].intValue()));
}

public void setColumnHeadings(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
m_grid.getTableHeader().setVisible(true);
else
m_grid.getTableHeader().setVisible(false);
}

public void setColumnResequencing(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
m_grid.getTableHeader().setReorderingAllowed(true);
else
m_grid.getTableHeader().setReorderingAllowed(false);
}

public void setColumnResizing(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
m_grid.getTableHeader().setResizingAllowed(true);
else
m_grid.getTableHeader().setResizingAllowed(false);
}

public void setDisabled(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
{
m_grid.setEnabled(false);
m_ctrl.setEnabled(false);
}

Page: 806 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else
{
m_grid.setEnabled(true);
m_ctrl.setEnabled(true);
}
}

public void setFixBottom(String string)


{
super.setFixBottom(string);
}

public void setFixLeft(String string)


{
super.setFixLeft(string);
}

public void setFixRight(String string)


{
super.setFixRight(string);
}

public void setFixTop(String string)


{
super.setFixTop(string);
}

public void setFont(String string)


{
if (!m_complete)
return;
m_font = loadFont(string);
for (int i = 0; i < m_grid.getColumnCount(); i++)
{
DefaultTableCellRenderer defaultTableCellRenderer =
(DefaultTableCellRenderer)m_grid.getColumnModel().getColumn(i).getHeaderRenderer();
defaultTableCellRenderer.setFont(m_font);
}
}

public void setGridColumnSel(int i)

Page: 807 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
m_gridColumnSel = i;
}

public void setGridRowSel(int i)


{
m_gridRowSel = i;
}

public void setHeadingHeight(String string)


{
try
{
m_model.setHeadingHeight(new Integer(string).intValue());
m_grid.getTableHeader().setPreferredSize(new Dimension(m_grid.getSize().width, new
Integer(string).intValue()));
}
catch (Exception e)
{
e.printStackTrace();
}
}

public void setIgnoreEvents(boolean flag)


{
m_ignoreEvents = flag;
}

protected void setJustCleared(boolean flag)


{
m_justCleared = flag;
resetSortModes();
}

public void setLastEdited(ObCtrlGui obCtrlGui)


{
m_lastEdited = obCtrlGui;
}

public void setLeftContextMenu(String string)


{

Page: 808 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

super.setLeftContextMenu(string);
}

public void setMode(String string)


{
string = string.toUpperCase();
if (string.compareTo("READ ONLY") == 0)
setReadOnly(true);
else
setReadOnly(false);
}

protected void setModified(boolean flag)


{
m_model.setModifiedAt(flag, m_currentRow);
}

public void setNoGridLines(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
m_grid.setShowGrid(false);
else
m_grid.setShowGrid(true);
}

public void setPageSize(String string)


{
try
{
m_pageSize = new Integer(string).intValue();
}
catch (Exception e)
{
}
}

public void setPaging(int i)


{
m_paging = i;
}

Page: 809 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setPosition(String string)


{
super.setPosition(string);
}

public void setReadOnly(boolean flag)


{
m_readOnly = flag;
}

public void setRightContextMenu(String string)


{
super.setRightContextMenu(string);
}

public void setRowHeight(String string)


{
try
{
m_grid.setRowHeight(new Integer(string).intValue());
}
catch (Exception e)
{
}
}

public void setSize(String string)


{
super.setSize(string);
Integer ainteger[] = getIntegers(string);
m_GridInitialHeight = ainteger[1].intValue();
}

public void setSortMode(byte b, int i)


{
m_sortMode[i] = b;
}

public void setSortable(String string)


{

Page: 810 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

string = string.toUpperCase();
if (string.compareTo("YES") == 0)
m_sortable = true;
else
m_sortable = false;
}

public void setTabSequence(String string)


{
super.setTabSequence(string);
}

public void setTabStop(String string)


{
super.setTabStop(string);
}

public void setTextColor(String string)


{
Integer ainteger[] = getIntegers(string);
if (string.indexOf(40) != -1 || ainteger.length == 1)
{
try
{
m_grid.setForeground(ObCtrlGui.m_javaCol[ainteger[0].intValue()]);
}
catch (Exception e)
{
}
}
else
m_grid.setForeground(new Color(ainteger[0].intValue(), ainteger[1].intValue(),
ainteger[2].intValue()));
}

public void setVisible(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
m_ctrl.setVisible(true);
else

Page: 811 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_ctrl.setVisible(false);
}

public void setWholeRowSelection(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
m_grid.setCellSelectionEnabled(false);
else
m_grid.setCellSelectionEnabled(true);
}

protected void sortData(int i)


{
switch (getSortMode(i))
{
case 0:
setSortMode(1, i);
break;

case 1:
setSortMode(2, i);
break;

case 2:
setSortMode(1, i);
break;
}
m_model.sortData(m_sortMode[i], i);
}

public void startAccess(byte b)


{
m_accessMode = b;
if (m_accessMode == 7)
m_gridend = false;
else if (m_accessMode == 6)
m_gridend = true;
else if (m_accessMode == 1)
{
if (m_currentRowCount == 0)

Page: 812 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
if (m_grid.getSelectedRowCount() > 0)
{
int an1[] = m_grid.getSelectedRows();
m_currentRow = an1[0];
}
else
m_currentRow = -1;
}
populateControlsFromData();
}
else if (m_accessMode == 8)
{
if (m_inForLoop)
{
if (m_currentRowCount == -1)
{
int an2[] = m_grid.getSelectedRows();
m_currentRow = an2[0];
}
m_model.removeRow(m_currentRow);
for (int i = 0; i < m_children.size(); i++)
{
ObCtrlGui obCtrlGui = (ObCtrlGui)m_children.elementAt(i);
if (!(obCtrlGui instanceof ObColumnHeadingGui))
{
Hashtable hashtable1 = obCtrlGui.getData().getGridRowPropertyTable();
if (hashtable1 != null)
{
hashtable1.remove(new Integer(m_currentRow));
int j = -1;
Integer ainteger[] = new Integer[hashtable1.size()];
for (Enumeration enumeration = hashtable1.keys();
enumeration.hasMoreElements(); )
{
j++;
ainteger[j] = (Integer)enumeration.nextElement();
}
for (int k = 0; k < ainteger.length; k++)
{
if (ainteger[k].intValue() > m_currentRow)

Page: 813 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
Hashtable hashtable2 = (Hashtable)hashtable1.get(ainteger[k]);
hashtable1.remove(ainteger[k]);
if (hashtable2 != null)
hashtable1.put(new Integer(ainteger[k].intValue() - 1), hashtable2);
}
}
}
}
}
m_currentRow--;
m_currentRowCount--;
}
}
else if (m_accessMode == 9)
m_model.useInvisibleImage();
else if (m_accessMode == 10)
m_model.useVisibleImage();
else if (m_accessMode == 11)
setModified(true);
else if (m_accessMode == 12)
setModified(false);
else
{
m_cells = new Vector();
m_cells.setSize(m_grid.getColumnCount());
}
}

public void valueChanged(ListSelectionEvent listSelectionEvent)


{
if (listSelectionEvent.getFirstIndex() == 0 && listSelectionEvent.getLastIndex() == 0)
return;
if (!listSelectionEvent.getValueIsAdjusting())
getData().testEvent(1010);
}
}

Page: 814 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObGridGui$ObGridColumnListener

Full name of class: ObRun.ObPanel.ObCtrlGui.ObGridGui$ObGridColumnListener.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.event.*;
import java.util.Enumeration;
import javax.swing.JTable;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;

synchronized class ObGridGui$ObGridColumnListener extends MouseAdapter implements MouseMotionListener


{
private final ObGridGui this$0 = obGridGui1;
ObGridGui m_gui;

public ObGridGui$ObGridColumnListener(ObGridGui obGridGui1, ObGridGui obGridGui2)


{
m_gui = null;
m_gui = obGridGui2;
}

public void mouseClicked(MouseEvent mouseEvent)


{
if (!m_gui.canSort())
return;
TableColumnModel tableColumnModel = m_gui.getGrid().getColumnModel();
int i = tableColumnModel.getColumnIndexAtX(mouseEvent.getX());
int j = m_gui.getGrid().convertColumnIndexToModel(i);
if (mouseEvent.getClickCount() == 1 && j != -1)
m_gui.sortData(j);
}

public void mouseDragged(MouseEvent mouseEvent)


{
TableColumnModel tableColumnModel = m_gui.getGrid().getColumnModel();
int i = 0;
for (Enumeration enumeration = tableColumnModel.getColumns(); enumeration.hasMoreElements(); )

Page: 815 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
TableColumn tableColumn = (TableColumn)enumeration.nextElement();
if (ObGridGui.access$0(this$0).isColumnResizable(i))
ObGridGui.access$0(this$0).setColumnWidth(i, tableColumn.getWidth());
else
ObGridGui.access$0(this$0).setColumnWidth(i, -1);
i++;
}
}

public void mouseMoved(MouseEvent mouseEvent)


{
}
}

Page: 816 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObGridGui$ObTableListener

Full name of class: ObRun.ObPanel.ObCtrlGui.ObGridGui$ObTableListener.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.event.*;
import ObRun.ObPanel.ObCtrlData.ObCtrlData;
import java.awt.Adjustable;
import java.awt.Component;
import javax.swing.JScrollBar;
import javax.swing.JTable;

synchronized class ObGridGui$ObTableListener implements AdjustmentListener


{
private final ObGridGui this$0 = obGridGui1;
JScrollBar m_scroll;
ObGridGui m_gui;

public ObGridGui$ObTableListener(ObGridGui obGridGui1, JScrollBar jScrollBar, ObGridGui obGridGui2)


{
m_scroll = null;
m_gui = null;
m_scroll = jScrollBar;
m_gui = obGridGui2;
}

public void adjustmentValueChanged(AdjustmentEvent adjustmentEvent)


{
if (!m_scroll.isVisible())
return;
if (!this$0.getPanel().isComplete())
return;
if (m_gui.justCleared())
{
m_gui.setJustCleared(false);
return;
}
if (m_scroll.getOrientation() == 0)

Page: 817 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
ObGridGui.access$0(m_gui).setPreferredHeadingHeight();
return;
}
int i1 = adjustmentEvent.getValue();
int j1 = m_scroll.getMaximum();
int k1 = m_scroll.getVisibleAmount();
if (i1 + k1 == j1 && m_gui.notifyGridEnd() || i1 + k1 + 1 == j1 && m_gui.notifyGridEnd())
m_gui.getData().testEvent(1000);
if (m_gui.getPaging() != -1)
{
int i2 = m_gui.getGrid().getRowHeight() + m_gui.getGrid().getRowMargin();
int j2 = adjustmentEvent.getValue() / i2;
int k2 = adjustmentEvent.getValue() / i2;
if (m_gui.getPaging() == 33)
{
int i3 = adjustmentEvent.getValue() % i2;
if (i3 > 0 && i3 < i2)
j2++;
}
else
j2 += m_scroll.getVisibleAmount() / i2;
m_gui.getGrid().setRowSelectionInterval(j2, j2);
m_gui.setPaging(-1);
}
}
}

Page: 818 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObGridModel

Full name of class: ObRun.ObPanel.ObCtrlGui.ObGridModel.class

package ObRun.ObPanel.ObCtrlGui;

import javax.swing.*;
import javax.swing.table.*;
import ObRun.ObPanel.ObCtrlData.ObCtrlData;
import ObRun.ObRTTypes.ObField;
import java.awt.Component;
import java.awt.Dimension;
import java.util.Enumeration;
import java.util.Vector;
import javax.swing.event.TableModelEvent;
import javax.swing.text.JTextComponent;

synchronized class ObGridModel extends AbstractTableModel


{
ObGridGui m_gui;
Vector m_headings;
Vector m_visibleRows;
Vector m_invisibleRows;
private int m_headingHeight;
private boolean m_useVisible;

public ObGridModel(ObGridGui obGridGui)


{
m_gui = null;
m_headings = null;
m_visibleRows = new Vector();
m_invisibleRows = new Vector();
m_headingHeight = 0;
m_useVisible = true;
m_gui = obGridGui;
}

public void addRow(Vector vector1)


{

Page: 819 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

vector1.addElement(new Boolean(0));
m_invisibleRows.addElement(vector1);
Vector vector2 = (Vector)vector1.clone();
m_visibleRows.addElement(vector2);
}

public void bubbleSort(Vector avector[], int i1, int j)


{
try
{
Class class = m_gui.getColumnClass(j);
if (class != null)
{
ObField obField1 = (ObField)class.newInstance();
ObField obField2 = (ObField)class.newInstance();
for (int k = 0; k < i1 - 1; k++)
{
for (int i2 = i1 - 1; i2 >= k + 1; i2--)
{
String string1 = (String)avector[i2].elementAt(j);
String string2 = (String)avector[i2 - 1].elementAt(j);
obField1.fromString(string1);
obField2.fromString(string2);
if (obField1.isLessThan(obField2))
{
Vector vector = avector[i2];
avector[i2] = avector[i2 - 1];
avector[i2 - 1] = vector;
}
}
}
}
}
catch (Exception e)
{
}
}

public void clear()


{
m_invisibleRows.removeAllElements();

Page: 820 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_visibleRows.removeAllElements();
}

public int getColumnCount()


{
if (m_headings == null)
return 0;
else
return m_headings.size();
}

public String getColumnName(int i)


{
if (m_headings == null)
return "";
if (i < m_headings.size())
return m_headings.elementAt(i).toString();
else
return "";
}

private JTable getGridControl()


{
return m_gui.getGrid();
}

public int getRowCount()


{
return m_visibleRows.size();
}

public Object getValueAt(int i, int j)


{
TableCellRenderer tableCellRenderer;
try
{
tableCellRenderer = getGridControl().getColumnModel().getColumn(j).getCellRenderer();
}
catch (Exception e)
{
return "";

Page: 821 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
if (tableCellRenderer == null)
{
TableColumn tableColumn1 = getGridControl().getColumnModel().getColumn(j);
tableCellRenderer = m_gui.getRenderer(j);
tableColumn1.setCellRenderer(tableCellRenderer);
}
TableCellEditor tableCellEditor = getGridControl().getColumnModel().getColumn(j).getCellEditor();
if (tableCellEditor == null)
{
TableColumn tableColumn2 = getGridControl().getColumnModel().getColumn(j);
tableCellEditor = m_gui.getEditor(j);
tableColumn2.setCellEditor(tableCellEditor);
}
Vector vector = null;
if (m_useVisible)
vector = (Vector)m_visibleRows.elementAt(i);
else
vector = (Vector)m_invisibleRows.elementAt(i);
return vector.elementAt(j);
}

public boolean isCellEditable(int i, int j)


{
if (m_gui.getPanel().isRendererDisabled())
return false;
if (m_gui.getComponent().isEnabled())
return m_gui.getReadOnly() ^ 1;
else
return false;
}

public boolean isCellModified(int i, int j)


{
try
{
TableCellRenderer tableCellRenderer =
getGridControl().getColumnModel().getColumn(j).getCellRenderer();
if (tableCellRenderer == null)
{
TableColumn tableColumn = getGridControl().getColumnModel().getColumn(j);

Page: 822 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

tableCellRenderer = m_gui.getRenderer(j);
tableColumn.setCellRenderer(tableCellRenderer);
}
Vector vector1 = (Vector)m_visibleRows.elementAt(i);
Vector vector2 = (Vector)m_invisibleRows.elementAt(i);
if (vector1.elementAt(j) != null && vector2.elementAt(j) != null)
{
String string1 = vector1.elementAt(j).toString();
String string2 = vector2.elementAt(j).toString();
if (tableCellRenderer instanceof ObCheckboxGui)
{
if (string1 == "true")
string1 = ((ObCheckboxGui)tableCellRenderer).getCheckedValue().toString();
else
string1 = ((ObCheckboxGui)tableCellRenderer).getUnCheckedValue().toString();
}
if (string1.equals(string2))
return false;
else
return true;
}
}
catch (Exception e)
{
}
return false;
}

public boolean isColumnResizable(int i)


{
ObColumnHeadingGui obColumnHeadingGui = (ObColumnHeadingGui)m_headings.elementAt(i);
return obColumnHeadingGui.isVisible();
}

public boolean isRowModified(int i)


{
Vector vector1 = (Vector)m_visibleRows.elementAt(i);
Vector vector2 = (Vector)m_invisibleRows.elementAt(i);
Enumeration enumeration1 = vector2.elements();
for (Enumeration enumeration2 = vector1.elements(); enumeration2.hasMoreElements(); )
{

Page: 823 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Object object1 = enumeration2.nextElement();


Object object2 = enumeration1.nextElement();
if (object1 != null && object2 != null && !object1.toString().equals(object2.toString()))
return true;
}
return false;
}

public void removeRow(int i)


{
m_visibleRows.removeElementAt(i);
m_invisibleRows.removeElementAt(i);
fireTableRowsDeleted(i, i);
}

protected void rowAddComplete()


{
fireTableChanged(new TableModelEvent(this));
setColumnWidths();
for (int i = 0; i < getColumnCount(); i++)
{
TableCellRenderer tableCellRenderer =
getGridControl().getColumnModel().getColumn(i).getCellRenderer();
if (tableCellRenderer == null)
{
TableColumn tableColumn = getGridControl().getColumnModel().getColumn(i);
tableCellRenderer = m_gui.getRenderer(i);
tableColumn.setCellRenderer(tableCellRenderer);
}
}
int j = m_gui.getGrid().getHeight();
if (j == 0)
j = m_gui.m_GridInitialHeight;
if (getRowCount() < j / m_gui.getGrid().getRowHeight() && m_gui.notifyGridEnd())
m_gui.getData().testEvent(1000);
}

public void setColumnWidth(int i, int j)


{
ObColumnHeadingGui obColumnHeadingGui = (ObColumnHeadingGui)m_headings.elementAt(i);
obColumnHeadingGui.setWidth(String.valueOf(j));

Page: 824 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setColumnWidths()


{
for (Enumeration enumeration = m_headings.elements(); enumeration.hasMoreElements(); )
{
ObColumnHeadingGui obColumnHeadingGui = (ObColumnHeadingGui)enumeration.nextElement();
if (getGridControl() != null && getGridControl().getColumnModel() != null)
{
TableColumn tableColumn = null;
if (obColumnHeadingGui.getColumn() != -1)
tableColumn =
getGridControl().getColumnModel().getColumn(obColumnHeadingGui.getColumn());
if (tableColumn != null)
{
if (obColumnHeadingGui.isVisible())
{
tableColumn.setMinWidth(0);
if (tableColumn.getWidth() < 1)
tableColumn.setWidth(obColumnHeadingGui.getWidth());
tableColumn.setPreferredWidth(obColumnHeadingGui.getWidth());
}
else
{
tableColumn.setMinWidth(-1);
tableColumn.setPreferredWidth(-1);
}
}
}
}
}

public void setColumns(Vector vector)


{
m_headings = new Vector();
for (Enumeration enumeration = vector.elements(); enumeration.hasMoreElements(); )
{
ObCtrlGui obCtrlGui = (ObCtrlGui)enumeration.nextElement();
if (obCtrlGui instanceof ObColumnHeadingGui)
{
m_headings.addElement(obCtrlGui);

Page: 825 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

((ObColumnHeadingGui)obCtrlGui).setColumn(m_headings.size() - 1);
}
}
fireTableChanged(null);
}

public void setHeadingHeight(int i)


{
m_headingHeight = i;
}

public void setModifiedAt(boolean flag, int i)


{
try
{
Vector vector1 = (Vector)m_visibleRows.elementAt(i);
Vector vector2 = (Vector)m_invisibleRows.elementAt(i);
vector1.setElementAt(new Boolean(flag), vector1.size() - 1);
vector2.setElementAt(new Boolean(flag), vector2.size() - 1);
}
catch (Exception e)
{
}
}

protected void setPreferredHeadingHeight()


{
getGridControl().getTableHeader().setPreferredSize(new Dimension(getGridControl().getSize().width,
m_headingHeight));
fireTableChanged(new TableModelEvent(this));
}

public void setValueAt(Object object, int i, int j)


{
m_gui.m_fireChanged = true;
TableCellRenderer tableCellRenderer =
getGridControl().getColumnModel().getColumn(j).getCellRenderer();
tableCellRenderer = m_gui.getRenderer(j);
ObCtrlGui obCtrlGui = (ObCtrlGui)tableCellRenderer;
boolean flag = true;

Page: 826 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (obCtrlGui instanceof ObPictureGui || obCtrlGui instanceof ObComboGui || obCtrlGui instanceof


ObCheckboxGui)
flag = false;
if (flag && ((JTextField)obCtrlGui.getComponent()).getDocument() instanceof
ObCtrlGui$ObNumericDocument)
object = obCtrlGui.formatForDisplay((String)object);
else if (!flag || !(((JTextField)obCtrlGui.getComponent()).getDocument() instanceof
ObCtrlGui$ObDateDocument) && !(((JTextField)obCtrlGui.getComponent()).getDocument() instanceof
ObCtrlGui$ObTimeDocument) && !(((JTextField)obCtrlGui.getComponent()).getDocument() instanceof
ObCtrlGui$ObTimeStampDocument))
object = obCtrlGui.formatForDisplay((String)object);
try
{
Vector vector1 = (Vector)m_visibleRows.elementAt(i);
Vector vector2 = (Vector)m_invisibleRows.elementAt(i);
if (m_useVisible)
vector1.setElementAt(object, j);
else
vector2.setElementAt(object, j);
vector1.setElementAt(new Boolean(1), vector1.size() - 1);
vector2.setElementAt(new Boolean(1), vector2.size() - 1);
}
catch (Exception e)
{
e.printStackTrace();
}
}

protected void sortData(byte b, int i1)


{
if (getRowCount() == 0)
return;
if (b == 0)
return;
m_gui.m_panel.setBusyCursor();
Vector avector[] = new Vector[m_invisibleRows.size()];
try
{
int j = 0;
for (Enumeration enumeration = m_invisibleRows.elements(); enumeration.hasMoreElements(); )
{

Page: 827 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Vector vector = (Vector)enumeration.nextElement();


avector[j] = vector;
j++;
}
m_invisibleRows.removeAllElements();
m_visibleRows.removeAllElements();
bubbleSort(avector, avector.length, i1);
if (b == 1)
{
for (int k = 0; k < avector.length; k++)
{
m_invisibleRows.addElement(avector[k]);
m_visibleRows.addElement(avector[k]);
}
}
else if (b == 2)
{
for (int i2 = avector.length - 1; i2 > -1; i2--)
{
m_invisibleRows.addElement(avector[i2]);
m_visibleRows.addElement(avector[i2]);
}
}
rowAddComplete();
}
catch (Exception e)
{
e.printStackTrace();
}
finally
m_gui.m_panel.setNotBusyCursor();
}

public void updateRow(Vector vector, int i)


{
if (m_useVisible)
m_visibleRows.setElementAt(vector, i);
else
m_invisibleRows.setElementAt(vector, i);
}

Page: 828 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void useInvisibleImage()


{
m_useVisible = false;
}

public void useVisibleImage()


{
m_useVisible = true;
}
}

Page: 829 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObLabelGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObLabelGui.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
import ObRun.ObPanel.ObCtrlData.ObCtrlData;
import ObRun.ObPanel.ObCtrlData.ObWindowData;
import java.util.StringTokenizer;

public final synchronized class ObLabelGui extends ObCtrlGui


{
public static final byte TEXT = 0;
public static final byte GROUP = 1;
public static final byte FRAME = 2;
public static final byte PICTURE = 3;
public static final byte HORZLINE = 4;
public static final byte VERTLINE = 5;
public static final byte GRIDHEADING = 5;
private byte m_staticType;
private int m_sizeWidth;
private int m_sizeHeight;
private String m_textLines[];

public ObLabelGui()
{
m_staticType = 0;
m_sizeWidth = 0;
m_sizeHeight = 0;
m_textLines = null;
m_ctrl = new ObLabelGui$ObLabel(this);
m_ctrl.setBackground(SystemColor.window);
((JLabel)m_ctrl).setVerticalAlignment(1);
}

static String[] access$0(ObLabelGui obLabelGui)

Page: 830 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
return obLabelGui.m_textLines;
}

public void clearReferences()


{
if (m_textLines != null)
{
for (int i = 0; i < m_textLines.length; i++)
m_textLines[i] = null;
m_textLines = null;
}
super.clearReferences();
}

public String getValue()


{
return ((JLabel)m_ctrl).getText();
}

public void setBackgroundColor(String string)


{
if (string.length() == 0)
m_ctrl.setBackground(SystemColor.window);
else
super.setBackgroundColor(string);
}

public void setBitmapFile(String string)


{
ImageIcon imageIcon = ObCtrlGui.loadBitmapFile(string);
if (imageIcon != null)
((JLabel)m_ctrl).setIcon(imageIcon);
}

public void setBorder(String string)


{
Insets insets = ((JLabel)m_ctrl).getInsets();
Object object = null;
if (string.compareTo("None") == 0)
object = new EmptyBorder(insets);

Page: 831 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else if (string.compareTo("Standard") == 0)
object = new LineBorder(Color.black, 1);
else if (string.compareTo("Indented") == 0)
object = new BevelBorder(1, Color.white, new Color(128, 128, 128));
else if (string.compareTo("Extruded") == 0)
object = new BevelBorder(0, Color.white, new Color(128, 128, 128));
else if (string.compareTo("Bump") == 0)
object = new EtchedBorder(Color.white, new Color(128, 128, 128));
((JLabel)m_ctrl).setBorder(object);
}

public void setControlName(String string)


{
super.setControlName(string);
}

public void setFixBottom(String string)


{
super.setFixBottom(string);
}

public void setFixLeft(String string)


{
super.setFixLeft(string);
}

public void setFixRight(String string)


{
super.setFixRight(string);
}

public void setFixTop(String string)


{
super.setFixTop(string);
}

public void setFont(String string)


{
super.setFont(string);
}

Page: 832 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setLabelFor(String string)


{
ObCtrlGui obCtrlGui = getData().getPanel().getCompByID(new Integer(string)).getGuiCtrl();
if (obCtrlGui instanceof ObMultilineEditGui)
((JLabel)m_ctrl).setLabelFor(((ObMultilineEditGui)obCtrlGui).getEditControl());
else if (obCtrlGui instanceof ObSpinGui)
((JLabel)m_ctrl).setLabelFor(((ObSpinGui)obCtrlGui).getEditControl());
else if (obCtrlGui instanceof ObListGui)
((JLabel)m_ctrl).setLabelFor(((ObListGui)obCtrlGui).getListControl());
else
((JLabel)m_ctrl).setLabelFor(obCtrlGui.getComponent());
}

public void setLeftContextMenu(String string)


{
super.setLeftContextMenu(string);
}

public void setPosition(String string)


{
super.setPosition(string);
}

public void setRightContextMenu(String string)


{
super.setRightContextMenu(string);
}

public void setSize(String string)


{
Integer ainteger[] = getIntegers(string);
getPanel().setChildSize(this, ainteger[0].intValue(), ainteger[1].intValue());
m_sizeWidth = ainteger[0].intValue();
m_sizeHeight = ainteger[1].intValue();
}

public void setStaticType(String string1)


{
if (string1.compareTo("Text") == 0)
m_staticType = 0;
else if (string1.compareTo("Group") == 0)

Page: 833 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_staticType = 1;
else if (string1.compareTo("Frame") == 0)
m_staticType = 2;
else if (string1.compareTo("Picture") == 0)
m_staticType = 3;
else if (string1.compareTo("HorzLine") == 0)
{
m_staticType = 4;
String string2 = new StringBuffer(String.valueOf(String.valueOf(m_sizeWidth))).append("
2").toString();
setSize(string2);
if (((JLabel)m_ctrl).getBorder() instanceof EmptyBorder)
setBorder("Bump");
}
else if (string1.compareTo("VertLine") == 0)
{
m_staticType = 5;
String string3 = new StringBuffer("2 ").append(String.valueOf(m_sizeHeight)).toString();
setSize(string3);
if (((JLabel)m_ctrl).getBorder() instanceof EmptyBorder)
setBorder("Bump");
}
else if (string1.compareTo("GridHeading") == 0)
m_staticType = 5;
setText(getValue());
}

public void setText(String string1)


{
if (m_staticType == 0 || m_staticType == 1 || m_staticType == 5)
{
String string2 = string1;
int i1 = string1.indexOf(38);
if (i1 != -1)
{
String string3 = string1.substring(0, i1);
String string4 = string1.substring(i1 + 1);
string2 = new StringBuffer(String.valueOf(string3)).append(string4).toString();
char ach[] = string1.substring(i1 + 1, i1 + 2).toCharArray();
((JLabel)m_ctrl).setDisplayedMnemonic(ach[0]);
}

Page: 834 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

((JLabel)m_ctrl).setText(string2);
i1 = string1.indexOf(94);
if (i1 != -1)
{
StringTokenizer stringTokenizer1 = new StringTokenizer(string1, "^");
int j1 = stringTokenizer1.countTokens();
m_textLines = new String[j1];
for (int k1 = 0; k1 < j1; k1++)
m_textLines[k1] = stringTokenizer1.nextToken();
((JLabel)m_ctrl).setText("");
}
else
{
FontMetrics fontMetrics = m_ctrl.getToolkit().getFontMetrics(m_ctrl.getFont());
if (m_sizeWidth < fontMetrics.stringWidth(string2))
{
StringTokenizer stringTokenizer2 = new StringTokenizer(string2, " ");
int i2 = stringTokenizer2.countTokens();
String string5 = null;
<badSignature> = null;
for (int j2 = 0; j2 < i2; j2++)
{
local = string5;
String string6 = stringTokenizer2.nextToken();
if (string5 == null)
string5 = new String(string6);
else
{
string5 = new StringBuffer(String.valueOf(string5)).append(" ").toString();
string5 = new StringBuffer(String.valueOf(string5)).append(string6).toString();
}
if (m_sizeWidth < fontMetrics.stringWidth(string5))
{
if (m_textLines == null)
m_textLines = new String[0];
String astring2[] = new String[m_textLines.length + 1];
for (int i3 = 0; i3 < m_textLines.length; i3++)
astring2[i3] = m_textLines[i3];
astring2[m_textLines.length] = new String(local);
m_textLines = astring2;
string5 = string6;

Page: 835 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
}
if (string5 != null)
{
String astring1[] = new String[m_textLines.length + 1];
for (int k2 = 0; k2 < m_textLines.length; k2++)
astring1[k2] = m_textLines[k2];
astring1[m_textLines.length] = new String(string5);
m_textLines = astring1;
}
((JLabel)m_ctrl).setText("");
}
}
}
else
((JLabel)m_ctrl).setText("");
}

public void setTextAlignment(String string)


{
byte b = 0;
if (string.compareTo("Left") == 0)
b = 2;
else if (string.compareTo("Center") == 0)
b = 0;
else if (string.compareTo("Right") == 0)
b = 4;
((JLabel)m_ctrl).setHorizontalAlignment(b);
}

public void setTextColor(String string)


{
super.setTextColor(string);
}

public void setTransparent(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
((JLabel)m_ctrl).setOpaque(false);
else

Page: 836 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

((JLabel)m_ctrl).setOpaque(true);
}

public void setValue(String string)


{
setText(string);
}

public void setVisible(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
((JLabel)m_ctrl).setVisible(true);
else
((JLabel)m_ctrl).setVisible(false);
}

public String toString()


{
return ((JLabel)m_ctrl).getText();
}
}

Page: 837 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObLabelGui$ObLabel

Full name of class: ObRun.ObPanel.ObCtrlGui.ObLabelGui$ObLabel.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.*;
import javax.swing.*;
import javax.swing.plaf.ComponentUI;

synchronized class ObLabelGui$ObLabel extends JLabel


{
private final ObLabelGui this$0 = obLabelGui;

ObLabelGui$ObLabel(ObLabelGui obLabelGui)
{
}

public void paintComponent(Graphics g)


{
if (ObLabelGui.access$0(this$0) == null)
super.paintComponent(g);
else
{
int i1 = 0;
Dimension dimension = getSize();
FontMetrics fontMetrics = getToolkit().getFontMetrics(getFont());
int j1 = fontMetrics.getHeight();
int k = fontMetrics.getAscent();
int i2 = k + (dimension.height - ObLabelGui.access$0(this$0).length * j1) / 2;
((JLabel)this$0.m_ctrl).getUI().update(g, (JLabel)this$0.m_ctrl);
for (int j2 = 0; j2 < ObLabelGui.access$0(this$0).length; )
{
Insets insets = ((JLabel)this$0.m_ctrl).getInsets();
switch (((JLabel)this$0.m_ctrl).getHorizontalAlignment())
{
case 0:
i1 = (dimension.width - fontMetrics.stringWidth(ObLabelGui.access$0(this$0)[j2])) / 2;
break;

Page: 838 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

case 4:
i1 = dimension.width - insets.right -
fontMetrics.stringWidth(ObLabelGui.access$0(this$0)[j2]);
break;

default:
i1 = insets.left;
break;
}
g.drawString(ObLabelGui.access$0(this$0)[j2], i1, i2);
j2++;
i2 += j1;
}
invalidate();
}
}
}

Page: 839 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObListGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObListGui.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import ObRun.ObPanel.ObCtrlData.ObCtrlData;
import ObRun.ObPanel.ObCtrlData.ObListData;
import java.util.Vector;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public final synchronized class ObListGui extends ObCtrlGui implements ListSelectionListener


{
private JList m_list;
private boolean m_sorted;

public ObListGui()
{
m_list = null;
m_sorted = false;
m_list = new JList();
m_ctrl = new JScrollPane(m_list);
m_list.setBackground(SystemColor.window);
if (!m_focusListener)
{
m_ctrl.addFocusListener(this);
m_list.addFocusListener(this);
m_focusListener = true;
}
}

public void addItems(Object aobject[])


{
m_list.setListData(aobject);

Page: 840 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void clear()


{
((ObListData)getData()).clearValues();
}

public void clearReferences()


{
if (m_mouseListener)
m_list.removeMouseListener(this);
if (m_focusListener)
m_list.removeFocusListener(this);
if (m_keyListener)
m_list.removeKeyListener(this);
if (m_mouseMotionListener)
m_list.removeMouseMotionListener(this);
if (m_componentListener)
m_list.removeComponentListener(this);
m_list = null;
super.clearReferences();
}

public JList getListControl()


{
return m_list;
}

public String getValue()


{
Object object1 = null;
if (inGrid())
object1 = getGridValue();
else
{
if (m_list.getSelectedIndex() == -1)
m_list.setSelectedIndex(0);
if (m_list.getModel().getSize() > 0)
object1 = m_list.getSelectedValue();
}
Object object2 = ((ObListData)getData()).getBValue(object1);

Page: 841 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (object2 == null)
return "";
else
return object2.toString();
}

public boolean isSorted()


{
return m_sorted;
}

public void registerEvent(int i)


{
switch (i)
{
case 500:
case 501:
case 502:
case 504:
case 505:
if (!m_mouseListener)
{
m_list.addMouseListener(this);
m_mouseListener = true;
}
break;

case 503:
case 506:
if (!m_mouseMotionListener)
{
m_list.addMouseMotionListener(this);
m_mouseMotionListener = true;
}
break;

case 100:
case 101:
case 102:
case 103:
if (!m_componentListener)

Page: 842 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
m_list.addComponentListener(this);
m_componentListener = true;
}
break;

case 1004:
case 1005:
if (!m_focusListener)
{
m_list.addFocusListener(this);
m_ctrl.addFocusListener(this);
m_focusListener = true;
}
break;

case 400:
case 401:
case 402:
if (!m_keyListener)
{
m_list.addKeyListener(this);
m_keyListener = true;
}
break;

case 1:
case 2:
case 701:
if (!m_itemListener && m_list instanceof ItemSelectable)
{
((ItemSelectable)m_list).addItemListener(this);
((ItemSelectable)m_ctrl).addItemListener(this);
m_itemListener = true;
}
break;

case 1040:
setInitialValue();
if (!m_focusListener)
{

Page: 843 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_list.addFocusListener(this);
m_focusListener = true;
}
break;

case 1030:
m_list.addListSelectionListener(this);
m_itemListener = true;
m_modifiedEvent = true;
break;

case 1050:
if (!m_mouseListener)
{
m_list.addMouseListener(this);
m_mouseListener = true;
}
break;
}
}

public void setBackgroundColor(String string)


{
if (string.length() == 0)
{
m_list.setBackground(SystemColor.window);
return;
}
Integer ainteger[] = getIntegers(string);
if (string.indexOf(40) != -1 || ainteger.length == 1)
{
try
{
m_list.setBackground(ObCtrlGui.m_javaCol[ainteger[0].intValue()]);
}
catch (Exception e)
{
}
}
else

Page: 844 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_list.setBackground(new Color(ainteger[0].intValue(), ainteger[1].intValue(),


ainteger[2].intValue()));
}

public void setBorder(String string)


{
Insets insets = m_list.getInsets();
Object object = null;
if (string.compareTo("None") == 0)
object = new EmptyBorder(insets);
else if (string.compareTo("Standard") == 0)
object = new LineBorder(Color.black, 1);
else if (string.compareTo("Indented") == 0)
object = new BevelBorder(1, Color.white, new Color(128, 128, 128));
else if (string.compareTo("Extruded") == 0)
object = new BevelBorder(0, Color.white, new Color(128, 128, 128));
else if (string.compareTo("Bump") == 0)
object = new EtchedBorder(Color.white, new Color(128, 128, 128));
((JScrollPane)m_ctrl).setBorder(object);
}

public void setControlName(String string)


{
super.setControlName(string);
}

public void setDisabled(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
m_list.setEnabled(false);
else
m_list.setEnabled(true);
}

public void setFixBottom(String string)


{
super.setFixBottom(string);
}

public void setFixLeft(String string)

Page: 845 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
super.setFixLeft(string);
}

public void setFixRight(String string)


{
super.setFixRight(string);
}

public void setFixTop(String string)


{
super.setFixTop(string);
}

public void setFont(String string)


{
m_list.setFont(loadFont(string));
}

public void setLeftContextMenu(String string)


{
m_leftMenuID = new Integer(string).intValue();
if (!m_mouseListener)
{
m_ctrl.addMouseListener(this);
m_list.addMouseListener(this);
m_mouseListener = true;
}
}

public void setMode(String string)


{
string = string.toUpperCase();
if (string.compareTo("READ ONLY") == 0)
m_list.setEnabled(false);
else
m_list.setEnabled(true);
}

public void setPosition(String string)


{

Page: 846 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

super.setPosition(string);
}

public void setRightContextMenu(String string)


{
m_rightMenuID = new Integer(string).intValue();
if (!m_mouseListener)
{
m_ctrl.addMouseListener(this);
m_list.addMouseListener(this);
m_mouseListener = true;
}
}

public void setSize(String string)


{
super.setSize(string);
}

public void setSorted(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
m_sorted = true;
else
m_sorted = false;
}

public void setTabSequence(String string)


{
Integer ainteger[] = getIntegers(string);
m_tab = new ObTabSequence(getData().getID(), ainteger[0].intValue());
((ObWindowGui)getData().getPanel().getGuiCtrl()).m_allTabs.addElement(m_tab);
if (!m_keyListener)
{
m_list.addKeyListener(this);
m_keyListener = true;
}
}

public void setTabStop(String string)

Page: 847 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
super.setTabStop(string);
}

public void setTextColor(String string)


{
Integer ainteger[] = getIntegers(string);
if (string.indexOf(40) != -1 || ainteger.length == 1)
{
try
{
m_list.setForeground(ObCtrlGui.m_javaCol[ainteger[0].intValue()]);
}
catch (Exception e)
{
}
}
else
m_list.setForeground(new Color(ainteger[0].intValue(), ainteger[1].intValue(),
ainteger[2].intValue()));
}

public void setValue(String string)


{
Object object = ((ObListData)getData()).getAValue(string);
try
{
if (inGrid())
setGridValue(object.toString());
else
m_list.setSelectedValue(object, true);
}
catch (Exception e)
{
}
}

public void setVisible(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)

Page: 848 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

((JScrollPane)m_ctrl).setVisible(true);
else
((JScrollPane)m_ctrl).setVisible(false);
}

public void valueChanged(ListSelectionEvent listSelectionEvent)


{
if (listSelectionEvent.getFirstIndex() == 0 && listSelectionEvent.getLastIndex() == 0)
return;
if (!listSelectionEvent.getValueIsAdjusting() && m_modifiedEvent)
getData().testEvent(1030);
}
}

Page: 849 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMenubarGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObMenubarGui.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.*;
import javax.swing.*;
import ObRun.ObFunction.ObApplication;

public final synchronized class ObMenubarGui extends ObCtrlGui


{
Font m_menuFont;

public ObMenubarGui()
{
m_menuFont = null;
m_ctrl = new JMenuBar();
m_ctrl.setBackground(SystemColor.menu);
try
{
m_menuFont = loadFont(ObApplication.getRunOptionValue(ObApplication.getEnvironment() +
".MenuFont"));
}
catch (Exception e)
{
m_menuFont = UIManager.getFont("Menu.font");
}
}

public void addChild(ObCtrlGui obCtrlGui)


{
super.addChild(obCtrlGui);
obCtrlGui.setPanel(getPanel());
if (obCtrlGui instanceof ObMenuGui)
((JMenuBar)m_ctrl).add((JMenu)obCtrlGui.getComponent());
else
((JMenuBar)m_ctrl).add((JMenuItem)obCtrlGui.getComponent());
}

Page: 850 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void clearReferences()


{
m_menuFont = null;
super.clearReferences();
}

public Font getMenuFont()


{
return m_menuFont;
}
}

Page: 851 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMenuGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObMenuGui.class

package ObRun.ObPanel.ObCtrlGui;

import javax.swing.*;
import ObRun.ObPanel.ObCtrlData.ObCtrlData;
import ObRun.ObPanel.ObCtrlData.ObWindowData;
import java.awt.AWTEvent;
import java.awt.Component;
import java.awt.event.MouseEvent;

public final synchronized class ObMenuGui extends ObCtrlGui


{
private String m_hintText;

public ObMenuGui()
{
m_hintText = " ";
m_ctrl = new JMenu();
registerEvent(503);
}

public void addChild(ObCtrlGui obCtrlGui)


{
super.addChild(obCtrlGui);
obCtrlGui.setPanel(getPanel());
((JMenu)m_ctrl).add(obCtrlGui.getComponent());
}

public void clearReferences()


{
m_hintText = null;
super.clearReferences();
}

public ObMenubarGui getMenuBar()


{

Page: 852 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

return (ObMenubarGui)getParent();
}

public void mouseMoved(MouseEvent mouseEvent)


{
if (m_panel.m_statusbar != null)
m_panel.m_statusbar.setText(m_hintText);
getData().testEvent(mouseEvent.getID());
}

public void setDefaultFont()


{
try
{
((JMenu)m_ctrl).setFont(getPanel().getMenubar().getMenuFont());
}
catch (Exception e)
{
}
}

public void setDisabled(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
((JMenu)m_ctrl).setEnabled(false);
else
((JMenu)m_ctrl).setEnabled(true);
}

public void setFlyOverHint(String string)


{
((JMenu)m_ctrl).setToolTipText(string);
}

public void setHintText(String string)


{
m_hintText = string;
}

public void setKeyCode(String string)

Page: 853 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
KeyStroke keyStroke = ObWindowData.getKeyStroke(string);
((JMenu)m_ctrl).setAccelerator(keyStroke);
}

public void setText(String string1)


{
String string2 = string1;
int i = string1.indexOf(38);
if (i != -1)
{
String string3 = string1.substring(0, i);
String string4 = string1.substring(i + 1);
string2 = new StringBuffer(String.valueOf(string3)).append(string4).toString();
char ach[] = string1.substring(i + 1, i + 2).toCharArray();
((AbstractButton)m_ctrl).setMnemonic(ach[0]);
}
((AbstractButton)m_ctrl).setText(string2);
}

public void setVisible(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
((JMenu)m_ctrl).setVisible(true);
else
((JMenu)m_ctrl).setVisible(false);
}
}

Page: 854 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMenuitemGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObMenuitemGui.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.event.*;
import javax.swing.*;
import ObRun.ObFunction.ObApplication;
import ObRun.ObPanel.ObCtrlData.ObCtrlData;
import ObRun.ObPanel.ObCtrlData.ObWindowData;
import java.awt.AWTEvent;
import java.awt.Component;

public final synchronized class ObMenuitemGui extends ObCtrlGui implements ActionListener


{
private String m_hintText;
private static ImageIcon m_iconChecked;
private static ImageIcon m_iconUnchecked;

static
{
m_iconChecked = null;
m_iconUnchecked = null;
}

public ObMenuitemGui()
{
m_hintText = " ";
m_ctrl = new JMenuItem();
java.awt.Insets insets = ((JMenuItem)m_ctrl).getMargin();
((JMenuItem)m_ctrl).setMargin(insets);
((JMenuItem)m_ctrl).addActionListener(this);
registerEvent(503);
try
{
m_iconChecked = new ImageIcon(getClass().getResource("Images/MenuItemCheck.gif"));
String string = new String(ObApplication.getRunOptionValue(ObApplication.getEnvironment() +
".UseUncheckedMenuImage").toUpperCase());

Page: 855 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (string.compareTo("YES") == 0)
m_iconUnchecked = new ImageIcon(getClass().getResource("Images/MenuItemNoCheck.gif"));
}
catch (Exception e)
{
}
}

public void actionPerformed(ActionEvent actionEvent)


{
getData().testEvent(1020);
}

public void clearReferences()


{
m_hintText = null;
m_iconChecked = null;
m_iconUnchecked = null;
super.clearReferences();
}

public ImageIcon getCheckedIcon()


{
return m_iconChecked;
}

public ImageIcon getUncheckedIcon()


{
return m_iconUnchecked;
}

public void mouseMoved(MouseEvent mouseEvent)


{
if (m_panel.m_statusbar != null)
m_panel.m_statusbar.setText(m_hintText);
getData().testEvent(mouseEvent.getID());
}

public void setChecked(String string)


{
string = string.toUpperCase();

Page: 856 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (string.compareTo("YES") == 0)
((JMenuItem)m_ctrl).setIcon(m_iconChecked);
else
((JMenuItem)m_ctrl).setIcon(m_iconUnchecked);
((JMenuItem)m_ctrl).setHorizontalTextPosition(4);
}

public void setDefaultFont()


{
try
{
((JMenuItem)m_ctrl).setFont(getPanel().getMenubar().getMenuFont());
}
catch (Exception e)
{
}
}

public void setDisabled(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
((JMenuItem)m_ctrl).setEnabled(false);
else
((JMenuItem)m_ctrl).setEnabled(true);
}

public void setFlyOverHint(String string)


{
((JMenuItem)m_ctrl).setToolTipText(string);
}

public void setHintText(String string)


{
m_hintText = string;
}

public void setKeyCode(String string)


{
KeyStroke keyStroke = ObWindowData.getKeyStroke(string);
((JMenuItem)m_ctrl).setAccelerator(keyStroke);

Page: 857 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setText(String string1)


{
String string2 = string1;
int i = string1.indexOf(38);
if (i != -1)
{
String string3 = string1.substring(0, i);
String string4 = string1.substring(i + 1);
string2 = new StringBuffer(String.valueOf(string3)).append(string4).toString();
char ach[] = string1.substring(i + 1, i + 2).toCharArray();
((JMenuItem)m_ctrl).setMnemonic(ach[0]);
}
((AbstractButton)m_ctrl).setText(string2);
((AbstractButton)m_ctrl).setHorizontalAlignment(2);
}

public void setVisible(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
((JMenuItem)m_ctrl).setVisible(true);
else
((JMenuItem)m_ctrl).setVisible(false);
}
}

Page: 858 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMultilineEditGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import ObRun.ObFunction.ObApplication;
import ObRun.ObPanel.ObCtrlData.ObCtrlData;
import ObRun.ObPanel.ObCtrlData.ObWindowData;
import javax.swing.event.UndoableEditListener;
import javax.swing.text.Document;
import javax.swing.text.JTextComponent;
import javax.swing.undo.UndoManager;

public final synchronized class ObMultilineEditGui extends ObCtrlGui


{
private boolean m_hiliteOnFocus;
private Color m_backgroundColor;
private String m_editMask;
private int m_maxLength;
private int m_maxFractions;
private Color m_positiveColor;
private Color m_negativeColor;
private String m_lastString;
private JTextArea m_edit;
private boolean m_trapEnter;
private boolean m_fieldDefined;
protected UndoableEditListener undoHandler;
public UndoManager manager;
Font m_menuFont;

public ObMultilineEditGui()
{
m_hiliteOnFocus = false;

Page: 859 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_backgroundColor = null;
m_editMask = null;
m_maxLength = 0;
m_maxFractions = 0;
m_positiveColor = null;
m_negativeColor = null;
m_lastString = null;
m_edit = null;
m_trapEnter = false;
m_fieldDefined = false;
undoHandler = new ObMultilineEditGui$UndoHandler(this);
manager = new UndoManager();
m_menuFont = null;
m_edit = new JTextArea();
m_edit.getDocument().addUndoableEditListener(undoHandler);
m_ctrl = new JScrollPane(m_edit);
m_edit.setBackground(SystemColor.window);
m_edit.setSelectionColor(SystemColor.textHighlight);
m_edit.setSelectedTextColor(SystemColor.textHighlightText);
if (!m_focusListener)
{
m_edit.addFocusListener(this);
m_focusListener = true;
}
if (!m_keyListener)
{
m_edit.addKeyListener(this);
m_keyListener = true;
}
if (!m_mouseListener)
{
m_edit.addMouseListener(this);
m_mouseListener = true;
}
try
{
m_menuFont = loadFont(ObApplication.getRunOptionValue(ObApplication.getEnvironment() +
".MenuFont"));
}
catch (Exception e)
{

Page: 860 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_menuFont = UIManager.getFont("Menu.font");
}
}

static JTextArea access$0(ObMultilineEditGui obMultilineEditGui)


{
return obMultilineEditGui.m_edit;
}

public void clearReferences()


{
m_backgroundColor = null;
m_editMask = null;
m_positiveColor = null;
m_negativeColor = null;
m_lastString = null;
m_edit = null;
undoHandler = null;
manager = null;
m_menuFont = null;
super.clearReferences();
}

public void focusGained(FocusEvent focusEvent)


{
getData().getPanel().setCurrentFocus(getData().getID());
if (m_edit.getDocument() instanceof ObCtrlGui$ObNumericDocument)
setText(formatNumericForInternal(m_edit.getText(), m_editMask));
else if (!(m_edit.getDocument() instanceof ObCtrlGui$ObDateDocument) && !(m_edit.getDocument()
instanceof ObCtrlGui$ObTimeDocument) && !(m_edit.getDocument() instanceof ObCtrlGui$ObTimeStampDocument) &&
m_editMask != null)
setText(formatCharacterForInternal(m_edit.getText(), m_editMask));
m_edit.selectAll();
if (m_hiliteOnFocus)
{
if (m_backgroundColor == null)
m_backgroundColor = m_edit.getBackground();
if (SystemColor.window.getRed() == Color.white.getRed() && SystemColor.window.getGreen() ==
Color.white.getGreen() && SystemColor.window.getBlue() == Color.white.getBlue())
m_edit.setBackground(Color.lightGray);
else

Page: 861 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_edit.setBackground(Color.white);
}
if (m_initialValue != null)
setInitialValue();
getData().testEvent(focusEvent.getID());
}

public void focusLost(FocusEvent focusEvent)


{
if (m_edit.getDocument() instanceof ObCtrlGui$ObNumericDocument)
setValue(m_edit.getText());
else if (!(m_edit.getDocument() instanceof ObCtrlGui$ObDateDocument) && !(m_edit.getDocument()
instanceof ObCtrlGui$ObTimeDocument) && !(m_edit.getDocument() instanceof ObCtrlGui$ObTimeStampDocument) &&
m_editMask != null)
setValue(m_edit.getText());
if (m_hiliteOnFocus)
m_edit.setBackground(m_backgroundColor);
if (m_initialValue != null && !m_initialValue.equals(m_edit.getText()))
getData().testEvent(1040);
if (m_initialValue != null)
setInitialValue();
getData().testEvent(focusEvent.getID());
}

public JTextArea getEditControl()


{
return m_edit;
}

public String getValue()


{
if (m_edit.getDocument() instanceof ObCtrlGui$ObNumericDocument)
return formatNumericForInternal(m_edit.getText(), m_editMask);
if (m_edit.getDocument() instanceof ObCtrlGui$ObDateDocument)
return formatDateForInternal(m_edit.getText(), m_editMask);
if (m_edit.getDocument() instanceof ObCtrlGui$ObTimeDocument)
return formatTimeForInternal(m_edit.getText(), m_editMask);
if (m_edit.getDocument() instanceof ObCtrlGui$ObTimeStampDocument)
return formatTimeStampForInternal(m_edit.getText(), m_editMask);
if (m_editMask != null && m_editMask.length() > 0)
return formatCharacterForInternal(m_edit.getText(), m_editMask);

Page: 862 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else
return m_edit.getText();
}

public void keyPressed(KeyEvent keyEvent)


{
if (keyEvent.getKeyChar() == 10 && (keyEvent.isControlDown() || m_trapEnter))
{
StringBuffer stringBuffer = new StringBuffer(getValue());
int i = m_edit.getCaretPosition();
stringBuffer.insert(i, "\n");
setValue(stringBuffer.toString());
m_edit.setCaretPosition(i + 1);
keyEvent.consume();
return;
}
if (keyEvent.getKeyCode() == 86 && keyEvent.isControlDown())
{
pasteFromClipboard();
keyEvent.consume();
}
super.keyPressed(keyEvent);
}

public void keyTyped(KeyEvent keyEvent)


{
if (keyEvent.getKeyChar() != 9 && keyEvent.getKeyChar() != 8)
{
setFieldDetails(m_fieldDefined, m_editMask);
if (m_edit.getDocument() instanceof ObCtrlGui$ObNumericDocument)
validateNumericEntry(m_edit.getText(), m_maxLength, m_maxFractions, keyEvent,
m_edit.getCaretPosition(), m_edit.getSelectedText());
else if (m_edit.getDocument() instanceof ObCtrlGui$ObDateDocument)
validateDateEntry(m_edit.getText(), m_editMask, keyEvent, m_maxLength,
m_edit.getCaretPosition(), m_edit.getSelectedText());
else if (m_edit.getDocument() instanceof ObCtrlGui$ObTimeDocument)
validateTimeEntry(m_edit.getText(), m_editMask, keyEvent, m_maxLength,
m_edit.getCaretPosition(), m_edit.getSelectedText());
else if (m_edit.getDocument() instanceof ObCtrlGui$ObTimeStampDocument)
validateTimeStampEntry(m_edit.getText(), m_editMask, keyEvent, m_maxLength,
m_edit.getCaretPosition(), m_edit.getSelectedText());

Page: 863 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else
validateCharacterEntry(((JTextField)m_ctrl).getText(), m_editMask, keyEvent, m_maxLength,
((JTextField)m_ctrl).getCaretPosition(), ((JTextField)m_ctrl).getSelectedText());
}
getData().testEvent(keyEvent.getID());
}

public void mouseClicked(MouseEvent mouseEvent)


{
if (mouseEvent.getClickCount() > 1)
getData().testEvent(1050);
getData().testEvent(mouseEvent.getID());
}

public void mouseReleased(MouseEvent mouseEvent)


{
if (mouseEvent.isPopupTrigger())
{
JPopupMenu jPopupMenu1 = null;
if (m_rightMenuID > 0)
jPopupMenu1 = (JPopupMenu)createPopupMenu(m_rightMenuID, false);
else
{
jPopupMenu1 = new JPopupMenu();
JMenuItem jMenuItem1 = new JMenuItem("Undo");
jMenuItem1.setFont(m_menuFont);
jMenuItem1.addActionListener(new ObMultilineEditGui$1(this));
if (!manager.canUndo())
jMenuItem1.setEnabled(false);
jPopupMenu1.add(jMenuItem1);
JMenuItem jMenuItem2 = new JMenuItem("Redo");
jMenuItem2.setFont(m_menuFont);
jMenuItem2.addActionListener(new ObMultilineEditGui$2(this));
if (!manager.canRedo())
jMenuItem2.setEnabled(false);
jPopupMenu1.add(jMenuItem2);
jPopupMenu1.addSeparator();
JMenuItem jMenuItem3 = new JMenuItem("Cut");
jMenuItem3.setFont(m_menuFont);
jMenuItem3.addActionListener(new ObMultilineEditGui$3(this));
if (m_edit.getSelectedText() == null)

Page: 864 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

jMenuItem3.setEnabled(false);
jPopupMenu1.add(jMenuItem3);
JMenuItem jMenuItem4 = new JMenuItem("Copy");
jMenuItem4.setFont(m_menuFont);
jMenuItem4.addActionListener(new ObMultilineEditGui$4(this));
if (m_edit.getSelectedText() == null)
jMenuItem4.setEnabled(false);
jPopupMenu1.add(jMenuItem4);
JMenuItem jMenuItem5 = new JMenuItem("Paste");
jMenuItem5.setFont(m_menuFont);
jMenuItem5.addActionListener(new ObMultilineEditGui$5(this));
Transferable transferable = m_ctrl.getToolkit().getSystemClipboard().getContents(this);
if (transferable == null)
jMenuItem5.setEnabled(false);
jPopupMenu1.add(jMenuItem5);
JMenuItem jMenuItem6 = new JMenuItem("Delete");
jMenuItem6.setFont(m_menuFont);
jMenuItem6.addActionListener(new ObMultilineEditGui$6(this));
if (m_edit.getSelectedText() == null)
jMenuItem6.setEnabled(false);
jPopupMenu1.add(jMenuItem6);
jPopupMenu1.addSeparator();
JMenuItem jMenuItem7 = new JMenuItem("Select All");
jMenuItem7.setFont(m_menuFont);
jMenuItem7.addActionListener(new ObMultilineEditGui$7(this));
jPopupMenu1.add(jMenuItem7);
}
Point point1 = mouseEvent.getPoint();
if (mouseEvent.getComponent() instanceof JTable)
{
int i1 = ((JTable)mouseEvent.getComponent()).getX();
if (i1 < 0)
point1.x = point1.x - i1 * -1;
int k1 = ((JTable)mouseEvent.getComponent()).getY();
if (k1 < 0)
point1.y = point1.y - k1 * -1;
int j2 = ((JTable)mouseEvent.getComponent()).getTableHeader().getHeight();
point1.y = point1.y + j2;
}
jPopupMenu1.show(m_ctrl, point1.x, point1.y);
}

Page: 865 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else if (m_leftMenuID > 0)


{
JPopupMenu jPopupMenu2 = (JPopupMenu)createPopupMenu(m_leftMenuID, false);
Point point2 = mouseEvent.getPoint();
if (mouseEvent.getComponent() instanceof JTable)
{
int j1 = ((JTable)mouseEvent.getComponent()).getX();
if (j1 < 0)
point2.x = point2.x - j1 * -1;
int i2 = ((JTable)mouseEvent.getComponent()).getY();
if (i2 < 0)
point2.y = point2.y - i2 * -1;
int k2 = ((JTable)mouseEvent.getComponent()).getTableHeader().getHeight();
point2.y = point2.y + k2;
}
jPopupMenu2.show(m_ctrl, point2.x, point2.y);
}
getData().testEvent(mouseEvent.getID());
}

public void pasteFromClipboard()


{
Transferable transferable = m_ctrl.getToolkit().getSystemClipboard().getContents(this);
if (transferable == null)
setValue(null);
else if (transferable.isDataFlavorSupported(DataFlavor.stringFlavor))
{
try
{
setFieldDetails(m_fieldDefined, m_editMask);
m_edit.paste();
if (m_edit.getDocument() instanceof ObCtrlGui$ObNumericDocument)
setValue(formatNumericForInternal(m_edit.getText(), m_editMask));
else if (m_edit.getDocument() instanceof ObCtrlGui$ObDateDocument)
setValue(formatDateForInternal(m_edit.getText(), m_editMask));
else if (m_edit.getDocument() instanceof ObCtrlGui$ObTimeDocument)
setValue(formatTimeForInternal(m_edit.getText(), m_editMask));
else if (m_edit.getDocument() instanceof ObCtrlGui$ObTimeStampDocument)
setValue(formatTimeStampForInternal(m_edit.getText(), m_editMask));
else if (m_editMask != null)
setValue(formatCharacterForInternal(m_edit.getText(), m_editMask));

Page: 866 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else
setValue(m_edit.getText());
}
catch (Exception e)
{
}
}
}

public void registerEvent(int i)


{
switch (i)
{
case 500:
case 501:
case 502:
case 504:
case 505:
if (!m_mouseListener)
{
m_edit.addMouseListener(this);
m_mouseListener = true;
}
break;

case 503:
case 506:
if (!m_mouseMotionListener)
{
m_edit.addMouseMotionListener(this);
m_mouseMotionListener = true;
}
break;

case 100:
case 101:
case 102:
case 103:
if (!m_componentListener)
{
m_ctrl.addComponentListener(this);

Page: 867 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_componentListener = true;
}
break;

case 1004:
case 1005:
if (!m_focusListener)
{
m_edit.addFocusListener(this);
m_focusListener = true;
}
break;

case 400:
case 401:
case 402:
if (!m_keyListener)
{
m_edit.addKeyListener(this);
m_keyListener = true;
}
break;

case 900:
if (!m_textListener && m_ctrl instanceof TextComponent)
{
((TextComponent)m_ctrl).addTextListener(this);
m_textListener = true;
}
break;

case 1040:
setInitialValue();
if (!m_focusListener)
{
m_edit.addFocusListener(this);
m_focusListener = true;
}
break;

case 1050:

Page: 868 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (!m_mouseListener)
{
m_edit.addMouseListener(this);
m_mouseListener = true;
}
break;

case 1030:
m_modifiedEvent = true;
break;
}
}

public void setBackgroundColor(String string)


{
if (string.length() == 0)
{
m_edit.setBackground(SystemColor.window);
return;
}
Integer ainteger[] = getIntegers(string);
if (string.indexOf(40) != -1 || ainteger.length == 1)
{
try
{
m_edit.setBackground(ObCtrlGui.m_javaCol[ainteger[0].intValue()]);
}
catch (Exception e)
{
}
}
else
m_edit.setBackground(new Color(ainteger[0].intValue(), ainteger[1].intValue(),
ainteger[2].intValue()));
}

public void setBorder(String string)


{
Insets insets = ((JScrollPane)m_ctrl).getInsets();
Object object = null;
if (string.compareTo("None") == 0)

Page: 869 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

object = new EmptyBorder(insets);


else if (string.compareTo("Standard") == 0)
object = new LineBorder(Color.black, 1);
else if (string.compareTo("Indented") == 0)
object = new BevelBorder(1);
else if (string.compareTo("Extruded") == 0)
object = new BevelBorder(0);
else if (string.compareTo("Bump") == 0)
object = new EtchedBorder();
((JScrollPane)m_ctrl).setBorder(object);
}

public void setControlName(String string)


{
super.setControlName(string);
}

public void setDisabled(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
m_edit.setEditable(false);
else
m_edit.setEditable(true);
}

public void setEditMask(String string)


{
if (string.startsWith("%ss"))
m_editMask = null;
else
m_editMask = new String(string);
}

public void setFixBottom(String string)


{
super.setFixBottom(string);
}

public void setFixLeft(String string)


{

Page: 870 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

super.setFixLeft(string);
}

public void setFixRight(String string)


{
super.setFixRight(string);
}

public void setFixTop(String string)


{
super.setFixTop(string);
}

public void setFont(String string)


{
m_edit.setFont(loadFont(string));
}

public void setHiliteOnFocus(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
m_hiliteOnFocus = true;
else
m_hiliteOnFocus = false;
}

public void setInitialValue()


{
m_initialValue = getValue();
}

public void setLeftContextMenu(String string)


{
m_leftMenuID = new Integer(string).intValue();
}

public void setMode(String string)


{
string = string.toUpperCase();
if (string.compareTo("READ ONLY") == 0)

Page: 871 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_edit.setEditable(false);
else
m_edit.setEditable(true);
}

public void setPosition(String string)


{
super.setPosition(string);
}

public void setRightContextMenu(String string)


{
m_rightMenuID = new Integer(string).intValue();
}

public void setScrollBars(String string)


{
if (string.compareTo("None") == 0)
{
((JScrollPane)m_ctrl).setHorizontalScrollBarPolicy(31);
((JScrollPane)m_ctrl).setVerticalScrollBarPolicy(21);
}
else if (string.compareTo("Horizontal") == 0)
{
((JScrollPane)m_ctrl).setHorizontalScrollBarPolicy(32);
((JScrollPane)m_ctrl).setVerticalScrollBarPolicy(21);
m_edit.setLineWrap(false);
}
else if (string.compareTo("Vertical") == 0)
{
((JScrollPane)m_ctrl).setHorizontalScrollBarPolicy(31);
((JScrollPane)m_ctrl).setVerticalScrollBarPolicy(22);
}
else if (string.compareTo("Both") == 0)
{
((JScrollPane)m_ctrl).setHorizontalScrollBarPolicy(32);
((JScrollPane)m_ctrl).setVerticalScrollBarPolicy(22);
m_edit.setLineWrap(false);
}
}

Page: 872 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setScrolling(String string)


{
m_edit.setWrapStyleWord(true);
if (string.compareTo("None") == 0)
m_edit.setLineWrap(true);
else if (string.compareTo("Horizontal") == 0)
m_edit.setLineWrap(false);
else if (string.compareTo("Vertical") == 0)
m_edit.setLineWrap(true);
else if (string.compareTo("All") == 0)
m_edit.setLineWrap(false);
}

public void setSize(String string)


{
super.setSize(string);
}

public void setTabSequence(String string)


{
super.setTabSequence(string);
}

public void setTabStop(String string)


{
super.setTabStop(string);
}

public void setText(String string)


{
m_edit.setText(string);
}

public void setTextColor(String string)


{
Integer ainteger[] = getIntegers(string);
if (string.indexOf(40) != -1 || ainteger.length == 1)
{
try
{
m_edit.setForeground(ObCtrlGui.m_javaCol[ainteger[0].intValue()]);

Page: 873 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
catch (Exception e)
{
}
}
else
m_edit.setForeground(new Color(ainteger[0].intValue(), ainteger[1].intValue(),
ainteger[2].intValue()));
}

public void setTrapEnter(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
m_trapEnter = true;
else
m_trapEnter = false;
}

protected void setValidationMembers(int i, int j, String string, Color color1, Color color2)
{
m_maxLength = i;
m_maxFractions = j;
m_editMask = string;
if (color1 == null && color2 != null)
color1 = m_ctrl.getForeground();
m_positiveColor = color1;
m_negativeColor = color2;
m_fieldDefined = true;
}

public void setValue(String string)


{
setFieldDetails(m_fieldDefined, m_editMask);
if (m_edit.getDocument() instanceof ObCtrlGui$ObNumericDocument)
{
if (m_positiveColor != null && string.indexOf(45) == -1)
setTextColor(m_positiveColor);
if (m_negativeColor != null && string.indexOf(45) != -1)
setTextColor(m_negativeColor);
setText(formatNumericForDisplay(string, m_editMask));

Page: 874 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
else if (m_edit.getDocument() instanceof ObCtrlGui$ObDateDocument)
setText(formatDateForDisplay(string, m_editMask));
else if (m_edit.getDocument() instanceof ObCtrlGui$ObTimeDocument)
setText(formatTimeForDisplay(string, m_editMask));
else if (m_edit.getDocument() instanceof ObCtrlGui$ObTimeStampDocument)
setText(formatTimeStampForDisplay(string, m_editMask));
else if (m_editMask != null)
setText(formatCharacterForDisplay(string, m_editMask));
else
setText(string);
}

public void setVisible(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
((JScrollPane)m_ctrl).setVisible(true);
else
((JScrollPane)m_ctrl).setVisible(false);
}
}

Page: 875 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMultilineEditGui$1

Full name of class: ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui$1.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.undo.UndoManager;

final synchronized class ObMultilineEditGui$1 implements ActionListener


{
private final ObMultilineEditGui this$0 = obMultilineEditGui;

ObMultilineEditGui$1(ObMultilineEditGui obMultilineEditGui)
{
}

public void actionPerformed(ActionEvent actionEvent)


{
this$0.manager.undo();
}
}

Page: 876 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMultilineEditGui$2

Full name of class: ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui$2.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.undo.UndoManager;

final synchronized class ObMultilineEditGui$2 implements ActionListener


{
private final ObMultilineEditGui this$0 = obMultilineEditGui;

ObMultilineEditGui$2(ObMultilineEditGui obMultilineEditGui)
{
}

public void actionPerformed(ActionEvent actionEvent)


{
this$0.manager.redo();
}
}

Page: 877 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMultilineEditGui$3

Full name of class: ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui$3.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.text.JTextComponent;

final synchronized class ObMultilineEditGui$3 implements ActionListener


{
private final ObMultilineEditGui this$0 = obMultilineEditGui;

ObMultilineEditGui$3(ObMultilineEditGui obMultilineEditGui)
{
}

public void actionPerformed(ActionEvent actionEvent)


{
ObMultilineEditGui.access$0(this$0).cut();
}
}

Page: 878 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMultilineEditGui$4

Full name of class: ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui$4.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.text.JTextComponent;

final synchronized class ObMultilineEditGui$4 implements ActionListener


{
private final ObMultilineEditGui this$0 = obMultilineEditGui;

ObMultilineEditGui$4(ObMultilineEditGui obMultilineEditGui)
{
}

public void actionPerformed(ActionEvent actionEvent)


{
ObMultilineEditGui.access$0(this$0).copy();
}
}

Page: 879 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMultilineEditGui$5

Full name of class: ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui$5.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.text.JTextComponent;

final synchronized class ObMultilineEditGui$5 implements ActionListener


{
private final ObMultilineEditGui this$0 = obMultilineEditGui;

ObMultilineEditGui$5(ObMultilineEditGui obMultilineEditGui)
{
}

public void actionPerformed(ActionEvent actionEvent)


{
ObMultilineEditGui.access$0(this$0).paste();
}
}

Page: 880 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMultilineEditGui$6

Full name of class: ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui$6.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.text.JTextComponent;

final synchronized class ObMultilineEditGui$6 implements ActionListener


{
private final ObMultilineEditGui this$0 = obMultilineEditGui;

ObMultilineEditGui$6(ObMultilineEditGui obMultilineEditGui)
{
}

public void actionPerformed(ActionEvent actionEvent)


{
String string = ObMultilineEditGui.access$0(this$0).getText();
int i = ObMultilineEditGui.access$0(this$0).getSelectionStart();
ObMultilineEditGui.access$0(this$0).setText(string.substring(0,
ObMultilineEditGui.access$0(this$0).getSelectionStart()).concat(string.substring(ObMultilineEditGui.access$
0(this$0).getSelectionEnd())));
ObMultilineEditGui.access$0(this$0).setCaretPosition(i);
}
}

Page: 881 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMultilineEditGui$7

Full name of class: ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui$7.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.text.JTextComponent;

final synchronized class ObMultilineEditGui$7 implements ActionListener


{
private final ObMultilineEditGui this$0 = obMultilineEditGui;

ObMultilineEditGui$7(ObMultilineEditGui obMultilineEditGui)
{
}

public void actionPerformed(ActionEvent actionEvent)


{
ObMultilineEditGui.access$0(this$0).selectAll();
}
}

Page: 882 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMultilineEditGui$UndoHandler

Full name of class: ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui$UndoHandler.class

package ObRun.ObPanel.ObCtrlGui;

import javax.swing.event.UndoableEditEvent;
import javax.swing.event.UndoableEditListener;
import javax.swing.undo.UndoManager;

synchronized class ObMultilineEditGui$UndoHandler implements UndoableEditListener


{
private final ObMultilineEditGui this$0 = obMultilineEditGui;

ObMultilineEditGui$UndoHandler(ObMultilineEditGui obMultilineEditGui)
{
}

public void undoableEditHappened(UndoableEditEvent undoableEditEvent)


{
this$0.manager.addEdit(undoableEditEvent.getEdit());
}
}

Page: 883 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObPasswordGridEditorDelegate

Full name of class: ObRun.ObPanel.ObCtrlGui.ObPasswordGridEditorDelegate.class

package ObRun.ObPanel.ObCtrlGui;

import javax.swing.*;
import java.util.EventObject;
import javax.swing.text.JTextComponent;

synchronized class ObPasswordGridEditorDelegate extends ObBaseGridEditorDelegate


{
protected ObPasswordGridEditorDelegate(ObGridCellEditor obGridCellEditor)
{
super(obGridCellEditor);
}

public Object getCellEditorValue()


{
return ((JPasswordField)m_editor.getComponent()).getText();
}

public boolean isCellEditable(EventObject eventObject)


{
return ((JTextField)m_editor.getComponent()).isEditable();
}

public void setValue(Object object)


{
super.setValue(object);
if (object != null)
((JPasswordField)m_editor.getComponent()).setText(object.toString());
else
((JPasswordField)m_editor.getComponent()).setText("");
}

public boolean startCellEditing(EventObject eventObject)


{
((JPasswordField)m_editor.getComponent()).requestFocus();

Page: 884 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

return true;
}

public boolean stopCellEditing()


{
return true;
}
}

Page: 885 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObPasswordGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObPasswordGui.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import ObRun.ObPanel.ObCtrlData.ObCtrlData;
import ObRun.ObPanel.ObCtrlData.ObWindowData;
import javax.swing.text.JTextComponent;

public final synchronized class ObPasswordGui extends ObCtrlGui


{
private boolean m_hiliteOnFocus;
private Color m_backgroundColor;
private String m_editMask;
private int m_maxLength;
private int m_maxFractions;
private Color m_positiveColor;
private Color m_negativeColor;
private String m_lastString;
private byte m_case;
private boolean m_fieldDefined;

public ObPasswordGui()
{
m_hiliteOnFocus = false;
m_backgroundColor = null;
m_editMask = null;
m_maxLength = 0;
m_maxFractions = 0;
m_positiveColor = null;
m_negativeColor = null;
m_lastString = null;
m_case = 0;

Page: 886 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_fieldDefined = false;
m_ctrl = new JPasswordField();
m_ctrl.setBackground(SystemColor.window);
((JTextField)m_ctrl).setSelectionColor(SystemColor.textHighlight);
((JTextField)m_ctrl).setSelectedTextColor(SystemColor.textHighlightText);
if (!m_focusListener)
{
m_ctrl.addFocusListener(this);
m_focusListener = true;
}
if (!m_keyListener)
{
m_ctrl.addKeyListener(this);
m_keyListener = true;
}
}

public void clearReferences()


{
m_backgroundColor = null;
m_editMask = null;
m_positiveColor = null;
m_negativeColor = null;
m_lastString = null;
super.clearReferences();
}

public void focusGained(FocusEvent focusEvent)


{
getData().getPanel().setCurrentFocus(getData().getID());
if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObNumericDocument)
setText(formatNumericForInternal(((JTextField)m_ctrl).getText(), m_editMask));
else if (!(((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObDateDocument) && !
(((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObTimeDocument) && !
(((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObTimeStampDocument) && m_editMask != null)
setText(formatCharacterForInternal(((JTextField)m_ctrl).getText(), m_editMask));
((JTextField)m_ctrl).selectAll();
if (m_hiliteOnFocus)
{
if (m_backgroundColor == null)
m_backgroundColor = ((JTextField)m_ctrl).getBackground();

Page: 887 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (SystemColor.window.getRed() == Color.white.getRed() && SystemColor.window.getGreen() ==


Color.white.getGreen() && SystemColor.window.getBlue() == Color.white.getBlue())
((JTextField)m_ctrl).setBackground(Color.lightGray);
else
((JTextField)m_ctrl).setBackground(Color.white);
}
if (m_initialValue != null)
setInitialValue();
getData().testEvent(focusEvent.getID());
}

public void focusLost(FocusEvent focusEvent)


{
if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObNumericDocument)
setValue(((JTextField)m_ctrl).getText());
else if (!(((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObDateDocument) && !
(((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObTimeDocument) && !
(((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObTimeStampDocument) && m_editMask != null)
setValue(((JTextField)m_ctrl).getText());
if (m_hiliteOnFocus)
((JTextField)m_ctrl).setBackground(m_backgroundColor);
if (m_initialValue != null && !m_initialValue.equals(((JTextField)m_ctrl).getText()))
getData().testEvent(1040);
if (m_initialValue != null)
setInitialValue();
getData().testEvent(focusEvent.getID());
}

public String getValue()


{
if (inGrid())
return getGridValue();
if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObNumericDocument)
return formatNumericForInternal(((JTextField)m_ctrl).getText(), m_editMask);
if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObDateDocument)
return formatDateForInternal(((JTextField)m_ctrl).getText(), m_editMask);
if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObTimeDocument)
return formatTimeForInternal(((JTextField)m_ctrl).getText(), m_editMask);
if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObTimeStampDocument)
return formatTimeStampForInternal(((JTextField)m_ctrl).getText(), m_editMask);
if (m_editMask != null)

Page: 888 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

return formatCharacterForInternal(((JTextField)m_ctrl).getText(), m_editMask);


else
return ((JTextField)m_ctrl).getText();
}

public void keyPressed(KeyEvent keyEvent)


{
if (keyEvent.getKeyCode() == 86 && keyEvent.isControlDown())
{
pasteFromClipboard();
keyEvent.consume();
}
super.keyPressed(keyEvent);
getData().testEvent(keyEvent.getID());
}

public void keyTyped(KeyEvent keyEvent)


{
if (keyEvent.getKeyChar() != 9 && keyEvent.getKeyChar() != 8)
{
setFieldDetails(m_fieldDefined, m_editMask);
if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObNumericDocument)
validateNumericEntry(((JTextField)m_ctrl).getText(), m_maxLength, m_maxFractions, keyEvent,
((JTextField)m_ctrl).getCaretPosition(), ((JTextField)m_ctrl).getSelectedText());
else if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObDateDocument)
validateDateEntry(((JTextField)m_ctrl).getText(), m_editMask, keyEvent, m_maxLength,
((JTextField)m_ctrl).getCaretPosition(), ((JTextField)m_ctrl).getSelectedText());
else if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObTimeDocument)
validateTimeEntry(((JTextField)m_ctrl).getText(), m_editMask, keyEvent, m_maxLength,
((JTextField)m_ctrl).getCaretPosition(), ((JTextField)m_ctrl).getSelectedText());
else if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObTimeStampDocument)
validateTimeStampEntry(((JTextField)m_ctrl).getText(), m_editMask, keyEvent, m_maxLength,
((JTextField)m_ctrl).getCaretPosition(), ((JTextField)m_ctrl).getSelectedText());
else
validateCharacterEntry(((JTextField)m_ctrl).getText(), m_editMask, keyEvent, m_maxLength,
((JTextField)m_ctrl).getCaretPosition(), ((JTextField)m_ctrl).getSelectedText());
}
getData().testEvent(keyEvent.getID());
}

public void mouseClicked(MouseEvent mouseEvent)

Page: 889 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
if (mouseEvent.getClickCount() > 1)
{
getData().testEvent(1050);
if (inGrid())
getParent().getData().testEvent(1050);
}
getData().testEvent(mouseEvent.getID());
}

public void pasteFromClipboard()


{
Transferable transferable = m_ctrl.getToolkit().getSystemClipboard().getContents(this);
if (transferable == null)
setValue(null);
else if (transferable.isDataFlavorSupported(DataFlavor.stringFlavor))
{
try
{
setFieldDetails(m_fieldDefined, m_editMask);
((JTextField)m_ctrl).paste();
if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObNumericDocument)
setValue(formatNumericForInternal(((JTextField)m_ctrl).getText(), m_editMask));
else if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObDateDocument)
setValue(formatDateForInternal(((JTextField)m_ctrl).getText(), m_editMask));
else if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObTimeDocument)
setValue(formatTimeForInternal(((JTextField)m_ctrl).getText(), m_editMask));
else if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObTimeStampDocument)
setValue(formatTimeStampForInternal(((JTextField)m_ctrl).getText(), m_editMask));
else if (m_editMask != null)
setValue(formatCharacterForInternal(((JTextField)m_ctrl).getText(), m_editMask));
else
setValue(((JTextField)m_ctrl).getText());
}
catch (Exception e)
{
}
}
}

public void setBackgroundColor(String string)

Page: 890 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
if (string.length() == 0)
m_ctrl.setBackground(SystemColor.window);
else
super.setBackgroundColor(string);
}

public void setBorder(String string)


{
Insets insets = ((JTextField)m_ctrl).getInsets();
Object object = null;
if (string.compareTo("None") == 0)
object = new EmptyBorder(insets);
else if (string.compareTo("Standard") == 0)
object = new LineBorder(Color.black, 1);
else if (string.compareTo("Indented") == 0)
object = new BevelBorder(1);
else if (string.compareTo("Extruded") == 0)
object = new BevelBorder(0);
else if (string.compareTo("Bump") == 0)
object = new EtchedBorder();
((JTextField)m_ctrl).setBorder(object);
}

public void setCase(String string)


{
string = string.toUpperCase();
if (string.compareTo("MIXED") == 0)
m_case = 0;
else if (string.compareTo("UPPER") == 0)
m_case = 1;
else if (string.compareTo("LOWER") == 0)
m_case = 2;
}

public void setColumnHeading(String string)


{
super.setColumnHeading(string);
}

public void setControlName(String string)

Page: 891 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
super.setControlName(string);
}

public void setDisabled(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
((JTextField)m_ctrl).setEditable(false);
else
((JTextField)m_ctrl).setEditable(true);
}

public void setEditMask(String string)


{
if (string.startsWith("%ss"))
m_editMask = null;
else
m_editMask = new String(string);
}

protected void setFieldDetails(boolean flag, String string)


{
if (m_maxLength == 0 && m_maxFractions == 0)
flag = false;
if (!flag)
{
if (m_case == 1)
((JTextField)m_ctrl).setDocument(new ObCtrlGui$ObUpperCaseDocument());
else if (m_case == 2)
((JTextField)m_ctrl).setDocument(new ObCtrlGui$ObLowerCaseDocument());
super.setFieldDetails(flag, string);
}
}

public void setFixBottom(String string)


{
super.setFixBottom(string);
}

public void setFixLeft(String string)

Page: 892 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
super.setFixLeft(string);
}

public void setFixRight(String string)


{
super.setFixRight(string);
}

public void setFixTop(String string)


{
super.setFixTop(string);
}

public void setFont(String string)


{
super.setFont(string);
}

public void setHiliteOnFocus(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
m_hiliteOnFocus = true;
else
m_hiliteOnFocus = false;
}

public void setInitialValue()


{
m_initialValue = getValue();
}

public void setLeftContextMenu(String string)


{
super.setLeftContextMenu(string);
}

public void setMode(String string)


{
string = string.toUpperCase();

Page: 893 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (string.compareTo("READ ONLY") == 0)
((JTextField)m_ctrl).setEditable(false);
else
((JTextField)m_ctrl).setEditable(true);
}

public void setPosition(String string)


{
super.setPosition(string);
}

public void setRightContextMenu(String string)


{
super.setRightContextMenu(string);
}

public void setSize(String string)


{
super.setSize(string);
}

public void setTabSequence(String string)


{
super.setTabSequence(string);
}

public void setTabStop(String string)


{
super.setTabStop(string);
}

public void setText(String string)


{
((JTextField)m_ctrl).setText(string);
}

public void setTextAlignment(String string)


{
byte b = 0;
if (string.compareTo("Left") == 0)
b = 2;

Page: 894 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else if (string.compareTo("Center") == 0)
b = 0;
else if (string.compareTo("Right") == 0)
b = 4;
((JTextField)m_ctrl).setHorizontalAlignment(b);
}

public void setTextColor(String string)


{
super.setTextColor(string);
}

protected void setValidationMembers(int i, int j, String string, Color color1, Color color2)
{
m_maxLength = i;
m_maxFractions = j;
m_editMask = string;
if (color1 == null && color2 != null)
color1 = m_ctrl.getForeground();
m_positiveColor = color1;
m_negativeColor = color2;
m_fieldDefined = true;
}

public void setValue(String string)


{
setFieldDetails(m_fieldDefined, m_editMask);
if (inGrid())
setGridValue(string);
else if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObNumericDocument)
{
if (m_positiveColor != null && string.indexOf(45) == -1)
setTextColor(m_positiveColor);
if (m_negativeColor != null && string.indexOf(45) != -1)
setTextColor(m_negativeColor);
setText(formatNumericForDisplay(string, m_editMask));
}
else if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObDateDocument)
setText(formatDateForDisplay(string, m_editMask));
else if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObTimeDocument)
setText(formatTimeForDisplay(string, m_editMask));

Page: 895 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else if (((JTextField)m_ctrl).getDocument() instanceof ObCtrlGui$ObTimeStampDocument)


setText(formatTimeStampForDisplay(string, m_editMask));
else if (m_editMask != null)
setText(formatCharacterForDisplay(string, m_editMask));
else
setText(string);
}

public void setVisible(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
((JTextField)m_ctrl).setVisible(true);
else
((JTextField)m_ctrl).setVisible(false);
}
}

Page: 896 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObPictureGridEditorDelegate

Full name of class: ObRun.ObPanel.ObCtrlGui.ObPictureGridEditorDelegate.class

package ObRun.ObPanel.ObCtrlGui;

import javax.swing.*;
import java.awt.Component;
import java.util.EventObject;

synchronized class ObPictureGridEditorDelegate extends ObBaseGridEditorDelegate


{
protected ObPictureGridEditorDelegate(ObGridCellEditor obGridCellEditor)
{
super(obGridCellEditor);
}

public Object getCellEditorValue()


{
return ((JButton)m_editor.getComponent()).getText();
}

public void setValue(Object object)


{
super.setValue(object);
((JButton)m_editor.getComponent()).setForeground(((JButton)m_editor.getComponent()).getBackground()
);
if (object != null)
{
ImageIcon imageIcon = ObCtrlGui.loadBitmapFile(object.toString());
if (imageIcon != null)
((JButton)m_editor.getComponent()).setIcon(imageIcon);
((JButton)m_editor.getComponent()).setText(object.toString());
}
}

public boolean startCellEditing(EventObject eventObject)


{
((JButton)m_editor.getComponent()).requestFocus();

Page: 897 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

return true;
}

public boolean stopCellEditing()


{
return true;
}
}

Page: 898 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObPictureGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObPictureGui.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
import ObRun.ObPanel.ObCtrlData.ObCtrlData;
import ObRun.ObPanel.ObCtrlData.ObWindowData;
import java.awt.event.KeyEvent;

public final synchronized class ObPictureGui extends ObCtrlGui


{
private boolean m_autoSize;
private boolean m_allowFileOpen;
private static String m_lastDirectory;

static
{
m_lastDirectory = ".";
}

public ObPictureGui()
{
m_autoSize = false;
m_allowFileOpen = true;
m_ctrl = new JButton();
m_ctrl.setBackground(SystemColor.window);
if (!m_focusListener)
{
m_ctrl.addFocusListener(this);
m_focusListener = true;
}
if (!m_keyListener)
{
m_ctrl.addKeyListener(this);
m_keyListener = true;

Page: 899 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
}

public String getValue()


{
return ((JButton)m_ctrl).getText();
}

public void keyReleased(KeyEvent keyEvent)


{
if (keyEvent.getKeyCode() == 113 && m_allowFileOpen)
{
FileDialog fileDialog = null;
if (getPanel() instanceof ObTopAppGui)
fileDialog = new FileDialog((Frame)getPanel().getComponent(), "Open", 0);
else
fileDialog = new FileDialog(new Frame(), "Open", 0);
fileDialog.setFile("*.gif");
fileDialog.setDirectory(m_lastDirectory);
fileDialog.show();
if (fileDialog.getFile() != null)
{
m_lastDirectory = fileDialog.getDirectory();
setValue(m_lastDirectory.concat(fileDialog.getFile()));
}
}
else
{
((ObWindowData)getPanel().getData()).processKeyEvent(keyEvent);
getData().testEvent(keyEvent.getID());
}
}

public void setAutoSize(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
m_autoSize = true;
else
m_autoSize = false;
}

Page: 900 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setBackgroundColor(String string)


{
if (string.length() == 0)
m_ctrl.setBackground(SystemColor.window);
else
super.setBackgroundColor(string);
}

public void setBitmapFile(String string)


{
ImageIcon imageIcon = ObCtrlGui.loadBitmapFile(string);
if (imageIcon != null)
{
((JButton)m_ctrl).setIcon(imageIcon);
if (m_autoSize)
{
setSizeWithInts(imageIcon.getIconWidth(), imageIcon.getIconHeight());
if (imageIcon.getIconWidth() <= 0)
setText(string);
m_ctrl.doLayout();
}
}
setText(string);
}

public void setBorder(String string)


{
Insets insets = ((JButton)m_ctrl).getInsets();
Object object = null;
if (string.compareTo("None") == 0)
object = new EmptyBorder(insets);
else if (string.compareTo("Standard") == 0)
object = new LineBorder(Color.black, 1);
else if (string.compareTo("Indented") == 0)
object = new BevelBorder(1, Color.white, new Color(128, 128, 128));
else if (string.compareTo("Extruded") == 0)
object = new BevelBorder(0, Color.white, new Color(128, 128, 128));
else if (string.compareTo("Bump") == 0)
object = new EtchedBorder(Color.white, new Color(128, 128, 128));
((JButton)m_ctrl).setBorder(object);

Page: 901 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setColumnHeading(String string)


{
super.setColumnHeading(string);
}

public void setControlName(String string)


{
super.setControlName(string);
}

public void setDisabled(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
m_allowFileOpen = false;
else
m_allowFileOpen = true;
}

public void setFixBottom(String string)


{
super.setFixBottom(string);
}

public void setFixLeft(String string)


{
super.setFixLeft(string);
}

public void setFixRight(String string)


{
super.setFixRight(string);
}

public void setFixTop(String string)


{
super.setFixTop(string);
}

Page: 902 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setFont(String string)


{
super.setFont(string);
}

public void setGridValue(String string)


{
if (m_renderer != null)
{
ImageIcon imageIcon = ObCtrlGui.loadBitmapFile(string);
if (imageIcon != null)
((JLabel)m_renderer).setIcon(imageIcon);
setText(string);
}
((ObGridGui)m_parent).addCell(string, getData().getField(), m_columnHeading.getColumn());
}

public void setLeftContextMenu(String string)


{
super.setLeftContextMenu(string);
}

public void setMode(String string)


{
string = string.toUpperCase();
if (string.compareTo("READ ONLY") == 0)
m_allowFileOpen = false;
else
m_allowFileOpen = true;
}

public void setPosition(String string)


{
super.setPosition(string);
}

public void setRightContextMenu(String string)


{
super.setRightContextMenu(string);
}

Page: 903 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setSize(String string)


{
super.setSize(string);
}

public void setSizeWithInts(int i, int j)


{
getPanel().setChildSize(this, i, j);
}

public void setTabSequence(String string)


{
super.setTabSequence(string);
}

public void setTabStop(String string)


{
super.setTabStop(string);
}

public void setText(String string)


{
((JButton)m_ctrl).setText(string);
}

public void setValue(String string)


{
if (inGrid())
setGridValue(string);
else
{
setBitmapFile(string);
((JButton)m_ctrl).setText("");
}
}

public void setVisible(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
((JButton)m_ctrl).setVisible(true);

Page: 904 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else
((JButton)m_ctrl).setVisible(false);
}
}

Page: 905 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObPushbuttonGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObPushbuttonGui.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.*;
import javax.swing.*;
import ObRun.ObPanel.ObCtrlData.ObCtrlData;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.StringTokenizer;
import javax.swing.plaf.ComponentUI;

public final synchronized class ObPushbuttonGui extends ObCtrlGui implements ActionListener


{
private String m_textLines[];
protected int m_accelerator;

public ObPushbuttonGui()
{
m_textLines = null;
m_accelerator = 0;
m_ctrl = new ObButton(this);
m_ctrl.setBackground(SystemColor.control);
Insets insets = ((JButton)m_ctrl).getMargin();
insets.left = 2;
insets.right = 2;
((JButton)m_ctrl).setMargin(insets);
if (!m_focusListener)
{
m_ctrl.addFocusListener(this);
m_focusListener = true;
}
if (!m_actionListener)
{
((JButton)m_ctrl).addActionListener(this);
m_actionListener = true;
}

Page: 906 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void actionPerformed(ActionEvent actionEvent)


{
getData().testEvent(500);
}

public void clearReferences()


{
if (m_actionListener)
((JButton)m_ctrl).removeActionListener(this);
for (int i = 0; i < m_textLines.length; i++)
m_textLines[i] = null;
m_textLines = null;
((ObButton)m_ctrl).clearReferences();
if (m_focusListener)
{
m_ctrl.removeFocusListener(this);
m_focusListener = false;
}
if (m_actionListener)
{
((JButton)m_ctrl).removeActionListener(this);
m_actionListener = false;
}
super.clearReferences();
}

public String[] getTextLines()


{
return m_textLines;
}

public void setBackgroundColor(String string)


{
if (string.length() == 0)
m_ctrl.setBackground(SystemColor.control);
else
super.setBackgroundColor(string);
}

Page: 907 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setBitmapFile(String string)


{
ImageIcon imageIcon = ObCtrlGui.loadBitmapFile(string);
if (imageIcon != null)
((JButton)m_ctrl).setIcon(imageIcon);
}

public void setControlName(String string)


{
super.setControlName(string);
}

public void setDefaultButton(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
getPanel().setDefaultButton(this);
}

public void setDisabled(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
m_ctrl.setEnabled(false);
else
m_ctrl.setEnabled(true);
}

public void setFixBottom(String string)


{
super.setFixBottom(string);
}

public void setFixLeft(String string)


{
super.setFixLeft(string);
}

public void setFixRight(String string)


{
super.setFixRight(string);

Page: 908 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setFixTop(String string)


{
super.setFixTop(string);
}

public void setFlyOverHint(String string)


{
((JButton)m_ctrl).setToolTipText(string);
}

public void setFont(String string)


{
super.setFont(string);
}

public void setLeftContextMenu(String string)


{
super.setLeftContextMenu(string);
}

public void setNoButton(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
((JButton)m_ctrl).setBorderPainted(false);
else
((JButton)m_ctrl).setBorderPainted(true);
}

public void setNoFocus(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
((JButton)m_ctrl).setFocusPainted(false);
else
((JButton)m_ctrl).setFocusPainted(true);
}

public void setNoPictureAlignment(String string)

Page: 909 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
}

public void setPosition(String string)


{
super.setPosition(string);
}

public void setRelativeAlignment(String string)


{
byte b1 = 0;
byte b2 = 0;
byte b3 = 0;
byte b4 = false;
if (string.compareTo("Above Left") == 0)
{
b1 = 1;
b2 = 2;
b3 = 4;
b4 = 3;
}
else if (string.compareTo("Above Center") == 0)
{
b1 = 1;
b2 = 0;
b3 = 0;
b4 = 3;
}
else if (string.compareTo("Above Right") == 0)
{
b1 = 1;
b2 = 4;
b3 = 2;
b4 = 3;
}
else if (string.compareTo("Left") == 0)
{
b1 = 0;
b2 = 2;
b3 = 4;
b4 = false;

Page: 910 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
else if (string.compareTo("On Top") == 0)
{
b1 = 0;
b2 = 0;
b3 = 0;
b4 = false;
}
else if (string.compareTo("Right") == 0)
{
b1 = 0;
b2 = 4;
b3 = 2;
b4 = false;
}
else if (string.compareTo("Below Left") == 0)
{
b1 = 3;
b2 = 2;
b3 = 4;
b4 = true;
}
else if (string.compareTo("Below Center") == 0)
{
b1 = 3;
b2 = 0;
b3 = 0;
b4 = true;
}
else if (string.compareTo("Below Right") == 0)
{
b1 = 3;
b2 = 4;
b3 = 2;
b4 = true;
}
((JButton)m_ctrl).setVerticalAlignment(b1);
((JButton)m_ctrl).setHorizontalAlignment(b2);
((JButton)m_ctrl).setHorizontalTextPosition(b3);
((JButton)m_ctrl).setVerticalTextPosition(b4);
}

Page: 911 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setRightContextMenu(String string)


{
super.setRightContextMenu(string);
}

public void setSize(String string)


{
super.setSize(string);
}

public void setTabSequence(String string)


{
super.setTabSequence(string);
}

public void setTabStop(String string)


{
super.setTabStop(string);
}

public void setText(String string1)


{
String string2 = string1;
int i = string1.indexOf(38);
if (i != -1)
{
String string3 = string1.substring(0, i);
String string4 = string1.substring(i + 1);
string2 = new StringBuffer(String.valueOf(string3)).append(string4).toString();
char ach[] = string1.substring(i + 1, i + 2).toCharArray();
m_accelerator = ach[0];
((JButton)m_ctrl).setMnemonic(ach[0]);
((JButton)m_ctrl).getUI().installUI((JButton)m_ctrl);
if (!m_actionListener)
{
((JButton)m_ctrl).addActionListener(this);
m_actionListener = true;
}
}
i = string1.indexOf(94);

Page: 912 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (i != -1)
{
StringTokenizer stringTokenizer = new StringTokenizer(string2, "^");
int j = stringTokenizer.countTokens();
m_textLines = new String[j];
for (int k = 0; k < j; k++)
m_textLines[k] = stringTokenizer.nextToken();
}
else
{
m_textLines = new String[1];
m_textLines[0] = string2;
}
((JButton)m_ctrl).setText("");
}

public void setTextColor(String string)


{
super.setTextColor(string);
}

public void setTransparent(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
((JButton)m_ctrl).setOpaque(false);
else
((JButton)m_ctrl).setOpaque(true);
}

public void setVisible(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
((JButton)m_ctrl).setVisible(true);
else
((JButton)m_ctrl).setVisible(false);
}
}

Page: 913 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObRadiobuttonGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObRadiobuttonGui.class

package ObRun.ObPanel.ObCtrlGui;

import javax.swing.*;
import ObRun.ObPanel.ObCtrlData.ObRadiobuttonData;
import java.awt.Component;
import java.awt.SystemColor;

public final synchronized class ObRadiobuttonGui extends ObCtrlGui


{
private Object m_checkedValue;
protected ButtonGroup m_buttonGroup;

public ObRadiobuttonGui()
{
m_buttonGroup = null;
m_ctrl = new JRadioButton();
m_ctrl.setBackground(SystemColor.control);
((JRadioButton)m_ctrl).setOpaque(false);
((JRadioButton)m_ctrl).setVerticalAlignment(0);
((JRadioButton)m_ctrl).setHorizontalAlignment(2);
if (!m_focusListener)
{
m_ctrl.addFocusListener(this);
m_focusListener = true;
}
}

public void addItems(Object aobject[])


{
m_checkedValue = aobject[0];
setText((String)m_checkedValue);
}

public void clearReferences()


{

Page: 914 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_checkedValue = null;
m_buttonGroup = null;
if (m_focusListener)
{
m_ctrl.removeFocusListener(this);
m_focusListener = false;
}
}

public ButtonGroup getButtonGroup()


{
return m_buttonGroup;
}

public String getValue()


{
String string = null;
if (inGrid())
string = getGridValue();
else if (((JRadioButton)m_ctrl).isSelected())
string = m_checkedValue.toString();
if (string == null)
return null;
Object object = ((ObRadiobuttonData)getData()).getBValue(string);
if (object == null)
return null;
else
return object.toString();
}

public boolean isFirstRadioButton()


{
if (getPanel().getButtonGroup() == getButtonGroup())
return false;
getPanel().setButtonGroup(getButtonGroup());
return true;
}

public void setBackgroundColor(String string)


{
if (string.length() == 0)

Page: 915 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_ctrl.setBackground(SystemColor.control);
else
super.setBackgroundColor(string);
}

public void setButtonGroup(ButtonGroup buttonGroup)


{
m_buttonGroup = buttonGroup;
}

public void setControlName(String string)


{
super.setControlName(string);
}

public void setDisabled(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
((JRadioButton)m_ctrl).setEnabled(false);
else
((JRadioButton)m_ctrl).setEnabled(true);
}

public void setFixBottom(String string)


{
super.setFixBottom(string);
}

public void setFixLeft(String string)


{
super.setFixLeft(string);
}

public void setFixRight(String string)


{
super.setFixRight(string);
}

public void setFixTop(String string)


{

Page: 916 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

super.setFixTop(string);
}

public void setFont(String string)


{
super.setFont(string);
}

public void setInitialValue()


{
m_initialValue = m_checkedValue.toString();
}

public void setLeftContextMenu(String string)


{
super.setLeftContextMenu(string);
}

public void setMode(String string)


{
string = string.toUpperCase();
if (string.compareTo("READ ONLY") == 0)
((JRadioButton)m_ctrl).setEnabled(false);
else
((JRadioButton)m_ctrl).setEnabled(true);
}

public void setPosition(String string)


{
super.setPosition(string);
}

public void setRightContextMenu(String string)


{
super.setRightContextMenu(string);
}

public void setSize(String string)


{
super.setSize(string);
}

Page: 917 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setTabSequence(String string)


{
super.setTabSequence(string);
}

public void setTabStop(String string)


{
super.setTabStop(string);
}

public void setText(String string1)


{
String string2 = string1;
int i = string1.indexOf(38);
if (i != -1)
{
String string3 = string1.substring(0, i);
String string4 = string1.substring(i + 1);
string2 = new StringBuffer(String.valueOf(string3)).append(string4).toString();
char ach[] = string1.substring(i + 1, i + 2).toCharArray();
((JRadioButton)m_ctrl).setMnemonic(ach[0]);
((JRadioButton)m_ctrl).setToolTipText(string2);
}
((JRadioButton)m_ctrl).setText(string2);
}

public void setTextColor(String string)


{
super.setTextColor(string);
}

public void setValue(String string)


{
Object object = ((ObRadiobuttonData)getData()).getAValue(string);
try
{
if (inGrid())
setGridValue(object.toString());
else if (object.toString().compareTo((String)m_checkedValue) == 0)
((JRadioButton)m_ctrl).setSelected(true);

Page: 918 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else
((JRadioButton)m_ctrl).setSelected(false);
}
catch (Exception e)
{
}
}

public void setVisible(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
((JRadioButton)m_ctrl).setVisible(true);
else
((JRadioButton)m_ctrl).setVisible(false);
}
}

Page: 919 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObSeparatorGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObSeparatorGui.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.Component;
import javax.swing.JSeparator;

public final synchronized class ObSeparatorGui extends ObCtrlGui


{
public ObSeparatorGui()
{
m_ctrl = new JSeparator();
}
}

Page: 920 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObSpinGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObSpinGui.class

package ObRun.ObPanel.ObCtrlGui;

import ObRun.ObRTTypes.*;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.text.*;
import ObRun.ObFunction.ObApplication;
import ObRun.ObPanel.ObCtrlData.ObCtrlData;
import ObRun.ObPanel.ObCtrlData.ObWindowData;
import java.util.Calendar;
import java.util.EventObject;

public final synchronized class ObSpinGui extends ObCtrlGui


{
private boolean m_hiliteOnFocus;
private Color m_backgroundColor;
private String m_editMask;
private int m_maxLength;
private int m_maxFractions;
private Color m_positiveColor;
private Color m_negativeColor;
private Object m_maximumValue;
private Object m_minimumValue;
private Double m_incrementValue;
private JTextField m_edit;
private JPanel m_buttons;
private JButton m_up;
private JButton m_down;
private String m_lastString;
private byte m_case;
private static ImageIcon m_iconUpArrow;
private static ImageIcon m_iconDownArrow;

Page: 921 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

private boolean m_fieldDefined;


private boolean m_temporary;

static
{
m_iconUpArrow = null;
m_iconDownArrow = null;
}

public ObSpinGui()
{
m_hiliteOnFocus = false;
m_backgroundColor = null;
m_editMask = null;
m_maxLength = 0;
m_maxFractions = 0;
m_positiveColor = null;
m_negativeColor = null;
m_maximumValue = null;
m_minimumValue = null;
m_incrementValue = new Double(1.0);
m_edit = null;
m_buttons = null;
m_up = null;
m_down = null;
m_lastString = null;
m_case = 0;
m_fieldDefined = false;
m_temporary = false;
m_ctrl = new JPanel();
m_ctrl.setBackground(SystemColor.control);
((JPanel)m_ctrl).setLayout(new BorderLayout());
m_edit = new JTextField();
m_edit.setBackground(SystemColor.window);
m_edit.setSelectionColor(SystemColor.textHighlight);
m_edit.setSelectedTextColor(SystemColor.textHighlightText);
((JPanel)m_ctrl).add("West", m_edit);
m_buttons = new JPanel();
m_buttons.setLayout(new BorderLayout());
m_up = new JButton();
m_up.addMouseListener(this);

Page: 922 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_up.setFocusPainted(false);
m_up.addFocusListener(this);
m_iconUpArrow = new ImageIcon(getClass().getResource("Images/UpArrow.gif"));
m_up.setIcon(m_iconUpArrow);
m_down = new JButton();
m_down.addMouseListener(this);
m_down.setFocusPainted(false);
m_down.addFocusListener(this);
m_iconDownArrow = new ImageIcon(getClass().getResource("Images/DownArrow.gif"));
m_down.setIcon(m_iconDownArrow);
m_buttons.add("North", m_up);
m_buttons.add("South", m_down);
((JPanel)m_ctrl).add("East", m_buttons);
if (!m_focusListener)
{
m_edit.addFocusListener(this);
m_focusListener = true;
}
if (!m_keyListener)
{
m_edit.addKeyListener(this);
m_keyListener = true;
}
}

public void adjustDate(ObDateFld obDateFld, boolean flag)


{
String string = new String(obDateFld.toStringWithoutSeparators());
if (string.length() < 8)
{
int i1 = 8 - string.length();
for (int j1 = 0; j1 < i1; j1++)
string = new StringBuffer("0").append(string).toString();
}
Integer integer1 = new Integer(string.substring(0, 4));
Integer integer2 = new Integer(string.substring(4, 6));
Integer integer3 = new Integer(string.substring(6));
Calendar calendar = Calendar.getInstance();
calendar.set(integer1.intValue(), integer2.intValue() - 1, integer3.intValue(), 0, 0, 0);
calendar.set(14, 0);
int k = calendar.get(6);

Page: 923 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (flag)
{
for (int i2 = 0; i2 < m_incrementValue.intValue(); i2++)
calendar.roll(6, true);
if (k > calendar.get(6))
calendar.roll(1, true);
}
else
{
for (int j2 = 0; j2 < m_incrementValue.intValue(); j2++)
calendar.roll(6, false);
if (k < calendar.get(6))
calendar.roll(1, false);
}
setValue(new ObDateFld(calendar.getTime()).toString());
}

public void adjustTime(ObTimeFld obTimeFld, boolean flag)


{
String string = new String(obTimeFld.toStringWithoutSeparators());
if (string.length() < 6)
{
int i1 = 6 - string.length();
for (int j1 = 0; j1 < i1; j1++)
string = new StringBuffer("0").append(string).toString();
}
Integer integer1 = new Integer(string.substring(0, 2));
Integer integer2 = new Integer(string.substring(2, 4));
Integer integer3 = new Integer(string.substring(4));
Calendar calendar = Calendar.getInstance();
calendar.set(0, 0, 0, integer1.intValue(), integer2.intValue(), integer3.intValue());
calendar.set(14, 0);
int k1 = calendar.get(13);
int i2 = calendar.get(12);
if (flag)
{
for (int j2 = 0; j2 < m_incrementValue.intValue(); j2++)
calendar.roll(13, true);
if (k1 > calendar.get(13))
calendar.roll(12, true);
if (i2 > calendar.get(12))

Page: 924 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

calendar.roll(10, true);
}
else
{
for (int k2 = 0; k2 < m_incrementValue.intValue(); k2++)
calendar.roll(13, false);
if (k1 < calendar.get(13))
calendar.roll(12, false);
if (i2 < calendar.get(12))
calendar.roll(10, false);
}
setValue(new ObTimeFld(calendar.getTime()).toString());
}

public void adjustTimeStamp(ObTimeStampFld obTimeStampFld, boolean flag)


{
String string = new String(obTimeStampFld.toStringWithoutSeparators());
if (string.length() < 20)
{
int i1 = 20 - string.length();
for (int j1 = 0; j1 < i1; j1++)
string = new StringBuffer("0").append(string).toString();
}
Integer integer1 = new Integer(string.substring(0, 4));
Integer integer2 = new Integer(string.substring(4, 6));
Integer integer3 = new Integer(string.substring(6, 8));
Integer integer4 = new Integer(string.substring(8, 10));
Integer integer5 = new Integer(string.substring(10, 12));
Integer integer6 = new Integer(string.substring(12, 14));
Calendar calendar = Calendar.getInstance();
calendar.set(integer1.intValue(), integer2.intValue() - 1, integer3.intValue(),
integer4.intValue(), integer5.intValue(), integer6.intValue());
calendar.set(14, 0);
int k1 = calendar.get(13);
int i2 = calendar.get(12);
int j2 = calendar.get(10);
int k2 = calendar.get(6);
if (flag)
{
for (int i3 = 0; i3 < m_incrementValue.intValue(); i3++)
calendar.roll(13, true);

Page: 925 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (k1 > calendar.get(13))


calendar.roll(12, true);
if (i2 > calendar.get(12))
calendar.roll(10, true);
if (j2 > calendar.get(10))
calendar.roll(6, true);
if (k2 > calendar.get(6))
calendar.roll(1, true);
}
else
{
for (int j3 = 0; j3 < m_incrementValue.intValue(); j3++)
calendar.roll(13, false);
if (k1 < calendar.get(13))
calendar.roll(12, false);
if (i2 < calendar.get(12))
calendar.roll(10, false);
if (j2 < calendar.get(10))
calendar.roll(6, false);
if (k2 < calendar.get(6))
calendar.roll(1, false);
}
setValue(new ObTimeStampFld(calendar.getTime()).toString());
}

public void clearReferences()


{
m_backgroundColor = null;
m_editMask = null;
m_positiveColor = null;
m_negativeColor = null;
m_maximumValue = null;
m_minimumValue = null;
m_incrementValue = null;
m_edit = null;
m_buttons = null;
m_up = null;
m_down = null;
m_lastString = null;
super.clearReferences();
}

Page: 926 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void decreaseValue()


{
if (isUnderMinimum(true))
getData().testEvent(1110);
}

public void focusGained(FocusEvent focusEvent)


{
getData().getPanel().setCurrentFocus(getData().getID());
if (focusEvent.getSource() instanceof JTextField)
{
if (m_edit.getDocument() instanceof ObCtrlGui$ObNumericDocument)
setText(formatNumericForInternal(m_edit.getText(), m_editMask));
else if (!(m_edit.getDocument() instanceof ObCtrlGui$ObDateDocument) && !(m_edit.getDocument()
instanceof ObCtrlGui$ObTimeDocument) && !(m_edit.getDocument() instanceof ObCtrlGui$ObTimeStampDocument) &&
m_editMask != null)
setText(formatCharacterForInternal(m_edit.getText(), m_editMask));
m_edit.selectAll();
if (m_hiliteOnFocus)
{
if (m_backgroundColor == null)
m_backgroundColor = m_edit.getBackground();
if (SystemColor.window.getRed() == Color.white.getRed() && SystemColor.window.getGreen() ==
Color.white.getGreen() && SystemColor.window.getBlue() == Color.white.getBlue())
m_edit.setBackground(Color.lightGray);
else
m_edit.setBackground(Color.white);
}
}
if (m_initialValue != null)
setInitialValue();
getData().testEvent(focusEvent.getID());
}

public void focusLost(FocusEvent focusEvent)


{
if (focusEvent.isTemporary())
m_temporary = true;
else
m_temporary = false;

Page: 927 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (focusEvent.getSource() instanceof JTextField)


{
if (m_edit.getDocument() instanceof ObCtrlGui$ObNumericDocument)
setValue(m_edit.getText());
else if (!(m_edit.getDocument() instanceof ObCtrlGui$ObDateDocument) && !(m_edit.getDocument()
instanceof ObCtrlGui$ObTimeDocument) && !(m_edit.getDocument() instanceof ObCtrlGui$ObTimeStampDocument) &&
m_editMask != null)
setValue(m_edit.getText());
if (isOverMaximum(false))
getData().testEvent(1100);
if (isUnderMinimum(false))
getData().testEvent(1110);
if (m_hiliteOnFocus)
m_edit.setBackground(m_backgroundColor);
}
if (m_initialValue != null && !m_initialValue.equals(m_edit.getText()))
getData().testEvent(1040);
if (m_initialValue != null)
setInitialValue();
getData().testEvent(focusEvent.getID());
}

public JTextField getEditControl()


{
return m_edit;
}

public String getValue()


{
if (m_edit.getDocument() instanceof ObCtrlGui$ObNumericDocument)
return formatNumericForInternal(m_edit.getText(), m_editMask);
if (m_edit.getDocument() instanceof ObCtrlGui$ObDateDocument)
return formatDateForInternal(m_edit.getText(), m_editMask);
if (m_edit.getDocument() instanceof ObCtrlGui$ObTimeDocument)
return formatTimeForInternal(m_edit.getText(), m_editMask);
if (m_edit.getDocument() instanceof ObCtrlGui$ObTimeStampDocument)
return formatTimeStampForInternal(m_edit.getText(), m_editMask);
if (m_editMask != null)
return formatCharacterForInternal(m_edit.getText(), m_editMask);
else
return m_edit.getText();

Page: 928 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void increaseValue()


{
if (isOverMaximum(true))
getData().testEvent(1100);
}

public boolean isOverMaximum(boolean flag1)


{
boolean flag2 = false;
if (ObCtrlData.whatEditType(getData().getField().getClass().getName()) == 2 ||
ObCtrlData.whatEditType(getData().getField().getClass().getName()) == 3)
{
try
{
if (getValue() != null)
{
double d = new Double(getValue()).doubleValue();
if (flag1)
{
d += m_incrementValue.doubleValue();
setValue(String.valueOf(d));
}
if (m_maximumValue != null && d > ((Double)m_maximumValue).doubleValue())
{
setValue(String.valueOf(m_maximumValue));
flag2 = true;
}
}
}
catch (NumberFormatException e)
{
}
}
else if (m_edit.getDocument() instanceof ObCtrlGui$ObDateDocument)
{
ObDateFld obDateFld = new ObDateFld(formatDateForInternal(m_edit.getText(), m_editMask));
if (flag1)
adjustDate(obDateFld, true);
if (m_maximumValue != null && obDateFld.isGreaterThan(new ObDateFld((String)m_maximumValue)))

Page: 929 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
setValue(new ObDateFld((String)m_maximumValue).toString());
flag2 = true;
}
}
else if (m_edit.getDocument() instanceof ObCtrlGui$ObTimeDocument)
{
ObTimeFld obTimeFld = new ObTimeFld(formatTimeForInternal(m_edit.getText(), m_editMask));
if (flag1)
adjustTime(obTimeFld, true);
if (m_maximumValue != null && obTimeFld.isGreaterThan(new ObTimeFld((String)m_maximumValue)))
{
setValue(new ObTimeFld((String)m_maximumValue).toString());
flag2 = true;
}
}
else if (m_edit.getDocument() instanceof ObCtrlGui$ObTimeStampDocument)
{
ObTimeStampFld obTimeStampFld = new ObTimeStampFld(formatTimeStampForInternal(m_edit.getText(),
m_editMask));
if (flag1)
adjustTimeStamp(obTimeStampFld, true);
if (m_maximumValue != null && obTimeStampFld.isGreaterThan(new
ObTimeStampFld((String)m_maximumValue)))
{
setValue(new ObTimeStampFld((String)m_maximumValue).toString());
flag2 = true;
}
}
return flag2;
}

public boolean isUnderMinimum(boolean flag1)


{
boolean flag2 = false;
if (ObCtrlData.whatEditType(getData().getField().getClass().getName()) == 2 ||
ObCtrlData.whatEditType(getData().getField().getClass().getName()) == 3)
{
try
{
if (getValue() != null)

Page: 930 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
double d = new Double(getValue()).doubleValue();
if (flag1)
{
d -= m_incrementValue.doubleValue();
setValue(String.valueOf(d));
}
if (m_minimumValue != null && d < ((Double)m_minimumValue).doubleValue())
{
setValue(String.valueOf(m_minimumValue));
flag2 = true;
}
}
}
catch (NumberFormatException e)
{
}
}
else if (m_edit.getDocument() instanceof ObCtrlGui$ObDateDocument)
{
ObDateFld obDateFld = new ObDateFld(formatDateForInternal(m_edit.getText(), m_editMask));
if (flag1)
adjustDate(obDateFld, false);
if (m_minimumValue != null && obDateFld.isLessThan(new ObDateFld((String)m_minimumValue)))
{
setValue(new ObDateFld((String)m_minimumValue).toString());
flag2 = true;
}
}
else if (m_edit.getDocument() instanceof ObCtrlGui$ObTimeDocument)
{
ObTimeFld obTimeFld = new ObTimeFld(formatTimeForInternal(m_edit.getText(), m_editMask));
if (flag1)
adjustTime(obTimeFld, false);
if (m_minimumValue != null && obTimeFld.isLessThan(new ObTimeFld((String)m_minimumValue)))
{
setValue(new ObTimeFld((String)m_minimumValue).toString());
flag2 = true;
}
}
else if (m_edit.getDocument() instanceof ObCtrlGui$ObTimeStampDocument)

Page: 931 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
ObTimeStampFld obTimeStampFld = new ObTimeStampFld(formatTimeStampForInternal(m_edit.getText(),
m_editMask));
if (flag1)
adjustTimeStamp(obTimeStampFld, false);
if (m_minimumValue != null && obTimeStampFld.isLessThan(new
ObTimeStampFld((String)m_minimumValue)))
{
setValue(new ObTimeStampFld((String)m_minimumValue).toString());
flag2 = true;
}
}
return flag2;
}

public void keyPressed(KeyEvent keyEvent)


{
if (keyEvent.getKeyCode() == 86 && keyEvent.isControlDown())
{
pasteFromClipboard();
keyEvent.consume();
}
if (!inGrid() && keyEvent.getKeyCode() == 38)
{
increaseValue();
getData().testEvent(1090);
}
if (!inGrid() && keyEvent.getKeyCode() == 40)
{
decreaseValue();
getData().testEvent(1080);
}
super.keyPressed(keyEvent);
getData().testEvent(keyEvent.getID());
}

public void keyTyped(KeyEvent keyEvent)


{
if (keyEvent.getKeyChar() != 9 && keyEvent.getKeyChar() != 8)
{
setFieldDetails(m_fieldDefined, m_editMask);

Page: 932 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (m_edit.getDocument() instanceof ObCtrlGui$ObNumericDocument)


validateNumericEntry(m_edit.getText(), m_maxLength, m_maxFractions, keyEvent,
m_edit.getCaretPosition(), m_edit.getSelectedText());
else if (m_edit.getDocument() instanceof ObCtrlGui$ObDateDocument)
validateDateEntry(m_edit.getText(), m_editMask, keyEvent, m_maxLength,
m_edit.getCaretPosition(), m_edit.getSelectedText());
else if (m_edit.getDocument() instanceof ObCtrlGui$ObTimeDocument)
validateTimeEntry(m_edit.getText(), m_editMask, keyEvent, m_maxLength,
m_edit.getCaretPosition(), m_edit.getSelectedText());
else if (m_edit.getDocument() instanceof ObCtrlGui$ObTimeStampDocument)
validateTimeStampEntry(m_edit.getText(), m_editMask, keyEvent, m_maxLength,
m_edit.getCaretPosition(), m_edit.getSelectedText());
else
validateCharacterEntry(m_edit.getText(), m_editMask, keyEvent, m_maxLength,
m_edit.getCaretPosition(), m_edit.getSelectedText());
}
getData().testEvent(keyEvent.getID());
}

public void mouseClicked(MouseEvent mouseEvent)


{
if (mouseEvent.getSource() == m_up && m_up.isEnabled())
{
increaseValue();
getData().testEvent(1090);
}
else if (mouseEvent.getSource() == m_down && m_down.isEnabled())
{
decreaseValue();
getData().testEvent(1080);
}
if (m_modifiedEvent)
getData().testEvent(1030);
if (mouseEvent.getClickCount() > 1)
getData().testEvent(1050);
getData().testEvent(mouseEvent.getID());
}

public void pasteFromClipboard()


{
Transferable transferable = m_ctrl.getToolkit().getSystemClipboard().getContents(this);

Page: 933 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (transferable == null)
setValue(null);
else if (transferable.isDataFlavorSupported(DataFlavor.stringFlavor))
{
try
{
setFieldDetails(m_fieldDefined, m_editMask);
m_edit.paste();
if (m_edit.getDocument() instanceof ObCtrlGui$ObNumericDocument)
setValue(formatNumericForInternal(m_edit.getText(), m_editMask));
else if (m_edit.getDocument() instanceof ObCtrlGui$ObDateDocument)
setValue(formatDateForInternal(m_edit.getText(), m_editMask));
else if (m_edit.getDocument() instanceof ObCtrlGui$ObTimeDocument)
setValue(formatTimeForInternal(m_edit.getText(), m_editMask));
else if (m_edit.getDocument() instanceof ObCtrlGui$ObTimeStampDocument)
setValue(formatTimeStampForInternal(m_edit.getText(), m_editMask));
else if (m_editMask != null)
setValue(formatCharacterForInternal(m_edit.getText(), m_editMask));
else
setValue(m_edit.getText());
}
catch (Exception e)
{
}
}
}

public void registerEvent(int i)


{
switch (i)
{
case 500:
case 501:
case 502:
case 504:
case 505:
if (!m_mouseListener)
{
m_edit.addMouseListener(this);
m_mouseListener = true;
}

Page: 934 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

break;

case 503:
case 506:
if (!m_mouseMotionListener)
{
m_edit.addMouseMotionListener(this);
m_up.addMouseMotionListener(this);
m_down.addMouseMotionListener(this);
m_mouseMotionListener = true;
}
break;

case 100:
case 101:
case 102:
case 103:
if (!m_componentListener)
{
m_ctrl.addComponentListener(this);
m_componentListener = true;
}
break;

case 1004:
case 1005:
if (!m_focusListener)
{
m_edit.addFocusListener(this);
m_focusListener = true;
}
break;

case 400:
case 401:
case 402:
if (!m_keyListener)
{
m_edit.addKeyListener(this);
m_keyListener = true;
}

Page: 935 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

break;

case 900:
if (!m_textListener && m_ctrl instanceof TextComponent)
{
((TextComponent)m_ctrl).addTextListener(this);
m_textListener = true;
}
break;

case 1040:
setInitialValue();
if (!m_focusListener)
{
m_edit.addFocusListener(this);
m_focusListener = true;
}
break;

case 1050:
if (!m_mouseListener)
{
m_edit.addMouseListener(this);
m_mouseListener = true;
}
break;

case 1030:
m_modifiedEvent = true;
break;
}
}

public void setBackgroundColor(String string)


{
if (string.length() == 0)
{
m_ctrl.setBackground(SystemColor.control);
m_edit.setBackground(SystemColor.window);
return;
}

Page: 936 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Integer ainteger[] = getIntegers(string);


if (string.indexOf(40) != -1 || ainteger.length == 1)
{
try
{
m_edit.setBackground(ObCtrlGui.m_javaCol[ainteger[0].intValue()]);
}
catch (Exception e)
{
}
}
else
m_edit.setBackground(new Color(ainteger[0].intValue(), ainteger[1].intValue(),
ainteger[2].intValue()));
}

public void setBorder(String string)


{
Insets insets = m_edit.getInsets();
Object object = null;
if (string.compareTo("None") == 0)
object = new EmptyBorder(insets);
else if (string.compareTo("Standard") == 0)
object = new LineBorder(Color.black, 1);
else if (string.compareTo("Indented") == 0)
object = new BevelBorder(1);
else if (string.compareTo("Extruded") == 0)
object = new BevelBorder(0);
else if (string.compareTo("Bump") == 0)
object = new EtchedBorder();
m_edit.setBorder(object);
}

public void setCase(String string)


{
string = string.toUpperCase();
if (string.compareTo("MIXED") == 0)
m_case = 0;
else if (string.compareTo("UPPER") == 0)
m_case = 1;
else if (string.compareTo("LOWER") == 0)

Page: 937 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_case = 2;
}

public void setColumnHeading(String string)


{
super.setColumnHeading(string);
}

public void setControlName(String string)


{
super.setControlName(string);
}

public void setDisabled(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
{
m_edit.setEditable(false);
m_up.setEnabled(false);
m_down.setEnabled(false);
}
else
{
m_edit.setEditable(true);
m_up.setEnabled(true);
m_down.setEnabled(true);
}
}

public void setEditMask(String string)


{
if (string.startsWith("%ss"))
m_editMask = null;
else
m_editMask = new String(string);
}

protected void setFieldDetails(boolean flag, String string1)


{
if (m_maxLength == 0 && m_maxFractions == 0)

Page: 938 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

flag = false;
if (!flag)
{
if (m_case == 1)
m_edit.setDocument(new ObCtrlGui$ObUpperCaseDocument());
else if (m_case == 2)
m_edit.setDocument(new ObCtrlGui$ObLowerCaseDocument());
int i1 = false;
int j1 = 0;
Color color1 = null;
Color color2 = null;
String string2 = getData().getField().getClass().getName();
if (ObCtrlData.whatEditType(string2) == 3 || ObCtrlData.whatEditType(string2) == 2)
{
m_edit.setDocument(new ObCtrlGui$ObNumericDocument());
i1 = false;
if (string1 != null)
{
for (int k1 = 0; k1 < string1.length(); k1++)
{
if (string1.charAt(k1) == 35 || string1.charAt(k1) == 48)
i1++;
if (string1.charAt(k1) == 46 || string1.charAt(k1) == 59)
break;
}
j1 = 0;
int i3 = string1.indexOf(".");
if (i3 != -1)
{
for (int j3 = i3; j3 < string1.length(); j3++)
{
if (string1.charAt(j3) == 35 || string1.charAt(j3) == 48)
j1++;
if (string1.charAt(j3) == 59)
break;
}
}
}
if (string1.indexOf("[") != -1 && string1.indexOf("]") != -1 && string1.indexOf("[") <
string1.indexOf(";"))
{

Page: 939 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

color1 = ObCtrlData.whatColor(string1.substring(string1.indexOf("["),
string1.indexOf("]") + 1));
string1 = string1.substring(string1.indexOf("]") + 1);
}
if (string1.lastIndexOf("[") != -1 && string1.lastIndexOf("]") != -1 &&
string1.lastIndexOf("[") > string1.indexOf(";"))
{
color2 = ObCtrlData.whatColor(string1.substring(string1.lastIndexOf("["),
string1.lastIndexOf("]") + 1));
string1 = new StringBuffer(String.valueOf(string1.substring(0, string1.indexOf(";") +
1))).append(string1.substring(string1.lastIndexOf("]") + 1)).toString();
}
}
else if (ObCtrlData.whatEditType(string2) == 4)
{
m_edit.setDocument(new ObCtrlGui$ObDateDocument());
i1 = false;
if (string1 == null || string1.length() == 0)
string1 = ObApplication.getRunOptionValue(ObApplication.getEnvironment() +
".DefaultDateMask");
for (int i2 = 0; i2 < string1.length(); i2++)
i1++;
string1 = string1.replace('-', '/');
string1 = string1.replace('m', 'M');
if (string1.indexOf("MM") == -1)
i1++;
if (string1.indexOf("dd") == -1)
i1++;
}
else if (ObCtrlData.whatEditType(string2) == 5)
{
m_edit.setDocument(new ObCtrlGui$ObTimeDocument());
i1 = false;
if (string1 == null || string1.length() == 0)
string1 = ObApplication.getRunOptionValue(ObApplication.getEnvironment() +
".DefaultTimeMask");
for (int j2 = 0; j2 < string1.length(); j2++)
i1++;
if (string1.indexOf(97) == -1)
string1 = string1.replace('h', 'H');
else

Page: 940 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

i1++;
string1 = string1.replace('f', 'S');
if (string1.indexOf("HH") == -1 && string1.indexOf("hh") == -1)
i1++;
}
else if (ObCtrlData.whatEditType(string2) == 6)
{
m_edit.setDocument(new ObCtrlGui$ObTimeStampDocument());
i1 = false;
if (string1 == null || string1.length() == 0)
string1 = ObApplication.getRunOptionValue(ObApplication.getEnvironment() +
".DefaultTimeStampMask");
for (int k2 = 0; k2 < string1.length(); k2++)
i1++;
string1 = string1.replace('-', '/');
if (string1.indexOf(97) == -1)
string1 = string1.replace('h', 'H');
else
i1++;
string1 = string1.replace('f', 'S');
StringBuffer stringBuffer = new StringBuffer(string1);
for (int k3 = 0; k3 < string1.indexOf(" "); k3++)
if (stringBuffer.charAt(k3) == 109)
stringBuffer.setCharAt(k3, 'M');
string1 = stringBuffer.toString();
if (string1.indexOf("MM") == -1)
i1++;
if (string1.indexOf("dd") == -1)
i1++;
if (string1.indexOf("HH") == -1 && string1.indexOf("hh") == -1)
i1++;
}
else
{
try
{
i1 = getData().getField().getCLength() - 1;
}
catch (Exception e)
{
i1 = false;

Page: 941 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
}
setValidationMembers(i1, j1, string1, color1, color2);
}
}

public void setFixBottom(String string)


{
super.setFixBottom(string);
}

public void setFixLeft(String string)


{
super.setFixLeft(string);
}

public void setFixRight(String string)


{
super.setFixRight(string);
}

public void setFixTop(String string)


{
super.setFixTop(string);
}

public void setFont(String string)


{
m_edit.setFont(loadFont(string));
}

public void setHiliteOnFocus(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
m_hiliteOnFocus = true;
else
m_hiliteOnFocus = false;
}

public void setInitialValue()

Page: 942 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
m_initialValue = getValue();
}

public void setLeftContextMenu(String string)


{
super.setLeftContextMenu(string);
}

public void setMaximumValue(String string)


{
try
{
m_maximumValue = new Double(string);
}
catch (NumberFormatException e)
{
m_maximumValue = new String(string.replace(',', '-'));
}
}

public void setMinimumValue(String string)


{
try
{
m_minimumValue = new Double(string);
}
catch (NumberFormatException e)
{
m_minimumValue = new String(string.replace(',', '-'));
}
}

public void setMode(String string)


{
string = string.toUpperCase();
if (string.compareTo("READ ONLY") == 0)
m_edit.setEditable(false);
else
m_edit.setEditable(true);
}

Page: 943 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setPosition(String string)


{
super.setPosition(string);
}

public void setRightContextMenu(String string)


{
super.setRightContextMenu(string);
}

public void setSize(String string)


{
Integer ainteger[] = getIntegers(string);
getPanel().setChildSize(this, ainteger[0].intValue(), ainteger[1].intValue());
Dimension dimension = new Dimension(ainteger[0].intValue() - 17, ainteger[1].intValue());
m_edit.setPreferredSize(dimension);
m_buttons.setSize(17, ainteger[1].intValue());
dimension = new Dimension(17, ainteger[1].intValue() / 2);
m_up.setPreferredSize(dimension);
m_down.setPreferredSize(dimension);
}

public void setSpinIncrement(String string)


{
m_incrementValue = new Double(string);
}

public void setTabSequence(String string)


{
super.setTabSequence(string);
}

public void setTabStop(String string)


{
super.setTabStop(string);
}

public void setText(String string)


{
m_edit.setText(string);

Page: 944 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setTextAlignment(String string)


{
byte b = 0;
if (string.compareTo("Left") == 0)
b = 2;
else if (string.compareTo("Center") == 0)
b = 0;
else if (string.compareTo("Right") == 0)
b = 4;
m_edit.setHorizontalAlignment(b);
}

public void setTextColor(String string)


{
Integer ainteger[] = getIntegers(string);
if (string.indexOf(40) != -1 || ainteger.length == 1)
{
try
{
m_edit.setForeground(ObCtrlGui.m_javaCol[ainteger[0].intValue()]);
}
catch (Exception e)
{
}
}
else
m_edit.setForeground(new Color(ainteger[0].intValue(), ainteger[1].intValue(),
ainteger[2].intValue()));
}

protected void setValidationMembers(int i, int j, String string, Color color1, Color color2)
{
m_maxLength = i;
m_maxFractions = j;
m_editMask = string;
if (color1 == null && color2 != null)
color1 = m_ctrl.getForeground();
m_positiveColor = color1;
m_negativeColor = color2;

Page: 945 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_fieldDefined = true;
}

public void setValue(String string)


{
setFieldDetails(m_fieldDefined, m_editMask);
if (m_edit.getDocument() instanceof ObCtrlGui$ObNumericDocument)
{
if (m_positiveColor != null && string.indexOf(45) == -1)
setTextColor(m_positiveColor);
if (m_negativeColor != null && string.indexOf(45) != -1)
setTextColor(m_negativeColor);
setText(formatNumericForDisplay(string, m_editMask));
}
else if (m_edit.getDocument() instanceof ObCtrlGui$ObDateDocument)
setText(formatDateForDisplay(string, m_editMask));
else if (m_edit.getDocument() instanceof ObCtrlGui$ObTimeDocument)
setText(formatTimeForDisplay(string, m_editMask));
else if (m_edit.getDocument() instanceof ObCtrlGui$ObTimeStampDocument)
setText(formatTimeStampForDisplay(string, m_editMask));
else if (m_editMask != null)
setText(formatCharacterForDisplay(string, m_editMask));
else
setText(string);
isUnderMinimum(false);
isOverMaximum(false);
}

public void setVisible(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
((JPanel)m_ctrl).setVisible(true);
else
((JPanel)m_ctrl).setVisible(false);
}

protected void validateDateEntry(String string1, String string2, KeyEvent keyEvent, int i, int j,
String string3)
{
if (string1.length() + 1 > i && string3 == null)

Page: 946 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
keyEvent.consume();
Toolkit.getDefaultToolkit().beep();
}
Character character = null;
if (j < string2.length())
character = new Character(string2.charAt(j));
if (character != null && character.charValue() != keyEvent.getKeyChar() && character.charValue() !=
71 && character.charValue() != 121 && character.charValue() != 77 && character.charValue() != 100 &&
character.charValue() != 69 && character.charValue() != 68 && character.charValue() != 70 &&
character.charValue() != 119 && character.charValue() != 87)
{
try
{
m_edit.getDocument().insertString(m_edit.getDocument().getEndPosition().getOffset() - 1,
character.toString(), null);
character = new Character(string2.charAt(j + 1));
}
catch (Exception e)
{
}
}
}

protected void validateTimeEntry(String string1, String string2, KeyEvent keyEvent, int i, int j,
String string3)
{
if (string1.length() + 1 > i && string3 == null)
{
keyEvent.consume();
Toolkit.getDefaultToolkit().beep();
}
Character character = null;
if (j < string2.length())
character = new Character(string2.charAt(j));
if (character != null && character.charValue() != keyEvent.getKeyChar())
{
if (character.charValue() != 115 && character.charValue() != 83 && character.charValue() != 104
&& character.charValue() != 72 && character.charValue() != 109 && character.charValue() != 97 &&
character.charValue() != 107 && character.charValue() != 75 && character.charValue() != 122)
{

Page: 947 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

try
{
m_edit.getDocument().insertString(m_edit.getDocument().getEndPosition().getOffset() -
1, character.toString(), null);
character = new Character(string2.charAt(j + 1));
}
catch (Exception e)
{
}
}
if (character.charValue() == 97 && isDigit(keyEvent.getKeyChar()))
{
keyEvent.consume();
Toolkit.getDefaultToolkit().beep();
}
}
}

protected void validateTimeStampEntry(String string1, String string2, KeyEvent keyEvent, int i, int j,
String string3)
{
if (string1.length() + 1 > i && string3 == null)
{
keyEvent.consume();
Toolkit.getDefaultToolkit().beep();
}
Character character = null;
if (j < string2.length())
character = new Character(string2.charAt(j));
if (character != null && character.charValue() != keyEvent.getKeyChar())
{
if (character.charValue() != 71 && character.charValue() != 121 && character.charValue() != 77
&& character.charValue() != 100 && character.charValue() != 69 && character.charValue() != 68 &&
character.charValue() != 70 && character.charValue() != 119 && character.charValue() != 87 &&
character.charValue() != 115 && character.charValue() != 83 && character.charValue() != 104 &&
character.charValue() != 72 && character.charValue() != 109 && character.charValue() != 97 &&
character.charValue() != 107 && character.charValue() != 75 && character.charValue() != 122)
{
try
{

Page: 948 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_edit.getDocument().insertString(m_edit.getDocument().getEndPosition().getOffset() -
1, character.toString(), null);
character = new Character(string2.charAt(j + 1));
}
catch (Exception e)
{
}
}
if (character.charValue() == 97 && isDigit(keyEvent.getKeyChar()))
{
keyEvent.consume();
Toolkit.getDefaultToolkit().beep();
}
}
}
}

Page: 949 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObStaticGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObStaticGui.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
import ObRun.ObPanel.ObCtrlData.ObCtrlData;
import ObRun.ObPanel.ObCtrlData.ObWindowData;
import java.util.StringTokenizer;

public final synchronized class ObStaticGui extends ObCtrlGui


{
public static final byte TEXT = 0;
public static final byte GROUP = 1;
public static final byte FRAME = 2;
public static final byte PICTURE = 3;
public static final byte HORZLINE = 4;
public static final byte VERTLINE = 5;
private byte m_staticType;
private int m_sizeWidth;
private int m_sizeHeight;
private String m_textLines[];

public ObStaticGui()
{
m_staticType = 0;
m_sizeWidth = 0;
m_sizeHeight = 0;
m_textLines = null;
m_ctrl = new ObStaticGui$ObStatic(this);
m_ctrl.setBackground(SystemColor.window);
((JLabel)m_ctrl).setVerticalAlignment(1);
}

static String[] access$0(ObStaticGui obStaticGui)


{

Page: 950 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

return obStaticGui.m_textLines;
}

public void clearReferences()


{
if (m_textLines != null)
{
for (int i = 0; i < m_textLines.length; i++)
m_textLines[i] = null;
m_textLines = null;
}
super.clearReferences();
}

public String getValue()


{
return ((JLabel)m_ctrl).getText();
}

public void setBackgroundColor(String string)


{
if (string.length() == 0)
m_ctrl.setBackground(SystemColor.window);
else
super.setBackgroundColor(string);
}

public void setBitmapFile(String string)


{
if (m_staticType == 3)
{
ImageIcon imageIcon = ObCtrlGui.loadBitmapFile(string);
if (imageIcon != null)
((JLabel)m_ctrl).setIcon(imageIcon);
}
}

public void setBorder(String string)


{
Insets insets = ((JLabel)m_ctrl).getInsets();
Object object = null;

Page: 951 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (string.compareTo("None") == 0)
object = new EmptyBorder(insets);
else if (string.compareTo("Standard") == 0)
object = new LineBorder(Color.black, 1);
else if (string.compareTo("Indented") == 0)
object = new BevelBorder(1, Color.white, new Color(128, 128, 128));
else if (string.compareTo("Extruded") == 0)
object = new BevelBorder(0, Color.white, new Color(128, 128, 128));
else if (string.compareTo("Bump") == 0)
object = new EtchedBorder(Color.white, new Color(128, 128, 128));
((JLabel)m_ctrl).setBorder(object);
}

public void setControlName(String string)


{
super.setControlName(string);
}

public void setFixBottom(String string)


{
super.setFixBottom(string);
}

public void setFixLeft(String string)


{
super.setFixLeft(string);
}

public void setFixRight(String string)


{
super.setFixRight(string);
}

public void setFixTop(String string)


{
super.setFixTop(string);
}

public void setFont(String string)


{
super.setFont(string);

Page: 952 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setLabelFor(String string)


{
ObCtrlGui obCtrlGui = getData().getPanel().getCompByID(new Integer(string)).getGuiCtrl();
if (obCtrlGui instanceof ObMultilineEditGui)
((JLabel)m_ctrl).setLabelFor(((ObMultilineEditGui)obCtrlGui).getEditControl());
else if (obCtrlGui instanceof ObSpinGui)
((JLabel)m_ctrl).setLabelFor(((ObSpinGui)obCtrlGui).getEditControl());
else if (obCtrlGui instanceof ObListGui)
((JLabel)m_ctrl).setLabelFor(((ObListGui)obCtrlGui).getListControl());
else
((JLabel)m_ctrl).setLabelFor(obCtrlGui.getComponent());
}

public void setLeftContextMenu(String string)


{
super.setLeftContextMenu(string);
}

public void setPosition(String string)


{
super.setPosition(string);
}

public void setRightContextMenu(String string)


{
super.setRightContextMenu(string);
}

public void setSize(String string)


{
Integer ainteger[] = getIntegers(string);
getPanel().setChildSize(this, ainteger[0].intValue(), ainteger[1].intValue());
m_sizeWidth = ainteger[0].intValue();
m_sizeHeight = ainteger[1].intValue();
}

public void setStaticType(String string1)


{
if (string1.compareTo("Text") == 0)

Page: 953 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_staticType = 0;
else if (string1.compareTo("Group") == 0)
m_staticType = 1;
else if (string1.compareTo("Frame") == 0)
m_staticType = 2;
else if (string1.compareTo("Picture") == 0)
m_staticType = 3;
else if (string1.compareTo("HorzLine") == 0)
{
m_staticType = 4;
String string2 = new StringBuffer(String.valueOf(String.valueOf(m_sizeWidth))).append("
2").toString();
setSize(string2);
if (((JLabel)m_ctrl).getBorder() instanceof EmptyBorder)
setBorder("Bump");
}
else if (string1.compareTo("VertLine") == 0)
{
m_staticType = 5;
String string3 = new StringBuffer("2 ").append(String.valueOf(m_sizeHeight)).toString();
setSize(string3);
if (((JLabel)m_ctrl).getBorder() instanceof EmptyBorder)
setBorder("Bump");
}
setText(getValue());
}

public void setText(String string1)


{
if (m_staticType == 0 || m_staticType == 1)
{
String string2 = string1;
int i1 = string1.indexOf(38);
if (i1 != -1)
{
String string3 = string1.substring(0, i1);
String string4 = string1.substring(i1 + 1);
string2 = new StringBuffer(String.valueOf(string3)).append(string4).toString();
char ach[] = string1.substring(i1 + 1, i1 + 2).toCharArray();
((JLabel)m_ctrl).setDisplayedMnemonic(ach[0]);
}

Page: 954 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

((JLabel)m_ctrl).setText(string2);
i1 = string1.indexOf(94);
if (i1 != -1)
{
StringTokenizer stringTokenizer1 = new StringTokenizer(string1, "^");
int j1 = stringTokenizer1.countTokens();
m_textLines = new String[j1];
for (int k1 = 0; k1 < j1; k1++)
m_textLines[k1] = stringTokenizer1.nextToken();
((JLabel)m_ctrl).setText("");
}
else
{
FontMetrics fontMetrics = m_ctrl.getToolkit().getFontMetrics(m_ctrl.getFont());
if (m_sizeWidth < fontMetrics.stringWidth(string2))
{
StringTokenizer stringTokenizer2 = new StringTokenizer(string2, " ");
int i2 = stringTokenizer2.countTokens();
String string5 = null;
<badSignature> = null;
for (int j2 = 0; j2 < i2; j2++)
{
local = string5;
String string6 = stringTokenizer2.nextToken();
if (string5 == null)
string5 = new String(string6);
else
{
string5 = new StringBuffer(String.valueOf(string5)).append(" ").toString();
string5 = new StringBuffer(String.valueOf(string5)).append(string6).toString();
}
if (m_sizeWidth < fontMetrics.stringWidth(string5))
{
if (m_textLines == null)
m_textLines = new String[0];
String astring2[] = new String[m_textLines.length + 1];
for (int i3 = 0; i3 < m_textLines.length; i3++)
astring2[i3] = m_textLines[i3];
astring2[m_textLines.length] = new String(local);
m_textLines = astring2;
string5 = string6;

Page: 955 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
}
if (string5 != null)
{
String astring1[] = new String[m_textLines.length + 1];
for (int k2 = 0; k2 < m_textLines.length; k2++)
astring1[k2] = m_textLines[k2];
astring1[m_textLines.length] = new String(string5);
m_textLines = astring1;
}
((JLabel)m_ctrl).setText("");
}
}
}
else
((JLabel)m_ctrl).setText("");
}

public void setTextAlignment(String string)


{
byte b = 0;
if (string.compareTo("Left") == 0)
b = 2;
else if (string.compareTo("Center") == 0)
b = 0;
else if (string.compareTo("Right") == 0)
b = 4;
((JLabel)m_ctrl).setHorizontalAlignment(b);
}

public void setTextColor(String string)


{
super.setTextColor(string);
}

public void setTransparent(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
((JLabel)m_ctrl).setOpaque(false);
else

Page: 956 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

((JLabel)m_ctrl).setOpaque(true);
}

public void setValue(String string)


{
setText(string);
}

public void setVisible(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
((JLabel)m_ctrl).setVisible(true);
else
((JLabel)m_ctrl).setVisible(false);
}
}

Page: 957 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObStaticGui$ObStatic

Full name of class: ObRun.ObPanel.ObCtrlGui.ObStaticGui$ObStatic.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.*;
import javax.swing.*;
import javax.swing.plaf.ComponentUI;

synchronized class ObStaticGui$ObStatic extends JLabel


{
private final ObStaticGui this$0 = obStaticGui;

ObStaticGui$ObStatic(ObStaticGui obStaticGui)
{
}

public void paintComponent(Graphics g)


{
if (ObStaticGui.access$0(this$0) == null)
super.paintComponent(g);
else
{
int i1 = 0;
Dimension dimension = getSize();
FontMetrics fontMetrics = getToolkit().getFontMetrics(getFont());
int j1 = fontMetrics.getHeight();
int k = fontMetrics.getAscent();
int i2 = k + (dimension.height - ObStaticGui.access$0(this$0).length * j1) / 2;
((JLabel)this$0.m_ctrl).getUI().update(g, (JLabel)this$0.m_ctrl);
for (int j2 = 0; j2 < ObStaticGui.access$0(this$0).length; )
{
Insets insets = ((JLabel)this$0.m_ctrl).getInsets();
switch (((JLabel)this$0.m_ctrl).getHorizontalAlignment())
{
case 0:
i1 = (dimension.width - fontMetrics.stringWidth(ObStaticGui.access$0(this$0)[j2])) / 2;

Page: 958 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

break;

case 4:
i1 = dimension.width - insets.right -
fontMetrics.stringWidth(ObStaticGui.access$0(this$0)[j2]);
break;

default:
i1 = insets.left;
break;
}
g.drawString(ObStaticGui.access$0(this$0)[j2], i1, i2);
j2++;
i2 += j1;
}
invalidate();
}
}
}

Page: 959 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObStatusbarGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObStatusbarGui.class

import java.awt.*;
import javax.swing.JComponent;
import javax.swing.JLabel;

public final synchronized class ObStatusbarGui extends ObCtrlGui


{
public ObStatusbarGui()
{
m_ctrl = new JLabel();
Dimension dimension = new Dimension(25, 25);
((JLabel)m_ctrl).setPreferredSize(dimension);
m_ctrl.setBackground(SystemColor.menu);
}
}

Page: 960 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObTabSequence

Full name of class: ObRun.ObPanel.ObCtrlGui.ObTabSequence.class

package ObRun.ObPanel.ObCtrlGui;

public final synchronized class ObTabSequence


{
public int m_guiId;
public int m_tabSequence;

public ObTabSequence(int i, int j)


{
m_guiId = i;
m_tabSequence = j;
}

public int getTabSequence()


{
return m_tabSequence;
}
}

Page: 961 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObToolbarbuttonGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObToolbarbuttonGui.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import ObRun.ObPanel.ObCtrlData.ObCtrlData;
import ObRun.ObPanel.ObCtrlData.ObWindowData;

public final synchronized class ObToolbarbuttonGui extends ObCtrlGui implements ActionListener


{
private String m_hintText;
private Integer m_menuItem;

public ObToolbarbuttonGui()
{
m_hintText = " ";
m_ctrl = new JButton();
((JButton)m_ctrl).setMargin(new Insets(2, 2, 2, 2));
m_ctrl.setBackground(SystemColor.menu);
registerEvent(503);
((JButton)m_ctrl).setFocusPainted(false);
if (!m_actionListener)
{
((JButton)m_ctrl).addActionListener(this);
m_actionListener = true;
}
}

public void actionPerformed(ActionEvent actionEvent)


{
if (m_menuItem != null)
{
ObCtrlData obCtrlData = getData().getPanel().getCompByID(m_menuItem);
if (obCtrlData != null)
obCtrlData.testEvent(1020);

Page: 962 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
}

public void addChild(ObCtrlGui obCtrlGui)


{
super.addChild(obCtrlGui);
obCtrlGui.setPanel(getPanel());
((JButton)m_ctrl).add(obCtrlGui.getComponent());
}

public void clearReferences()


{
m_hintText = null;
m_menuItem = null;
super.clearReferences();
}

public void mouseClicked(MouseEvent mouseEvent)


{
}

public void mouseMoved(MouseEvent mouseEvent)


{
if (m_panel.m_statusbar != null)
m_panel.m_statusbar.setText(m_hintText);
getData().testEvent(mouseEvent.getID());
}

public void setBitmapFile(String string)


{
ImageIcon imageIcon = ObCtrlGui.loadBitmapFile(string);
if (imageIcon.getIconHeight() == -1 || imageIcon.getIconWidth() == -1)
{
try
{
imageIcon = new ImageIcon(getClass().getResource("Images/ButtonDefault.gif"));
}
catch (Exception e)
{
}
}

Page: 963 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (imageIcon != null)
((JButton)m_ctrl).setIcon(imageIcon);
}

public void setDisabled(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
((JButton)m_ctrl).setEnabled(false);
else
((JButton)m_ctrl).setEnabled(true);
}

public void setFlyOverHint(String string)


{
((JButton)m_ctrl).setToolTipText(string);
}

public void setHintText(String string)


{
m_hintText = string;
}

public void setMenuItem(String string1)


{
m_menuItem = new Integer(string1);
ObCtrlData obCtrlData = getData().getPanel().getCompByID(new Integer(string1));
String string2 = obCtrlData.getProperty(new
StringBuffer(String.valueOf(string1)).append(".FlyOverHint").toString(), true);
setFlyOverHint(string2);
String string3 = obCtrlData.getProperty(new
StringBuffer(String.valueOf(string1)).append(".HintText").toString(), true);
setHintText(string3);
}

public void setVisible(String string)


{
string = string.toUpperCase();
if (string.compareTo("YES") == 0)
{
boolean flag = ((JButton)m_ctrl).isVisible();

Page: 964 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

((JButton)m_ctrl).setVisible(true);
if (!flag)
((ObToolbarGui)getParent()).reBuild();
}
else
{
((JButton)m_ctrl).setVisible(false);
((JToolBar)getParent().getComponent()).remove(m_ctrl);
((JToolBar)getParent().getComponent()).validate();
}
}
}

Page: 965 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObToolbarGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObToolbarGui.class

package ObRun.ObPanel.ObCtrlGui;

import java.awt.*;
import java.util.Enumeration;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JToolBar;

public final synchronized class ObToolbarGui extends ObCtrlGui


{
public ObToolbarGui()
{
m_ctrl = new JToolBar();
m_ctrl.setBackground(SystemColor.menu);
}

public void addChild(ObCtrlGui obCtrlGui)


{
super.addChild(obCtrlGui);
obCtrlGui.setPanel(getPanel());
if (obCtrlGui instanceof ObSeparatorGui)
((JToolBar)m_ctrl).addSeparator();
else
((JToolBar)m_ctrl).add((JButton)obCtrlGui.getComponent());
}

public void reBuild()


{
((JToolBar)m_ctrl).removeAll();
for (Enumeration enumeration = m_children.elements(); enumeration.hasMoreElements(); )
{
ObCtrlGui obCtrlGui = (ObCtrlGui)enumeration.nextElement();
obCtrlGui.setPanel(getPanel());
if (obCtrlGui instanceof ObSeparatorGui)
((JToolBar)m_ctrl).addSeparator();

Page: 966 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else
((JToolBar)m_ctrl).add((JButton)obCtrlGui.getComponent());
}
((JToolBar)m_ctrl).validate();
}
}

Page: 967 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObTopAppGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObTopAppGui.class

package ObRun.ObPanel.ObCtrlGui;

import ObRun.ObFunction.*;
import java.awt.*;
import ObRun.ObEnvironment.ObLog;
import ObRun.ObPanel.ObCtrlData.ObWindowData;
import ObRun.ObPanel.ObPanelUtils.ObXYLayoutManager;
import java.net.URL;
import java.util.StringTokenizer;
import javax.swing.JApplet;
import javax.swing.JFrame;

public final synchronized class ObTopAppGui extends ObWindowGui


{
protected boolean m_internalFrame;
protected ObWindowGui m_lastFocusWindow;

public ObTopAppGui()
{
m_internalFrame = false;
m_lastFocusWindow = null;
ObWindowData obWindowData = null;
if (m_inApplet)
{
try
{
if (ObApplication.findApp().getCurrentFunction().getCaller() != null &&
ObApplication.findApp().getCurrentFunction().getCaller().getPanel() != null)
obWindowData =
ObApplication.findApp().getCurrentFunction().getCaller().getPanel().getPanelData();
if (m_inApplet && obWindowData != null)
m_inApplet = false;
}
catch (Exception e)
{

Page: 968 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
}
if (!m_inApplet || m_inApplet && ObApplication.useAppletFrame())
m_ctrl = new JFrame();
else
m_ctrl = m_applet;
setLayoutManager(new ObXYLayoutManager());
setPanel(this);
getFrame().setBackground(SystemColor.control);
if (!m_componentListener)
{
m_ctrl.addComponentListener(this);
m_componentListener = true;
}
if (!m_keyListener)
{
m_ctrl.addKeyListener(this);
m_keyListener = true;
}
if (!m_windowListener && (!m_inApplet || m_inApplet && ObApplication.useAppletFrame()))
{
((Window)m_ctrl).addWindowListener(this);
m_windowListener = true;
}
}

public void clearReferences()


{
m_lastFocusWindow = null;
super.clearReferences();
}

public void closeWindow()


{
try
{
if (!m_inApplet || m_inApplet && ObApplication.useAppletFrame())
((JFrame)getFrame()).dispose();
else
((ObWindowData)getPanel().getData()).getOwner().notifyFunction(false);
}

Page: 969 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

catch (Exception e)
{
}
}

public Container getContentPane()


{
if (!m_inApplet || m_inApplet && ObApplication.useAppletFrame())
return ((JFrame)m_ctrl).getContentPane();
else
return m_applet.getContentPane();
}

public Component getFrame()


{
if (!m_inApplet || m_inApplet && ObApplication.useAppletFrame())
return m_ctrl;
else
return m_applet;
}

public Component getGlassPane()


{
if (!m_inApplet || m_inApplet && ObApplication.useAppletFrame())
return ((JFrame)m_ctrl).getGlassPane();
else
return m_applet.getGlassPane();
}

public ObWindowGui getLastFocusWindow()


{
return m_lastFocusWindow;
}

public String getTitle()


{
if (!m_inApplet || m_inApplet && ObApplication.useAppletFrame())
return ((JFrame)m_ctrl).getTitle();
else
return "";
}

Page: 970 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public boolean hasInternalFrame()


{
return m_internalFrame;
}

public boolean isEnabled()


{
return getFrame().isEnabled();
}

public boolean isResizable()


{
if (!m_inApplet)
return ((JFrame)m_ctrl).isResizable();
else
return false;
}

public boolean isVisible()


{
return getFrame().isVisible();
}

public void layout()


{
getContentPane().doLayout();
getContentPane().repaint();
}

public void setBackgroundColor(String string)


{
super.setBackgroundColor(string);
}

public void setBackgroundImage(String string)


{
super.setBackgroundImage(string);
}

public void setEnabled(boolean flag)

Page: 971 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
getFrame().setEnabled(flag);
}

public void setIconFile(String string1)


{
string1 = string1.toUpperCase();
try
{
int i = string1.indexOf(".ICO");
if (i != -1)
string1 = string1.substring(0, i).concat(".GIF");
if (string1.indexOf(System.getProperty("file.separator")) != -1)
{
URL uRL1 = new URL(new StringBuffer("file:").append(string1).toString());
if (uRL1 != null)
{
Image image1 = Toolkit.getDefaultToolkit().getImage(uRL1);
((Frame)getFrame()).setIconImage(image1);
}
}
else
{
String string2 = ObApplication.getEnvironment() + ".ImagePath";
String string3 = ObApplication.getRunOptionValue(string2);
if (string3 == null || string3.length() == 0)
{
ObApplication.log(2, ObApplication.getResString("NoImagePath"));
return;
}
StringTokenizer stringTokenizer = new StringTokenizer(string3);
String string4 = null;
<badSignature> = null;
while (stringTokenizer.hasMoreTokens())
{
string4 = stringTokenizer.nextToken();
URL uRL2 = new URL(string4 + System.getProperty("file.separator") + string1);
if (uRL2 != null)
{
Image image2 = Toolkit.getDefaultToolkit().getImage(uRL2);
((Frame)getFrame()).setIconImage(image2);

Page: 972 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
}
}
}
catch (Exception e)
{
}
}

public void setInternalFrame(boolean flag)


{
m_internalFrame = flag;
}

public void setLastFocusWindow(ObWindowGui obWindowGui)


{
m_lastFocusWindow = obWindowGui;
}

public void setLayoutManager(LayoutManager layoutManager)


{
getContentPane().setLayout(layoutManager);
}

public void setLeftContextMenu(String string)


{
super.setLeftContextMenu(string);
}

public void setPosition(String string)


{
JApplet jApplet = ObApplication.findApp().getApplet();
if (jApplet != null)
string = "0 0";
Integer ainteger[] = getIntegers(string);
Dimension dimension = m_ctrl.getSize();
m_ctrl.setBounds(ainteger[0].intValue(), ainteger[1].intValue(), dimension.width, dimension.height);
}

public void setResizable(String string)


{

Page: 973 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

string = string.toUpperCase();
if (string.compareTo("YES") == 0)
if (!m_inApplet)
((JFrame)m_ctrl).setResizable(true);
else if (!m_inApplet)
((JFrame)m_ctrl).setResizable(false);
}

public void setResize(boolean flag)


{
if (!m_inApplet)
((JFrame)m_ctrl).setResizable(flag);
}

public void setRightContextMenu(String string)


{
super.setRightContextMenu(string);
}

public void setSize(String string)


{
Integer ainteger[] = getIntegers(string);
getFrame().setSize(ainteger[0].intValue(), ainteger[1].intValue());
((ObWindowData)getData()).setSize(ainteger[0].intValue(), ainteger[1].intValue());
}

public void setTitle(String string)


{
if (!m_inApplet || m_inApplet && ObApplication.useAppletFrame())
((JFrame)m_ctrl).setTitle(string);
}

public void setVisible(boolean flag)


{
getFrame().setVisible(flag);
}

public void show()


{
getFrame().setVisible(true);
getFrame().doLayout();

Page: 974 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

setFocusOnFirst();
m_complete = true;
}
}

Page: 975 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObWindowGui

Full name of class: ObRun.ObPanel.ObCtrlGui.ObWindowGui.class

package ObRun.ObPanel.ObCtrlGui;

import ObRun.ObFunction.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
import ObRun.ObPanel.ObCtrlData.ObCtrlData;
import ObRun.ObPanel.ObCtrlData.ObWindowData;
import ObRun.ObPanel.ObPanelUtils.ObXYLayoutManager;
import java.awt.event.ComponentEvent;
import java.awt.event.WindowEvent;
import java.io.PrintStream;
import java.util.Enumeration;
import java.util.Vector;
import javax.swing.text.JTextComponent;

public synchronized abstract class ObWindowGui extends ObCtrlGui


{
protected LayoutManager m_layoutMgr;
protected ObMenubarGui m_menuBar;
protected JLabel m_statusbar;
protected JPanel m_toolbar;
protected ObBackgroundPanel m_panelDesign;
protected boolean m_complete;
protected ButtonGroup m_buttonGroup;
public Vector m_allTabs;
protected boolean m_inApplet;
protected JApplet m_applet;
protected ObPushbuttonGui m_defaultButton;
private boolean m_firstTab;
protected Image m_backImage;
protected boolean m_disabled;

public ObWindowGui()
{

Page: 976 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_layoutMgr = null;
m_menuBar = null;
m_statusbar = null;
m_toolbar = null;
m_panelDesign = null;
m_complete = false;
m_buttonGroup = null;
m_allTabs = new Vector();
m_inApplet = false;
m_applet = null;
m_defaultButton = null;
m_firstTab = false;
m_disabled = false;
m_layoutMgr = new ObXYLayoutManager();
m_inApplet = ObApplication.isApplet();
m_applet = m_clientApp.getApplet();
if (m_panelDesign == null)
{
m_panelDesign = new ObBackgroundPanel(this);
m_panelDesign.setLayout(m_layoutMgr);
m_panelDesign.setBackground(SystemColor.control);
}
}

public void addChild(ObCtrlGui obCtrlGui)


{
setPanel(this);
super.addChild(obCtrlGui);
obCtrlGui.setPanel(this);
if (obCtrlGui instanceof ObMenubarGui && this instanceof ObTopAppGui)
{
if (!m_inApplet || m_inApplet && ObApplication.useAppletFrame())
((JFrame)m_ctrl).setJMenuBar((JMenuBar)obCtrlGui.getComponent());
else
((JApplet)m_ctrl).setJMenuBar((JMenuBar)obCtrlGui.getComponent());
m_menuBar = (ObMenubarGui)obCtrlGui;
}
else if (obCtrlGui instanceof ObMenubarGui && this instanceof ObDialogGui)
m_menuBar = (ObMenubarGui)obCtrlGui;
else if (obCtrlGui instanceof ObStatusbarGui)
{

Page: 977 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (m_statusbar == null)
{
m_statusbar = new JLabel(" ");
EtchedBorder etchedBorder = new EtchedBorder(Color.white, new Color(128, 128, 128));
BevelBorder bevelBorder = new BevelBorder(1, Color.white, new Color(128, 128, 128));
m_statusbar.setBorder(new CompoundBorder(etchedBorder, bevelBorder));
}
}
else if (obCtrlGui instanceof ObToolbarGui)
{
if (m_toolbar == null)
m_toolbar = new JPanel(new BorderLayout());
m_toolbar.add("North", (JToolBar)obCtrlGui.getComponent());
}
else
m_panelDesign.add("", obCtrlGui.getComponent());
}

public void addToButtonGroup(ObCtrlGui obCtrlGui)


{
if (getButtonGroup() == null)
setButtonGroup(new ButtonGroup());
getButtonGroup().add((AbstractButton)obCtrlGui.getComponent());
((ObRadiobuttonGui)obCtrlGui).setButtonGroup(getButtonGroup());
}

public void clearReferences()


{
if (getPanel() != null && getPanel().getContentPane() != null)
{
getPanel().getContentPane().setLayout(null);
getPanel().getContentPane().removeAll();
}
try
{
if (m_ctrl != null)
((Window)m_ctrl).dispose();
}
catch (Exception e)
{
}

Page: 978 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

super.clearReferences();
if (m_panelDesign != null)
{
m_panelDesign.setLayout(null);
m_panelDesign.clearReferences();
m_panelDesign.removeAll();
}
m_panelDesign = null;
m_allTabs = null;
m_layoutMgr = null;
}

public void closeWindow()


{
}

public void componentResized(ComponentEvent componentEvent)


{
((ObWindowData)getData()).recalculateConstraints();
show();
getData().testEvent(componentEvent.getID());
}

public ButtonGroup getButtonGroup()


{
return m_buttonGroup;
}

public Rectangle getChildConstraints(ObCtrlGui obCtrlGui)


{
return ((ObXYLayoutManager)m_layoutMgr).getConstraints(obCtrlGui.getComponent());
}

public abstract Container getContentPane();


public ObPushbuttonGui getDefaultButton()
{
return m_defaultButton;
}

public abstract Component getGlassPane();


public ObWindowGui getLastFocusWindow()

Page: 979 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
return null;
}

public ObMenubarGui getMenubar()


{
return m_menuBar;
}

public ObTabSequence getNextTabSequence(ObTabSequence obTabSequence1)


{
int i = -1;
if (obTabSequence1 == null)
m_firstTab = true;
else
i = m_allTabs.indexOf(obTabSequence1);
i++;
ObTabSequence obTabSequence2 = null;
if (i >= m_allTabs.size())
{
if (m_firstTab)
{
m_firstTab = false;
if (m_allTabs.size() > 0)
return (ObTabSequence)m_allTabs.firstElement();
else
return null;
}
obTabSequence2 = (ObTabSequence)m_allTabs.firstElement();
i = 0;
}
else
obTabSequence2 = (ObTabSequence)m_allTabs.elementAt(i);
ObCtrlGui obCtrlGui = getData().getPanel().getCompByID(new
Integer(obTabSequence2.m_guiId)).getGuiCtrl();
if (obCtrlGui instanceof ObMultilineEditGui)
{
if (((ObMultilineEditGui)obCtrlGui).getEditControl().isFocusTraversable() &&
obCtrlGui.isTabStop() && obCtrlGui.getComponent().isEnabled() && obCtrlGui.getComponent().isVisible() &&
obCtrlGui.getComponent().isShowing())
return obTabSequence2;

Page: 980 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else
return getNextTabSequence(obTabSequence2);
}
if (obCtrlGui instanceof ObSpinGui)
{
if (((ObSpinGui)obCtrlGui).getEditControl().isFocusTraversable() && obCtrlGui.isTabStop() &&
obCtrlGui.getComponent().isEnabled() && obCtrlGui.getComponent().isVisible() &&
obCtrlGui.getComponent().isShowing())
return obTabSequence2;
else
return getNextTabSequence(obTabSequence2);
}
if (obCtrlGui instanceof ObListGui)
{
if (((ObListGui)obCtrlGui).getListControl().isFocusTraversable() && obCtrlGui.isTabStop() &&
obCtrlGui.getComponent().isEnabled() && obCtrlGui.getComponent().isVisible() &&
obCtrlGui.getComponent().isShowing())
return obTabSequence2;
else
return getNextTabSequence(obTabSequence2);
}
if (obCtrlGui instanceof ObPushbuttonGui)
{
if (obCtrlGui.m_ctrl.isFocusTraversable() && obCtrlGui.isTabStop() &&
obCtrlGui.getComponent().isEnabled() && ((JButton)obCtrlGui.getComponent()).isFocusPainted() &&
obCtrlGui.getComponent().isVisible() && obCtrlGui.getComponent().isShowing())

return obTabSequence2;
else
return getNextTabSequence(obTabSequence2);
}
if (obCtrlGui instanceof ObComboGui)
{
if (((JComboBox)obCtrlGui.m_ctrl).getEditor().getEditorComponent().isFocusTraversable() &&
obCtrlGui.isTabStop() && obCtrlGui.getComponent().isEnabled() && obCtrlGui.getComponent().isVisible() &&
obCtrlGui.getComponent().isShowing())
return obTabSequence2;
else
return getNextTabSequence(obTabSequence2);
}

Page: 981 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (obCtrlGui.m_ctrl.isFocusTraversable() && obCtrlGui.isTabStop() &&


obCtrlGui.getComponent().isEnabled() && obCtrlGui.getComponent().isVisible() &&
obCtrlGui.getComponent().isShowing())
return obTabSequence2;
else
return getNextTabSequence(obTabSequence2);
}

public ObTabSequence getPreviousTabSequence(ObTabSequence obTabSequence1)


{
int i = m_allTabs.indexOf(obTabSequence1);
i--;
ObTabSequence obTabSequence2 = null;
if (i < 0)
{
obTabSequence2 = (ObTabSequence)m_allTabs.lastElement();
i = m_allTabs.size();
}
else
obTabSequence2 = (ObTabSequence)m_allTabs.elementAt(i);
ObCtrlGui obCtrlGui = getData().getPanel().getCompByID(new
Integer(obTabSequence2.m_guiId)).getGuiCtrl();
if (obCtrlGui instanceof ObMultilineEditGui)
{
if (((ObMultilineEditGui)obCtrlGui).getEditControl().isFocusTraversable() &&
obCtrlGui.isTabStop() && obCtrlGui.getComponent().isEnabled() && obCtrlGui.getComponent().isVisible() &&
obCtrlGui.getComponent().isShowing())
return obTabSequence2;
else
return getPreviousTabSequence(obTabSequence2);
}
if (obCtrlGui instanceof ObSpinGui)
{
if (((ObSpinGui)obCtrlGui).getEditControl().isFocusTraversable() && obCtrlGui.isTabStop() &&
obCtrlGui.getComponent().isEnabled() && obCtrlGui.getComponent().isVisible() &&
obCtrlGui.getComponent().isShowing())
return obTabSequence2;
else
return getPreviousTabSequence(obTabSequence2);
}
if (obCtrlGui instanceof ObListGui)

Page: 982 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
if (((ObListGui)obCtrlGui).getListControl().isFocusTraversable() && obCtrlGui.isTabStop() &&
obCtrlGui.getComponent().isEnabled() && obCtrlGui.getComponent().isVisible() &&
obCtrlGui.getComponent().isShowing())
return obTabSequence2;
else
return getPreviousTabSequence(obTabSequence2);
}
if (obCtrlGui instanceof ObPushbuttonGui)
{
if (obCtrlGui.m_ctrl.isFocusTraversable() && obCtrlGui.isTabStop() &&
obCtrlGui.getComponent().isEnabled() && ((JButton)obCtrlGui.getComponent()).isFocusPainted() &&
obCtrlGui.getComponent().isVisible() && obCtrlGui.getComponent().isShowing())

return obTabSequence2;
else
return getPreviousTabSequence(obTabSequence2);
}
if (obCtrlGui instanceof ObComboGui)
{
if (((JComboBox)obCtrlGui.m_ctrl).getEditor().getEditorComponent().isFocusTraversable() &&
obCtrlGui.isTabStop() && obCtrlGui.getComponent().isEnabled() && obCtrlGui.getComponent().isVisible() &&
obCtrlGui.getComponent().isShowing())
return obTabSequence2;
else
return getPreviousTabSequence(obTabSequence2);
}
if (obCtrlGui.m_ctrl.isFocusTraversable() && obCtrlGui.isTabStop() &&
obCtrlGui.getComponent().isEnabled() && obCtrlGui.getComponent().isVisible() &&
obCtrlGui.getComponent().isShowing())
return obTabSequence2;
else
return getPreviousTabSequence(obTabSequence2);
}

public boolean getShouldShowMouseOver()


{
if (m_dataCtrl != null && m_dataCtrl.getPanel() != null)
return m_dataCtrl.getPanel().getShouldShowMouseOver();
else
return false;

Page: 983 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public JLabel getStatusbar()


{
return m_statusbar;
}

public boolean hasInternalFrame()


{
return false;
}

public boolean isComplete()


{
return m_complete;
}

public boolean isRendererDisabled()


{
return m_disabled;
}

public void layout()


{
getContentPane().doLayout();
getContentPane().repaint();
}

public void layoutWindow()


{
getPanel().getContentPane().setLayout(new BorderLayout());
if (m_toolbar != null)
getPanel().getContentPane().add("North", m_toolbar);
if (m_statusbar != null)
getPanel().getContentPane().add("South", m_statusbar);
getPanel().getContentPane().add("Center", m_panelDesign);
getPanel().getContentPane().validate();
}

public void setBackgroundColor(String string)


{

Page: 984 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (string.length() == 0)
{
m_panelDesign.setBackground(SystemColor.control);
return;
}
Integer ainteger[] = getIntegers(string);
if (string.indexOf(40) != -1 || ainteger.length == 1)
{
try
{
m_panelDesign.setBackground(ObCtrlGui.m_javaCol[ainteger[0].intValue()]);
}
catch (Exception e)
{
}
}
else
m_panelDesign.setBackground(new Color(ainteger[0].intValue(), ainteger[1].intValue(),
ainteger[2].intValue()));
}

public void setBackgroundImage()


{
String string1 = ((ObWindowData)getPanel().getData()).getOwner().getImplName();
String string2 = ObApplication.getRunOptionValue(new
StringBuffer(String.valueOf(string1)).append(".BackgroundImage").toString());
if (string2 != null)
setBackgroundImage(string2);
}

public void setBackgroundImage(String string)


{
System.out.println(string);
m_backImage = ObCtrlGui.loadBitmapFile(string).getImage();
System.out.println(m_backImage);
m_panelDesign.setOpaque(false);
}

public void setBusyCursor()


{
getGlassPane().setVisible(true);

Page: 985 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_ctrl.setCursor(Cursor.getPredefinedCursor(3));
}

public void setButtonGroup(ButtonGroup buttonGroup)


{
m_buttonGroup = buttonGroup;
}

public void setChildPosition(ObCtrlGui obCtrlGui, int i, int j)


{
((ObXYLayoutManager)m_layoutMgr).setPositionConstraint(obCtrlGui.getComponent(), i, j);
}

public void setChildSize(ObCtrlGui obCtrlGui, int i, int j)


{
((ObXYLayoutManager)m_layoutMgr).setSizeConstraint(obCtrlGui.getComponent(), i, j);
}

public void setData(ObCtrlData obCtrlData)


{
m_dataCtrl = obCtrlData;
}

public void setDefaultButton(ObPushbuttonGui obPushbuttonGui)


{
m_defaultButton = obPushbuttonGui;
}

public void setFocusOnFirst()


{
ObTabSequence obTabSequence = getNextTabSequence(null);
if (obTabSequence == null)
return;
ObCtrlGui obCtrlGui = getData().getPanel().getCompByID(new
Integer(obTabSequence.m_guiId)).getGuiCtrl();
if (obCtrlGui instanceof ObMultilineEditGui)
((ObMultilineEditGui)obCtrlGui).getEditControl().requestFocus();
else if (obCtrlGui instanceof ObSpinGui)
((ObSpinGui)obCtrlGui).getEditControl().requestFocus();
else if (obCtrlGui instanceof ObListGui)
((ObListGui)obCtrlGui).getListControl().requestFocus();

Page: 986 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else
obCtrlGui.getComponent().requestFocus();
setLastFocusWindow(this);
}

public void setInternalFrame(boolean flag)


{
}

public void setLastFocusWindow(ObWindowGui obWindowGui)


{
}

public void setNotBusyCursor()


{
m_ctrl.setCursor(Cursor.getPredefinedCursor(0));
getGlassPane().setVisible(false);
}

public void setRendererDisabled(boolean flag)


{
m_disabled = flag;
}

public void setStatusbar(String string)


{
m_statusbar.setText(string);
}

public void setTitle(String string)


{
}

public void show()


{
m_ctrl.setVisible(true);
m_ctrl.doLayout();
m_complete = true;
}

public void sortTabSequence()

Page: 987 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
int i = m_allTabs.size();
ObTabSequence aobTabSequence[] = new ObTabSequence[i];
int j = 0;
for (Enumeration enumeration = m_allTabs.elements(); enumeration.hasMoreElements(); )
{
aobTabSequence[j] = (ObTabSequence)enumeration.nextElement();
j++;
}
try
{
for (j = 0; j < i - 1; j++)
{
for (int k = i - 1; k >= j + 1; k--)
{
ObTabSequence obTabSequence1 = aobTabSequence[k];
ObTabSequence obTabSequence2 = aobTabSequence[k - 1];
if (obTabSequence1.m_tabSequence < obTabSequence2.m_tabSequence)
{
ObTabSequence obTabSequence3 = aobTabSequence[k];
aobTabSequence[k] = aobTabSequence[k - 1];
aobTabSequence[k - 1] = obTabSequence3;
}
}
}
}
catch (Exception e)
{
}
m_allTabs.removeAllElements();
for (j = 0; j <= i - 1; j++)
m_allTabs.addElement(aobTabSequence[j]);
FocusManager.disableSwingFocusManager();
}

public void windowClosing(WindowEvent windowEvent)


{
getData().testEvent(201);
((ObWindowData)getPanel().getData()).getOwner().notifyFunction(false);
}
}

Page: 988 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Page: 989 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObLaunch

Full name of class: ObRun.ObPanel.ObLaunch.class

package ObRun.ObPanel;

import ObRun.ObFunction.*;
import java.applet.Applet;
import java.io.PrintStream;
import java.util.StringTokenizer;
import javax.swing.JApplet;

public synchronized class ObLaunch extends JApplet


{
private String m_function;
private String m_properties;
private ObPanel m_panel;
private ObClientApp m_client;
private volatile ObLaunch$ObApplet applet;
public int m_count;

public ObLaunch()
{
m_client = null;
applet = null;
m_count = 0;
}

public static synchronized String[] callFunction(String string1, String string2, String astring[],
String string3)
{
ObClientApp obClientApp = new ObClientApp(string2);
astring = ObApplication.obCallFunction(astring, string1, string3);
obClientApp.clearReferences();
obClientApp = null;
System.gc();
return astring;
}

Page: 990 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void init()


{
m_properties = getParameter("Properties");
if (m_properties == null)
{
System.out.println("Please specify the properties file path.");
return;
}
m_function = getParameter("Function");
applet = new ObLaunch$ObApplet(this, m_function, m_properties, this);
applet.start();
}

public static void main(String astring1[])


{
ObClientApp obClientApp = null;
if (astring1.length > 1 && astring1.length < 3)
{
String string1 = null;
if (astring1[1].length() > 5 && astring1[1].toUpperCase().substring(0, 5).compareTo("PATH=") ==
0)
string1 = astring1[1].substring(5, astring1[1].length());
obClientApp = new ObClientApp(string1);
}
else
obClientApp = new ObClientApp();
String string2 = null;
if (astring1[0] != null && astring1[0].length() != 0)
{
if (astring1.length == 2)
{
string2 = new StringBuffer(String.valueOf(astring1[0])).append("_ObFnc").toString();
ObApplication.obCallFunction(null, null, null, string2, "", "", "");
}
else
{
StringTokenizer stringTokenizer = new StringTokenizer(astring1[2], ",");
String astring2[] = new String[stringTokenizer.countTokens()];
int i = 0;
while (stringTokenizer.hasMoreTokens())
{

Page: 991 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

astring2[i] = stringTokenizer.nextToken();
i++;
}
astring2 = ObApplication.obCallFunction(astring2, astring1[0], astring1[3]);
for (int j = 0; j < astring2.length; j++)
System.out.println(astring2[j]);
}
obClientApp.clearReferences();
obClientApp = null;
System.gc();
}
else
System.out.println(ObApplication.getString("ProvideFunctionName"));
System.exit(0);
}

public void setApp(ObClientApp obClientApp)


{
m_client = obClientApp;
}

public void setPanel(ObPanel obPanel)


{
m_panel = obPanel;
}

public void start()


{
}

public void stop()


{
m_panel.notifyFunction(true);
}
}

Page: 992 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObLaunch$ObApplet

Full name of class: ObRun.ObPanel.ObLaunch$ObApplet.class

package ObRun.ObPanel;

import ObRun.ObFunction.ObApplication;
import ObRun.ObFunction.ObClientApp;
import java.awt.Component;
import java.awt.Container;
import java.io.PrintStream;

synchronized class ObLaunch$ObApplet extends Thread


{
private final ObLaunch this$0 = obLaunch1;
public ObLaunch m_launch;
String m_function;
String m_properties;
ObClientApp client;

public ObLaunch$ObApplet(ObLaunch obLaunch1, String string1, String string2, ObLaunch obLaunch2)


{
m_launch = null;
m_launch = obLaunch2;
m_function = string1;
m_properties = string2;
}

public void run()


{
client = new ObClientApp(m_launch, m_properties);
m_launch.setApp(client);
this$0.validate();
this$0.setVisible(true);
if (m_function == null) goto 112 else 52;
expression new StringBuffer
dup 1 over 0
expression this
dup 1 over 2

Page: 993 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

push m_function
invoke valueOf
invoke StringBuffer.<init>
expression "_ObFnc"
invoke append
invoke toString
pop m_function
ObApplication.obCallFunction(null, null, null, m_function, "", "", "");
client.clearReferences();
client = null;
System.gc();
System.out.println(ObApplication.getString("ProvideFunctionName"));
}
}

Page: 994 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObPanelUtils

ObPanelResource

Full name of class: ObRun.ObPanel.ObPanelUtils.ObPanelResource.class

package ObRun.ObPanel.ObPanelUtils;

import java.io.*;
import ObRun.ObFunction.ObApplication;
import java.net.URL;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;

public final synchronized class ObPanelResource extends PropertyResourceBundle


{
public ObPanelResource()
throws IOException
{
super(new BufferedInputStream(new URL("file:ObPanelResource.properties").openStream()));
}

public ObPanelResource(InputStream inputStream)


throws IOException
{
super(new BufferedInputStream(inputStream));
}

public ObPanelResource(String string)


throws IOException
{
this(new URL(string).openStream());
}

public ObPanelResource(URL uRL)


throws IOException
{
super(new BufferedInputStream(uRL.openStream()));

Page: 995 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public String getProperty(String string)


{
return getString(string);
}

public static ObPanelResource getResourceFromName(String string1)


{
String string2 = ObApplication.getRunOptionValue(ObApplication.getEnvironment() + ".Resources");
if (string2.endsWith("/") || string2.endsWith("\\"))
string2 = string1 + ".panelresource";
else
string2 = System.getProperty("file.separator") + string1 + ".panelresource";
try
{
return new ObPanelResource(string2);
}
catch (Exception e)
{
return null;
}
}
}

Page: 996 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObXYLayoutManager

Full name of class: ObRun.ObPanel.ObPanelUtils.ObXYLayoutManager.class

package ObRun.ObPanel.ObPanelUtils;

import java.awt.*;
import java.util.*;

public final synchronized class ObXYLayoutManager implements LayoutManager


{
private Vector m_components;
private Vector m_constraints;

public ObXYLayoutManager()
{
m_components = new Vector(10, 10);
m_constraints = new Vector(10, 10);
}

public void addLayoutComponent(String string, Component component)


{
m_components.addElement(component);
m_constraints.addElement(null);
if (string != null && string.length() != 0)
{
Integer ainteger[] = new Integer[4];
StringTokenizer stringTokenizer = new StringTokenizer(string);
int i = 0;
while (stringTokenizer.hasMoreTokens())
{
try
{
ainteger[i] = new Integer(stringTokenizer.nextToken());
}
catch (Exception e)
{
ainteger[i] = new Integer(0);
}

Page: 997 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

i++;
}
setPositionConstraint(component, ainteger[0].intValue(), ainteger[1].intValue());
setSizeConstraint(component, ainteger[2].intValue(), ainteger[3].intValue());
}
}

public Rectangle getConstraints(Component component)


{
int i = m_components.indexOf(component);
if (i == -1)
return null;
XYConstraint xYConstraint = (XYConstraint)m_constraints.elementAt(i);
return new Rectangle(xYConstraint.m_x, xYConstraint.m_y, xYConstraint.m_w, xYConstraint.m_h);
}

public void layoutContainer(Container container)


{
Enumeration enumeration = m_components.elements();
int i = -1;
while (enumeration.hasMoreElements())
{
i++;
XYConstraint xYConstraint = (XYConstraint)m_constraints.elementAt(i);
Component component = (Component)enumeration.nextElement();
if (component != null && xYConstraint != null)
component.setBounds(xYConstraint.m_x, xYConstraint.m_y, xYConstraint.m_w, xYConstraint.m_h);
}
}

public Dimension minimumLayoutSize(Container container)


{
return new Dimension(10, 10);
}

public Dimension preferredLayoutSize(Container container)


{
return new Dimension(10, 10);
}

public void removeLayoutComponent(Component component)

Page: 998 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
int i = m_components.indexOf(component);
if (i != -1)
{
m_components.removeElementAt(i);
m_constraints.removeElementAt(i);
}
}

public void setPositionConstraint(Component component, int i, int j)


{
int k = m_components.indexOf(component);
if (k != -1)
{
XYConstraint xYConstraint = (XYConstraint)m_constraints.elementAt(k);
if (xYConstraint == null)
{
xYConstraint = new XYConstraint(i, j, 0, 0);
m_constraints.setElementAt(xYConstraint, k);
}
else
{
if (i != -1)
xYConstraint.m_x = i;
if (j != -1)
xYConstraint.m_y = j;
}
}
}

public void setSizeConstraint(Component component, int i, int j)


{
int k = m_components.indexOf(component);
if (k != -1)
{
XYConstraint xYConstraint = (XYConstraint)m_constraints.elementAt(k);
if (xYConstraint == null)
{
xYConstraint = new XYConstraint(0, 0, i, j);
m_constraints.setElementAt(xYConstraint, k);
}

Page: 999 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else
{
if (i != -1)
xYConstraint.m_w = i;
if (j != -1)
xYConstraint.m_h = j;
}
}
}
}

Page: 1000 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

XYConstraint

Full name of class: ObRun.ObPanel.ObPanelUtils.XYConstraint.class


package ObRun.ObPanel.ObPanelUtils;

synchronized class XYConstraint


{
public int m_x;
public int m_y;
public int m_w;
public int m_h;

public XYConstraint(int i1, int j, int k, int i2)


{
m_x = i1;
m_y = j;
m_w = k;
m_h = i2;
}
}

Page: 1001 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObVersionInfo

Full name of class: ObRun.ObPanel.ObVersionInfo.class

package ObRun.ObFunction;

import java.io.*;

public final synchronized class ObVersionInfo implements Serializable


{
public String m_version;

public ObVersionInfo()
{
m_version = new String("v2400000");
}

public static synchronized boolean confirmVersion(String string)


{
if (string.compareTo(getVersionString()) == 0)
return true;
else
return false;
}

public static synchronized String getVersionString()


{
ObVersionInfo obVersionInfo = new ObVersionInfo();
String string = ObApplication.getRunOptionValue("Version");
if (string == null)
return obVersionInfo.m_version;
else
return string;
}

private void readObject(ObjectInputStream objectInputStream)


throws IOException, ClassNotFoundException
{
objectInputStream.defaultReadObject();

Page: 1002 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

private void writeObject(ObjectOutputStream objectOutputStream)


throws IOException
{
objectOutputStream.defaultWriteObject();
}
}

Page: 1003 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObRTTypes

ObByteFld

Full name of class: ObRun.ObRTTypes.ObByteFld.class


package ObRun.ObRTTypes;

import ObRun.ObFunction.ObApplication;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public final synchronized class ObByteFld extends ObField


{
private static int m_DEFAULTTYPE;
private static int m_ALTERNATESQLTYPES[];

static
{
m_DEFAULTTYPE = -1;
}

public ObByteFld()
{
setEmpty();
}

public ObByteFld(byte b)
{
m_fldUsage = b;
setEmpty();
}

public ObByteFld(byte b1, byte b2)


{
m_data = new Byte(b1);
m_fldUsage = b2;
}

Page: 1004 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObByteFld(byte b, int i, int j, char ch, String string)


{
m_fldUsage = b;
m_designLength = i;
m_designDecimals = j;
m_AS400DataType = ch;
m_implName = string;
setEmpty();
}

public ObByteFld(byte b, int i1, int j, char ch, String string1, int k, String string2, String string3,
String string4, String string5, int i2)
{
m_fldUsage = b;
m_designLength = i1;
m_designDecimals = j;
m_AS400DataType = ch;
m_implName = string1;
Byte byte1 = null;
Byte byte2 = null;
Byte byte3 = null;
Byte byte4 = null;
try
{
byte1 = new Byte(string2);
}
catch (Exception e1)
{
ObApplication.log(" byte " + ObApplication.getString("NotValidValue"));
}
try
{
byte2 = new Byte(string3);
}
catch (Exception e2)
{
ObApplication.log(" byte " + ObApplication.getString("NotValidValue"));
}
try
{

Page: 1005 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

byte3 = new Byte(string5);


}
catch (Exception e3)
{
ObApplication.log(" byte " + ObApplication.getString("NotValidValue"));
}
try
{
byte4 = new Byte(string4);
}
catch (Exception e4)
{
ObApplication.log(" byte " + ObApplication.getString("NotValidValue"));
}
m_specialVal = new ObSpecialVal((short)k, (short)i2, byte1, byte2, byte3, byte4, this);
setEmpty();
}

public ObByteFld(int i)
{
m_data = new Byte((byte)i);
}

public ObByteFld(int i, int j)


{
m_data = new Byte((byte)i);
setState(j);
}

public ObByteFld(Byte byte)


{
m_data = new Byte(byte.byteValue());
}

public ObByteFld(Byte byte, byte b)


{
m_fldUsage = b;
m_data = new Byte(byte.byteValue());
}

public ObByteFld(String string)

Page: 1006 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
Double double = new Double(string);
m_data = new Byte(double.byteValue());
}

public ObByteFld(String string, byte b)


{
m_fldUsage = b;
m_data = new Byte(string);
}

public ObField add(ObField obField)


{
setState(0);
ObByteFld obByteFld = obField.toObByteFld();
byte b1 = obByteFld.getValue();
byte b2 = getValue();
return new ObByteFld(b1 + b2);
}

public void assign(ObField obField)


{
if (obField.getState() == 4)
{
setEmpty();
setState(4);
return;
}
if (obField.hasState())
setState(obField.getState());
else
setState(0);
if (obField instanceof ObByteFld)
m_data = new Byte(((Byte)obField.getData()).byteValue());
else
castFrom(obField);
}

protected void bindAsEmpty(PreparedStatement preparedStatement, int i)


{
ObByteFld obByteFld = new ObByteFld();

Page: 1007 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

obByteFld.bindStatement(preparedStatement, i);
}

public void bindStatement(PreparedStatement preparedStatement, int i, int j)


{
try
{
switch (j)
{
case -6:
preparedStatement.setByte(i, getValue());
break;

case 4:
preparedStatement.setInt(i, ((Byte)getData()).intValue());
break;

default:
super.bindStatement(preparedStatement, i, j);
break;
}
}
catch (Exception e)
{
ObApplication.log(e.getMessage());
setEmpty();
}
}

public void castFrom(ObField obField)


{
if (obField.hasState())
{
setState(obField.getState());
return;
}
try
{
if (obField.getData() instanceof Number)
m_data = new Byte(((Number)obField.getData()).byteValue());
else

Page: 1008 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_data = new Byte(obField.toObByteFld().getValue());


}
catch (Exception e2)
{
try
{
m_data = new Byte(obField.toStringWithoutSeparators());
if (m_data == null)
setEmpty();
}
catch (Exception e1)
{
setEmpty();
}
}
setState(0);
}

public ObField divide(ObField obField)


{
setState(0);
ObByteFld obByteFld = obField.toObByteFld();
byte b1 = obByteFld.getValue();
byte b2 = getValue();
return new ObByteFld(b2 / b1);
}

public void fromResultSet(ResultSet resultSet, int i)


{
try
{
m_data = new Byte(resultSet.getByte(i));
if (resultSet.wasNull())
setNull();
else
setReadState();
}
catch (Exception e)
{
ObApplication.log(e.getMessage());
setEmpty();

Page: 1009 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
}

public void fromString(String string)


{
setState(0);
try
{
m_data = new Byte(string);
}
catch (Exception e)
{
m_data = new Byte(0);
}
setReadState();
}

public byte[] getAS400ContentDefault()


{
int i = m_designLength;
byte ab1[] = getAS400ContentNumberDefault(i, getState());
byte ab2[] = new byte[i];
for (int j = 0; j < ab2.length; j++)
ab2[j] = ab1[j];
return ab2;
}

public int[] getAlternateSQLTypes()


{
if (m_ALTERNATESQLTYPES == null)
m_ALTERNATESQLTYPES = ObFieldSQLTypes.getAlternates(this);
return m_ALTERNATESQLTYPES;
}

public int getDefaultType()


{
if (m_DEFAULTTYPE == -1)
m_DEFAULTTYPE = ObFieldSQLTypes.getDefault(this);
return m_DEFAULTTYPE;
}

Page: 1010 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public byte getValue()


{
return ((Byte)m_data).byteValue();
}

public boolean isAS400StateDefault(String string, int i)


{
int j = m_designLength;
byte ab1[] = getAS400ContentNumberDefault(j, i);
byte ab2[] = new byte[j];
for (int k = 0; k < ab2.length; k++)
ab2[k] = ab1[k];
if (new String(ab2).equals(string))
return true;
else
return false;
}

public boolean isEmpty()


{
if (getState() == 4)
return true;
byte b = 0;
if (m_specialVal != null && m_specialVal.stateExists(4))
b = ((Byte)m_specialVal.getData(4)).byteValue();
return b == getValue();
}

public boolean isEqual(ObField obField)


{
if (!hasState() && !obField.hasState())
return obField.toObByteFld().getValue() == getValue();
if (getState() == obField.getState())
return true;
else
return false;
}

public boolean isGreaterThan(ObField obField)


{
return getValue() > obField.toObByteFld().getValue();

Page: 1011 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public boolean isGreaterThanOrEqual(ObField obField)


{
return getValue() >= obField.toObByteFld().getValue();
}

public boolean isLessThan(ObField obField)


{
return getValue() < obField.toObByteFld().getValue();
}

public boolean isLessThanOrEqual(ObField obField)


{
return getValue() <= obField.toObByteFld().getValue();
}

public boolean isNotEqual(ObField obField)


{
if (!hasState() && !obField.hasState())
return obField.toObByteFld().getValue() != getValue();
if (getState() != obField.getState())
return true;
else
return false;
}

public ObField modulus(ObField obField)


{
setState(0);
ObByteFld obByteFld = obField.toObByteFld();
byte b1 = obByteFld.getValue();
byte b2 = getValue();
return new ObByteFld(b2 - b1 % b2 * b1);
}

public ObField multiply(ObField obField)


{
setState(0);
ObByteFld obByteFld = obField.toObByteFld();
byte b1 = obByteFld.getValue();

Page: 1012 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

byte b2 = getValue();
return new ObByteFld(b2 * b1);
}

public void set(ObField obField)


{
if (obField.hasState())
{
setState(obField.getState());
return;
}
ObByteFld obByteFld = obField.toObByteFld();
m_data = (Byte)obByteFld.getData();
setState(0);
}

public void setEmpty()


{
setState(0);
if (m_specialVal != null && m_specialVal.stateExists(4))
m_data = m_specialVal.getData(4);
else
m_data = new Byte(0);
}

protected void setReadState()


{
setState(0);
if (m_specialVal == null || m_specialVal.m_existMask == 0)
return;
Byte byte1 = (Byte)m_specialVal.getData(8);
Byte byte2 = (Byte)m_specialVal.getData(2);
Byte byte3 = (Byte)m_specialVal.getData(4);
Byte byte4 = (Byte)m_specialVal.getData(1);
if (byte3.byteValue() == getValue() && m_specialVal.stateExists(4))
{
setEmpty();
setState(4);
}
else if (byte1.byteValue() == getValue() && m_specialVal.stateExists(8))
setHiVal();

Page: 1013 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else if (byte2.byteValue() == getValue() && m_specialVal.stateExists(2))


setLoVal();
else if (byte4.byteValue() == getValue() && m_specialVal.stateExists(1))
setNull();
}

public ObField subtract(ObField obField)


{
setState(0);
ObByteFld obByteFld = obField.toObByteFld();
byte b1 = obByteFld.getValue();
byte b2 = getValue();
return new ObByteFld(b2 - b1);
}

public String toString()


{
if (hasState())
convertStateToContent();
return getData().toString();
}
}

Page: 1014 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObCharFld

Full name of class: ObRun.ObRTTypes.ObCharFld.class

package ObRun.ObRTTypes;

import ObRun.ObFunction.ObApplication;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public final synchronized class ObCharFld extends ObField


{
private static int m_DEFAULTTYPE;
private static int m_ALTERNATESQLTYPES[];

static
{
m_DEFAULTTYPE = -1;
}

public ObCharFld()
{
setEmpty();
}

public ObCharFld(byte b)
{
m_fldUsage = b;
setEmpty();
}

public ObCharFld(byte b, int i)


{
if (i > 0)
m_cLength = i + 1;
m_fldUsage = b;
setEmpty();
}

Page: 1015 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObCharFld(byte b, int i, char ch, String string)


{
m_fldUsage = b;
if (i > 0)
m_cLength = i + 1;
m_designLength = i;
m_AS400DataType = ch;
m_implName = string;
if (string.compareTo("_RETURNING_STATUS") == 0)
m_data = new String("");
else if (string.compareTo("_RETURNED_STATUS") == 0)
m_data = new String("");
else
setEmpty();
}

public ObCharFld(byte b, int i, char ch, String string1, int j, String string2, String string3, String
string4, String string5, int k)
{
m_fldUsage = b;
if (i > 0)
m_cLength = i + 1;
m_designLength = i;
m_AS400DataType = ch;
m_implName = string1;
m_specialVal = new ObSpecialVal((short)j, (short)k, string2, string3, string5, string4, this);
setEmpty();
}

public ObCharFld(int i)
{
setEmpty();
if (i > 0)
m_cLength = i + 1;
}

public ObCharFld(String string)


{
m_data = new String(string);
}

Page: 1016 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObCharFld(String string, byte b)


{
m_fldUsage = b;
m_data = new String(string);
}

public ObCharFld(String string, byte b, int i)


{
m_fldUsage = b;
m_data = new String(string);
if (i > 0)
m_cLength = i + 1;
}

public ObCharFld(String string, int i)


{
m_data = new String(string);
if (i > 0)
m_cLength = i + 1;
}

public ObCharFld(String string, int i, int j)


{
m_data = new String(string);
if (j > 0)
m_cLength = j + 1;
setState(i);
}

public ObField add(ObField obField)


{
setState(0);
ObCharFld obCharFld = obField.toObCharFld();
String string = new String(new
StringBuffer(String.valueOf(getValue())).append(obCharFld.getValue()).toString());
return new ObCharFld(string);
}

public void assign(ObField obField)


{
if (obField == null)

Page: 1017 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

return;
if (obField.getState() == 4)
{
setEmpty();
setState(4);
return;
}
if (obField.hasState())
setState(obField.getState());
else
setState(0);
if (obField instanceof ObCharFld)
m_data = new String(obField.getData().toString());
else
castFrom(obField);
trim();
}

protected void bindAsEmpty(PreparedStatement preparedStatement, int i)


{
ObCharFld obCharFld = new ObCharFld();
obCharFld.bindStatement(preparedStatement, i);
}

public void bindStatement(PreparedStatement preparedStatement, int i, int j)


{
Object object = null;
boolean flag = false;
if (m_specialVal != null && (hasState() && !m_specialVal.hasStateLP(m_fldState) &&
m_specialVal.stateExists(m_fldState) || isEmpty() && !m_specialVal.hasStateLP(4) &&
m_specialVal.stateExists(4)))
{
object = m_data;
if (hasState())
m_data = m_specialVal.getCharOverride(m_fldState, this);
else if (isEmpty())
m_data = m_specialVal.getCharOverride(4, this);
flag = true;
}
super.bindStatement(preparedStatement, i, j);
if (flag)

Page: 1018 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
m_data = null;
m_data = object;
}
}

public void castFrom(ObField obField)


{
if (obField.hasState())
{
setState(obField.getState());
return;
}
m_data = new String(obField.toString());
trim();
setState(0);
}

public boolean contains(ObField obField)


{
if (obField.toObCharFld().getValue().indexOf(getValue()) == -1)
return false;
else
return true;
}

public void fromResultSet(ResultSet resultSet, int i)


{
try
{
int j;
String string1 = resultSet.getString(i);
if (string1 == null || resultSet.wasNull())
{
setNull();
return;
}
m_data = new String(string1);
String string2 = new String(m_data.toString());
byte b = -1;
for (j = 0; j < m_data.toString().length() && Character.isSpaceChar(string2.charAt(j)); j++)

Page: 1019 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

b = j;
if (b >= 0)
m_data = new String(m_data.toString().substring(0, b + 1).concat(m_data.toString().trim()));
else
m_data = new String(m_data.toString().trim());
setReadState();
}
catch (Exception e)
{
ObApplication.log(e.getMessage());
setEmpty();
}
}

public void fromString(String string)


{
if (string == null)
string = "";
setState(0);
m_data = new String(string);
trim();
setReadState();
}

public byte[] getAS400ContentDefault()


{
byte ab[] = new byte[m_designLength];
switch (getState())
{
case 1:
case 4:
for (int i = 0; i < ab.length; i++)
ab[i] = 64;
break;

case 8:
for (int j = 0; j < ab.length; j++)
ab[j] = -1;
break;

case 2:

Page: 1020 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

for (int k = 0; k < ab.length; k++)


ab[k] = 0;
break;
}
return ab;
}

public int[] getAlternateSQLTypes()


{
if (m_ALTERNATESQLTYPES == null)
m_ALTERNATESQLTYPES = ObFieldSQLTypes.getAlternates(this);
return m_ALTERNATESQLTYPES;
}

public int getDefaultType()


{
if (m_DEFAULTTYPE == -1)
m_DEFAULTTYPE = ObFieldSQLTypes.getDefault(this);
return m_DEFAULTTYPE;
}

public String getValue()


{
return (String)m_data;
}

public boolean isAS400StateDefault(String string, int i1)


{
byte ab[] = new byte[m_designLength];
switch (i1)
{
case 1:
case 4:
for (int j = 0; j < ab.length; j++)
ab[j] = 64;
break;

case 8:
for (int k = 0; k < ab.length; k++)
ab[k] = -1;
break;

Page: 1021 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

case 2:
for (int i2 = 0; i2 < ab.length; i2++)
ab[i2] = 0;
break;
}
if (new String(ab).equals(string))
return true;
else
return false;
}

public boolean isEmpty()


{
if (getState() == 4)
return true;
String string = new String("");
if (m_specialVal != null && m_specialVal.stateExists(4))
string = (String)m_specialVal.getData(4);
if (getValue().compareTo(" ") == 0)
return true;
else
return string.compareTo(getValue()) == 0;
}

public boolean isEqual(ObField obField)


{
if (hasState() || obField.hasState())
{
if (getState() == obField.getState())
return true;
else
return false;
}
if (getValue().length() == 0 && obField.toObCharFld().getValue().compareTo(" ") == 0)
return true;
else
return obField.toObCharFld().getValue().compareTo(getValue()) == 0;
}

public boolean isGreaterThan(ObField obField)

Page: 1022 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
return getValue().compareTo(obField.toObCharFld().getValue()) > 0;
}

public boolean isGreaterThanOrEqual(ObField obField)


{
return getValue().compareTo(obField.toObCharFld().getValue()) >= 0;
}

public boolean isLessThan(ObField obField)


{
return getValue().compareTo(obField.toObCharFld().getValue()) < 0;
}

public boolean isLessThanOrEqual(ObField obField)


{
return getValue().compareTo(obField.toObCharFld().getValue()) <= 0;
}

public boolean isNotEqual(ObField obField)


{
if (hasState() || obField.hasState())
{
if (getState() != obField.getState())
return true;
else
return false;
}
if (getValue().length() == 0 && obField.toObCharFld().getValue().compareTo(" ") == 0)
return false;
else
return obField.toObCharFld().getValue().compareTo(getValue()) != 0;
}

public ObField modulus(ObField obField)


{
return obField;
}

public void set(ObField obField)


{

Page: 1023 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (obField.hasState())
{
setState(obField.getState());
return;
}
ObCharFld obCharFld = obField.toObCharFld();
m_data = (String)obCharFld.getData();
setState(0);
trim();
}

public void setEmpty()


{
setState(0);
if (m_specialVal != null && m_specialVal.stateExists(4))
m_data = (String)m_specialVal.getData(4);
else
m_data = new String("");
}

protected void setReadState()


{
setState(0);
if (m_specialVal == null || m_specialVal.m_existMask == 0)
return;
String string1 = (String)m_specialVal.getData(8);
String string2 = (String)m_specialVal.getData(2);
String string3 = (String)m_specialVal.getData(4);
String string4 = (String)m_specialVal.getData(1);
if (m_specialVal.stateExists(4) && (string3.compareTo(getValue()) == 0 ||
((String)m_specialVal.getCharOverride(4, this)).compareTo(getValue()) == 0))
{
setEmpty();
setState(4);
}
else if (m_specialVal.stateExists(8) && (string1.compareTo(getValue()) == 0 ||
((String)m_specialVal.getCharOverride(8, this)).compareTo(getValue()) == 0))
setHiVal();
else if (m_specialVal.stateExists(2) && (string2.compareTo(getValue()) == 0 ||
((String)m_specialVal.getCharOverride(2, this)).compareTo(getValue()) == 0))
setLoVal();

Page: 1024 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else if (m_specialVal.stateExists(1) && string4.compareTo(toString()) == 0)


setNull();
}

public boolean startsWith(ObField obField)


{
return obField.toObCharFld().getValue().startsWith(getValue());
}

public String toString()


{
if (hasState())
convertStateToContent();
return getData().toString();
}

public void trim()


{
if (((String)m_data).length() > m_cLength - 1 && m_cLength > 0)
m_data = ((String)m_data).substring(0, m_cLength - 1);
}
}

Page: 1025 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObDateFld

Full name of class: ObRun.ObRTTypes.ObDateFld.class

package ObRun.ObRTTypes;

import java.sql.*;
import java.util.*;
import ObRun.ObFunction.ObApplication;

public final synchronized class ObDateFld extends ObField


{
private static int m_DEFAULTTYPE;
private static int m_ALTERNATESQLTYPES[];

static
{
m_DEFAULTTYPE = -1;
}

public ObDateFld()
{
setEmpty();
}

public ObDateFld(byte b)
{
m_fldUsage = b;
setEmpty();
}

public ObDateFld(byte b, int i, int j, char ch, String string)


{
m_fldUsage = b;
m_designLength = i;
m_designDecimals = j;
m_AS400DataType = ch;
m_implName = string;
setEmpty();

Page: 1026 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObDateFld(byte b, int i1, int j, char ch, String string1, int k, String string2, String string3,
String string4, String string5, int i2)
{
m_fldUsage = b;
m_designLength = i1;
m_designDecimals = j;
m_AS400DataType = ch;
m_implName = string1;
Date date1 = null;
Date date2 = null;
Date date3 = null;
Date date4 = null;
ObDateFld obDateFld = null;
obDateFld = new ObDateFld(string2);
date1 = (Date)obDateFld.getData();
obDateFld = new ObDateFld(string3);
date2 = (Date)obDateFld.getData();
obDateFld = new ObDateFld(string5);
date3 = (Date)obDateFld.getData();
obDateFld = new ObDateFld(string4);
date4 = (Date)obDateFld.getData();
m_specialVal = new ObSpecialVal((short)k, (short)i2, date1, date2, date3, date4, this);
setEmpty();
}

public ObDateFld(String string)


{
fromString(string);
}

public ObDateFld(String string, byte b)


{
m_fldUsage = b;
fromString(string);
}

public ObDateFld(String string, int i)


{
fromString(string);

Page: 1027 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

setState(i);
}

public ObDateFld(Date date)


{
m_data = new Date(date.getTime());
}

public ObDateFld(Date date, byte b)


{
m_fldUsage = b;
m_data = new Date(date.getTime());
}

public ObField add(ObField obField)


{
setState(0);
ObDateFld obDateFld = obField.toObDateFld();
Date date1 = obDateFld.getValue();
Date date2 = getValue();
return new ObDateFld(new Date(date1.getTime() + date2.getTime()));
}

public void assign(ObField obField)


{
if (obField.getState() == 4)
{
setEmpty();
setState(4);
return;
}
if (obField.hasState())
setState(obField.getState());
else
setState(0);
if (obField instanceof ObDateFld)
m_data = new Date(((Date)obField.getData()).getTime());
else
castFrom(obField);
}

Page: 1028 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

protected void bindAsEmpty(PreparedStatement preparedStatement, int i)


{
ObDateFld obDateFld = new ObDateFld();
obDateFld.setEmpty();
obDateFld.bindStatement(preparedStatement, i);
}

public void bindStatement(PreparedStatement preparedStatement, int i, int j)


{
Object object = null;
boolean flag = false;
if (m_specialVal != null)
{
if (hasState() && !m_specialVal.hasStateLP(m_fldState) && m_specialVal.stateExists(m_fldState)
|| isEmpty() && !m_specialVal.hasStateLP(4) && m_specialVal.stateExists(4))
{
object = m_data;
if (hasState())
m_data = m_specialVal.getDateOverride(m_fldState).getData();
else
m_data = m_specialVal.getDateOverride(4).getData();
flag = true;
}
else if (isEmpty() && !m_specialVal.hasStateLP(2) && m_specialVal.stateExists(2))
{
object = m_data;
m_data = m_specialVal.getDateOverride(2).getData();
flag = true;
}
}
try
{
if (j == 91 || j == 9)
{
Date date = new Date(getValue().getTime());
preparedStatement.setDate(i, date);
}
else if (j == 93 || j == 11)
{
Timestamp timestamp = new Timestamp(getValue().getTime());
preparedStatement.setTimestamp(i, timestamp);

Page: 1029 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
else
super.bindStatement(preparedStatement, i, j);
}
catch (Exception e)
{
ObApplication.log(e.getMessage());
setEmpty();
}
if (flag)
{
m_data = null;
m_data = object;
}
}

public void castFrom(ObField obField)


{
if (obField.hasState())
{
setState(obField.getState());
return;
}
fromString(obField.toString());
setState(0);
}

public ObField divide(ObField obField)


{
setState(0);
ObDateFld obDateFld = obField.toObDateFld();
Date date1 = obDateFld.getValue();
Date date2 = getValue();
return new ObDateFld(new Date(date1.getTime() / date2.getTime()));
}

public void fromResultSet(ResultSet resultSet, int i)


{
try
{
Date date = resultSet.getDate(i);

Page: 1030 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (date == null)
{
setNull();
return;
}
m_data = new Date(date.getTime());
setReadState();
}
catch (Exception e)
{
ObApplication.log(e.getMessage());
setEmpty();
}
}

public void fromString(String string1)


{
setState(0);
if (string1 == null)
{
setEmpty();
return;
}
if (string1.compareTo("*NOW") == 0)
{
m_data = null;
m_data = new Date(System.currentTimeMillis());
return;
}
if (string1.compareTo("0000-00-00") == 0)
{
setEmpty();
return;
}
String string2 = new String(string1);
boolean flag = false;
try
{
local = new Long(string1);
}
catch (NumberFormatException e1)

Page: 1031 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
flag = true;
}
if (flag && string1.length() < 10)
{
local = 10 - string1.length();
for (int i = 0; i < local; i++)
string1 = new StringBuffer("0").append(string1).toString();
}
try
{
local = new Integer(string1.substring(0, 4));
Integer integer1 = new Integer(string1.substring(5, 7));
Integer integer2 = new Integer(string1.substring(8, 10));
Calendar calendar = Calendar.getInstance();
calendar.set(local.intValue(), integer1.intValue() - 1, integer2.intValue(), 0, 0, 0);
calendar.set(14, 0);
m_data = calendar.getTime();
}
catch (Exception e2)
{
fromStringWithoutSeparators(string2);
}
setReadState();
}

public void fromStringWithoutSeparators(String string)


{
setState(0);
if (string.compareTo("*NOW") == 0)
{
m_data = null;
m_data = new Date(System.currentTimeMillis());
return;
}
if (string.length() < 8)
{
int i = 8 - string.length();
for (int j = 0; j < i; j++)
string = new StringBuffer("0").append(string).toString();
}

Page: 1032 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (string.compareTo("00000000") == 0)
{
setEmpty();
return;
}
try
{
Integer integer1 = new Integer(string.substring(0, 4));
Integer integer2 = new Integer(string.substring(4, 6));
Integer integer3 = new Integer(string.substring(6, 8));
Calendar calendar = Calendar.getInstance();
calendar.set(integer1.intValue(), integer2.intValue() - 1, integer3.intValue(), 0, 0, 0);
calendar.set(14, 0);
m_data = calendar.getTime();
}
catch (Exception e)
{
setEmpty();
}
setReadState();
}

public byte[] getAS400ContentDefault()


{
byte ab[] = new byte[m_designLength];
switch (getState())
{
case 1:
case 2:
case 4:
for (int i = 0; i < ab.length; i++)
ab[i] = -16;
break;

case 8:
ab[0] = -7;
ab[1] = -7;
ab[2] = -7;
ab[3] = -7;
ab[4] = -15;
ab[5] = -14;

Page: 1033 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ab[6] = -13;
ab[7] = -15;
break;
}
return ab;
}

public int[] getAlternateSQLTypes()


{
if (m_ALTERNATESQLTYPES == null)
m_ALTERNATESQLTYPES = ObFieldSQLTypes.getAlternates(this);
return m_ALTERNATESQLTYPES;
}

public int getDefaultType()


{
if (m_DEFAULTTYPE == -1)
m_DEFAULTTYPE = ObFieldSQLTypes.getDefault(this);
return m_DEFAULTTYPE;
}

public Date getValue()


{
return (Date)m_data;
}

public boolean isAS400StateDefault(String string, int i)


{
byte ab[] = new byte[m_designLength];
switch (i)
{
case 1:
case 2:
case 4:
for (int j = 0; j < ab.length; j++)
ab[j] = -16;
break;

case 8:
ab[0] = -7;
ab[1] = -7;

Page: 1034 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ab[2] = -7;
ab[3] = -7;
ab[4] = -15;
ab[5] = -14;
ab[6] = -13;
ab[7] = -15;
break;
}
if (new String(ab).equals(string))
return true;
else
return false;
}

public boolean isEmpty()


{
if (getState() == 4)
return true;
Calendar calendar = Calendar.getInstance();
GregorianCalendar gregorianCalendar = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
gregorianCalendar.set(1, 0, 1, 0, 0, 0);
gregorianCalendar.set(14, 0);
calendar.setTime(gregorianCalendar.getTime());
int i = calendar.get(15) + calendar.get(16);
long j = calendar.getTime().getTime() - i;
if (m_specialVal != null && m_specialVal.stateExists(4))
j = ((Date)m_specialVal.getData(4)).getTime();
return j == ((Date)m_data).getTime();
}

public boolean isEqual(ObField obField)


{
if (!hasState() && !obField.hasState())
return obField.toObDateFld().getValue().getTime() == getValue().getTime();
if (getState() == obField.getState())
return true;
else
return false;
}

public boolean isGreaterThan(ObField obField)

Page: 1035 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
return getValue().after(obField.toObDateFld().getValue());
}

public boolean isGreaterThanOrEqual(ObField obField)


{
return getValue().equals(obField.toObDateFld().getValue()) ||
getValue().after(obField.toObDateFld().getValue());
}

public boolean isLessThan(ObField obField)


{
return getValue().before(obField.toObDateFld().getValue());
}

public boolean isLessThanOrEqual(ObField obField)


{
return getValue().equals(obField.toObDateFld().getValue()) ||
getValue().before(obField.toObDateFld().getValue());
}

public boolean isNotEqual(ObField obField)


{
if (hasState() || obField.hasState())
{
if (getState() != obField.getState())
return true;
else
return false;
}
if (obField.toObDateFld().toString().compareTo(toString()) != 0)
return true;
else
return false;
}

public ObField modulus(ObField obField)


{
setState(0);
ObDateFld obDateFld = obField.toObDateFld();
Date date1 = obDateFld.getValue();

Page: 1036 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Date date2 = getValue();


return new ObDateFld(new Date(date2.getTime() - date1.getTime() % date2.getTime() *
date1.getTime()));
}

public ObField multiply(ObField obField)


{
setState(0);
ObDateFld obDateFld = obField.toObDateFld();
Date date1 = obDateFld.getValue();
Date date2 = getValue();
return new ObDateFld(new Date(date1.getTime() * date2.getTime()));
}

public void set(ObField obField)


{
if (obField.hasState())
{
setState(obField.getState());
return;
}
ObDateFld obDateFld = obField.toObDateFld();
m_data = (Date)obDateFld.getData();
setState(0);
}

public void setEmpty()


{
setState(0);
if (m_specialVal != null && m_specialVal.stateExists(4))
m_data = m_specialVal.getData(4);
else
{
Calendar calendar = Calendar.getInstance();
GregorianCalendar gregorianCalendar = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
gregorianCalendar.set(1, 0, 1, 0, 0, 0);
gregorianCalendar.set(14, 0);
calendar.setTime(gregorianCalendar.getTime());
int i = calendar.get(15) + calendar.get(16);
long j = calendar.getTime().getTime() - i;
m_data = new Date();

Page: 1037 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

((Date)m_data).setTime(j);
}
}

protected void setReadState()


{
setState(0);
if (m_specialVal == null || m_specialVal.m_existMask == 0)
return;
String string1 = new ObDateFld((Date)m_specialVal.getData(8)).toString();
String string2 = new ObDateFld((Date)m_specialVal.getData(2)).toString();
String string3 = new ObDateFld((Date)m_specialVal.getData(4)).toString();
String string4 = new ObDateFld((Date)m_specialVal.getData(1)).toString();
if (m_specialVal.stateExists(4) && string3.compareTo(toString()) == 0)
{
setEmpty();
setState(4);
}
else if (m_specialVal.stateExists(8) && string1.compareTo(toString()) == 0)
setHiVal();
else if (m_specialVal.stateExists(2) && string2.compareTo(toString()) == 0)
setLoVal();
else if (m_specialVal.stateExists(1) && string4.compareTo(toString()) == 0)
setNull();
}

public ObField subtract(ObField obField)


{
setState(0);
ObDateFld obDateFld = obField.toObDateFld();
Date date1 = obDateFld.getValue();
Date date2 = getValue();
return new ObDateFld(new Date(date1.getTime() - date2.getTime()));
}

public ObDateFld toObDateFld()


{
return new ObDateFld(getValue());
}

public String toString()

Page: 1038 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
if (hasState())
convertStateToContent();
Calendar calendar = Calendar.getInstance();
calendar.setTime((Date)m_data);
String string1 = new String(new Integer(calendar.get(1)).toString());
String string2 = new String(new Integer(calendar.get(2) + 1).toString());
if (string2.length() == 1)
string2 = new StringBuffer("0").append(string2).toString();
String string3 = new String(new Integer(calendar.get(5)).toString());
if (string3.length() == 1)
string3 = new StringBuffer("0").append(string3).toString();
String string4 = new String("-" + string2 + "-" + string3);
if (isEmpty() && !hasSpecialValues())
string4 = "0001-01-01";
return string4;
}

public String toStringWithoutSeparators()


{
if (hasState())
convertStateToContent();
Calendar calendar = Calendar.getInstance();
calendar.setTime((Date)m_data);
String string1 = new String(new Integer(calendar.get(1)).toString());
String string2 = new String(new Integer(calendar.get(2) + 1).toString());
if (string2.length() == 1)
string2 = new StringBuffer("0").append(string2).toString();
String string3 = new String(new Integer(calendar.get(5)).toString());
if (string3.length() == 1)
string3 = new StringBuffer("0").append(string3).toString();
String string4 = new String(string2 + string3);
if (isEmpty())
string4 = "00000000";
return string4;
}
}

Page: 1039 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObDblFld

Full name of class: ObRun.ObRTTypes.ObDblFld.class

package ObRun.ObRTTypes;

import ObRun.ObFunction.ObApplication;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public final synchronized class ObDblFld extends ObField


{
private static int m_DEFAULTTYPE;
private static int m_ALTERNATESQLTYPES[];

static
{
m_DEFAULTTYPE = -1;
}

public ObDblFld()
{
setEmpty();
}

public ObDblFld(byte b)
{
m_fldUsage = b;
setEmpty();
}

public ObDblFld(byte b, int i, int j, char ch, String string)


{
m_fldUsage = b;
m_designLength = i;
m_designDecimals = j;
m_AS400DataType = ch;
m_implName = string;
setEmpty();

Page: 1040 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObDblFld(byte b, int i1, int j, char ch, String string1, int k, String string2, String string3,
String string4, String string5, int i2)
{
m_fldUsage = b;
m_designLength = i1;
m_designDecimals = j;
m_AS400DataType = ch;
m_implName = string1;
Double double1 = null;
Double double2 = null;
Double double3 = null;
Double double4 = null;
try
{
double1 = new Double(string2);
}
catch (Exception e1)
{
ObApplication.log(" double " + ObApplication.getString("NotValidValue"));
}
try
{
double2 = new Double(string3);
}
catch (Exception e2)
{
ObApplication.log(" double " + ObApplication.getString("NotValidValue"));
}
try
{
double3 = new Double(string5);
}
catch (Exception e3)
{
ObApplication.log(" double " + ObApplication.getString("NotValidValue"));
}
try
{
double4 = new Double(string4);

Page: 1041 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
catch (Exception e4)
{
ObApplication.log(" double " + ObApplication.getString("NotValidValue"));
}
m_specialVal = new ObSpecialVal((short)k, (short)i2, double1, double2, double3, double4, this);
setEmpty();
}

public ObDblFld(double d)
{
m_data = new Double(d);
}

public ObDblFld(double d, byte b)


{
m_fldUsage = b;
m_data = new Double(d);
}

public ObDblFld(double d, int i)


{
m_data = new Double(d);
setState(i);
}

public ObDblFld(Double double)


{
m_data = new Double(double.doubleValue());
}

public ObDblFld(Double double, byte b)


{
m_fldUsage = b;
m_data = new Double(double.doubleValue());
}

public ObDblFld(String string)


{
m_data = new Double(string);
}

Page: 1042 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObDblFld(String string, byte b)


{
m_fldUsage = b;
m_data = new Double(string);
}

public ObField add(ObField obField)


{
setState(0);
ObDblFld obDblFld = obField.toObDblFld();
double d1 = obDblFld.getValue();
double d2 = getValue();
return new ObDblFld(d1 + d2);
}

public void assign(ObField obField)


{
if (obField.getState() == 4)
{
setEmpty();
setState(4);
return;
}
if (obField.hasState())
setState(obField.getState());
else
setState(0);
if (obField instanceof ObDblFld)
m_data = new Double(((Double)obField.getData()).doubleValue());
else
castFrom(obField);
}

protected void bindAsEmpty(PreparedStatement preparedStatement, int i)


{
ObDblFld obDblFld = new ObDblFld();
obDblFld.bindStatement(preparedStatement, i);
}

public void bindStatement(PreparedStatement preparedStatement, int i, int j)

Page: 1043 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
try
{
if (j == 8 || j == 6)
preparedStatement.setDouble(i, getValue());
else
super.bindStatement(preparedStatement, i, j);
}
catch (Exception e)
{
ObApplication.log(e.getMessage());
setEmpty();
}
}

public void castFrom(ObField obField)


{
if (obField.hasState())
{
setState(obField.getState());
return;
}
try
{
if (obField.getData() instanceof Number)
m_data = new Double(((Number)obField.getData()).doubleValue());
else
m_data = new Double(obField.toObDblFld().getValue());
}
catch (Exception e2)
{
try
{
m_data = new Double(obField.toStringWithoutSeparators());
if (m_data == null)
setEmpty();
}
catch (Exception e1)
{
setEmpty();
}

Page: 1044 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
setState(0);
}

public ObField divide(ObField obField)


{
setState(0);
ObDblFld obDblFld = obField.toObDblFld();
double d1 = obDblFld.getValue();
double d2 = getValue();
return new ObDblFld(d2 / d1);
}

public void fromResultSet(ResultSet resultSet, int i)


{
try
{
m_data = new Double(resultSet.getDouble(i));
if (resultSet.wasNull())
{
setNull();
return;
}
setReadState();
}
catch (Exception e)
{
ObApplication.log(e.getMessage());
setEmpty();
}
}

public void fromString(String string)


{
setState(0);
try
{
m_data = new Double(string);
}
catch (Exception e)
{

Page: 1045 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_data = new Double(0.0);


}
setReadState();
}

public byte[] getAS400ContentDefault()


{
int i = m_designLength;
byte ab1[] = getAS400ContentNumberDefault(i, getState());
byte ab2[] = new byte[i];
for (int j = 0; j < ab2.length; j++)
ab2[j] = ab1[j];
return ab2;
}

public int[] getAlternateSQLTypes()


{
if (m_ALTERNATESQLTYPES == null)
m_ALTERNATESQLTYPES = ObFieldSQLTypes.getAlternates(this);
return m_ALTERNATESQLTYPES;
}

public int getDefaultType()


{
if (m_DEFAULTTYPE == -1)
m_DEFAULTTYPE = ObFieldSQLTypes.getDefault(this);
return m_DEFAULTTYPE;
}

public double getValue()


{
return ((Double)m_data).doubleValue();
}

public boolean isAS400StateDefault(String string, int i)


{
int j = m_designLength;
byte ab1[] = getAS400ContentNumberDefault(j, i);
byte ab2[] = new byte[j];
for (int k = 0; k < ab2.length; k++)
ab2[k] = ab1[k];

Page: 1046 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (new String(ab2).equals(string))
return true;
else
return false;
}

public boolean isEmpty()


{
if (getState() == 4)
return true;
double d = 0.0;
if (m_specialVal != null && m_specialVal.stateExists(4))
d = ((Double)m_specialVal.getData(4)).doubleValue();
return d == getValue();
}

public boolean isEqual(ObField obField)


{
if (!hasState() && !obField.hasState())
return obField.toObDblFld().getValue() == getValue();
if (getState() == obField.getState())
return true;
else
return false;
}

public boolean isGreaterThan(ObField obField)


{
return getValue() > obField.toObDblFld().getValue();
}

public boolean isGreaterThanOrEqual(ObField obField)


{
return getValue() >= obField.toObDblFld().getValue();
}

public boolean isLessThan(ObField obField)


{
return getValue() < obField.toObDblFld().getValue();
}

Page: 1047 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public boolean isLessThanOrEqual(ObField obField)


{
return getValue() <= obField.toObDblFld().getValue();
}

public boolean isNotEqual(ObField obField)


{
if (!hasState() && !obField.hasState())
return obField.toObDblFld().getValue() != getValue();
if (getState() != obField.getState())
return true;
else
return false;
}

public ObField modulus(ObField obField)


{
setState(0);
ObDblFld obDblFld = obField.toObDblFld();
double d1 = obDblFld.getValue();
double d2 = getValue();
return new ObDblFld(d2 % d1);
}

public ObField multiply(ObField obField)


{
setState(0);
ObDblFld obDblFld = obField.toObDblFld();
double d1 = obDblFld.getValue();
double d2 = getValue();
return new ObDblFld(d2 * d1);
}

public void set(ObField obField)


{
if (obField.hasState())
{
setState(obField.getState());
return;
}
ObDblFld obDblFld = obField.toObDblFld();

Page: 1048 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_data = (Double)obDblFld.getData();
setState(0);
}

public void setEmpty()


{
setState(0);
if (m_specialVal != null && m_specialVal.stateExists(4))
m_data = m_specialVal.getData(4);
else
m_data = new Double(0.0);
}

protected void setReadState()


{
setState(0);
if (m_specialVal == null || m_specialVal.m_existMask == 0)
return;
Double double1 = (Double)m_specialVal.getData(8);
Double double2 = (Double)m_specialVal.getData(2);
Double double3 = (Double)m_specialVal.getData(4);
Double double4 = (Double)m_specialVal.getData(1);
if (double3.doubleValue() == getValue() && m_specialVal.stateExists(4))
{
setEmpty();
setState(4);
}
else if (double1.doubleValue() == getValue() && m_specialVal.stateExists(8))
setHiVal();
else if (double2.doubleValue() == getValue() && m_specialVal.stateExists(2))
setLoVal();
else if (double4.doubleValue() == getValue() && m_specialVal.stateExists(1))
setNull();
}

public ObField subtract(ObField obField)


{
setState(0);
ObDblFld obDblFld = obField.toObDblFld();
double d1 = obDblFld.getValue();
double d2 = getValue();

Page: 1049 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

return new ObDblFld(d2 - d1);


}

public String toString()


{
if (hasState())
convertStateToContent();
String string = getData().toString();
if (string.length() > m_cLength - 1)
string = string.substring(0, m_cLength - 1);
return string;
}
}

Page: 1050 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObField

Full name of class: ObRun.ObRTTypes.ObField.class

package ObRun.ObRTTypes;

import java.io.*;
import ObRun.ObDatabase.ObDatabaseConnection;
import ObRun.ObDatabase.ObDatabaseMgr;
import ObRun.ObEnvironment.ObLog;
import ObRun.ObFunction.ObApplication;
import ObRun.ObFunction.ObVariable;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.MessageFormat;

public synchronized abstract class ObField implements Serializable, Cloneable


{
public static final int BIT = -7;
public static final int TINYINT = -6;
public static final int SMALLINT = 5;
public static final int INTEGER = 4;
public static final int BIGINT = -5;
public static final int FLOAT = 6;
public static final int REAL = 7;
public static final int DOUBLE = 8;
public static final int NUMERIC = 2;
public static final int DECIMAL = 3;
public static final int CHAR = 1;
public static final int VARCHAR = 12;
public static final int LONGVARCHAR = -1;
public static final int DATE = 91;
public static final int TIME = 92;
public static final int TIMESTAMP = 93;
public static final int BINARY = -2;
public static final int VARBINARY = -3;
public static final int LONGVARBINARY = -4;
public static final int JDBC_ODBC_DATE = 9;
public static final int JDBC_ODBC_TIME = 10;

Page: 1051 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public static final int JDBC_ODBC_TIMESTAMP = 11;


protected Object m_data;
protected ObSpecialVal m_specialVal;
private ObVariable m_owner;
public static final byte LOCAL = 0;
public static final byte INPUT = 1;
public static final byte DUAL = 2;
public static final byte OUTPUT = 3;
public static final byte ENVIRONMENT = 4;
public static final byte VIEW_KEY = 5;
public static final byte VIEW_COL = 6;
public static final byte UNDEFINED = 7;
public static final byte CALLS = 8;
public static final byte SYSTEM = 9;
public static final byte VIEW_DERIVED = 10;
public static final byte PANEL = 11;
protected byte m_fldUsage;
public static final int NORMAL = 0;
public static final int NULL = 1;
public static final int LOVAL = 2;
public static final int EMPTY = 4;
public static final int HIVAL = 8;
protected int m_fldState;
protected int m_cLength;
public static final int BYTECLENGTH = 5;
public static final int INTEGERCLENGTH = 7;
public static final int LONGCLENGTH = 12;
public static final int SINGLECLENGTH = 8;
public static final int DOUBLECLENGTH = 18;
public static final int LDOUBLECLENGTH = 20;
public static final int TIMECLENGTH = 9;
public static final int DATECLENGTH = 11;
public static final int TIMESTAMPCLENGTH = 22;
public String m_implName;
protected int m_designLength;
protected int m_designDecimals;
protected char m_AS400DataType;
public static final char AS400CHAR = 'c';
public static final char AS400PACKED = 'p';
public static final char AS400ZONED = 'z';
public static final char AS400BINARY = 'b';

Page: 1052 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public static final char AS400HEX = 'h';


public static final char AS400STRUCT = 'u';
public static final char AS400TIME = 't';
public static final char AS400DATE = 'd';
public static final char AS400TIMESTAMP = 's';

public ObField()
{
m_owner = null;
m_fldUsage = 0;
m_fldState = 0;
m_cLength = 0;
m_designLength = 0;
m_designDecimals = 0;
m_AS400DataType = 'c';
String string = getClass().getName();
if (string.equals("ObRun.ObRTTypes.ObByteFld"))
m_cLength = 5;
else if (string.equals("ObRun.ObRTTypes.ObDblFld"))
m_cLength = 18;
else if (string.equals("ObRun.ObRTTypes.ObIntFld"))
m_cLength = 7;
else if (string.equals("ObRun.ObRTTypes.ObLongFld"))
m_cLength = 12;
else if (string.equals("ObRun.ObRTTypes.ObLongDblFld"))
m_cLength = 20;
else if (string.equals("ObRun.ObRTTypes.ObSglFld"))
m_cLength = 8;
else if (string.equals("ObRun.ObRTTypes.ObDateFld"))
m_cLength = 11;
else if (string.equals("ObRun.ObRTTypes.ObTimeFld"))
m_cLength = 9;
else if (string.equals("ObRun.ObRTTypes.ObTimeStampFld"))
m_cLength = 22;
else
m_cLength = 0;
}

public ObField add(ObField obField)


{
return null;

Page: 1053 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public abstract void assign(ObField obField);


protected abstract void bindAsEmpty(PreparedStatement preparedStatement, int i);
private void bindHiVal(PreparedStatement preparedStatement, int i, int j)
{
bindStatement(preparedStatement, i, j);
}

private void bindLoVal(PreparedStatement preparedStatement, int i, int j)


{
bindStatement(preparedStatement, i, j);
}

public void bindStatement(PreparedStatement preparedStatement, int i)


{
bindStatement(preparedStatement, i, false);
}

public void bindStatement(PreparedStatement preparedStatement, int i, int j)


{
try
{
if (j == 1 || j == 12 || j == -1)
preparedStatement.setString(i, toString());
}
catch (Exception e)
{
ObApplication.log(e.getMessage());
setEmpty();
}
}

public void bindStatement(PreparedStatement preparedStatement, int i, boolean flag)


{
ObDatabaseConnection obDatabaseConnection = ObApplication.findDbMgr(true).getConnection();
try
{
int j = obDatabaseConnection.getAcceptedSQLType(getClass().getName());
if (hasState())
bindWithState(preparedStatement, i, j);

Page: 1054 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else
bindStatement(preparedStatement, i, j);
}
catch (Exception e)
{
ObApplication.log(e.getMessage());
setEmpty();
}
}

protected void bindWithState(PreparedStatement preparedStatement, int i, int j)


{
boolean flag = false;
if (this instanceof ObCharFld || this instanceof ObDateFld || this instanceof ObTimeFld || this
instanceof ObTimeStampFld)
flag = true;
try
{
switch (getState())
{
case 4:
bindStatement(preparedStatement, i, j);
break;

case 1:
ObDatabaseConnection obDatabaseConnection = ObApplication.findDbMgr(true).getConnection();
if (obDatabaseConnection.supportsSQLNull(getClass().getName()))
preparedStatement.setNull(i, j);
else
{
bindAsEmpty(preparedStatement, i);
ObApplication.log(ObApplication.getResString("NullEmpty"));
}
break;

case 8:
if (m_specialVal != null && m_specialVal.hasStateLP(8) || m_specialVal != null && flag)
bindHiVal(preparedStatement, i, j);
else
{
bindAsEmpty(preparedStatement, i);

Page: 1055 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObApplication.log(2, m_implName + ObApplication.getString("HighStateNoLP"));


}
break;

case 2:
if (m_specialVal != null && m_specialVal.hasStateLP(2) || m_specialVal != null && flag)
bindLoVal(preparedStatement, i, j);
else
{
bindAsEmpty(preparedStatement, i);
ObApplication.log(2, m_implName + ObApplication.getString("LowStateNoLP"));
}
break;
}
}
catch (Exception e)
{
ObApplication.log(e.getMessage());
setEmpty();
}
}

public abstract void castFrom(ObField obField);


public void clearReferences()
{
}

public Object clone()


throws CloneNotSupportedException
{
ObField obField = (ObField)super.clone();
obField.set(this);
return obField;
}

public void convertState()


{
if (hasState() && !m_specialVal.hasStateLP(m_fldState) && m_specialVal.stateExists(m_fldState))
m_data = m_specialVal.getData(m_fldState);
}

Page: 1056 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void convertStateToContent()


{
boolean flag = false;
if (this instanceof ObCharFld || this instanceof ObDateFld || this instanceof ObTimeFld || this
instanceof ObTimeStampFld)
flag = true;
try
{
switch (getState())
{
case 1:
if (m_specialVal != null)
convertState();
else
setEmpty();
break;

case 8:
if (m_specialVal != null)
convertState();
else
setEmpty();
break;

case 2:
if (m_specialVal != null)
convertState();
else
setEmpty();
break;

case 4:
if (m_specialVal != null)
convertState();
else
setEmpty();
break;
}
}
catch (Exception e)
{

Page: 1057 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObApplication.log(e.getMessage());
setEmpty();
}
}

public ObField divide(ObField obField)


{
return null;
}

public void formatMessage(String string)


{
if (this instanceof ObCharFld)
m_data = string;
}

public void formatMessage(String string1, Object aobject[])


{
if (this instanceof ObCharFld)
{
String string2 = MessageFormat.format(string1, aobject);
m_data = string2;
}
}

public abstract void fromResultSet(ResultSet resultSet, int i);


public abstract void fromString(String string);
public void fromStringWithoutSeparators(String string)
{
}

public byte[] getAS400Content()


{
if (m_specialVal != null && !m_specialVal.hasStateLP(getState()))
return getAS400ContentDefault();
else
return null;
}

public abstract byte[] getAS400ContentDefault();


public byte[] getAS400ContentNumberDefault(int i1, int j1)

Page: 1058 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
byte ab[] = new byte[i1 + 2];
for (int k1 = 0; k1 < i1 + 1; k1++)
ab[k1] = 0;
switch (j1)
{
case 1:
case 4:
switch (m_AS400DataType)
{
case 112:
i1 = m_designLength / 2 + 1;
if (i1 > 1)
for (int i2 = 0; i2 < i1 - 1; i2++)
ab[i2] = 0;
ab[i1 - 1] = 15;
break;

case 122:
for (int j2 = 0; j2 < m_designLength; j2++)
ab[j2] = -16;
break;

case 98:
i1 = 2;
if (m_designLength > 4)
i1 = 4;
for (int k2 = 0; k2 < i1; k2++)
ab[k2] = 0;
break;
}
break;

case 8:
switch (m_AS400DataType)
{
case 112:
i1 = m_designLength / 2 + 1;
if (i1 > 1)
for (int i3 = 0; i3 < i1 - 1; i3++)
ab[i3] = -103;

Page: 1059 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ab[i1 - 1] = -97;
break;

case 122:
for (int j3 = 0; j3 < m_designLength; j3++)
ab[j3] = -7;
break;

case 98:
i1 = 2;
if (m_designLength > 4)
{
i1 = 4;
ab[0] = 59;
ab[1] = -102;
ab[2] = -55;
ab[3] = -1;
ab[4] = 0;
}
else
{
ab[0] = 39;
ab[1] = 15;
ab[2] = 0;
}
break;
}
break;

case 2:
switch (m_AS400DataType)
{
case 112:
i1 = m_designLength / 2 + 1;
if (i1 > 1)
for (int k3 = 0; k3 < i1 - 1; k3++)
ab[k3] = -103;
ab[i1 - 1] = -99;
break;

case 122:

Page: 1060 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (i1 > 1)
for (int i4 = 0; i4 < i1 - 1; i4++)
ab[i4] = -7;
ab[i1 - 1] = -39;
break;

case 98:
i1 = 2;
if (m_designLength > 4)
{
i1 = 4;
ab[0] = -60;
ab[1] = 101;
ab[2] = 54;
ab[3] = 1;
ab[4] = 0;
}
else
{
ab[0] = -40;
ab[1] = -15;
ab[2] = 0;
}
break;
}
break;
}
return ab;
}

public char getAS400DataType()


{
return m_AS400DataType;
}

public String getAS400State(String string)


{
setState(0);
if (!m_specialVal.hasStateLP(4) && isAS400StateDefault(string, 4))
{
setEmpty();

Page: 1061 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

setState(4);
return toString();
}
if (!m_specialVal.hasStateLP(8) && isAS400StateDefault(string, 8))
{
setHiVal();
return toString();
}
if (!m_specialVal.hasStateLP(2) && isAS400StateDefault(string, 2))
{
setLoVal();
return toString();
}
if (m_specialVal.hasStateLP(1) || !isAS400StateDefault(string, 1))
return null;
setNull();
return toString();
}

public abstract int[] getAlternateSQLTypes();


public int getCLength()
{
if (m_cLength > 0)
return m_cLength;
if (this instanceof ObCharFld)
return m_data.toString().length() + 1;
else
return 0;
}

protected Long getCastLong(ObField obField)


{
String string = obField.getData().toString();
if (obField.getData().toString().length() > m_cLength - 1)
string = string.substring(0, m_cLength - 1);
Long long = null;
try
{
long = new Long(string);
}
catch (Exception e)

Page: 1062 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
long = new Long(0L);
}
return long;
}

public String getColumnName()


{
return m_implName;
}

public String getCorrelatedName()


{
return m_implName;
}

public Object getData()


{
return m_data;
}

public abstract int getDefaultType();


public int getDesignDecimals()
{
return m_designDecimals;
}

public int getDesignLength()


{
return m_designLength;
}

public int getState()


{
return m_fldState;
}

public boolean hasSpecialValues()


{
return m_specialVal != null;
}

Page: 1063 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public boolean hasState()


{
return m_fldState != 0;
}

public abstract boolean isAS400StateDefault(String string, int i);


public boolean isDerived()
{
return m_fldUsage == 10;
}

public abstract boolean isEmpty();


public abstract boolean isEqual(ObField obField);
public abstract boolean isGreaterThan(ObField obField);
public abstract boolean isGreaterThanOrEqual(ObField obField);
public boolean isHiVal()
{
return m_fldState == 8;
}

public boolean isKey()


{
return m_fldUsage == 5;
}

public abstract boolean isLessThan(ObField obField);


public abstract boolean isLessThanOrEqual(ObField obField);
public boolean isLoVal()
{
return m_fldState == 2;
}

public abstract boolean isNotEqual(ObField obField);


public boolean isNull()
{
return m_fldState == 1;
}

public abstract ObField modulus(ObField obField);


public ObField multiply(ObField obField)

Page: 1064 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
return null;
}

private void readObject(ObjectInputStream objectInputStream)


throws IOException, ClassNotFoundException
{
objectInputStream.defaultReadObject();
}

public void round(ObField obField)


{
}

public abstract void set(ObField obField);


public void setAttr()
{
m_fldUsage = 6;
}

public abstract void setEmpty();


public void setHiVal()
{
m_fldState = 8;
if (m_specialVal != null)
m_data = m_specialVal.getData(8);
}

public void setKey()


{
m_fldUsage = 5;
}

public void setLoVal()


{
m_fldState = 2;
if (m_specialVal != null)
m_data = m_specialVal.getData(2);
}

public void setNull()

Page: 1065 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
m_fldState = 1;
if (m_specialVal != null)
m_data = m_specialVal.getData(1);
}

public void setOwner(ObVariable obVariable)


{
m_owner = obVariable;
}

protected abstract void setReadState();


public void setState(int i)
{
m_fldState = i;
if (m_specialVal != null && i != 0 && m_specialVal.stateExists(i))
m_data = m_specialVal.getData(i);
}

public void substring(ObField obField1, ObField obField2, ObField obField3)


{
if (!(obField3.getData() instanceof Number) || !(obField2.getData() instanceof Number))
return;
String string = obField1.getData().toString();
if (((Number)obField3.getData()).intValue() < 1)
obField3.assign(new ObCharFld("1"));
if (((Number)obField3.getData()).intValue() - 1 > string.length())
string = new String("");
else if (((Number)obField3.getData()).intValue() - 1 + ((Number)obField2.getData()).intValue() >
string.length())
string = string.substring(((Number)obField3.getData()).intValue() - 1);
else
string = string.substring(((Number)obField3.getData()).intValue() - 1,
((Number)obField3.getData()).intValue() - 1 + ((Number)obField2.getData()).intValue());
fromString(string);
}

public ObField subtract(ObField obField)


{
return null;
}

Page: 1066 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObByteFld toObByteFld()


{
return new ObByteFld(toString());
}

public ObCharFld toObCharFld()


{
return new ObCharFld(toString());
}

public ObDateFld toObDateFld()


{
return new ObDateFld(toString());
}

public ObDblFld toObDblFld()


{
return new ObDblFld(toString());
}

public ObFixedDecFld toObFixedDecFld()


{
return new ObFixedDecFld(toString());
}

public ObIntFld toObIntFld()


{
return new ObIntFld(toString());
}

public ObLongDblFld toObLongDblFld()


{
return new ObLongDblFld(toString());
}

public ObLongFld toObLongFld()


{
return new ObLongFld(toString());
}

Page: 1067 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObSglFld toObSglFld()


{
return new ObSglFld(toString());
}

public ObTimeFld toObTimeFld()


{
return new ObTimeFld(toString());
}

public ObTimeStampFld toObTimeStampFld()


{
return new ObTimeStampFld(toString());
}

public abstract String toString();


public String toStringWithoutSeparators()
{
return null;
}

private void writeObject(ObjectOutputStream objectOutputStream)


throws IOException
{
objectOutputStream.defaultWriteObject();
}
}

Page: 1068 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObFieldSQLTypes

Full name of class: ObRun.ObRTTypes.ObFieldSQLTypes.class

package ObRun.ObRTTypes;

public final synchronized class ObFieldSQLTypes


{
public ObFieldSQLTypes()
{
}

public static synchronized int[] getAlternates(ObField obField)


{
if (obField instanceof ObByteFld)
{
int an1[] = { 4, 1, 12, -1 };
return an1;
}
if (obField instanceof ObCharFld)
{
int an2[] = { 12, -1 };
return an2;
}
if (obField instanceof ObDateFld)
{
int an3[] = { 9, 93, 11, 1, 12, -1 };
return an3;
}
if (obField instanceof ObDblFld)
{
int an4[] = { 6, 1, 12, -1 };
return an4;
}
if (obField instanceof ObFixedDecFld)
{
int an5[] = { 3, 1, 12, -1 };
return an5;
}

Page: 1069 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (obField instanceof ObIntFld)


{
int an6[] = { 1, 12, -1 };
return an6;
}
if (obField instanceof ObLongDblFld)
{
int an7[] = { 6, 1, 12, -1 };
return an7;
}
if (obField instanceof ObLongFld)
{
int an8[] = { 1, 12, -1 };
return an8;
}
if (obField instanceof ObSglFld)
{
int an9[] = { 6, 1, 12, -1 };
return an9;
}
if (obField instanceof ObTimeFld)
{
int an10[] = { 10, 93, 11, 1, 12, -1 };
return an10;
}
if (obField instanceof ObTimeStampFld)
{
int an11[] = { 11, 1, 12, -1 };
return an11;
}
int an12[] = new int[0];
return an12;
}

public static synchronized int getDefault(ObField obField)


{
byte b = -1;
if (obField instanceof ObByteFld)
b = -6;
else if (obField instanceof ObCharFld)
b = 1;

Page: 1070 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else if (obField instanceof ObDateFld)


b = 91;
else if (obField instanceof ObDblFld)
b = 8;
else if (obField instanceof ObFixedDecFld)
b = 2;
else if (obField instanceof ObIntFld)
b = 4;
else if (obField instanceof ObLongDblFld)
b = 8;
else if (obField instanceof ObLongFld)
b = 4;
else if (obField instanceof ObSglFld)
b = 8;
else if (obField instanceof ObTimeFld)
b = 92;
else if (obField instanceof ObTimeStampFld)
b = 93;
return b;
}
}

Page: 1071 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObFixedDecFld

Full name of class: ObRun.ObRTTypes.ObFixedDecFld.class

package ObRun.ObRTTypes;

import ObRun.ObFunction.ObApplication;
import java.math.BigDecimal;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public final synchronized class ObFixedDecFld extends ObField


{
private static int m_DEFAULTTYPE;
private static int m_ALTERNATESQLTYPES[];

static
{
m_DEFAULTTYPE = -1;
}

public ObFixedDecFld()
{
setEmpty();
}

public ObFixedDecFld(byte b)
{
m_fldUsage = b;
setEmpty();
}

public ObFixedDecFld(byte b, int i, int j)


{
m_designLength = i;
m_designDecimals = j;
m_fldUsage = b;
m_cLength = m_designLength + 2;
setEmpty();

Page: 1072 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObFixedDecFld(byte b, int i, int j, char ch, String string)


{
m_designLength = i;
m_designDecimals = j;
m_fldUsage = b;
m_cLength = m_designLength + 2;
m_AS400DataType = ch;
m_implName = string;
setEmpty();
}

public ObFixedDecFld(byte b, int i1, int j, char ch, String string1, int k, String string2, String
string3, String string4, String string5, int i2)
{
m_fldUsage = b;
m_AS400DataType = ch;
m_implName = string1;
m_designLength = i1;
m_designDecimals = j;
m_cLength = m_designLength + 2;
BigDecimal bigDecimal1 = null;
BigDecimal bigDecimal2 = null;
BigDecimal bigDecimal3 = null;
BigDecimal bigDecimal4 = null;
try
{
bigDecimal1 = new BigDecimal(string2);
}
catch (Exception e1)
{
ObApplication.log(" fixed decimal " + ObApplication.getString("NotValidValue"));
}
try
{
bigDecimal2 = new BigDecimal(string3);
}
catch (Exception e2)
{
ObApplication.log(" fixed decimal " + ObApplication.getString("NotValidValue"));

Page: 1073 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
try
{
bigDecimal3 = new BigDecimal(string5);
}
catch (Exception e3)
{
ObApplication.log(" fixed decimal " + ObApplication.getString("NotValidValue"));
}
try
{
bigDecimal4 = new BigDecimal(string4);
}
catch (Exception e4)
{
ObApplication.log(" fixed decimal " + ObApplication.getString("NotValidValue"));
}
m_specialVal = new ObSpecialVal((short)k, (short)i2, bigDecimal1, bigDecimal2, bigDecimal3,
bigDecimal4, this);
setEmpty();
}

public ObFixedDecFld(byte b, String string)


{
m_fldUsage = b;
m_implName = string;
setEmpty();
}

public ObFixedDecFld(String string)


{
int i = string.indexOf(".");
if (i > -1)
{
m_designLength = string.length() - 1;
m_designDecimals = m_designLength - i;
m_cLength = m_designLength + 2;
}
else
{
m_designLength = string.length();

Page: 1074 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_designDecimals = 0;
m_cLength = m_designLength + 1;
}
m_data = new BigDecimal(string);
}

public ObFixedDecFld(String string, int i)


{
m_data = new BigDecimal(string);
m_cLength = m_designLength + 2;
setState(i);
}

public ObFixedDecFld(String string, int i, int j)


{
m_designLength = i;
m_designDecimals = j;
m_data = new BigDecimal(string);
m_cLength = m_designLength + 2;
}

public ObFixedDecFld(String string1, int i, int j, String string2)


{
m_implName = string2;
m_designLength = i;
m_designDecimals = j;
m_data = new BigDecimal(string1);
m_cLength = m_designLength + 2;
}

public ObFixedDecFld(BigDecimal bigDecimal)


{
m_data = new BigDecimal(bigDecimal.toString());
}

public ObFixedDecFld(BigDecimal bigDecimal, int i, int j)


{
m_data = new BigDecimal(bigDecimal.toString());
m_designLength = i;
m_designDecimals = j;
m_cLength = m_designLength + 2;

Page: 1075 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObField add(ObField obField)


{
setState(0);
ObFixedDecFld obFixedDecFld = obField.toObFixedDecFld();
BigDecimal bigDecimal = ((BigDecimal)m_data).add(obFixedDecFld.getValue());
return new ObFixedDecFld(bigDecimal);
}

public void assign(ObField obField)


{
if (obField.getState() == 4)
{
setEmpty();
setState(4);
return;
}
if (obField.hasState())
setState(obField.getState());
else
setState(0);
if (obField instanceof ObFixedDecFld)
{
ObFixedDecFld obFixedDecFld = (ObFixedDecFld)obField;
m_data = new BigDecimal(((BigDecimal)obFixedDecFld.getData()).toString());
try
{
m_data = ((BigDecimal)m_data).setScale(m_designDecimals);
}
catch (Exception e)
{
m_data = ((BigDecimal)m_data).setScale(m_designDecimals, 1);
}
}
else
castFrom(obField);
}

protected void bindAsEmpty(PreparedStatement preparedStatement, int i)


{

Page: 1076 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObFixedDecFld obFixedDecFld = new ObFixedDecFld();


obFixedDecFld.bindStatement(preparedStatement, i);
}

public void bindStatement(PreparedStatement preparedStatement, int i, int j)


{
try
{
if (j == 2 || j == 3)
preparedStatement.setBigDecimal(i, getValue());
else
super.bindStatement(preparedStatement, i, j);
}
catch (Exception e)
{
ObApplication.log(e.getMessage());
setEmpty();
}
}

public void castFrom(ObField obField)


{
if (obField.hasState())
{
setState(obField.getState());
return;
}
String string1 = obField.getData().toString();
int i = string1.indexOf(46);
if (i > -1 && string1.length() - (i + 1) > m_designDecimals)
string1 = string1.substring(0, i + 1 + m_designDecimals);
try
{
m_data = new BigDecimal(string1);
m_data = ((BigDecimal)m_data).setScale(m_designDecimals);
}
catch (Exception e2)
{
String string2 = obField.toStringWithoutSeparators();
if (string2 == null)
string2 = new String();

Page: 1077 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

int j = string2.indexOf(46);
if (j > -1 && string2.length() - (j + 1) > m_designDecimals)
string2 = string2.substring(0, j + 1 + m_designDecimals);
try
{
m_data = new BigDecimal(string2);
m_data = ((BigDecimal)m_data).setScale(m_designDecimals);
}
catch (Exception e1)
{
m_data = new BigDecimal(0.0);
m_data = ((BigDecimal)m_data).setScale(m_designDecimals, 1);
}
}
setState(0);
}

public ObField divide(ObField obField)


{
setState(0);
ObFixedDecFld obFixedDecFld = obField.toObFixedDecFld();
BigDecimal bigDecimal = ((BigDecimal)m_data).divide(obFixedDecFld.getValue(), m_designDecimals, 4);
return new ObFixedDecFld(bigDecimal);
}

public void fromResultSet(ResultSet resultSet, int i)


{
try
{
BigDecimal bigDecimal = resultSet.getBigDecimal(i, m_designDecimals);
if (bigDecimal == null || resultSet.wasNull())
{
setNull();
return;
}
m_data = new BigDecimal(bigDecimal.toString());
m_data = ((BigDecimal)m_data).setScale(m_designDecimals);
setReadState();
}
catch (Exception e)
{

Page: 1078 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObApplication.log(e.getMessage());
setEmpty();
}
}

public void fromString(String string)


{
setState(0);
try
{
m_data = new BigDecimal(string);
}
catch (Exception e)
{
m_data = new BigDecimal("0");
}
setReadState();
}

public byte[] getAS400ContentDefault()


{
int i = m_designLength;
byte ab1[] = getAS400ContentNumberDefault(i, getState());
byte ab2[] = new byte[i];
for (int j = 0; j < ab2.length; j++)
ab2[j] = ab1[j];
return ab2;
}

public int[] getAlternateSQLTypes()


{
if (m_ALTERNATESQLTYPES == null)
m_ALTERNATESQLTYPES = ObFieldSQLTypes.getAlternates(this);
return m_ALTERNATESQLTYPES;
}

public Object getData()


{
return m_data;
}

Page: 1079 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public int getDefaultType()


{
if (m_DEFAULTTYPE == -1)
m_DEFAULTTYPE = ObFieldSQLTypes.getDefault(this);
return m_DEFAULTTYPE;
}

public BigDecimal getValue()


{
return (BigDecimal)m_data;
}

public boolean isAS400StateDefault(String string, int i)


{
int j = m_designLength;
byte ab1[] = getAS400ContentNumberDefault(j, i);
byte ab2[] = new byte[j];
for (int k = 0; k < ab2.length; k++)
ab2[k] = ab1[k];
if (new String(ab2).equals(string))
return true;
else
return false;
}

public boolean isEmpty()


{
if (getState() == 4)
return true;
BigDecimal bigDecimal = new BigDecimal("0");
if (m_specialVal != null && m_specialVal.stateExists(4))
bigDecimal = (BigDecimal)m_specialVal.getData(4);
return bigDecimal.compareTo(getValue()) == 0;
}

public boolean isEqual(ObField obField)


{
if (!hasState() && !obField.hasState())
return obField.toObFixedDecFld().getValue().compareTo(getValue()) == 0;
if (getState() == obField.getState())
return true;

Page: 1080 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else
return false;
}

public boolean isGreaterThan(ObField obField)


{
return getValue().compareTo(obField.toObFixedDecFld().getValue()) > 0;
}

public boolean isGreaterThanOrEqual(ObField obField)


{
return getValue().compareTo(obField.toObFixedDecFld().getValue()) >= 0;
}

public boolean isLessThan(ObField obField)


{
return getValue().compareTo(obField.toObFixedDecFld().getValue()) < 0;
}

public boolean isLessThanOrEqual(ObField obField)


{
return getValue().compareTo(obField.toObFixedDecFld().getValue()) <= 0;
}

public boolean isNotEqual(ObField obField)


{
if (!hasState() && !obField.hasState())
return obField.toObFixedDecFld().getValue().compareTo(getValue()) != 0;
if (getState() != obField.getState())
return true;
else
return false;
}

public ObField modulus(ObField obField)


{
double d1 = obField.toObFixedDecFld().getValue().doubleValue();
double d2 = getValue().doubleValue();
Double double = new Double(d2 % d1);
BigDecimal bigDecimal = new BigDecimal(double.toString());
return new ObFixedDecFld(bigDecimal);

Page: 1081 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObField multiply(ObField obField)


{
setState(0);
ObFixedDecFld obFixedDecFld = obField.toObFixedDecFld();
BigDecimal bigDecimal = ((BigDecimal)m_data).multiply(obFixedDecFld.getValue());
return new ObFixedDecFld(bigDecimal);
}

public void round(ObField obField)


{
if (obField.hasState())
{
setState(obField.getState());
return;
}
if (obField instanceof ObFixedDecFld)
{
ObFixedDecFld obFixedDecFld = (ObFixedDecFld)obField;
m_data = new BigDecimal(((BigDecimal)obFixedDecFld.getData()).doubleValue());
m_data = ((BigDecimal)m_data).setScale(m_designDecimals, 4);
}
}

public void set(ObField obField)


{
if (obField.hasState())
{
setState(obField.getState());
return;
}
ObFixedDecFld obFixedDecFld = obField.toObFixedDecFld();
m_data = (BigDecimal)obFixedDecFld.getData();
setState(0);
}

public void setEmpty()


{
setState(0);
if (m_specialVal != null && m_specialVal.stateExists(4))

Page: 1082 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
String string = ((BigDecimal)m_specialVal.getData(4)).toString();
m_data = new BigDecimal(string);
}
else
m_data = new BigDecimal(0.0);
}

protected void setReadState()


{
setState(0);
if (m_specialVal == null || m_specialVal.m_existMask == 0)
return;
BigDecimal bigDecimal1 = (BigDecimal)m_specialVal.getData(8);
BigDecimal bigDecimal2 = (BigDecimal)m_specialVal.getData(2);
BigDecimal bigDecimal3 = (BigDecimal)m_specialVal.getData(4);
BigDecimal bigDecimal4 = (BigDecimal)m_specialVal.getData(1);
if (bigDecimal3.compareTo(getValue()) == 0 && m_specialVal.stateExists(4))
{
setEmpty();
setState(4);
}
else if (bigDecimal1.compareTo(getValue()) == 0 && m_specialVal.stateExists(8))
setHiVal();
else if (bigDecimal2.compareTo(getValue()) == 0 && m_specialVal.stateExists(2))
setLoVal();
else if (bigDecimal4.compareTo(getValue()) == 0 && m_specialVal.stateExists(1))
setNull();
}

public ObField subtract(ObField obField)


{
setState(0);
ObFixedDecFld obFixedDecFld = obField.toObFixedDecFld();
BigDecimal bigDecimal = ((BigDecimal)m_data).subtract(obFixedDecFld.getValue());
return new ObFixedDecFld(bigDecimal);
}

public String toString()


{
if (hasState())

Page: 1083 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

convertStateToContent();
BigDecimal bigDecimal = ((BigDecimal)m_data).setScale(m_designDecimals);
return bigDecimal.toString();
}
}

Page: 1084 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObIntFld

Full name of class: ObRun.ObRTTypes.ObIntFld.class

package ObRun.ObRTTypes;

import ObRun.ObFunction.ObApplication;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public final synchronized class ObIntFld extends ObField


{
private static int m_DEFAULTTYPE;
private static int m_ALTERNATESQLTYPES[];

static
{
m_DEFAULTTYPE = -1;
}

public ObIntFld()
{
setEmpty();
}

public ObIntFld(byte b)
{
m_fldUsage = b;
setEmpty();
}

public ObIntFld(byte b, int i, int j, char ch, String string)


{
m_fldUsage = b;
m_designLength = i;
m_designDecimals = j;
m_AS400DataType = ch;
m_implName = string;
setEmpty();

Page: 1085 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObIntFld(byte b, int i1, int j, char ch, String string1, int k, String string2, String string3,
String string4, String string5, int i2)
{
m_fldUsage = b;
m_designLength = i1;
m_designDecimals = j;
m_AS400DataType = ch;
m_implName = string1;
Integer integer1 = null;
Integer integer2 = null;
Integer integer3 = null;
Integer integer4 = null;
try
{
integer1 = new Integer(string2);
}
catch (Exception e1)
{
ObApplication.log(" integer " + ObApplication.getString("NotValidValue"));
}
try
{
integer2 = new Integer(string3);
}
catch (Exception e2)
{
ObApplication.log(" integer " + ObApplication.getString("NotValidValue"));
}
try
{
integer3 = new Integer(string5);
}
catch (Exception e3)
{
ObApplication.log(" integer " + ObApplication.getString("NotValidValue"));
}
try
{
integer4 = new Integer(string4);

Page: 1086 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
catch (Exception e4)
{
ObApplication.log(" integer " + ObApplication.getString("NotValidValue"));
}
m_specialVal = new ObSpecialVal((short)k, (short)i2, integer1, integer2, integer3, integer4, this);
setEmpty();
}

public ObIntFld(int i)
{
m_data = new Integer(i);
}

public ObIntFld(int i, byte b)


{
m_fldUsage = b;
m_data = new Integer(i);
}

public ObIntFld(int i, int j)


{
m_data = new Integer(i);
setState(j);
}

public ObIntFld(Integer integer)


{
m_data = new Integer(integer.intValue());
}

public ObIntFld(Integer integer, byte b)


{
m_fldUsage = b;
m_data = new Integer(integer.intValue());
}

public ObIntFld(String string)


{
Double double = new Double(string);
m_data = new Integer(double.intValue());

Page: 1087 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObIntFld(String string, byte b)


{
m_fldUsage = b;
m_data = new Integer(string);
}

public ObField add(ObField obField)


{
setState(0);
ObIntFld obIntFld = obField.toObIntFld();
int i = obIntFld.getValue();
int j = getValue();
return new ObIntFld(i + j);
}

public void assign(ObField obField)


{
if (obField.getState() == 4)
{
setEmpty();
setState(4);
return;
}
if (obField.hasState())
setState(obField.getState());
else
setState(0);
if (obField instanceof ObIntFld)
m_data = new Integer(((Integer)obField.getData()).intValue());
else
castFrom(obField);
}

protected void bindAsEmpty(PreparedStatement preparedStatement, int i)


{
ObIntFld obIntFld = new ObIntFld();
obIntFld.bindStatement(preparedStatement, i);
}

Page: 1088 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void bindStatement(PreparedStatement preparedStatement, int i, int j)


{
try
{
if (j == 4)
preparedStatement.setInt(i, getValue());
else
super.bindStatement(preparedStatement, i, j);
}
catch (Exception e)
{
ObApplication.log(e.getMessage());
setEmpty();
}
}

public void castFrom(ObField obField)


{
if (obField.hasState())
{
setState(obField.getState());
return;
}
try
{
if (obField.getData() instanceof Number)
m_data = new Integer(((Number)obField.getData()).intValue());
else
m_data = new Integer(obField.toObIntFld().getValue());
}
catch (Exception e2)
{
try
{
m_data = new Integer(obField.toStringWithoutSeparators());
if (m_data == null)
setEmpty();
}
catch (Exception e1)
{
setEmpty();

Page: 1089 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
}
setState(0);
}

public ObField divide(ObField obField)


{
setState(0);
ObIntFld obIntFld = obField.toObIntFld();
int i = obIntFld.getValue();
int j = getValue();
return new ObIntFld(j / i);
}

public void fromResultSet(ResultSet resultSet, int i)


{
try
{
m_data = new Integer(resultSet.getInt(i));
if (resultSet.wasNull())
setNull();
else
setReadState();
}
catch (Exception e)
{
ObApplication.log(e.getMessage());
setEmpty();
}
}

public void fromString(String string)


{
setState(0);
try
{
m_data = new Integer(string);
}
catch (NumberFormatException e)
{
m_data = new Integer(0);

Page: 1090 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
setReadState();
}

public byte[] getAS400ContentDefault()


{
int i = m_designLength;
byte ab1[] = getAS400ContentNumberDefault(i, getState());
byte ab2[] = new byte[i];
for (int j = 0; j < ab2.length; j++)
ab2[j] = ab1[j];
return ab2;
}

public int[] getAlternateSQLTypes()


{
if (m_ALTERNATESQLTYPES == null)
m_ALTERNATESQLTYPES = ObFieldSQLTypes.getAlternates(this);
return m_ALTERNATESQLTYPES;
}

public int getDefaultType()


{
if (m_DEFAULTTYPE == -1)
m_DEFAULTTYPE = ObFieldSQLTypes.getDefault(this);
return m_DEFAULTTYPE;
}

public int getValue()


{
return ((Integer)m_data).intValue();
}

public boolean isAS400StateDefault(String string, int i)


{
int j = m_designLength;
byte ab1[] = getAS400ContentNumberDefault(j, i);
byte ab2[] = new byte[j];
for (int k = 0; k < ab2.length; k++)
ab2[k] = ab1[k];
if (new String(ab2).equals(string))

Page: 1091 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

return true;
else
return false;
}

public boolean isEmpty()


{
if (getState() == 4)
return true;
int i = 0;
if (m_specialVal != null && m_specialVal.stateExists(4))
i = ((Integer)m_specialVal.getData(4)).intValue();
return i == getValue();
}

public boolean isEqual(ObField obField)


{
if (!hasState() && !obField.hasState())
return obField.toObIntFld().getValue() == getValue();
if (getState() == obField.getState())
return true;
else
return false;
}

public boolean isGreaterThan(ObField obField)


{
return getValue() > obField.toObIntFld().getValue();
}

public boolean isGreaterThanOrEqual(ObField obField)


{
return getValue() >= obField.toObIntFld().getValue();
}

public boolean isLessThan(ObField obField)


{
return getValue() < obField.toObIntFld().getValue();
}

public boolean isLessThanOrEqual(ObField obField)

Page: 1092 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
return getValue() <= obField.toObIntFld().getValue();
}

public boolean isNotEqual(ObField obField)


{
if (!hasState() && !obField.hasState())
return obField.toObIntFld().getValue() != getValue();
if (getState() != obField.getState())
return true;
else
return false;
}

public ObField modulus(ObField obField)


{
setState(0);
ObIntFld obIntFld = obField.toObIntFld();
int i = obIntFld.getValue();
int j = getValue();
return new ObIntFld(j % i);
}

public ObField multiply(ObField obField)


{
setState(0);
ObIntFld obIntFld = obField.toObIntFld();
int i = obIntFld.getValue();
int j = getValue();
return new ObIntFld(j * i);
}

public void set(ObField obField)


{
if (obField.hasState())
{
setState(obField.getState());
return;
}
ObIntFld obIntFld = obField.toObIntFld();
m_data = (Integer)obIntFld.getData();

Page: 1093 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

setState(0);
}

public void setEmpty()


{
setState(0);
if (m_specialVal != null && m_specialVal.stateExists(4))
m_data = m_specialVal.getData(4);
else
m_data = new Integer(0);
}

protected void setReadState()


{
setState(0);
if (m_specialVal == null || m_specialVal.m_existMask == 0)
return;
Integer integer1 = (Integer)m_specialVal.getData(8);
Integer integer2 = (Integer)m_specialVal.getData(2);
Integer integer3 = (Integer)m_specialVal.getData(4);
Integer integer4 = (Integer)m_specialVal.getData(1);
if (integer3.intValue() == getValue() && m_specialVal.stateExists(4))
{
setEmpty();
setState(4);
}
else if (integer1.intValue() == getValue() && m_specialVal.stateExists(8))
setHiVal();
else if (integer2.intValue() == getValue() && m_specialVal.stateExists(2))
setLoVal();
else if (integer4.intValue() == getValue() && m_specialVal.stateExists(1))
setNull();
}

public ObField subtract(ObField obField)


{
setState(0);
ObIntFld obIntFld = obField.toObIntFld();
int i = obIntFld.getValue();
int j = getValue();
return new ObIntFld(j - i);

Page: 1094 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public String toString()


{
if (hasState())
convertStateToContent();
return getData().toString();
}
}

Page: 1095 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObLongDblFld

Full name of class: ObRun.ObRTTypes.ObLongDblFld.class

package ObRun.ObRTTypes;

import java.sql.*;
import ObRun.ObFunction.ObApplication;

public final synchronized class ObLongDblFld extends ObField


{
private static int m_DEFAULTTYPE;
private static int m_ALTERNATESQLTYPES[];

static
{
m_DEFAULTTYPE = -1;
}

public ObLongDblFld()
{
setEmpty();
}

public ObLongDblFld(byte b)
{
m_fldUsage = b;
setEmpty();
}

public ObLongDblFld(byte b, int i, int j, char ch, String string)


{
m_fldUsage = b;
m_designLength = i;
m_designDecimals = j;
m_AS400DataType = ch;
m_implName = string;
setEmpty();
}

Page: 1096 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObLongDblFld(byte b, int i1, int j, char ch, String string1, int k, String string2, String
string3, String string4, String string5, int i2)
{
m_fldUsage = b;
m_designLength = i1;
m_designDecimals = j;
m_AS400DataType = ch;
m_implName = string1;
Double double1 = null;
Double double2 = null;
Double double3 = null;
Double double4 = null;
try
{
double1 = new Double(string2);
}
catch (Exception e1)
{
ObApplication.log(" long double " + ObApplication.getString("NotValidValue"));
}
try
{
double2 = new Double(string3);
}
catch (Exception e2)
{
ObApplication.log(" long double " + ObApplication.getString("NotValidValue"));
}
try
{
double3 = new Double(string5);
}
catch (Exception e3)
{
ObApplication.log(" long double " + ObApplication.getString("NotValidValue"));
}
try
{
double4 = new Double(string4);
}

Page: 1097 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

catch (Exception e4)


{
ObApplication.log(" long double " + ObApplication.getString("NotValidValue"));
}
m_specialVal = new ObSpecialVal((short)k, (short)i2, double1, double2, double3, double4, this);
setEmpty();
}

public ObLongDblFld(double d)
{
m_data = new Double(d);
}

public ObLongDblFld(double d, byte b)


{
m_fldUsage = b;
m_data = new Double(d);
}

public ObLongDblFld(double d, int i)


{
m_data = new Double(d);
setState(i);
}

public ObLongDblFld(Double double)


{
m_data = new Double(double.doubleValue());
}

public ObLongDblFld(Double double, byte b)


{
m_fldUsage = b;
m_data = new Double(double.doubleValue());
}

public ObLongDblFld(String string)


{
m_data = new Double(string);
}

Page: 1098 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObLongDblFld(String string, byte b)


{
m_fldUsage = b;
m_data = new Double(string);
}

public ObField add(ObField obField)


{
setState(0);
ObLongDblFld obLongDblFld = obField.toObLongDblFld();
double d1 = obLongDblFld.getValue();
double d2 = getValue();
return new ObLongDblFld(d1 + d2);
}

public void assign(ObField obField)


{
if (obField.getState() == 4)
{
setEmpty();
setState(4);
return;
}
if (obField.hasState())
setState(obField.getState());
else
setState(0);
if (obField instanceof ObLongDblFld)
m_data = new Double(((Double)obField.getData()).doubleValue());
else
castFrom(obField);
}

protected void bindAsEmpty(PreparedStatement preparedStatement, int i)


{
ObLongDblFld obLongDblFld = new ObLongDblFld();
obLongDblFld.bindStatement(preparedStatement, i);
}

public void bindStatement(PreparedStatement preparedStatement, int i, int j)


{

Page: 1099 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

try
{
if (j == 8 || j == 6)
preparedStatement.setDouble(i, getValue());
else
super.bindStatement(preparedStatement, i, j);
}
catch (Exception e)
{
ObApplication.log(e.getMessage());
setEmpty();
}
}

public void castFrom(ObField obField)


{
if (obField.hasState())
{
setState(obField.getState());
return;
}
try
{
if (obField.getData() instanceof Number)
m_data = new Double(((Number)obField.getData()).doubleValue());
else
m_data = new Double(obField.toObLongDblFld().getValue());
}
catch (Exception e2)
{
try
{
m_data = new Double(obField.toStringWithoutSeparators());
if (m_data == null)
setEmpty();
}
catch (Exception e1)
{
setEmpty();
}
}

Page: 1100 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

setState(0);
}

public ObField divide(ObField obField)


{
setState(0);
ObLongDblFld obLongDblFld = obField.toObLongDblFld();
double d1 = obLongDblFld.getValue();
double d2 = getValue();
return new ObLongDblFld(d2 / d1);
}

public void fromResultSet(ResultSet resultSet, int i)


{
try
{
m_data = new Double(resultSet.getDouble(i));
if (resultSet.wasNull())
setNull();
else
setReadState();
}
catch (SQLException e)
{
ObApplication.log(e.getMessage());
setEmpty();
}
}

public void fromString(String string)


{
setState(0);
try
{
m_data = new Double(string);
}
catch (Exception e)
{
m_data = new Double(0.0);
}
setReadState();

Page: 1101 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public byte[] getAS400ContentDefault()


{
int i = m_designLength;
byte ab1[] = getAS400ContentNumberDefault(i, getState());
byte ab2[] = new byte[i];
for (int j = 0; j < ab2.length; j++)
ab2[j] = ab1[j];
return ab2;
}

public int[] getAlternateSQLTypes()


{
if (m_ALTERNATESQLTYPES == null)
m_ALTERNATESQLTYPES = ObFieldSQLTypes.getAlternates(this);
return m_ALTERNATESQLTYPES;
}

public int getDefaultType()


{
if (m_DEFAULTTYPE == -1)
m_DEFAULTTYPE = ObFieldSQLTypes.getDefault(this);
return m_DEFAULTTYPE;
}

public double getValue()


{
return ((Double)m_data).doubleValue();
}

public boolean isAS400StateDefault(String string, int i)


{
int j = m_designLength;
byte ab1[] = getAS400ContentNumberDefault(j, i);
byte ab2[] = new byte[j];
for (int k = 0; k < ab2.length; k++)
ab2[k] = ab1[k];
if (new String(ab2).equals(string))
return true;
else

Page: 1102 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

return false;
}

public boolean isEmpty()


{
if (getState() == 4)
return true;
double d = 0.0;
if (m_specialVal != null && m_specialVal.stateExists(4))
d = ((Double)m_specialVal.getData(4)).doubleValue();
return d == getValue();
}

public boolean isEqual(ObField obField)


{
if (!hasState() && !obField.hasState())
return obField.toObLongDblFld().getValue() == getValue();
if (getState() == obField.getState())
return true;
else
return false;
}

public boolean isGreaterThan(ObField obField)


{
return getValue() > obField.toObLongDblFld().getValue();
}

public boolean isGreaterThanOrEqual(ObField obField)


{
return getValue() >= obField.toObLongDblFld().getValue();
}

public boolean isLessThan(ObField obField)


{
return getValue() < obField.toObLongDblFld().getValue();
}

public boolean isLessThanOrEqual(ObField obField)


{
return getValue() <= obField.toObLongDblFld().getValue();

Page: 1103 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public boolean isNotEqual(ObField obField)


{
if (!hasState() && !obField.hasState())
return obField.toObLongDblFld().getValue() != getValue();
if (getState() != obField.getState())
return true;
else
return false;
}

public ObField modulus(ObField obField)


{
setState(0);
ObLongDblFld obLongDblFld = obField.toObLongDblFld();
double d1 = obLongDblFld.getValue();
double d2 = getValue();
return new ObLongDblFld(d2 % d1);
}

public ObField multiply(ObField obField)


{
setState(0);
ObLongDblFld obLongDblFld = obField.toObLongDblFld();
double d1 = obLongDblFld.getValue();
double d2 = getValue();
return new ObLongDblFld(d2 * d1);
}

public void set(ObField obField)


{
if (obField.hasState())
{
setState(obField.getState());
return;
}
ObLongDblFld obLongDblFld = obField.toObLongDblFld();
m_data = (Double)obLongDblFld.getData();
setState(0);
}

Page: 1104 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setEmpty()


{
setState(0);
if (m_specialVal != null && m_specialVal.stateExists(4))
m_data = m_specialVal.getData(4);
else
m_data = new Double(0.0);
}

protected void setReadState()


{
setState(0);
if (m_specialVal == null || m_specialVal.m_existMask == 0)
return;
Double double1 = (Double)m_specialVal.getData(8);
Double double2 = (Double)m_specialVal.getData(2);
Double double3 = (Double)m_specialVal.getData(4);
Double double4 = (Double)m_specialVal.getData(1);
if (double3.doubleValue() == getValue() && m_specialVal.stateExists(4))
{
setEmpty();
setState(4);
}
else if (double1.doubleValue() == getValue() && m_specialVal.stateExists(8))
setHiVal();
else if (double2.doubleValue() == getValue() && m_specialVal.stateExists(2))
setLoVal();
else if (double4.doubleValue() == getValue() && m_specialVal.stateExists(1))
setNull();
}

public ObField subtract(ObField obField)


{
setState(0);
ObLongDblFld obLongDblFld = obField.toObLongDblFld();
double d1 = obLongDblFld.getValue();
double d2 = getValue();
return new ObLongDblFld(d2 - d1);
}

Page: 1105 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public String toString()


{
if (hasState())
convertStateToContent();
return getData().toString();
}
}

Page: 1106 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObLongFld

Full name of class: ObRun.ObRTTypes.ObLongFld.class

package ObRun.ObRTTypes;

import ObRun.ObFunction.ObApplication;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public final synchronized class ObLongFld extends ObField


{
private static int m_DEFAULTTYPE;
private static int m_ALTERNATESQLTYPES[];

static
{
m_DEFAULTTYPE = -1;
}

public ObLongFld()
{
setEmpty();
}

public ObLongFld(byte b)
{
m_fldUsage = b;
setEmpty();
}

public ObLongFld(byte b, int i, int j, char ch, String string)


{
m_fldUsage = b;
m_designLength = i;
m_designDecimals = j;
m_AS400DataType = ch;
m_implName = string;
setEmpty();

Page: 1107 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObLongFld(byte b, int i1, int j, char ch, String string1, int k, String string2, String string3,
String string4, String string5, int i2)
{
m_fldUsage = b;
m_designLength = i1;
m_designDecimals = j;
m_AS400DataType = ch;
m_implName = string1;
Long long1 = null;
Long long2 = null;
Long long3 = null;
Long long4 = null;
try
{
long1 = new Long(string2);
}
catch (Exception e1)
{
ObApplication.log(" long " + ObApplication.getString("NotValidValue"));
}
try
{
long2 = new Long(string3);
}
catch (Exception e2)
{
ObApplication.log(" long " + ObApplication.getString("NotValidValue"));
}
try
{
long3 = new Long(string5);
}
catch (Exception e3)
{
ObApplication.log(" long " + ObApplication.getString("NotValidValue"));
}
try
{
long4 = new Long(string4);

Page: 1108 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
catch (Exception e4)
{
ObApplication.log(" long " + ObApplication.getString("NotValidValue"));
}
m_specialVal = new ObSpecialVal((short)k, (short)i2, long1, long2, long3, long4, this);
setEmpty();
}

public ObLongFld(long i)
{
m_data = new Long(i);
}

public ObLongFld(long i, byte b)


{
m_fldUsage = b;
m_data = new Long(i);
}

public ObLongFld(long i, int j)


{
m_data = new Long(i);
setState(j);
}

public ObLongFld(Long long)


{
m_data = new Long(long.longValue());
}

public ObLongFld(Long long, byte b)


{
m_fldUsage = b;
m_data = new Long(long.longValue());
}

public ObLongFld(String string)


{
Double double = new Double(string);
m_data = new Long(double.longValue());

Page: 1109 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObLongFld(String string, byte b)


{
m_fldUsage = b;
m_data = new Long(string);
}

public ObField add(ObField obField)


{
setState(0);
ObLongFld obLongFld = obField.toObLongFld();
long i = obLongFld.getValue();
long j = getValue();
return new ObLongFld(i + j);
}

public void assign(ObField obField)


{
if (obField.getState() == 4)
{
setEmpty();
setState(4);
return;
}
if (obField.hasState())
setState(obField.getState());
else
setState(0);
if (obField instanceof ObLongFld)
m_data = new Long(((Long)obField.getData()).longValue());
else
castFrom(obField);
}

protected void bindAsEmpty(PreparedStatement preparedStatement, int i)


{
ObLongFld obLongFld = new ObLongFld();
obLongFld.bindStatement(preparedStatement, i);
}

Page: 1110 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void bindStatement(PreparedStatement preparedStatement, int i, int j)


{
try
{
if (j == 4)
preparedStatement.setInt(i, (int)getValue());
else
super.bindStatement(preparedStatement, i, j);
}
catch (Exception e)
{
ObApplication.log(e.getMessage());
setEmpty();
}
}

public void castFrom(ObField obField)


{
if (obField.hasState())
{
setState(obField.getState());
return;
}
try
{
if (obField.getData() instanceof Number)
m_data = new Long(((Number)obField.getData()).longValue());
else
m_data = new Long(obField.toObLongFld().getValue());
}
catch (Exception e2)
{
try
{
m_data = new Long(obField.toStringWithoutSeparators());
if (m_data == null)
setEmpty();
}
catch (Exception e1)
{
setEmpty();

Page: 1111 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
}
setState(0);
}

public ObField divide(ObField obField)


{
setState(0);
ObLongFld obLongFld = obField.toObLongFld();
long i = obLongFld.getValue();
long j = getValue();
return new ObLongFld(j / i);
}

public void fromResultSet(ResultSet resultSet, int i)


{
try
{
m_data = new Long(resultSet.getLong(i));
if (resultSet.wasNull())
setNull();
else
setReadState();
}
catch (Exception e)
{
ObApplication.log(e.getMessage());
setEmpty();
}
}

public void fromString(String string)


{
setState(0);
try
{
m_data = new Long(string);
}
catch (NumberFormatException e)
{
m_data = new Long(0L);

Page: 1112 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
setReadState();
}

public byte[] getAS400ContentDefault()


{
int i = m_designLength;
byte ab1[] = getAS400ContentNumberDefault(i, getState());
byte ab2[] = new byte[i];
for (int j = 0; j < ab2.length; j++)
ab2[j] = ab1[j];
return ab2;
}

public int[] getAlternateSQLTypes()


{
if (m_ALTERNATESQLTYPES == null)
m_ALTERNATESQLTYPES = ObFieldSQLTypes.getAlternates(this);
return m_ALTERNATESQLTYPES;
}

public int getDefaultType()


{
if (m_DEFAULTTYPE == -1)
m_DEFAULTTYPE = ObFieldSQLTypes.getDefault(this);
return m_DEFAULTTYPE;
}

public long getValue()


{
return ((Long)m_data).longValue();
}

public boolean isAS400StateDefault(String string, int i)


{
int j = m_designLength;
byte ab1[] = getAS400ContentNumberDefault(j, i);
byte ab2[] = new byte[j];
for (int k = 0; k < ab2.length; k++)
ab2[k] = ab1[k];
if (new String(ab2).equals(string))

Page: 1113 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

return true;
else
return false;
}

public boolean isEmpty()


{
if (getState() == 4)
return true;
long i = 0L;
if (m_specialVal != null && m_specialVal.stateExists(4))
i = ((Long)m_specialVal.getData(4)).longValue();
return i == getValue();
}

public boolean isEqual(ObField obField)


{
if (!hasState() && !obField.hasState())
return obField.toObLongFld().getValue() == getValue();
if (getState() == obField.getState())
return true;
else
return false;
}

public boolean isGreaterThan(ObField obField)


{
return getValue() > obField.toObLongFld().getValue();
}

public boolean isGreaterThanOrEqual(ObField obField)


{
return getValue() >= obField.toObLongFld().getValue();
}

public boolean isLessThan(ObField obField)


{
return getValue() < obField.toObLongFld().getValue();
}

public boolean isLessThanOrEqual(ObField obField)

Page: 1114 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
return getValue() <= obField.toObLongFld().getValue();
}

public boolean isNotEqual(ObField obField)


{
if (!hasState() && !obField.hasState())
return obField.toObLongFld().getValue() != getValue();
if (getState() != obField.getState())
return true;
else
return false;
}

public ObField modulus(ObField obField)


{
setState(0);
ObLongFld obLongFld = obField.toObLongFld();
long i = obLongFld.getValue();
long j = getValue();
return new ObLongFld(j % i);
}

public ObField multiply(ObField obField)


{
setState(0);
ObLongFld obLongFld = obField.toObLongFld();
long i = obLongFld.getValue();
long j = getValue();
return new ObLongFld(j * i);
}

public void set(ObField obField)


{
if (obField.hasState())
{
setState(obField.getState());
return;
}
ObLongFld obLongFld = obField.toObLongFld();
m_data = (Long)obLongFld.getData();

Page: 1115 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

setState(0);
}

public void setEmpty()


{
setState(0);
if (m_specialVal != null && m_specialVal.stateExists(4))
m_data = m_specialVal.getData(4);
else
m_data = new Long(0L);
}

protected void setReadState()


{
setState(0);
if (m_specialVal == null || m_specialVal.m_existMask == 0)
return;
Long long1 = (Long)m_specialVal.getData(8);
Long long2 = (Long)m_specialVal.getData(2);
Long long3 = (Long)m_specialVal.getData(4);
Long long4 = (Long)m_specialVal.getData(1);
if (long3.longValue() == getValue() && m_specialVal.stateExists(4))
{
setEmpty();
setState(4);
}
else if (long1.longValue() == getValue() && m_specialVal.stateExists(8))
setHiVal();
else if (long2.longValue() == getValue() && m_specialVal.stateExists(2))
setLoVal();
else if (long4.longValue() == getValue() && m_specialVal.stateExists(1))
setNull();
}

public ObField subtract(ObField obField)


{
setState(0);
ObLongFld obLongFld = obField.toObLongFld();
long i = obLongFld.getValue();
long j = getValue();
return new ObLongFld(j - i);

Page: 1116 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public String toString()


{
if (hasState())
convertStateToContent();
return getData().toString();
}
}

Page: 1117 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObPanelUtils

ObXYLayoutManager

Full name of class: ObRun.ObRTTypes.ObPanelUtils.ObXYLayoutManager.class

package ObRun.ObPanel.ObPanelUtils;

import java.awt.*;
import java.util.*;

public final synchronized class ObXYLayoutManager implements LayoutManager


{
private Vector m_components;
private Vector m_constraints;

public ObXYLayoutManager()
{
m_components = new Vector(10, 10);
m_constraints = new Vector(10, 10);
}

public void addLayoutComponent(String string, Component component)


{
m_components.addElement(component);
m_constraints.addElement(null);
if (string != null && string.length() != 0)
{
Integer ainteger[] = new Integer[4];
StringTokenizer stringTokenizer = new StringTokenizer(string);
int i = 0;
while (stringTokenizer.hasMoreTokens())
{
try
{
ainteger[i] = new Integer(stringTokenizer.nextToken());
}
catch (Exception e)

Page: 1118 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
ainteger[i] = new Integer(0);
}
i++;
}
setPositionConstraint(component, ainteger[0].intValue(), ainteger[1].intValue());
setSizeConstraint(component, ainteger[2].intValue(), ainteger[3].intValue());
}
}

public Rectangle getConstraints(Component component)


{
int i = m_components.indexOf(component);
if (i == -1)
return null;
XYConstraint xYConstraint = (XYConstraint)m_constraints.elementAt(i);
return new Rectangle(xYConstraint.m_x, xYConstraint.m_y, xYConstraint.m_w, xYConstraint.m_h);
}

public void layoutContainer(Container container)


{
Enumeration enumeration = m_components.elements();
int i = -1;
while (enumeration.hasMoreElements())
{
i++;
XYConstraint xYConstraint = (XYConstraint)m_constraints.elementAt(i);
Component component = (Component)enumeration.nextElement();
if (component != null && xYConstraint != null)
component.setBounds(xYConstraint.m_x, xYConstraint.m_y, xYConstraint.m_w, xYConstraint.m_h);
}
}

public Dimension minimumLayoutSize(Container container)


{
return new Dimension(10, 10);
}

public Dimension preferredLayoutSize(Container container)


{
return new Dimension(10, 10);

Page: 1119 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void removeLayoutComponent(Component component)


{
int i = m_components.indexOf(component);
if (i != -1)
{
m_components.removeElementAt(i);
m_constraints.removeElementAt(i);
}
}

public void setPositionConstraint(Component component, int i, int j)


{
int k = m_components.indexOf(component);
if (k != -1)
{
XYConstraint xYConstraint = (XYConstraint)m_constraints.elementAt(k);
if (xYConstraint == null)
{
xYConstraint = new XYConstraint(i, j, 0, 0);
m_constraints.setElementAt(xYConstraint, k);
}
else
{
if (i != -1)
xYConstraint.m_x = i;
if (j != -1)
xYConstraint.m_y = j;
}
}
}

public void setSizeConstraint(Component component, int i, int j)


{
int k = m_components.indexOf(component);
if (k != -1)
{
XYConstraint xYConstraint = (XYConstraint)m_constraints.elementAt(k);
if (xYConstraint == null)
{

Page: 1120 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

xYConstraint = new XYConstraint(0, 0, i, j);


m_constraints.setElementAt(xYConstraint, k);
}
else
{
if (i != -1)
xYConstraint.m_w = i;
if (j != -1)
xYConstraint.m_h = j;
}
}
}
}

Page: 1121 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

XYConstraint

Full name of class: ObRun.ObRTTypes.ObPanelUtils.XYConstraint.class


package ObRun.ObPanel.ObPanelUtils;

synchronized class XYConstraint


{
public int m_x;
public int m_y;
public int m_w;
public int m_h;

public XYConstraint(int i1, int j, int k, int i2)


{
m_x = i1;
m_y = j;
m_w = k;
m_h = i2;
}
}

Page: 1122 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObSglFld

Full name of class: ObRun.ObRTTypes.ObSglFld.class

package ObRun.ObRTTypes;

import ObRun.ObFunction.ObApplication;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public final synchronized class ObSglFld extends ObField


{
private static int m_DEFAULTTYPE;
private static int m_ALTERNATESQLTYPES[];

static
{
m_DEFAULTTYPE = -1;
}

public ObSglFld()
{
setEmpty();
}

public ObSglFld(byte b)
{
m_fldUsage = b;
setEmpty();
}

public ObSglFld(byte b, int i, int j, char ch, String string)


{
m_fldUsage = b;
m_designLength = i;
m_designDecimals = j;
m_AS400DataType = ch;
m_implName = string;
setEmpty();

Page: 1123 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObSglFld(byte b, int i1, int j, char ch, String string1, int k, String string2, String string3,
String string4, String string5, int i2)
{
m_fldUsage = b;
m_designLength = i1;
m_designDecimals = j;
m_AS400DataType = ch;
m_implName = string1;
Float float1 = null;
Float float2 = null;
Float float3 = null;
Float float4 = null;
try
{
float1 = new Float(string2);
}
catch (Exception e1)
{
ObApplication.log(" single " + ObApplication.getString("NotValidValue"));
}
try
{
float2 = new Float(string3);
}
catch (Exception e2)
{
ObApplication.log(" single " + ObApplication.getString("NotValidValue"));
}
try
{
float3 = new Float(string5);
}
catch (Exception e3)
{
ObApplication.log(" single " + ObApplication.getString("NotValidValue"));
}
try
{
float4 = new Float(string4);

Page: 1124 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
catch (Exception e4)
{
ObApplication.log(" single " + ObApplication.getString("NotValidValue"));
}
m_specialVal = new ObSpecialVal((short)k, (short)i2, float1, float2, float3, float4, this);
setEmpty();
}

public ObSglFld(double d)
{
m_data = new Float((float)d);
}

public ObSglFld(double d, int i)


{
m_data = new Float(d);
setState(i);
}

public ObSglFld(float f)
{
m_data = new Float(f);
}

public ObSglFld(float f, byte b)


{
m_fldUsage = b;
m_data = new Float(f);
}

public ObSglFld(float f, int i)


{
m_data = new Float(f);
setState(i);
}

public ObSglFld(Float float)


{
m_data = new Float(float.floatValue());
}

Page: 1125 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObSglFld(Float float, byte b)


{
m_fldUsage = b;
m_data = new Float(float.floatValue());
}

public ObSglFld(String string)


{
m_data = new Float(string);
}

public ObSglFld(String string, byte b)


{
m_fldUsage = b;
m_data = new Float(string);
}

public ObField add(ObField obField)


{
setState(0);
ObSglFld obSglFld = obField.toObSglFld();
float f1 = obSglFld.getValue();
float f2 = getValue();
return new ObSglFld(f1 + f2);
}

public void assign(ObField obField)


{
if (obField.getState() == 4)
{
setEmpty();
setState(4);
return;
}
if (obField.hasState())
setState(obField.getState());
else
setState(0);
if (obField instanceof ObSglFld)
m_data = new Float(((Float)obField.getData()).floatValue());

Page: 1126 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else
castFrom(obField);
}

protected void bindAsEmpty(PreparedStatement preparedStatement, int i)


{
ObSglFld obSglFld = new ObSglFld();
obSglFld.bindStatement(preparedStatement, i);
}

public void bindStatement(PreparedStatement preparedStatement, int i, int j)


{
try
{
if (j == 8 || j == 6)
{
Double double = new Double(toString());
preparedStatement.setDouble(i, double.doubleValue());
}
else
super.bindStatement(preparedStatement, i, j);
}
catch (Exception e)
{
ObApplication.log(e.getMessage());
setEmpty();
}
}

public void castFrom(ObField obField)


{
if (obField.hasState())
{
setState(obField.getState());
return;
}
try
{
if (obField.getData() instanceof Number)
m_data = new Float(((Number)obField.getData()).floatValue());
else

Page: 1127 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_data = new Float(obField.toObSglFld().getValue());


}
catch (Exception e2)
{
try
{
m_data = new Float(obField.toStringWithoutSeparators());
if (m_data == null)
setEmpty();
}
catch (Exception e1)
{
setEmpty();
}
}
setState(0);
}

public ObField divide(ObField obField)


{
setState(0);
ObSglFld obSglFld = obField.toObSglFld();
float f1 = obSglFld.getValue();
float f2 = getValue();
return new ObSglFld(f2 / f1);
}

public void fromResultSet(ResultSet resultSet, int i)


{
try
{
m_data = new Float(resultSet.getFloat(i));
if (resultSet.wasNull())
setNull();
else
setReadState();
}
catch (Exception e)
{
ObApplication.log(e.getMessage());
setEmpty();

Page: 1128 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
}

public void fromString(String string)


{
setState(0);
try
{
m_data = new Float(string);
}
catch (Exception e)
{
m_data = new Float(0.0F);
}
setReadState();
}

public byte[] getAS400ContentDefault()


{
int i = m_designLength;
byte ab1[] = getAS400ContentNumberDefault(i, getState());
byte ab2[] = new byte[i];
for (int j = 0; j < ab2.length; j++)
ab2[j] = ab1[j];
return ab2;
}

public int[] getAlternateSQLTypes()


{
if (m_ALTERNATESQLTYPES == null)
m_ALTERNATESQLTYPES = ObFieldSQLTypes.getAlternates(this);
return m_ALTERNATESQLTYPES;
}

public int getDefaultType()


{
if (m_DEFAULTTYPE == -1)
m_DEFAULTTYPE = ObFieldSQLTypes.getDefault(this);
return m_DEFAULTTYPE;
}

Page: 1129 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public float getValue()


{
return ((Float)m_data).floatValue();
}

public boolean isAS400StateDefault(String string, int i)


{
int j = m_designLength;
byte ab1[] = getAS400ContentNumberDefault(j, i);
byte ab2[] = new byte[j];
for (int k = 0; k < ab2.length; k++)
ab2[k] = ab1[k];
if (new String(ab2).equals(string))
return true;
else
return false;
}

public boolean isEmpty()


{
if (getState() == 4)
return true;
float f = 0.0F;
if (m_specialVal != null && m_specialVal.stateExists(4))
f = ((Float)m_specialVal.getData(4)).floatValue();
return f == getValue();
}

public boolean isEqual(ObField obField)


{
if (!hasState() && !obField.hasState())
return obField.toObSglFld().getValue() == getValue();
if (getState() == obField.getState())
return true;
else
return false;
}

public boolean isGreaterThan(ObField obField)


{
return getValue() > obField.toObSglFld().getValue();

Page: 1130 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public boolean isGreaterThanOrEqual(ObField obField)


{
return getValue() >= obField.toObSglFld().getValue();
}

public boolean isLessThan(ObField obField)


{
return getValue() < obField.toObSglFld().getValue();
}

public boolean isLessThanOrEqual(ObField obField)


{
return getValue() <= obField.toObSglFld().getValue();
}

public boolean isNotEqual(ObField obField)


{
if (!hasState() && !obField.hasState())
return obField.toObSglFld().getValue() != getValue();
if (getState() != obField.getState())
return true;
else
return false;
}

public ObField modulus(ObField obField)


{
setState(0);
ObSglFld obSglFld = obField.toObSglFld();
float f1 = obSglFld.getValue();
float f2 = getValue();
return new ObSglFld(f2 % f1);
}

public ObField multiply(ObField obField)


{
setState(0);
ObSglFld obSglFld = obField.toObSglFld();
float f1 = obSglFld.getValue();

Page: 1131 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

float f2 = getValue();
return new ObSglFld(f2 * f1);
}

public void set(ObField obField)


{
if (obField.hasState())
{
setState(obField.getState());
return;
}
ObSglFld obSglFld = obField.toObSglFld();
m_data = (Float)obSglFld.getData();
setState(0);
}

public void setEmpty()


{
setState(0);
if (m_specialVal != null && m_specialVal.stateExists(4))
m_data = m_specialVal.getData(4);
else
m_data = new Float(0.0F);
}

protected void setReadState()


{
setState(0);
if (m_specialVal == null || m_specialVal.m_existMask == 0)
return;
Float float1 = (Float)m_specialVal.getData(8);
Float float2 = (Float)m_specialVal.getData(2);
Float float3 = (Float)m_specialVal.getData(4);
Float float4 = (Float)m_specialVal.getData(1);
if (float3.floatValue() == getValue() && m_specialVal.stateExists(4))
{
setEmpty();
setState(4);
}
else if (float1.floatValue() == getValue() && m_specialVal.stateExists(8))
setHiVal();

Page: 1132 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else if (float2.floatValue() == getValue() && m_specialVal.stateExists(2))


setLoVal();
else if (float4.floatValue() == getValue() && m_specialVal.stateExists(1))
setNull();
}

public ObField subtract(ObField obField)


{
setState(0);
ObSglFld obSglFld = obField.toObSglFld();
float f1 = obSglFld.getValue();
float f2 = getValue();
return new ObSglFld(f2 - f1);
}

public String toString()


{
if (hasState())
convertStateToContent();
String string = getData().toString();
if (string.length() > m_cLength - 1)
string = string.substring(0, m_cLength - 1);
return string;
}
}

Page: 1133 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObSpecialVal

Full name of class: ObRun.ObRTTypes.ObSpecialVal.class

package ObRun.ObRTTypes;

import java.io.*;
import ObRun.ObFunction.ObApplication;
import java.math.BigDecimal;
import java.util.Date;

public final synchronized class ObSpecialVal implements Serializable


{
private Object m_emptyVal;
private Object m_nullVal;
private Object m_hiVal;
private Object m_loVal;
protected short m_lpMask;
protected short m_existMask;

public ObSpecialVal(short s1, short s2, Object object1, Object object2, Object object3, Object object4,
ObField obField)
{
m_emptyVal = null;
m_nullVal = null;
m_hiVal = null;
m_loVal = null;
m_lpMask = 0;
m_existMask = 0;
m_lpMask = s2;
m_existMask = s1;
if ((s2 & 1) != 0)
m_nullVal = object2;
if ((s2 & 4) != 0)
m_emptyVal = object1;
if ((s2 & 8) != 0)
m_hiVal = object3;
if ((s2 & 2) != 0)
m_loVal = object4;

Page: 1134 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

setDefaults(obField);
}

private String createNumericString(int i1, int j, boolean flag)


{
String string = new String("");
if (flag)
string = new String("-");
for (int k = 0; k < i1; k++)
string = new StringBuffer(String.valueOf(string)).append('9').toString();
if (j > 0)
{
string = new StringBuffer(String.valueOf(string)).append('.').toString();
for (int i2 = 0; i2 < j; i2++)
string = new StringBuffer(String.valueOf(string)).append('9').toString();
}
return string;
}

public Object getCharOverride(int i, ObField obField)


{
String string4;
ObApplication obApplication = ObApplication.findApp();
if (obApplication == null)
return null;
String string1 = ObApplication.getEnvironment();
switch (i)
{
case 4:
String string2 = string1 + ".CharacterEmptyValue";
return ObApplication.getRunOptionValue(string2);

case 8:
String string3 = string1 + ".CharacterHighValue";
String string5 = ObApplication.getRunOptionValue(string3);
String string6 = new String("");
int j = obField.getCLength() - 1;
if (j == 0)
j = 256;
for (int k = 0; k < j; k++)
string6 = new StringBuffer(String.valueOf(string6)).append(string5).toString();

Page: 1135 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

return string6;

case 2:
string4 = string1 + ".CharacterLowValue";
break;

default:
return null;
}
return ObApplication.getRunOptionValue(string4);
}

public Object getData(int i)


{
switch (i)
{
case 1:
return m_nullVal;

case 4:
return m_emptyVal;

case 8:
return m_hiVal;

case 2:
return m_loVal;

default:
return null;
}
}

public ObDateFld getDateOverride(int i)


{
ObApplication obApplication = ObApplication.findApp();
if (obApplication == null)
return null;
String string1 = ObApplication.getEnvironment();
String string2 = null;
String string3 = null;

Page: 1136 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

switch (i)
{
case 4:
string3 = string1 + ".DateEmptyValue";
string2 = ObApplication.getRunOptionValue(string3);
break;

case 8:
string3 = string1 + ".DateHighValue";
string2 = ObApplication.getRunOptionValue(string3);
break;

case 2:
string3 = string1 + ".DateLowValue";
string2 = ObApplication.getRunOptionValue(string3);
break;
}
return new ObDateFld(string2);
}

public ObTimeFld getTimeOverride(int i)


{
ObApplication obApplication = ObApplication.findApp();
if (obApplication == null)
return null;
String string1 = ObApplication.getEnvironment();
String string2 = null;
String string3 = null;
switch (i)
{
case 4:
string3 = string1 + ".TimeEmptyValue";
string2 = ObApplication.getRunOptionValue(string3);
break;

case 8:
string3 = string1 + ".TimeHighValue";
string2 = ObApplication.getRunOptionValue(string3);
break;

case 2:

Page: 1137 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

string3 = string1 + ".TimeLowValue";


string2 = ObApplication.getRunOptionValue(string3);
break;
}
return new ObTimeFld(string2);
}

public ObTimeStampFld getTimeStampOverride(int i)


{
ObApplication obApplication = ObApplication.findApp();
if (obApplication == null)
return null;
String string1 = ObApplication.getEnvironment();
String string2 = null;
String string3 = null;
switch (i)
{
case 4:
string3 = string1 + ".TimestampEmptyValue";
string2 = ObApplication.getRunOptionValue(string3);
break;

case 8:
string3 = string1 + ".TimestampHighValue";
string2 = ObApplication.getRunOptionValue(string3);
break;

case 2:
string3 = string1 + ".TimestampLowValue";
string2 = ObApplication.getRunOptionValue(string3);
break;
}
string2 = new StringBuffer(String.valueOf(string2)).append(" 00").toString();
return new ObTimeStampFld(string2);
}

public boolean hasStateLP(int i)


{
int j = m_lpMask & i;
if (j > 0)
return true;

Page: 1138 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

else
return false;
}

private void readObject(ObjectInputStream objectInputStream)


throws IOException, ClassNotFoundException
{
objectInputStream.defaultReadObject();
}

private void setDefaults(ObField obField)


{
if (obField instanceof ObByteFld)
{
if ((m_lpMask & 1) == 0)
m_nullVal = new Byte(0);
if ((m_lpMask & 4) == 0)
m_emptyVal = new Byte(0);
if ((m_lpMask & 8) == 0)
m_hiVal = new Byte(127);
if ((m_lpMask & 2) == 0)
m_loVal = new Byte(-128);
}
else if (obField instanceof ObCharFld)
{
if ((m_lpMask & 1) == 0)
m_nullVal = new String("");
if ((m_lpMask & 4) == 0)
m_emptyVal = getCharOverride(4, obField);
if ((m_lpMask & 8) == 0)
m_hiVal = getCharOverride(8, obField);
if ((m_lpMask & 2) == 0)
m_loVal = getCharOverride(2, obField);
}
else if (obField instanceof ObDblFld)
{
if ((m_lpMask & 1) == 0)
m_nullVal = new Double(0.0);
if ((m_lpMask & 4) == 0)
m_emptyVal = new Double(0.0);
if ((m_lpMask & 8) == 0)

Page: 1139 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
String string1 = createNumericString(((ObDblFld)obField).m_designLength -
((ObDblFld)obField).m_designDecimals, ((ObDblFld)obField).m_designDecimals, false);
m_hiVal = new Double(string1);
}
if ((m_lpMask & 2) == 0)
{
String string2 = createNumericString(((ObDblFld)obField).m_designLength -
((ObDblFld)obField).m_designDecimals, ((ObDblFld)obField).m_designDecimals, true);
m_loVal = new Double(string2);
}
}
else if (obField instanceof ObIntFld)
{
if ((m_lpMask & 1) == 0)
m_nullVal = new Integer(0);
if ((m_lpMask & 4) == 0)
m_emptyVal = new Integer(0);
if ((m_lpMask & 8) == 0)
m_hiVal = new Integer(32767);
if ((m_lpMask & 2) == 0)
m_loVal = new Integer(-32768);
}
else if (obField instanceof ObLongFld)
{
long i = 2147483647;
if ((m_lpMask & 1) == 0)
m_nullVal = new Long(0L);
if ((m_lpMask & 4) == 0)
m_emptyVal = new Long(0L);
if ((m_lpMask & 8) == 0)
m_hiVal = new Long(i);
if ((m_lpMask & 2) == 0)
m_loVal = new Long(-(i + 1L));
}
else if (obField instanceof ObLongDblFld)
{
if ((m_lpMask & 1) == 0)
m_nullVal = new Double(0.0);
if ((m_lpMask & 4) == 0)
m_emptyVal = new Double(0.0);

Page: 1140 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if ((m_lpMask & 8) == 0)
{
String string3 = createNumericString(((ObLongDblFld)obField).m_designLength -
((ObLongDblFld)obField).m_designDecimals, ((ObLongDblFld)obField).m_designDecimals, false);
m_hiVal = new Double(string3);
}
if ((m_lpMask & 2) == 0)
{
String string4 = createNumericString(((ObLongDblFld)obField).m_designLength -
((ObLongDblFld)obField).m_designDecimals, ((ObLongDblFld)obField).m_designDecimals, true);
m_loVal = new Double(string4);
}
}
else if (obField instanceof ObSglFld)
{
if ((m_lpMask & 1) == 0)
m_nullVal = new Float(0.0F);
if ((m_lpMask & 4) == 0)
m_emptyVal = new Float(0.0F);
if ((m_lpMask & 8) == 0)
{
String string5 = createNumericString(((ObSglFld)obField).m_designLength -
((ObSglFld)obField).m_designDecimals, ((ObSglFld)obField).m_designDecimals, false);
m_hiVal = new Float(string5);
}
if ((m_lpMask & 2) == 0)
{
String string6 = createNumericString(((ObSglFld)obField).m_designLength -
((ObSglFld)obField).m_designDecimals, ((ObSglFld)obField).m_designDecimals, true);
m_loVal = new Float(string6);
}
}
else if (obField instanceof ObFixedDecFld)
{
if ((m_lpMask & 1) == 0)
m_nullVal = new BigDecimal(0.0);
if ((m_lpMask & 4) == 0)
m_emptyVal = new BigDecimal(0.0);
if ((m_lpMask & 8) == 0)
{

Page: 1141 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

String string7 = createNumericString(((ObFixedDecFld)obField).m_designLength -


((ObFixedDecFld)obField).m_designDecimals, ((ObFixedDecFld)obField).m_designDecimals, false);
m_hiVal = new BigDecimal(string7);
}
if ((m_lpMask & 2) == 0)
{
String string8 = createNumericString(((ObFixedDecFld)obField).m_designLength -
((ObFixedDecFld)obField).m_designDecimals, ((ObFixedDecFld)obField).m_designDecimals, true);
m_loVal = new BigDecimal(string8);
}
}
else if (obField instanceof ObDateFld)
{
if ((m_lpMask & 1) == 0)
{
m_nullVal = new Date();
((Date)m_nullVal).setTime(28800000);
}
if ((m_lpMask & 4) == 0)
m_emptyVal = getDateOverride(4).getData();
if ((m_lpMask & 8) == 0)
m_hiVal = getDateOverride(8).getData();
if ((m_lpMask & 2) == 0)
m_loVal = getDateOverride(2).getData();
}
else if (obField instanceof ObTimeFld)
{
if ((m_lpMask & 1) == 0)
{
m_nullVal = new Date();
((Date)m_nullVal).setTime(28800000);
}
if ((m_lpMask & 4) == 0)
m_emptyVal = getTimeOverride(4).getData();
if ((m_lpMask & 8) == 0)
m_hiVal = getTimeOverride(8).getData();
if ((m_lpMask & 2) == 0)
m_loVal = getTimeOverride(2).getData();
}
else if (obField instanceof ObTimeStampFld)
{

Page: 1142 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if ((m_lpMask & 1) == 0)
{
m_nullVal = new Date();
((Date)m_nullVal).setTime(28800000);
}
if ((m_lpMask & 4) == 0)
m_emptyVal = getTimeStampOverride(4).getData();
if ((m_lpMask & 8) == 0)
m_hiVal = getTimeStampOverride(8).getData();
if ((m_lpMask & 2) == 0)
m_loVal = getTimeStampOverride(2).getData();
}
}

private String setString(ObField obField)


{
int i = obField.m_cLength - 1;
if (i == 0)
i = 256;
char ach[] = new char[i];
for (int j = 0; j < ach.length; j++)
ach[j] = 65535;
return new String(ach);
}

public boolean stateExists(int i)


{
int j = m_existMask & i;
if (j > 0)
return true;
else
return false;
}

private void writeObject(ObjectOutputStream objectOutputStream)


throws IOException
{
objectOutputStream.defaultWriteObject();
}
}

Page: 1143 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Page: 1144 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObStructuredFld

Full name of class: ObRun.ObRTTypes.ObStructuredFld.class

package ObRun.ObRTTypes;

import java.io.*;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;

public synchronized abstract class ObStructuredFld implements Serializable


{
public ObStructuredFld()
{
}

public void clearReferences()


{
}

public Object[] getArrayObj(Field field)


{
return null;
}

public int getFieldCount()


{
Field afield[] = getClass().getDeclaredFields();
int i = 0;
for (int j = 0; j < afield.length; j++)
{
if (afield[j].getType().isArray())
{
Object aobject1[] = getArrayObj(afield[j]);
if
(aobject1[0].getClass().getSuperclass().getName().equals("ObRun.ObRTTypes.ObStructuredFld"))
{
if (afield[j].getModifiers() == 1)
{

Page: 1145 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Object aobject2[] = getArrayObj(afield[j]);


ObStructuredFld obStructuredFld2 = (ObStructuredFld)aobject2[0];
int k = obStructuredFld2.getFieldCount();
i += k * aobject2.length;
}
}
else if (afield[j].getModifiers() == 1)
{
Object aobject3[] = getArrayObj(afield[j]);
i += aobject3.length;
}
}
else if (afield[j].getType().getSuperclass().getName().equals("ObRun.ObRTTypes.ObField"))
i++;
else if
(afield[j].getType().getSuperclass().getName().equals("ObRun.ObRTTypes.ObStructuredFld") &&
afield[j].getModifiers() == 1)
{
ObStructuredFld obStructuredFld1 = (ObStructuredFld)getObj(afield[j]);
i += obStructuredFld1.getFieldCount();
}
}
return i;
}

public int getObFields(ObField aobField[], int i1)


{
Field afield[] = getClass().getDeclaredFields();
for (int j = 0; j < afield.length; j++)
{
if (afield[j].getType().isArray())
{
Object aobject1[] = getArrayObj(afield[j]);
if (!
aobject1[0].getClass().getSuperclass().getName().equals("ObRun.ObRTTypes.ObStructuredFld"))
{
Object aobject3[] = getArrayObj(afield[j]);
for (int i2 = 0; i2 < aobject3.length; i2++)
{
if (afield[j].getModifiers() == 1)
{

Page: 1146 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

aobField[i1] = (ObField)aobject3[i2];
i1++;
}
}
}
else if (afield[j].getModifiers() == 1)
{
Object aobject2[] = getArrayObj(afield[j]);
for (int k = 0; k < aobject2.length; k++)
{
ObStructuredFld obStructuredFld2 = (ObStructuredFld)aobject2[k];
i1 = obStructuredFld2.getObFields(aobField, i1);
}
}
}
else if (afield[j].getType().getSuperclass().getName().equals("ObRun.ObRTTypes.ObField"))
{
aobField[i1] = (ObField)getObj(afield[j]);
i1++;
}
else if
(afield[j].getType().getSuperclass().getName().equals("ObRun.ObRTTypes.ObStructuredFld") &&
afield[j].getModifiers() == 1)
{
ObStructuredFld obStructuredFld1 = (ObStructuredFld)getObj(afield[j]);
i1 = obStructuredFld1.getObFields(aobField, i1);
}
}
return i1;
}

public Object getObj(Field field)


{
return null;
}

private void readObject(ObjectInputStream objectInputStream)


throws IOException, ClassNotFoundException
{
objectInputStream.defaultReadObject();
}

Page: 1147 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public void setEmpty()


{
int i = getFieldCount();
ObField aobField[] = new ObField[i];
getObFields(aobField, i);
for (int j = 0; j < aobField.length; j++)
aobField[j].setEmpty();
}

private void writeObject(ObjectOutputStream objectOutputStream)


throws IOException
{
objectOutputStream.defaultWriteObject();
}
}

Page: 1148 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObTimeFld

Full name of class: ObRun.ObRTTypes.ObTimeFld.class

package ObRun.ObRTTypes;

import java.sql.*;
import ObRun.ObFunction.ObApplication;
import java.util.Calendar;
import java.util.Date;

public final synchronized class ObTimeFld extends ObField


{
private static int m_DEFAULTTYPE;
private static int m_ALTERNATESQLTYPES[];

static
{
m_DEFAULTTYPE = -1;
}

public ObTimeFld()
{
setEmpty();
}

public ObTimeFld(byte b)
{
m_fldUsage = b;
setEmpty();
}

public ObTimeFld(byte b, int i, int j, char ch, String string)


{
m_fldUsage = b;
m_designLength = i;
m_designDecimals = j;
m_AS400DataType = ch;
m_implName = string;

Page: 1149 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

setEmpty();
}

public ObTimeFld(byte b, int i1, int j, char ch, String string1, int k, String string2, String string3,
String string4, String string5, int i2)
{
m_fldUsage = b;
m_designLength = i1;
m_designDecimals = j;
m_AS400DataType = ch;
m_implName = string1;
Date date1 = null;
Date date2 = null;
Date date3 = null;
Date date4 = null;
ObTimeFld obTimeFld = null;
obTimeFld = new ObTimeFld(string2);
date1 = (Date)obTimeFld.getData();
obTimeFld = new ObTimeFld(string3);
date2 = (Date)obTimeFld.getData();
obTimeFld = new ObTimeFld(string5);
date3 = (Date)obTimeFld.getData();
obTimeFld = new ObTimeFld(string4);
date4 = (Date)obTimeFld.getData();
m_specialVal = new ObSpecialVal((short)k, (short)i2, date1, date2, date3, date4, this);
setEmpty();
}

public ObTimeFld(String string)


{
fromString(string);
}

public ObTimeFld(String string, byte b)


{
fromString(string);
m_fldUsage = b;
}

public ObTimeFld(String string, int i)


{

Page: 1150 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

fromString(string);
setState(i);
}

public ObTimeFld(Date date)


{
m_data = new Date(date.getTime());
}

public ObTimeFld(Date date, byte b)


{
m_fldUsage = b;
m_data = new Date(date.getTime());
}

public ObField add(ObField obField)


{
setState(0);
ObTimeFld obTimeFld = obField.toObTimeFld();
Date date1 = obTimeFld.getValue();
Date date2 = getValue();
return new ObTimeFld(new Date(date1.getTime() + date2.getTime()));
}

public void assign(ObField obField)


{
if (obField.getState() == 4)
{
setEmpty();
setState(4);
return;
}
if (obField.hasState())
setState(obField.getState());
else
setState(0);
if (obField instanceof ObTimeFld)
m_data = new Date(((Date)obField.getData()).getTime());
else
castFrom(obField);
}

Page: 1151 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

protected void bindAsEmpty(PreparedStatement preparedStatement, int i)


{
ObTimeFld obTimeFld = new ObTimeFld();
obTimeFld.bindStatement(preparedStatement, i);
}

public void bindStatement(PreparedStatement preparedStatement, int i, int j)


{
Object object = null;
boolean flag = false;
if (m_specialVal != null && (hasState() && !m_specialVal.hasStateLP(m_fldState) &&
m_specialVal.stateExists(m_fldState) || isEmpty() && !m_specialVal.hasStateLP(4) &&
m_specialVal.stateExists(4)))
{
object = m_data;
if (hasState())
m_data = m_specialVal.getTimeOverride(m_fldState).getData();
else
m_data = m_specialVal.getTimeOverride(4).getData();
flag = true;
}
try
{
if (j == 92 || j == 10)
{
Time time = new Time(getValue().getTime());
preparedStatement.setTime(i, time);
}
else if (j == 93 || j == 11)
{
Timestamp timestamp = new Timestamp(getValue().getTime());
preparedStatement.setTimestamp(i, timestamp);
}
else
super.bindStatement(preparedStatement, i, j);
}
catch (Exception e)
{
ObApplication.log(e.getMessage());
setEmpty();

Page: 1152 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

}
if (flag)
{
m_data = null;
m_data = object;
}
}

public void castFrom(ObField obField)


{
if (obField.hasState())
{
setState(obField.getState());
return;
}
fromString(obField.toString());
setState(0);
}

public ObField divide(ObField obField)


{
setState(0);
ObTimeFld obTimeFld = obField.toObTimeFld();
Date date1 = obTimeFld.getValue();
Date date2 = getValue();
return new ObTimeFld(new Date(date1.getTime() / date2.getTime()));
}

public void fromResultSet(ResultSet resultSet, int i)


{
try
{
Time time = resultSet.getTime(i);
if (time == null || resultSet.wasNull())
{
setNull();
return;
}
m_data = new Date(time.getTime());
setReadState();
}

Page: 1153 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

catch (Exception e)
{
ObApplication.log(e.getMessage());
setEmpty();
}
}

public void fromString(String string1)


{
setState(0);
if (string1 == null)
{
setEmpty();
return;
}
if (string1.compareTo("*NOW") == 0)
{
m_data = null;
m_data = new Date(System.currentTimeMillis());
return;
}
String string2 = new String(string1);
boolean flag = false;
try
{
local = new Long(string1);
}
catch (NumberFormatException e1)
{
flag = true;
}
if (flag && string1.length() < 8)
{
local = 8 - string1.length();
for (int i = 0; i < local; i++)
string1 = new StringBuffer("0").append(string1).toString();
}
try
{
local = new Integer(string1.substring(0, 2));
Integer integer1 = new Integer(string1.substring(3, 5));

Page: 1154 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Integer integer2 = new Integer(string1.substring(6, 8));


if (local.intValue() == 0 && integer1.intValue() == 0 && integer2.intValue() == 0)
setEmpty();
else
{
Calendar calendar = Calendar.getInstance();
calendar.set(1970, 0, 1, local.intValue(), integer1.intValue(), integer2.intValue());
calendar.set(14, 0);
m_data = calendar.getTime();
}
}
catch (Exception e2)
{
fromStringWithoutSeparators(string2);
}
setReadState();
}

public void fromStringWithoutSeparators(String string)


{
setState(0);
if (string.compareTo("*NOW") == 0)
{
m_data = null;
m_data = new Date(System.currentTimeMillis());
return;
}
try
{
if (string.length() < 6)
{
int i = 6 - string.length();
for (int j = 0; j < i; j++)
string = new StringBuffer("0").append(string).toString();
}
Integer integer1 = new Integer(string.substring(0, 2));
Integer integer2 = new Integer(string.substring(2, 4));
Integer integer3 = new Integer(string.substring(4, 6));
if (integer1.intValue() == 0 && integer2.intValue() == 0 && integer3.intValue() == 0)
setEmpty();
else

Page: 1155 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
Calendar calendar = Calendar.getInstance();
calendar.set(1970, 0, 1, integer1.intValue(), integer2.intValue(), integer3.intValue());
calendar.set(14, 0);
m_data = calendar.getTime();
}
}
catch (Exception e)
{
setEmpty();
}
setReadState();
}

public byte[] getAS400ContentDefault()


{
byte ab[] = new byte[m_designLength];
switch (getState())
{
case 1:
case 2:
case 4:
for (int i = 0; i < ab.length; i++)
ab[i] = -16;
break;

case 8:
ab[0] = -14;
ab[1] = -13;
ab[2] = -11;
ab[3] = -7;
ab[4] = -11;
ab[5] = -7;
break;
}
return ab;
}

public int[] getAlternateSQLTypes()


{
if (m_ALTERNATESQLTYPES == null)

Page: 1156 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

m_ALTERNATESQLTYPES = ObFieldSQLTypes.getAlternates(this);
return m_ALTERNATESQLTYPES;
}

public int getDefaultType()


{
if (m_DEFAULTTYPE == -1)
m_DEFAULTTYPE = ObFieldSQLTypes.getDefault(this);
return m_DEFAULTTYPE;
}

public Date getValue()


{
return (Date)m_data;
}

public boolean isAS400StateDefault(String string, int i)


{
byte ab[] = new byte[m_designLength];
switch (i)
{
case 1:
case 2:
case 4:
for (int j = 0; j < ab.length; j++)
ab[j] = -16;
break;

case 8:
ab[0] = -14;
ab[1] = -13;
ab[2] = -11;
ab[3] = -7;
ab[4] = -11;
ab[5] = -7;
break;
}
if (new String(ab).equals(string))
return true;
else
return false;

Page: 1157 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public boolean isEmpty()


{
if (getState() == 4)
return true;
Calendar calendar = Calendar.getInstance();
calendar.set(1, 0, 1, 0, 0, 0);
calendar.set(14, 0);
long i = calendar.getTime().getTime();
if (m_specialVal != null && m_specialVal.stateExists(4))
i = ((Date)m_specialVal.getData(4)).getTime();
long j = ((Date)m_data).getTime();
return i == j;
}

public boolean isEqual(ObField obField)


{
if (hasState() || obField.hasState())
{
if (getState() == obField.getState())
return true;
else
return false;
}
if (obField.toObTimeFld().toString().compareTo(toString()) == 0)
return true;
else
return false;
}

public boolean isGreaterThan(ObField obField)


{
return getValue().after(obField.toObTimeFld().getValue());
}

public boolean isGreaterThanOrEqual(ObField obField)


{
return getValue().equals(obField.toObTimeFld().getValue()) ||
getValue().after(obField.toObTimeFld().getValue());
}

Page: 1158 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public boolean isLessThan(ObField obField)


{
return getValue().before(obField.toObTimeFld().getValue());
}

public boolean isLessThanOrEqual(ObField obField)


{
return getValue().equals(obField.toObTimeFld().getValue()) ||
getValue().before(obField.toObTimeFld().getValue());
}

public boolean isNotEqual(ObField obField)


{
if (hasState() || obField.hasState())
{
if (getState() != obField.getState())
return true;
else
return false;
}
if (obField.toObTimeFld().toString().compareTo(toString()) != 0)
return true;
else
return false;
}

public ObField modulus(ObField obField)


{
setState(0);
ObTimeFld obTimeFld = obField.toObTimeFld();
Date date1 = obTimeFld.getValue();
Date date2 = getValue();
return new ObTimeFld(new Date(date2.getTime() - date1.getTime() % date2.getTime() *
date1.getTime()));
}

public ObField multiply(ObField obField)


{
setState(0);
ObTimeFld obTimeFld = obField.toObTimeFld();

Page: 1159 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Date date1 = obTimeFld.getValue();


Date date2 = getValue();
return new ObTimeFld(new Date(date1.getTime() * date2.getTime()));
}

public void set(ObField obField)


{
if (obField.hasState())
{
setState(obField.getState());
return;
}
ObTimeFld obTimeFld = obField.toObTimeFld();
m_data = (Date)obTimeFld.getData();
setState(0);
}

public void setEmpty()


{
setState(0);
if (m_specialVal != null && m_specialVal.stateExists(4))
m_data = m_specialVal.getData(4);
else
{
Calendar calendar = Calendar.getInstance();
calendar.set(1, 0, 1, 0, 0, 0);
calendar.set(14, 0);
m_data = calendar.getTime();
}
}

protected void setReadState()


{
setState(0);
if (m_specialVal == null || m_specialVal.m_existMask == 0)
return;
String string1 = new ObTimeFld((Date)m_specialVal.getData(8)).toString();
String string2 = new ObTimeFld((Date)m_specialVal.getData(2)).toString();
String string3 = new ObTimeFld((Date)m_specialVal.getData(4)).toString();
String string4 = new ObTimeFld((Date)m_specialVal.getData(1)).toString();
if (m_specialVal.stateExists(4) && string3.compareTo(toString()) == 0)

Page: 1160 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
setEmpty();
setState(4);
}
else if (m_specialVal.stateExists(8) && string1.compareTo(toString()) == 0)
setHiVal();
else if (m_specialVal.stateExists(2) && string2.compareTo(toString()) == 0)
setLoVal();
else if (m_specialVal.stateExists(1) && string4.compareTo(toString()) == 0)
setNull();
}

public ObField subtract(ObField obField)


{
setState(0);
ObTimeFld obTimeFld = obField.toObTimeFld();
Date date1 = obTimeFld.getValue();
Date date2 = getValue();
return new ObTimeFld(new Date(date1.getTime() - date2.getTime()));
}

public ObTimeFld toObTimeFld()


{
return new ObTimeFld(getValue());
}

public String toString()


{
if (hasState())
convertStateToContent();
Calendar calendar = Calendar.getInstance();
calendar.setTime((Date)m_data);
String string1 = new String(new Integer(calendar.get(11)).toString());
if (string1.length() == 1)
string1 = new StringBuffer("0").append(string1).toString();
String string2 = new String(new Integer(calendar.get(12)).toString());
if (string2.length() == 1)
string2 = new StringBuffer("0").append(string2).toString();
String string3 = new String(new Integer(calendar.get(13)).toString());
if (string3.length() == 1)
string3 = new StringBuffer("0").append(string3).toString();

Page: 1161 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

String string4 = new String(":" + string2 + ":" + string3);


if (isEmpty() && !hasSpecialValues())
string4 = "00:00:00";
return string4;
}

public String toStringWithoutSeparators()


{
if (hasState())
convertStateToContent();
Calendar calendar = Calendar.getInstance();
calendar.setTime((Date)m_data);
String string1 = new String(new Integer(calendar.get(11)).toString());
if (string1.length() == 1)
string1 = new StringBuffer("0").append(string1).toString();
String string2 = new String(new Integer(calendar.get(12)).toString());
if (string2.length() == 1)
string2 = new StringBuffer("0").append(string2).toString();
String string3 = new String(new Integer(calendar.get(13)).toString());
if (string3.length() == 1)
string3 = new StringBuffer("0").append(string3).toString();
String string4 = new String(string2 + string3);
if (isEmpty())
string4 = "000000";
return string4;
}
}

Page: 1162 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObTimeStampFld

Full name of class: ObRun.ObRTTypes.ObTimeStampFld.class

package ObRun.ObRTTypes;

import java.sql.*;
import java.util.*;
import ObRun.ObFunction.ObApplication;

public final synchronized class ObTimeStampFld extends ObField


{
private static int m_DEFAULTTYPE;
private static int m_ALTERNATESQLTYPES[];

static
{
m_DEFAULTTYPE = -1;
}

public ObTimeStampFld()
{
setEmpty();
}

public ObTimeStampFld(byte b)
{
m_fldUsage = b;
setEmpty();
}

public ObTimeStampFld(byte b, int i, int j, char ch, String string)


{
m_fldUsage = b;
m_designLength = i;
m_designDecimals = j;
m_AS400DataType = ch;
m_implName = string;
setEmpty();

Page: 1163 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public ObTimeStampFld(byte b, int i1, int j, char ch, String string1, int k, String string2, String
string3, String string4, String string5, int i2)
{
m_fldUsage = b;
m_designLength = i1;
m_designDecimals = j;
m_AS400DataType = ch;
m_implName = string1;
Date date1 = null;
Date date2 = null;
Date date3 = null;
Date date4 = null;
ObTimeStampFld obTimeStampFld = null;
obTimeStampFld = new ObTimeStampFld(string2);
date1 = (Date)obTimeStampFld.getData();
obTimeStampFld = new ObTimeStampFld(string3);
date2 = (Date)obTimeStampFld.getData();
obTimeStampFld = new ObTimeStampFld(string5);
date3 = (Date)obTimeStampFld.getData();
obTimeStampFld = new ObTimeStampFld(string4);
date4 = (Date)obTimeStampFld.getData();
m_specialVal = new ObSpecialVal((short)k, (short)i2, date1, date2, date3, date4, this);
setEmpty();
}

public ObTimeStampFld(String string)


{
fromString(string);
}

public ObTimeStampFld(String string, byte b)


{
m_fldUsage = b;
fromString(string);
}

public ObTimeStampFld(String string, int i)


{
fromString(string);

Page: 1164 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

setState(i);
}

public ObTimeStampFld(Date date)


{
m_data = new Date(date.getTime());
}

public ObTimeStampFld(Date date, byte b)


{
m_fldUsage = b;
m_data = new Date(date.getTime());
}

public ObField add(ObField obField)


{
setState(0);
ObTimeStampFld obTimeStampFld = obField.toObTimeStampFld();
Date date1 = obTimeStampFld.getValue();
Date date2 = getValue();
return new ObTimeStampFld(new Date(date1.getTime() + date2.getTime()));
}

public void assign(ObField obField)


{
if (obField.getState() == 4)
{
setEmpty();
setState(4);
return;
}
if (obField.hasState())
setState(obField.getState());
else
setState(0);
if (obField instanceof ObTimeStampFld)
m_data = new Date(((Date)obField.getData()).getTime());
else
castFrom(obField);
}

Page: 1165 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

protected void bindAsEmpty(PreparedStatement preparedStatement, int i)


{
ObTimeStampFld obTimeStampFld = new ObTimeStampFld();
obTimeStampFld.bindStatement(preparedStatement, i);
}

public void bindStatement(PreparedStatement preparedStatement, int i, int j)


{
Object object = null;
boolean flag = false;
if (m_specialVal != null)
{
if (hasState() && !m_specialVal.hasStateLP(m_fldState) && m_specialVal.stateExists(m_fldState)
|| isEmpty() && !m_specialVal.hasStateLP(4) && m_specialVal.stateExists(4))
{
object = m_data;
if (hasState())
m_data = m_specialVal.getTimeStampOverride(m_fldState).getData();
else
m_data = m_specialVal.getTimeStampOverride(4).getData();
flag = true;
}
else if (isEmpty() && !m_specialVal.hasStateLP(2) && m_specialVal.stateExists(2))
{
object = m_data;
m_data = m_specialVal.getTimeStampOverride(2).getData();
flag = true;
}
}
try
{
if (j == 93 || j == 11)
{
Timestamp timestamp = new Timestamp(getValue().getTime());
preparedStatement.setTimestamp(i, timestamp);
}
else
super.bindStatement(preparedStatement, i, j);
}
catch (Exception e)
{

Page: 1166 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObApplication.log(e.getMessage());
setEmpty();
}
if (flag)
{
m_data = null;
m_data = object;
}
}

public void castFrom(ObField obField)


{
if (obField.hasState())
{
setState(obField.getState());
return;
}
fromString(obField.toString());
setState(0);
}

public ObField divide(ObField obField)


{
setState(0);
ObTimeStampFld obTimeStampFld = obField.toObTimeStampFld();
Date date1 = obTimeStampFld.getValue();
Date date2 = getValue();
return new ObTimeStampFld(new Date(date1.getTime() / date2.getTime()));
}

public void fromResultSet(ResultSet resultSet, int i)


{
try
{
Timestamp timestamp = resultSet.getTimestamp(i);
if (timestamp == null)
{
setNull();
return;
}
m_data = new Date(timestamp.getTime());

Page: 1167 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

setReadState();
}
catch (Exception e)
{
ObApplication.log(e.getMessage());
setEmpty();
}
}

public void fromString(String string1)


{
setState(0);
if (string1 == null)
{
setEmpty();
return;
}
if (string1.compareTo("*NOW") == 0)
{
m_data = null;
m_data = new Date(System.currentTimeMillis());
return;
}
String string2 = new String(string1);
if (string1.indexOf("-") > 0)
{
String string3 = string1.substring(0, string1.indexOf("-"));
int i = 4 - string3.length();
for (int j = 0; j < i; j++)
string1 = new StringBuffer("0").append(string1).toString();
}
try
{
Integer integer1 = new Integer(string1.substring(0, 4));
Integer integer2 = new Integer(string1.substring(5, 7));
Integer integer3 = new Integer(string1.substring(8, 10));
Integer integer4 = new Integer(string1.substring(11, 13));
Integer integer5 = new Integer(string1.substring(14, 16));
Integer integer6 = new Integer(string1.substring(17, 19));
if (integer1.intValue() == 0 && integer2.intValue() == 0 && integer3.intValue() == 0 &&
integer4.intValue() == 0 && integer5.intValue() == 0 && integer6.intValue() == 0)

Page: 1168 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

setEmpty();
else
{
Calendar calendar = Calendar.getInstance();
calendar.set(integer1.intValue(), integer2.intValue() - 1, integer3.intValue(),
integer4.intValue(), integer5.intValue(), integer6.intValue());
calendar.set(14, 0);
m_data = calendar.getTime();
}
}
catch (Exception e)
{
fromStringWithoutSeparators(string1);
}
setReadState();
}

public void fromStringWithoutSeparators(String string)


{
setState(0);
if (string.compareTo("*NOW") == 0)
{
m_data = null;
m_data = new Date(System.currentTimeMillis());
return;
}
if (string.length() < 20)
{
int i = 20 - string.length();
for (int j = 0; j < i; j++)
string = new StringBuffer("0").append(string).toString();
}
try
{
Integer integer1 = new Integer(string.substring(0, 4));
Integer integer2 = new Integer(string.substring(4, 6));
Integer integer3 = new Integer(string.substring(6, 8));
Integer integer4 = new Integer(string.substring(8, 10));
Integer integer5 = new Integer(string.substring(10, 12));
Integer integer6 = new Integer(string.substring(12, 14));
Integer integer7 = new Integer(0);

Page: 1169 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

if (string.length() > 14)


integer7 = new Integer(string.substring(14));
if (integer1.intValue() == 0 && integer2.intValue() == 0 && integer3.intValue() == 0 &&
integer4.intValue() == 0 && integer5.intValue() == 0 && integer6.intValue() == 0)
setEmpty();
else
{
Calendar calendar = Calendar.getInstance();
calendar.set(integer1.intValue(), integer2.intValue() - 1, integer3.intValue(),
integer4.intValue(), integer5.intValue(), integer6.intValue());
calendar.set(14, integer7.intValue());
m_data = calendar.getTime();
}
}
catch (Exception e)
{
setEmpty();
}
setReadState();
}

public byte[] getAS400ContentDefault()


{
byte ab[] = new byte[m_designLength];
switch (getState())
{
case 1:
case 2:
case 4:
for (int i = 0; i < ab.length; i++)
ab[i] = -16;
break;

case 8:
ab[0] = -7;
ab[1] = -7;
ab[2] = -7;
ab[3] = -7;
ab[4] = -15;
ab[5] = -14;
ab[6] = -13;

Page: 1170 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ab[7] = -15;
ab[8] = -14;
ab[9] = -13;
ab[10] = -11;
ab[11] = -7;
ab[12] = -11;
ab[13] = -7;
ab[14] = -7;
ab[15] = -7;
ab[16] = -7;
ab[17] = -7;
ab[18] = -7;
ab[19] = -7;
break;
}
return ab;
}

public int[] getAlternateSQLTypes()


{
if (m_ALTERNATESQLTYPES == null)
m_ALTERNATESQLTYPES = ObFieldSQLTypes.getAlternates(this);
return m_ALTERNATESQLTYPES;
}

public Object getData()


{
return m_data;
}

public int getDefaultType()


{
if (m_DEFAULTTYPE == -1)
m_DEFAULTTYPE = ObFieldSQLTypes.getDefault(this);
return m_DEFAULTTYPE;
}

public Date getValue()


{
return (Date)m_data;
}

Page: 1171 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public boolean isAS400StateDefault(String string, int i)


{
byte ab[] = new byte[m_designLength];
switch (i)
{
case 1:
case 2:
case 4:
for (int j = 0; j < ab.length; j++)
ab[j] = -16;
break;

case 8:
ab[0] = -7;
ab[1] = -7;
ab[2] = -7;
ab[3] = -7;
ab[4] = -15;
ab[5] = -14;
ab[6] = -13;
ab[7] = -15;
ab[8] = -14;
ab[9] = -13;
ab[10] = -11;
ab[11] = -7;
ab[12] = -11;
ab[13] = -7;
ab[14] = -7;
ab[15] = -7;
ab[16] = -7;
ab[17] = -7;
ab[18] = -7;
ab[19] = -7;
break;
}
if (new String(ab).equals(string))
return true;
else
return false;
}

Page: 1172 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

public boolean isEmpty()


{
if (getState() == 4)
return true;
Calendar calendar = Calendar.getInstance();
GregorianCalendar gregorianCalendar = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
gregorianCalendar.set(1, 0, 1, 0, 0, 0);
gregorianCalendar.set(14, 0);
calendar.setTime(gregorianCalendar.getTime());
int i = calendar.get(15) + calendar.get(16);
long j = calendar.getTime().getTime() - i;
if (m_specialVal != null && m_specialVal.stateExists(4))
j = ((Date)m_specialVal.getData(4)).getTime();
long k = ((Date)m_data).getTime();
return j == k;
}

public boolean isEqual(ObField obField)


{
if (hasState() || obField.hasState())
{
if (getState() == obField.getState())
return true;
else
return false;
}
if (obField.toObTimeStampFld().toString().compareTo(toString()) == 0)
return true;
else
return false;
}

public boolean isGreaterThan(ObField obField)


{
return getValue().after(obField.toObTimeStampFld().getValue());
}

public boolean isGreaterThanOrEqual(ObField obField)


{

Page: 1173 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

return getValue().equals(obField.toObTimeStampFld().getValue()) ||
getValue().after(obField.toObTimeStampFld().getValue());
}

public boolean isLessThan(ObField obField)


{
return getValue().before(obField.toObTimeStampFld().getValue());
}

public boolean isLessThanOrEqual(ObField obField)


{
return getValue().equals(obField.toObTimeStampFld().getValue()) ||
getValue().before(obField.toObTimeStampFld().getValue());
}

public boolean isNotEqual(ObField obField)


{
if (hasState() || obField.hasState())
{
if (getState() != obField.getState())
return true;
else
return false;
}
if (obField.toObTimeStampFld().toString().compareTo(toString()) != 0)
return true;
else
return false;
}

public ObField modulus(ObField obField)


{
setState(0);
ObTimeStampFld obTimeStampFld = obField.toObTimeStampFld();
Date date1 = obTimeStampFld.getValue();
Date date2 = getValue();
return new ObTimeStampFld(new Date(date2.getTime() - date1.getTime() % date2.getTime() *
date1.getTime()));
}

public ObField multiply(ObField obField)

Page: 1174 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

{
setState(0);
ObTimeStampFld obTimeStampFld = obField.toObTimeStampFld();
Date date1 = obTimeStampFld.getValue();
Date date2 = getValue();
return new ObTimeStampFld(new Date(date1.getTime() * date2.getTime()));
}

public void set(ObField obField)


{
if (obField.hasState())
{
setState(obField.getState());
return;
}
ObTimeStampFld obTimeStampFld = obField.toObTimeStampFld();
m_data = (Date)obTimeStampFld.getData();
setState(0);
}

public void setEmpty()


{
setState(0);
if (m_specialVal != null && m_specialVal.stateExists(4))
m_data = m_specialVal.getData(4);
else
{
Calendar calendar = Calendar.getInstance();
GregorianCalendar gregorianCalendar = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
gregorianCalendar.set(1, 0, 1, 0, 0, 0);
gregorianCalendar.set(14, 0);
calendar.setTime(gregorianCalendar.getTime());
int i = calendar.get(15) + calendar.get(16);
long j = calendar.getTime().getTime() - i;
m_data = new Date();
((Date)m_data).setTime(j);
}
}

protected void setReadState()


{

Page: 1175 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

setState(0);
if (m_specialVal == null || m_specialVal.m_existMask == 0)
return;
String string1 = new ObTimeStampFld((Date)m_specialVal.getData(8)).toString();
String string2 = new ObTimeStampFld((Date)m_specialVal.getData(2)).toString();
String string3 = new ObTimeStampFld((Date)m_specialVal.getData(4)).toString();
String string4 = new ObTimeStampFld((Date)m_specialVal.getData(1)).toString();
if (m_specialVal.stateExists(4) && string3.compareTo(toString()) == 0)
{
setEmpty();
setState(4);
}
else if (m_specialVal.stateExists(8) && string1.compareTo(toString()) == 0)
setHiVal();
else if (m_specialVal.stateExists(2) && string2.compareTo(toString()) == 0)
setLoVal();
else if (m_specialVal.stateExists(1) && string4.compareTo(toString()) == 0)
setNull();
}

public ObField subtract(ObField obField)


{
setState(0);
ObTimeStampFld obTimeStampFld = obField.toObTimeStampFld();
Date date1 = obTimeStampFld.getValue();
Date date2 = getValue();
return new ObTimeStampFld(new Date(date1.getTime() - date2.getTime()));
}

public ObTimeStampFld toObTimeStampFld()


{
return new ObTimeStampFld(getValue());
}

public String toString()


{
if (hasState())
convertStateToContent();
Calendar calendar = Calendar.getInstance();
calendar.setTime((Date)m_data);
String string1 = new String(new Integer(calendar.get(1)).toString());

Page: 1176 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

String string2 = new String(new Integer(calendar.get(2) + 1).toString());


if (string2.length() == 1)
string2 = new StringBuffer("0").append(string2).toString();
String string3 = new String(new Integer(calendar.get(5)).toString());
if (string3.length() == 1)
string3 = new StringBuffer("0").append(string3).toString();
String string4 = new String(new Integer(calendar.get(11)).toString());
if (string4.length() == 1)
string4 = new StringBuffer("0").append(string4).toString();
String string5 = new String(new Integer(calendar.get(12)).toString());
if (string5.length() == 1)
string5 = new StringBuffer("0").append(string5).toString();
String string6 = new String(new Integer(calendar.get(13)).toString());
if (string6.length() == 1)
string6 = new StringBuffer("0").append(string6).toString();
String string7 = new String("-" + string2 + "-" + string3 + " ");
string7 = string4 + ":" + string5 + ":" + string6;
return string7;
}

public String toStringWithoutSeparators()


{
if (hasState())
convertStateToContent();
Calendar calendar = Calendar.getInstance();
calendar.setTime((Date)m_data);
String string1 = new String(new Integer(calendar.get(1)).toString());
String string2 = new String(new Integer(calendar.get(2) + 1).toString());
if (string2.length() == 1)
string2 = new StringBuffer("0").append(string2).toString();
String string3 = new String(new Integer(calendar.get(5)).toString());
if (string3.length() == 1)
string3 = new StringBuffer("0").append(string3).toString();
String string4 = new String(new Integer(calendar.get(11)).toString());
if (string4.length() == 1)
string4 = new StringBuffer("0").append(string4).toString();
String string5 = new String(new Integer(calendar.get(12)).toString());
if (string5.length() == 1)
string5 = new StringBuffer("0").append(string5).toString();
String string6 = new String(new Integer(calendar.get(13)).toString());
if (string6.length() == 1)

Page: 1177 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

string6 = new StringBuffer("0").append(string6).toString();


String string7 = new String(new Integer(calendar.get(14)).toString());
if (string7.length() != 6)
{
int i = 6 - string7.length();
for (int j = 0; j < i; j++)
string7 = new StringBuffer("0").append(string7).toString();
}
String string8 = new String(string2 + string3);
string8 = string4 + string5 + string6 + string7;
if (isEmpty())
string8 = "00000000000000000000";
return string8;
}
}

Page: 1178 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Figure 1 The Full List of Qualified Class Names

ObBldMgr.ObBuildClient.class
ObBldMgr.ObBuildConnection.class
ObBldMgr.ObBuildInfo.class
ObBldMgr.ObBuildJDBC.class
ObBldMgr.ObBuildManager.class
ObBldMgr.ObBuildQueue.class
ObBldMgr.ObBuildRequest.class
ObBldMgr.ObBuildSchema.class
ObBldMgr.ObBuildSocketStream.class
ObBldMgr.ObBuildStatus.class
ObBldMgr.ObBuildStatusInfo.class
ObBldMgr.ObCompileJava.class
ObBldMgr.ObCompileRequest.class
ObBldMgr.ObCompileSource.class
ObBldMgr.ObParseGeneratedSQL.class
ObBldMgr.ObRetrieveLstFile.class
ObBldMgr.ObRmtBuildRequest.class
ObBldMgr.ObSourceFile.class
ObBldMgr.ObSQLBuildOption.class
ObFunction.ObServerApp.class
ObFunction.ObVariable.class
ObRun.ObComms.ObAS400Conversation.class
ObRun.ObComms.ObAS400SocketStream.class
ObRun.ObComms.ObAS400SocketStream$AS400DataReading.class
ObRun.ObComms.ObAS400SocketStream$AS400ErrorHandling.class
ObRun.ObComms.ObAS400SocketStream$ObAS400CallInfo.class
ObRun.ObComms.ObClientConnect.class
ObRun.ObComms.ObClientListen.class
ObRun.ObComms.ObClientType.class
ObRun.ObComms.ObConversation.class

Page: 1179 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObRun.ObComms.ObDataSocketStream.class
ObRun.ObComms.ObDispatchSocketStream.class
ObRun.ObComms.ObNotifyConnect.class
ObRun.ObComms.ObNotifyEvent.class
ObRun.ObComms.ObObjectConversation.class
ObRun.ObComms.ObObjectSocketStream.class
ObRun.ObComms.ObRemoteException.class
ObRun.ObComms.ObService.class
ObRun.ObComms.ObSocketListen.class
ObRun.ObComms.ObSocketService.class
ObRun.ObDatabase.ObDatabaseConnection.class
ObRun.ObDatabase.ObDatabaseMgr.class
ObRun.ObDatabase.ObSocketStream.class
ObRun.ObDatabase.ObSQLDataTypes.class
ObRun.ObDatabase.ObSQLTypeConversion.class
ObRun.ObDatabase.ObValidSQLType.class
ObRun.ObEnvironment.ObException.class
ObRun.ObEnvironment.ObJavaApi.class
ObRun.ObEnvironment.ObLog.class
ObRun.ObEnvironment.ObODBCOptionValues.class
ObRun.ObEnvironment.ObOptionsElement.class
ObRun.ObEnvironment.ObOptionsList.class
ObRun.ObEnvironment.ObRunOptions.class
ObRun.ObEnvironment.ObStringResource.class
ObRun.ObEnvironment.ObView.class
ObRun.ObFunction.ObApplication.class
ObRun.ObFunction.ObCall.class
ObRun.ObFunction.ObCallInfo.class
ObRun.ObFunction.ObCallMgr.class
ObRun.ObFunction.ObClientApp.class
ObRun.ObFunction.ObFncParameter.class
ObRun.ObFunction.ObFunction.class
ObRun.ObFunction.ObFunctionHandler.class
ObRun.ObFunction.ObLocalJavaCall.class

Page: 1180 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObRun.ObFunction.ObMessageLog.class
ObRun.ObFunction.ObMessageLog$ObMenuListener.class
ObRun.ObFunction.ObPanel.class
ObRun.ObFunction.ObRemoteJavaCall.class
ObRun.ObFunction.ObRemoteRPGCall.class
ObRun.ObFunction.ObServerApp.class
ObRun.ObFunction.ObValidElement.class
ObRun.ObFunction.ObVariable.class
ObRun.ObFunction.ObVariableGroup.class
ObRun.ObPanel.ObCtrlData.ObBeanData.class
ObRun.ObPanel.ObCtrlData.ObCheckboxData.class
ObRun.ObPanel.ObCtrlData.ObColumnHeadingData.class
ObRun.ObPanel.ObCtrlData.ObComboData.class
ObRun.ObPanel.ObCtrlData.ObControlState.class
ObRun.ObPanel.ObCtrlData.ObCtrlData.class
ObRun.ObPanel.ObCtrlData.ObDialogData.class
ObRun.ObPanel.ObCtrlData.ObEditData.class
ObRun.ObPanel.ObCtrlData.ObEventMap.class
ObRun.ObPanel.ObCtrlData.ObGridData.class
ObRun.ObPanel.ObCtrlData.ObKeyStrokeMap.class
ObRun.ObPanel.ObCtrlData.ObKeyStrokeMap$ObKeyDetails.class
ObRun.ObPanel.ObCtrlData.ObLabelData.class
ObRun.ObPanel.ObCtrlData.ObListData.class
ObRun.ObPanel.ObCtrlData.ObLogicalEvents.class
ObRun.ObPanel.ObCtrlData.ObMenubarData.class
ObRun.ObPanel.ObCtrlData.ObMenuData.class
ObRun.ObPanel.ObCtrlData.ObMenuitemData.class
ObRun.ObPanel.ObCtrlData.ObMultilineEditData.class
ObRun.ObPanel.ObCtrlData.ObPasswordData.class
ObRun.ObPanel.ObCtrlData.ObPictureData.class
ObRun.ObPanel.ObCtrlData.ObPushbuttonData.class
ObRun.ObPanel.ObCtrlData.ObRadiobuttonData.class
ObRun.ObPanel.ObCtrlData.ObSeparatorData.class
ObRun.ObPanel.ObCtrlData.ObSpinData.class

Page: 1181 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObRun.ObPanel.ObCtrlData.ObStaticData.class
ObRun.ObPanel.ObCtrlData.ObStatusbarData.class
ObRun.ObPanel.ObCtrlData.ObToolbarbuttonData.class
ObRun.ObPanel.ObCtrlData.ObToolbarData.class
ObRun.ObPanel.ObCtrlData.ObTopAppData.class
ObRun.ObPanel.ObCtrlData.ObUserAPI.class
ObRun.ObPanel.ObCtrlData.ObValuePairList.class
ObRun.ObPanel.ObCtrlData.ObValuePairList$ObValuePair.class
ObRun.ObPanel.ObCtrlData.ObWindowData.class
ObRun.ObPanel.ObCtrlGui.ObBackgroundPanel.class
ObRun.ObPanel.ObCtrlGui.ObBaseGridEditorDelegate.class
ObRun.ObPanel.ObCtrlGui.ObBasicTreeCellRenderer.class
ObRun.ObPanel.ObCtrlGui.ObBeanGui.class
ObRun.ObPanel.ObCtrlGui.ObButton.class
ObRun.ObPanel.ObCtrlGui.ObCheckboxGridEditorDelegate.class
ObRun.ObPanel.ObCtrlGui.ObCheckboxGui.class
ObRun.ObPanel.ObCtrlGui.ObCheckBoxTreeCellRenderer.class
ObRun.ObPanel.ObCtrlGui.ObClockTick.class
ObRun.ObPanel.ObCtrlGui.ObColumnHeadingGui.class
ObRun.ObPanel.ObCtrlGui.ObComboGridEditorDelegate.class
ObRun.ObPanel.ObCtrlGui.ObComboGui.class
ObRun.ObPanel.ObCtrlGui.ObCtrlGui.class
ObRun.ObPanel.ObCtrlGui.ObCtrlGui$1.class
ObRun.ObPanel.ObCtrlGui.ObCtrlGui$ObDateDocument.class
ObRun.ObPanel.ObCtrlGui.ObCtrlGui$ObLowerCaseDocument.class
ObRun.ObPanel.ObCtrlGui.ObCtrlGui$ObNumericDocument.class
ObRun.ObPanel.ObCtrlGui.ObCtrlGui$ObPopupItem.class
ObRun.ObPanel.ObCtrlGui.ObCtrlGui$ObTimeDocument.class
ObRun.ObPanel.ObCtrlGui.ObCtrlGui$ObTimeStampDocument.class
ObRun.ObPanel.ObCtrlGui.ObCtrlGui$ObUpperCaseDocument.class
ObRun.ObPanel.ObCtrlGui.ObDialogGui.class
ObRun.ObPanel.ObCtrlGui.ObEditGridEditorDelegate.class
ObRun.ObPanel.ObCtrlGui.ObEditGui.class
ObRun.ObPanel.ObCtrlGui.ObGridCellEditor.class

Page: 1182 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObRun.ObPanel.ObCtrlGui.ObGridCellEditor$ObMouseAdapter.class
ObRun.ObPanel.ObCtrlGui.ObGridGui.class
ObRun.ObPanel.ObCtrlGui.ObGridGui$ObGridColumnListener.class
ObRun.ObPanel.ObCtrlGui.ObGridGui$ObTableListener.class
ObRun.ObPanel.ObCtrlGui.ObGridModel.class
ObRun.ObPanel.ObCtrlGui.ObLabelGui.class
ObRun.ObPanel.ObCtrlGui.ObLabelGui$ObLabel.class
ObRun.ObPanel.ObCtrlGui.ObListGui.class
ObRun.ObPanel.ObCtrlGui.ObMenubarGui.class
ObRun.ObPanel.ObCtrlGui.ObMenuGui.class
ObRun.ObPanel.ObCtrlGui.ObMenuitemGui.class
ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui.class
ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui$1.class
ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui$2.class
ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui$3.class
ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui$4.class
ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui$5.class
ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui$6.class
ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui$7.class
ObRun.ObPanel.ObCtrlGui.ObMultilineEditGui$UndoHandler.class
ObRun.ObPanel.ObCtrlGui.ObPasswordGridEditorDelegate.class
ObRun.ObPanel.ObCtrlGui.ObPasswordGui.class
ObRun.ObPanel.ObCtrlGui.ObPictureGridEditorDelegate.class
ObRun.ObPanel.ObCtrlGui.ObPictureGui.class
ObRun.ObPanel.ObCtrlGui.ObPushbuttonGui.class
ObRun.ObPanel.ObCtrlGui.ObRadiobuttonGui.class
ObRun.ObPanel.ObCtrlGui.ObSeparatorGui.class
ObRun.ObPanel.ObCtrlGui.ObSpinGui.class
ObRun.ObPanel.ObCtrlGui.ObStaticGui.class
ObRun.ObPanel.ObCtrlGui.ObStaticGui$ObStatic.class
ObRun.ObPanel.ObCtrlGui.ObStatusbarGui.class
ObRun.ObPanel.ObCtrlGui.ObTabSequence.class
ObRun.ObPanel.ObCtrlGui.ObToolbarbuttonGui.class
ObRun.ObPanel.ObCtrlGui.ObToolbarGui.class

Page: 1183 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObRun.ObPanel.ObCtrlGui.ObTopAppGui.class
ObRun.ObPanel.ObCtrlGui.ObWindowGui.class
ObRun.ObPanel.ObLaunch.class
ObRun.ObPanel.ObLaunch$ObApplet.class
ObRun.ObPanel.ObPanelUtils.ObPanelResource.class
ObRun.ObPanel.ObPanelUtils.ObXYLayoutManager.class
ObRun.ObPanel.ObPanelUtils.XYConstraint.class
ObRun.ObPanel.ObVersionInfo.class
ObRun.ObRTTypes.ObByteFld.class
ObRun.ObRTTypes.ObCharFld.class
ObRun.ObRTTypes.ObDateFld.class
ObRun.ObRTTypes.ObDblFld.class
ObRun.ObRTTypes.ObField.class
ObRun.ObRTTypes.ObFieldSQLTypes.class
ObRun.ObRTTypes.ObFixedDecFld.class
ObRun.ObRTTypes.ObIntFld.class
ObRun.ObRTTypes.ObLongDblFld.class
ObRun.ObRTTypes.ObLongFld.class
ObRun.ObRTTypes.ObPanelUtils.ObXYLayoutManager.class
ObRun.ObRTTypes.ObPanelUtils.XYConstraint.class
ObRun.ObRTTypes.ObSglFld.class
ObRun.ObRTTypes.ObSpecialVal.class
ObRun.ObRTTypes.ObStructuredFld.class
ObRun.ObRTTypes.ObTimeFld.class
ObRun.ObRTTypes.ObTimeStampFld.class

Page: 1184 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

Figure 2 The Hierarchical List of Class Names

ObBldMgr ObBuildClient
ObBuildConnection
ObBuildInfo
ObBuildJDBC
ObBuildManager
ObBuildQueue
ObBuildRequest
ObBuildSchema
ObBuildSocketStrea
m
ObBuildStatus
ObBuildStatusInfo
ObCompileJava
ObCompileRequest
ObCompileSource
ObParseGeneratedS
QL
ObRetrieveLstFile
ObRmtBuildReques
t
ObSourceFile
ObSQLBuildOption
ObFunctio ObServerApp
n
ObVariable
ObRun ObComms ObAS400Conversation
ObAS400SocketStream
ObAS400SocketStream$AS400DataRe
ading

Page: 1185 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObAS400SocketStream$AS400ErrorH
andling
ObAS400SocketStream$ObAS400Call
Info
ObClientConnect
ObClientListen
ObClientType
ObConversation
ObDataSocketStream
ObDispatchSocketStream
ObNotifyConnect
ObNotifyEvent
ObObjectConversation
ObObjectSocketStream
ObRemoteException
ObService
ObSocketListen
ObSocketService
ObDatabase ObDatabaseConnection
ObDatabaseMgr
ObSocketStream
ObSQLDataTypes
ObSQLTypeConversion
ObValidSQLType
ObEnvironment ObException
ObJavaApi
ObLog
ObODBCOptionValues
ObOptionsElement
ObOptionsList
ObRunOptions
ObStringResource

Page: 1186 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObView
ObFunction ObApplication
ObCall
ObCallInfo
ObCallMgr
ObClientApp
ObFncParameter
ObFunction
ObFunctionHandler
ObLocalJavaCall
ObMessageLog
ObMessageLog$ObMenuListener
ObPanel
ObRemoteJavaCall
ObRemoteRPGCall
ObServerApp
ObValidElement
ObVariable
ObVariableGroup
ObPanel ObCtrlData ObBeanData
ObCheckboxData
ObColumnHeadingData
ObComboData
ObControlState
ObCtrlData
ObDialogData
ObEditData
ObEventMap
ObGridData
ObKeyStrokeMap
ObKeyStrokeMap$ObKeyDetai
ls

Page: 1187 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObLabelData
ObListData
ObLogicalEvents
ObMenubarData
ObMenuData
ObMenuitemData
ObMultilineEditData
ObPasswordData
ObPictureData
ObPushbuttonData
ObRadiobuttonData
ObSeparatorData
ObSpinData
ObStaticData
ObStatusbarData
ObToolbarbuttonData
ObToolbarData
ObTopAppData
ObUserAPI
ObValuePairList
ObValuePairList$ObValuePair
ObWindowData
ObCtrlGui ObBackgroundPanel
ObBaseGridEditorDelegate
ObBasicTreeCellRenderer
ObBeanGui
ObButton
ObCheckboxGridEditorDelegat
e
ObCheckboxGui
ObCheckBoxTreeCellRenderer
ObClockTick

Page: 1188 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObColumnHeadingGui
ObComboGridEditorDelegate
ObComboGui
ObCtrlGui
ObCtrlGui$1
ObCtrlGui$ObDateDocument
ObCtrlGui$ObLowerCaseDocu
ment
ObCtrlGui$ObNumericDocume
nt
ObCtrlGui$ObPopupItem
ObCtrlGui$ObTimeDocument
ObCtrlGui$ObTimeStampDocu
ment
ObCtrlGui$ObUpperCaseDocu
ment
ObDialogGui
ObEditGridEditorDelegate
ObEditGui
ObGridCellEditor
ObGridCellEditor$ObMouseAd
apter
ObGridGui
ObGridGui$ObGridColumnList
ener
ObGridGui$ObTableListener
ObGridModel
ObLabelGui
ObLabelGui$ObLabel
ObListGui
ObMenubarGui
ObMenuGui
ObMenuitemGui

Page: 1189 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObMultilineEditGui
ObMultilineEditGui$1
ObMultilineEditGui$2
ObMultilineEditGui$3
ObMultilineEditGui$4
ObMultilineEditGui$5
ObMultilineEditGui$6
ObMultilineEditGui$7
ObMultilineEditGui$UndoHan
dler
ObPasswordGridEditorDelegat
e
ObPasswordGui
ObPictureGridEditorDelegate
ObPictureGui
ObPushbuttonGui
ObRadiobuttonGui
ObSeparatorGui
ObSpinGui
ObStaticGui
ObStaticGui$ObStatic
ObStatusbarGui
ObTabSequence
ObToolbarbuttonGui
ObToolbarGui
ObTopAppGui
ObWindowGui
ObLaunch
ObLaunch$ObApplet
ObPanelUtils ObPanelResource
ObXYLayoutManager
XYConstraint

Page: 1190 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.
COOL:Plex Java for Dimwits (like me)

ObVersionInfo
ObRTTypes ObByteFld
ObCharFld
ObDateFld
ObDblFld
ObField
ObFieldSQLTypes
ObFixedDecFld
ObIntFld
ObLongDblFld
ObLongFld
ObPanelUtils ObXYLayoutManager
XYConstraint
ObSglFld
ObSpecialVal
ObStructuredFld
ObTimeFld
ObTimeStampFld

Page: 1191 Copyright 2000 Louis H. Kurrelmeyer, Jr. (except as noted)


all rights reserved.

You might also like