12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- package com.dmdirc.x.client;
-
- import com.dmdirc.parser.common.MyInfo;
- import com.dmdirc.parser.events.ChannelEvent;
- import com.dmdirc.parser.events.ChannelMessageEvent;
- import com.dmdirc.parser.events.ParserEvent;
- import com.dmdirc.parser.irc.IRCParser;
- import com.dmdirc.x.parser.ObservableParser;
- import io.reactivex.Observable;
- import io.reactivex.rxjavafx.schedulers.JavaFxScheduler;
- import java.net.URI;
- import javafx.application.Application;
- import javafx.scene.Scene;
- import javafx.scene.layout.StackPane;
- import javafx.stage.Stage;
- import org.apache.logging.log4j.LogManager;
- import org.apache.logging.log4j.Logger;
- import org.fxmisc.richtext.StyleClassedTextArea;
-
- public class Main {
-
- private static final Logger logger = LogManager.getLogger(Main.class);
-
- public static void main(String... args) {
- Application.launch(HelloWorld.class, args);
- }
-
- public static class HelloWorld extends Application {
-
- private StyleClassedTextArea area;
-
- @Override
- public void start(Stage primaryStage) {
- area = new StyleClassedTextArea();
- area.insertText(0, "Hello");
-
- StackPane root = new StackPane();
- root.getChildren().add(area);
-
- Scene scene = new Scene(root, 300, 250);
-
- primaryStage.setTitle("Hello World!");
- primaryStage.setScene(scene);
- primaryStage.show();
-
- MyInfo info = new MyInfo();
- info.setNickname(getParameters().getNamed().getOrDefault("nick", "luser"));
- IRCParser parser = new IRCParser(info, URI.create(getParameters().getNamed().get("uri")));
- ObservableParser observableParser = new ObservableParser(parser);
- parser.connect();
-
- observableParser.eventObservable().subscribe(this::handleEvent);
- observableParser.eventObservable()
- .filter(e -> e instanceof ChannelEvent)
- .map(e -> (ChannelEvent) e)
- .filter(c -> c.getChannel().getName().equalsIgnoreCase(
- getParameters().getNamed().getOrDefault("channel", "#dmdirc")))
- .filter(e -> e instanceof ChannelMessageEvent)
- .map(e -> (ChannelMessageEvent) e)
- .map(e -> e.getClient().getClient().getNickname() + "> " + e.getMessage())
- .observeOn(JavaFxScheduler.platform())
- .subscribe(this::handleChannelEvent);
-
- Observable.range(0, 250000)
- .map(String::valueOf)
- .observeOn(JavaFxScheduler.platform())
- .subscribe(this::handleChannelEvent);
- }
-
-
- private void handleEvent(ParserEvent event) {
- //logger.debug("Received event {}", event.getClass().getName());
- }
-
- private void handleChannelEvent(String line) {
- int length = area.getLength();
- area.insertText(length, "\n" + line);
- }
-
- }
-
- }
|