package org.netbeans.editor.ext.q; import studio.kdb.Config; import java.awt.Color; import java.awt.Font; import org.netbeans.editor.Coloring; import org.netbeans.editor.Settings; import org.netbeans.editor.SettingsDefaults; import org.netbeans.editor.SettingsUtil; import org.netbeans.editor.TokenCategory; import org.netbeans.editor.TokenContextPath; class QTokenColoringInitializer extends SettingsUtil.TokenColoringInitializer { Font boldFont=SettingsDefaults.defaultFont.deriveFont(Font.BOLD); Font italicFont=SettingsDefaults.defaultFont.deriveFont(Font.ITALIC); Settings.Evaluator boldSubst=new SettingsUtil.FontStylePrintColoringEvaluator(Font.BOLD); Settings.Evaluator italicSubst=new SettingsUtil.FontStylePrintColoringEvaluator(Font.ITALIC); Settings.Evaluator lightGraySubst=new SettingsUtil.ForeColorPrintColoringEvaluator(Color.lightGray); private Coloring CHARVECTOR_Coloring; private Coloring EOL_COMMENT_Coloring; private Coloring IDENTIFIER_Coloring; private Coloring OPERATOR_Coloring; private Coloring BOOLEAN_Coloring; private Coloring BYTE_Coloring; private Coloring SHORT_Coloring; private Coloring LONG_Coloring; private Coloring REAL_Coloring; private Coloring INTEGER_Coloring; private Coloring FLOAT_Coloring; private Coloring TIMESTAMP_Coloring; private Coloring TIMESPAN_Coloring; private Coloring DATETIME_Coloring; private Coloring DATE_Coloring; private Coloring MONTH_Coloring; private Coloring MINUTE_Coloring; private Coloring SECOND_Coloring; private Coloring TIME_Coloring; private Coloring SYMBOL_Coloring; private Coloring KEYWORD_Coloring; private Coloring COMMAND_Coloring; private Coloring SYSTEM_Coloring; private Coloring WHITESPACE_Coloring; private Coloring DEFAULT_Coloring; private Coloring buildColoring(String name, Font font, Color defaultColor) { return new Coloring(font, Coloring.FONT_MODE_APPLY_STYLE, Config.getInstance().getColorForToken(name, defaultColor), null); } public QTokenColoringInitializer() { super(QTokenContext.context); CHARVECTOR_Coloring=buildColoring("CHARVECTOR", SettingsDefaults.defaultFont,new Color(0,200,20)); EOL_COMMENT_Coloring=buildColoring("EOLCOMMENT", italicFont, Color.GRAY); IDENTIFIER_Coloring=buildColoring("IDENTIFIER", SettingsDefaults.defaultFont,new Color(180,160,0)); OPERATOR_Coloring=buildColoring("OPERATOR", SettingsDefaults.defaultFont,Color.BLACK); BOOLEAN_Coloring=buildColoring("BOOLEAN", SettingsDefaults.defaultFont,new Color(51,204,255)); BYTE_Coloring=buildColoring("BYTE",SettingsDefaults.defaultFont,new Color(51,104,255)); SHORT_Coloring=buildColoring("SHORT",SettingsDefaults.defaultFont,new Color(51,104,255)); LONG_Coloring=buildColoring("LONG",SettingsDefaults.defaultFont,new Color(51,104,255)); REAL_Coloring=buildColoring("REAL",SettingsDefaults.defaultFont,new Color(51,104,255)); INTEGER_Coloring=buildColoring("INTEGER",SettingsDefaults.defaultFont,new Color(51,104,255)); FLOAT_Coloring=buildColoring("FLOAT",SettingsDefaults.defaultFont,new Color(51,104,255)); TIMESTAMP_Coloring=buildColoring("TIMESTAMP",SettingsDefaults.defaultFont,new Color(184,138,0)); TIMESPAN_Coloring=buildColoring("TIMESPAN",SettingsDefaults.defaultFont,new Color(184,138,0)); DATETIME_Coloring=buildColoring("DATETIME",SettingsDefaults.defaultFont,new Color(184,138,0)); DATE_Coloring=buildColoring("DATE",SettingsDefaults.defaultFont,new Color(184,138,0)); MONTH_Coloring=buildColoring("MONTH",SettingsDefaults.defaultFont,new Color(184,138,0)); MINUTE_Coloring=buildColoring("MINUTE",SettingsDefaults.defaultFont,new Color(184,138,0)); SECOND_Coloring=buildColoring("SECOND",SettingsDefaults.defaultFont,new Color(184,138,0)); TIME_Coloring=buildColoring("TIME",SettingsDefaults.defaultFont,new Color(184,138,0)); SYMBOL_Coloring=buildColoring("SYMBOL",SettingsDefaults.defaultFont,new Color(179,0,134)); KEYWORD_Coloring=buildColoring("KEYWORD", boldFont,new Color(0,0,255)); COMMAND_Coloring=buildColoring("COMMAND", SettingsDefaults.defaultFont,new Color(240,180,0)); SYSTEM_Coloring=buildColoring("SYSTEM", SettingsDefaults.defaultFont,new Color(240,180,0)); WHITESPACE_Coloring=buildColoring("WHITESPACE", SettingsDefaults.defaultFont,Color.black); DEFAULT_Coloring=buildColoring("DEFAULT", SettingsDefaults.defaultFont,Color.black); } public Object getTokenColoring(TokenContextPath tokenContextPath, TokenCategory tokenIDOrCategory, boolean printingSet) { if(!printingSet) { switch(tokenIDOrCategory.getNumericID()) { case QTokenContext.CHARVECTOR_ID: return CHARVECTOR_Coloring; case QTokenContext.EOL_COMMENT_ID: return EOL_COMMENT_Coloring; case QTokenContext.IDENTIFIER_ID: return IDENTIFIER_Coloring; case QTokenContext.OPERATOR_ID: return OPERATOR_Coloring; case QTokenContext.BOOLEAN_ID: return BOOLEAN_Coloring; case QTokenContext.BYTE_ID: return BYTE_Coloring; case QTokenContext.SHORT_ID: return SHORT_Coloring; case QTokenContext.LONG_ID: return LONG_Coloring; case QTokenContext.REAL_ID: return REAL_Coloring; case QTokenContext.INTEGER_ID: return INTEGER_Coloring; case QTokenContext.FLOAT_ID: return FLOAT_Coloring; case QTokenContext.DATETIME_ID: return DATETIME_Coloring; case QTokenContext.TIMESTAMP_ID: return TIMESTAMP_Coloring; case QTokenContext.TIMESPAN_ID: return TIMESPAN_Coloring; case QTokenContext.DATE_ID: return DATE_Coloring; case QTokenContext.MONTH_ID: return MONTH_Coloring; case QTokenContext.MINUTE_ID: return MINUTE_Coloring; case QTokenContext.SECOND_ID: return SECOND_Coloring; case QTokenContext.TIME_ID: return TIME_Coloring; case QTokenContext.SYMBOL_ID: return SYMBOL_Coloring; case QTokenContext.UNKNOWN_ID: return new Coloring(boldFont,Coloring.FONT_MODE_APPLY_STYLE,Color.red,null); case QTokenContext.KEYWORD_ID: return KEYWORD_Coloring; case QTokenContext.COMMAND_ID: return COMMAND_Coloring; case QTokenContext.SYSTEM_ID: return SYSTEM_Coloring; case QTokenContext.WHITESPACE_ID: return WHITESPACE_Coloring; default: return DEFAULT_Coloring; } } else { // printing set switch(tokenIDOrCategory.getNumericID()) { default: return SettingsUtil.defaultPrintColoringEvaluator; } } } }