Best way to add SyntaxConstants into ComboBox?

Questions on using RSyntaxTextArea should go here.

Moderator: robert

Best way to add SyntaxConstants into ComboBox?

Postby Endogen » Sat Jan 04, 2014 10:35 am

First of all, this is a great library! I found this thing a week ago and really enjoy using it. Thanks for all the great work!

What i try to do is, add all the available constants in "SyntaxConstants" into a JComboBox so that i have the possibility to choose the highlighting that i want to use for my text. Also i don't necessarily want to see the exact same values as in "SyntaxConstants". Something like "Java" or "Delphi" would be great!
Could someone give me some ideas how to achieve this?
Endogen
 
Posts: 5
Joined: Sat Jan 04, 2014 10:18 am

Re: Best way to add SyntaxConstants into ComboBox?

Postby robert » Wed Jan 08, 2014 1:36 pm

You'd have to roll your own to do that. One way is perhaps a HashMap mapping user-friendly Strings for language names to the SyntaxConstants property names.

You might be able to programmatically get "user-friendly" names from the constant values. It's up to you if they're "friendly" enough. Something like this:

java code:

Field[] fields = SyntaxConstants.class.getFields();
for (Field field : fields) {
String name = field.getName();
String userFriendlyName = name.substring("SYNTAX_STYLE_".length());
// Sentence-case it
boolean lowerCaseNext = true;
StringBuilder sb = new StringBuilder();
sb.append(userFriendlyName.charAt(0));
for (int i=1; i<userFriendlyName.length(); i++) {
char ch = userFriendlyName.charAt(i);
if (ch=='_') {
sb.append(' ');
lowerCaseNext = false;
}
else {
if (lowerCaseNext) {
ch = Character.toLowerCase(ch);
}
else {
lowerCaseNext = true;
}
sb.append(ch);
}
}
userFriendlyName = sb.toString();
System.out.println(userFriendlyName);
}
User avatar
robert
 
Posts: 789
Joined: Sat May 10, 2008 5:16 pm


Return to Help

Who is online

Users browsing this forum: zöner and 1 guest