dp.sh.Brushes.Java = function()
{
  var datatypes = 
'Alias' +
'Brush' +
'Date' +
'Float Font ' +
'Integer' +
'Logical Object' +
'Pen' +
'SmallInt String Symbol' 	
	var keywords = 
'Active Add Alter Append Application As Auto All' +
'logical' +
'Browse BrushPicker Button ButtonPad By ByVal Bounds' +
'Call Calling CancelButton Case Char Charset Check CheckBox Close Col Color Command Commit Control CoordSys Create Cursor Center' +
'Data DDE DDEExecute DDEPoke DDETerminate DDETerminateAll Declare Define Delete Dialog Dim Disable Do Document Drop DrawMode Display Disconnect' +
'Earth Editable EditText Else ElseIf Enable End Error Event Exit Export Extents' +
'Fetch File Find First FontPicker For Format From Function Fixed Front Fit FillFrame Frame FastEdit' +
'Get Global Goto Graph Graphic Group GroupBox' +
'Height Hide HelpMsg' +
'ID If Include Input Into In Import Insert Index Icon Info Interactive' +
'Justify' +
'Kill' +
'Last Layer Layout Lib LINK ListBox Loop Line' +
'Map Menu Message Merge Module MultiListBox MapInfo' +
'NATIVE Next Noselect Note Number Node' +
'Obj Objects Off OKButton On Open Order Output OnError Overwrite' +
'Pack PenPicker PopupMenu Position Prev Print PrintWin Processing Projection Program ProgressBar ProgressBars Put PushButton Point' +
'RadioGroup Range Rec ReDim Register Reload Remove Rename Restore ReadOnly Resume Rollback Run Rect Redraw' +
'Save Seek Select Selectable Set Server Step Shade Show StaticText StatusBar Stop Style Styles Sub SymbolPicker SysMenuClose Separator ' +
'Table Then Title To Type ToolButton ToggleButton Text' +
'Union Units Update Until Undo Using Uncheck UserRemoveMap' +
'Value Values Variable Vary' +
'Where While Width Window' +
'Zoom' +
'Abs Acos Any ApplicationDirectory$ Area AreaOverlap Asc Ask Asin Atn Avg' +
'ButtonPadInfo Buffer' +
'CentroidX CentroidY Chr$ ColumnInfo CommandInfo Combine Cos Count CurDate CreateLine CreateCircle CreatePoint CurrentBrush CurrentFont CurrentPen CurrentSymbol ConvertToPline ConvertToRegion' +
'Day DeformatNumber$ Distance' +
'EOT EOF Exp EndHandler Erase Error$ Err' +
'FileAttr FileExists Fix FrontWindow Format$ FormatDate$ FormatNumber$ FileOpenDlg FileSaveAsDlg ForegroundTaskSwitchHandler' +
'HomeDirectory$' +
'InStr Int IntersectNodes ' +
'LabelInfo LayerInfo LCase$ Left$ Len Like LOF Log LTrim$' +
'MakeBrush MakeCustomSymbol MakeFont MakeFontSymbol MakePen MakeSymbol' +
'MapperInfo Max Maximum MBR MenuItemInfoByHandler MenuItemInfoByID Mid$ MidByte$ Min Minimum Month' +
'NumberToDate NumCols NumTables NumWindows' +
'ObjectGeography ObjectInfo ObjectLen OverlayNodes ObjectNodeX ObjectNodeY' +
'Perimeter Proper$ PathToDirectory$ PathToTableName$ PathToFileName$ ProgramDirectory$' +
'Randomize ReadControlValue RGB Right$ Rnd Round Round RTrim$ RemoteMsgHandler RemoteQueryHandler' +
'SearchInfo SelectionInfo Seek Sgn Sin Space$ Sqr Str$ String$ StringCompare StringCompare StringCompareIntl StringToDate StyleAttr Sum SystemInfo Server_NumDrivers SelChangedHandler ' +
'Server_Execute Server_Connect Server_ColumnInfo Server_DriverInfo Server_EOT Server_NumCols Server_NumDrivers' +
'TableInfo Tan Time Timer TriggerControl TempFileName$ TrueFileName$' +
'UBound UCase$ UnitAbbr$ UnitName$ ' +
'Val' +
'Weekday WindowInfo WtAvg WinChangedHandler WinClosedHandler WindowID WinFocusChangedHandler Year' +
'AND' +
'Contains' +
'Entire' +
'Entirely' +
'Intersects' +
'Mod' +
'NOT' +
'OR' +
'Part' +
'Partly' +
'Within'
			;

	this.regexList = [
		{ regex: dp.sh.RegexLib.SingleLineCComments,							css: 'comment' },		// one line comments
		{ regex: dp.sh.RegexLib.SingleLineMBComments,							css: 'comment' },		// one line comments
		{ regex: dp.sh.RegexLib.MultiLineCComments,								css: 'comment' },		// multiline comments
		{ regex: dp.sh.RegexLib.DoubleQuotedString,								css: 'string' },		// strings
		//{ regex: dp.sh.RegexLib.SingleQuotedString,								css: 'string' },		// strings
		{ regex: new RegExp('\\b([\\d]+(\\.[\\d]+)?|0x[a-f0-9]+)\\b', 'gi'),	css: 'number' },		// numbers
		{ regex: new RegExp('(?!\\@interface\\b)\\@[\\$\\w]+\\b', 'g'),			css: 'annotation' },	// annotation @anno
		{ regex: new RegExp('\\@interface\\b', 'g'),							css: 'keyword' },		// @interface keyword
		{ regex: new RegExp(this.GetKeywords(keywords), 'gmi'),					css: 'keyword' },		// java keyword
		{ regex: new RegExp('\\@logical\\b', 'g'),							css: 'keyword' },		// @interface keyword
		{ regex: new RegExp(this.GetKeywords(datatypes), 'gmi'),		css: 'datatypes' }
		];

	this.CssClass = 'dp-j';
}

dp.sh.Brushes.Java.prototype	= new dp.sh.Highlighter();
dp.sh.Brushes.Java.Aliases	= ['java'];
