Nicer, cleaner implementation of NORMAL control code.

fix-message-formatting
Danny van Heumen 12 years ago
parent 727ad04763
commit bc40a9d057

@ -46,24 +46,16 @@ public void append(char c)
*/
public void apply(ControlChar c, String... addition)
{
if (c == ControlChar.NORMAL)
if (formatting.contains(c))
{
// Special case: NORMAL resets/cancels all active formatting
cancelAll();
// cancel active control char
cancel(c);
}
else
{
if (formatting.contains(c))
{
// cancel active control char
cancel(c);
}
else
{
// start control char formatting
this.formatting.add(c);
this.text.append(c.getHtmlStart(addition));
}
// start control char formatting
this.formatting.add(c);
this.text.append(c.getHtmlStart(addition));
}
}
@ -110,9 +102,9 @@ private void cancel(ControlChar c)
}
/**
* Cancel all remaining control chars.
* Cancel all active formatting.
*/
private void cancelAll()
public void cancelAll()
{
while (!this.formatting.empty())
{

@ -55,9 +55,11 @@ public static String parse(String text)
case ITALICS:
case UNDERLINE:
case BOLD:
case NORMAL:
builder.apply(control);
break;
case NORMAL:
builder.cancelAll();
break;
case COLOR:
if (builder.isActive(control))
{

Loading…
Cancel
Save