Skip to content

Commit

Permalink
Close all HTML tags on newline
Browse files Browse the repository at this point in the history
  • Loading branch information
ME1312 committed Jan 3, 2019
1 parent b22d04d commit 5c61e7f
Show file tree
Hide file tree
Showing 5 changed files with 50 additions and 14 deletions.
15 changes: 11 additions & 4 deletions GalaxiAPI/src/net/ME1312/Galaxi/Plugin/PluginManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ public void registerListener(PluginInfo plugin, Object... listeners) {
*/
@SafeVarargs
public final <T extends Event> void registerListener(PluginInfo plugin, Class<T> event, Listener<T>... listeners) {
registerListener(plugin, event, ListenerOrder.NORMAL, listeners);
registerListener(plugin, event, null, listeners);
}


Expand All @@ -131,16 +131,23 @@ public final <T extends Event> void registerListener(PluginInfo plugin, Class<T>
* @see ListenerOrder
* @param plugin PluginInfo
* @param event Event Type
* @param order Event Order (will convert to short)
* @param order Listener Order (will convert to short)
* @param listeners Listeners
* @param <T> Event Type
*/
@SafeVarargs
public final <T extends Event> void registerListener(PluginInfo plugin, Class<T> event, Number order, Listener<T>... listeners) {
for (Listener listener : listeners) {
if (Util.isNull(plugin, event, order, listener)) throw new NullPointerException();
if (Util.isNull(plugin, event, listener)) throw new NullPointerException();
try {
registerListener(plugin, event, order.shortValue(), listener, Listener.class.getMethod("run", Event.class));
short o;
Method m = Listener.class.getMethod("run", Event.class);
if (order == null) {
if (m.isAnnotationPresent(Subscribe.class)) {
o = m.getAnnotation(Subscribe.class).order();
} else o = ListenerOrder.NORMAL;
} else o = order.shortValue();
registerListener(plugin, event, o, listener, m);
} catch (Exception e) {
Galaxi.getInstance().getAppInfo().getLogger().error.println(e);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ public final class ConsoleWindow extends OutputStream {
private boolean first = true;
private int fontSize = 12;
ByteArrayOutputStream scache = new ByteArrayOutputStream();
private AnsiUIOutputStream stream = new AnsiUIOutputStream(new OutputStream() {
private AnsiUIOutputStream stream = HTMLogger.wrap(new OutputStream() {

@Override
public void write(int b) throws IOException {
Expand All @@ -73,6 +73,11 @@ public void run() {
scache = new ByteArrayOutputStream();
}
}
}, new HTMLogger.HTMConstructor<AnsiUIOutputStream>() {
@Override
public AnsiUIOutputStream construct(OutputStream raw, OutputStream wrapped) {
return new AnsiUIOutputStream(raw, wrapped);
}
});
private boolean[] kpressed = new boolean[65535];
private KeyEventDispatcher keys = new KeyEventDispatcher() {
Expand Down Expand Up @@ -800,8 +805,8 @@ public void prev(JTextComponent field) {
}
}
private class AnsiUIOutputStream extends HTMLogger {
public AnsiUIOutputStream(OutputStream os) {
super(os);
public AnsiUIOutputStream(OutputStream raw, OutputStream wrapped) {
super(raw, wrapped);
}

public void ansi(boolean value) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
/**
* Galaxi Engine Main Class
*/
@Plugin(name = "GalaxiEngine", version = "3.2.0a", authors = "ME1312", description = "An engine for command line Java applications", website = "https://github.com/ME1312/GalaxiEngine")
@Plugin(name = "GalaxiEngine", version = "3.2.0b", authors = "ME1312", description = "An engine for command line Java applications", website = "https://github.com/ME1312/GalaxiEngine")
public class GalaxiEngine extends Galaxi {
private final PluginManager pluginManager = new PluginManager(this);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ public final class FileLogger extends OutputStream {
iwriter = new FileOutputStream(file, true);
iwriter.write(("<h1>" + name + "</h1>\n").getBytes("UTF-8"));
iwriter.flush();
writer = new HTMLogger(iwriter);
writer = HTMLogger.wrap(iwriter);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package net.ME1312.Galaxi.Engine.Library.Log;

import net.ME1312.Galaxi.Library.Container;
import org.fusesource.jansi.AnsiOutputStream;

import java.io.IOException;
Expand Down Expand Up @@ -28,9 +29,23 @@ public class HTMLogger extends AnsiOutputStream {
* Parse data from an OutputStream
*
* @param raw OutputStream
* @return HTMLogger
*/
public HTMLogger(final OutputStream raw) {
super(new OutputStream() {
public static HTMLogger wrap(OutputStream raw) {
return wrap(raw, HTMLogger::new);
}

/**
* Parse data from an OutputStream
*
* @param raw OutputStream
* @param constructor Implementing Constructor
* @param <T> Logger Type
* @return HTMLogger
*/
public static <T extends HTMLogger> T wrap(OutputStream raw, HTMConstructor<T> constructor) {
Container<T> html = new Container<T>(null);
html.set(constructor.construct(raw, new OutputStream() {
private boolean nbsp = false;

@Override
Expand All @@ -54,14 +69,23 @@ public void write(int data) throws IOException {
case 62:
raw.write(BYTES_GT);
break;
case 10:
html.get().closeAttributes();
default:
raw.write(data);
}
}
}
});
}));
return html.get();
}
protected HTMLogger(final OutputStream raw, OutputStream wrapped) {
super(wrapped);
this.raw = raw;
}
public interface HTMConstructor<T extends HTMLogger> {
T construct(OutputStream raw, OutputStream wrapped);
}

private void write(String s) throws IOException {
raw.write(s.getBytes());
Expand All @@ -72,7 +96,7 @@ private void writeAttribute(String s) throws IOException {
closingAttributes.add(0, s);
}

private void closeAttribute(String s) throws IOException {
protected void closeAttribute(String s) throws IOException {
LinkedList<String> closedAttributes = new LinkedList<String>();
LinkedList<String> closingAttributes = new LinkedList<String>();
LinkedList<String> unclosedAttributes = new LinkedList<String>();
Expand All @@ -96,7 +120,7 @@ private void closeAttribute(String s) throws IOException {
}
}

private void closeAttributes() throws IOException {
protected void closeAttributes() throws IOException {
for (String attr : closingAttributes) {
write("</" + attr.split(" ", 2)[0] + ">");
}
Expand Down

0 comments on commit 5c61e7f

Please sign in to comment.