Skip to content
This repository was archived by the owner on Sep 12, 2024. It is now read-only.

Commit 06663e2

Browse files
committed
Added event listeners(not implemented)
# TODO - fix broken shuffle logic - implement event listeners - Many buggy features to fix Signed-off-by: zhaoxinn <[email protected]>
1 parent 018425f commit 06663e2

12 files changed

+161
-5
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.zxzinn.novelai.event;
2+
3+
import lombok.Getter;
4+
5+
import java.io.File;
6+
import java.util.EventListener;
7+
import java.util.EventObject;
8+
9+
@Getter
10+
public class FileOperationEvent extends EventObject {
11+
public enum OperationType {
12+
ADDED, DELETED, MODIFIED
13+
}
14+
15+
private final File file;
16+
private final OperationType operationType;
17+
18+
public FileOperationEvent(Object source, File file, OperationType operationType) {
19+
super(source);
20+
this.file = file;
21+
this.operationType = operationType;
22+
}
23+
24+
}
25+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.zxzinn.novelai.event;
2+
3+
import java.util.EventListener;
4+
5+
public interface FileOperationListener extends EventListener {
6+
void onFileOperation(FileOperationEvent event);
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.zxzinn.novelai.event;
2+
3+
import com.zxzinn.novelai.GenerationState;
4+
import lombok.Getter;
5+
6+
import java.util.EventListener;
7+
import java.util.EventObject;
8+
9+
@Getter
10+
public class GenerationStateChangeEvent extends EventObject {
11+
private final GenerationState newState;
12+
13+
public GenerationStateChangeEvent(Object source, GenerationState newState) {
14+
super(source);
15+
this.newState = newState;
16+
}
17+
18+
}
19+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.zxzinn.novelai.event;
2+
3+
import java.util.EventListener;
4+
5+
public interface GenerationStateChangeListener extends EventListener {
6+
void onGenerationStateChange(GenerationStateChangeEvent event);
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.zxzinn.novelai.event;
2+
3+
import lombok.Getter;
4+
5+
import java.awt.image.BufferedImage;
6+
import java.util.EventListener;
7+
import java.util.EventObject;
8+
9+
@Getter
10+
public class ImageReceivedEvent extends EventObject {
11+
private final BufferedImage image;
12+
13+
public ImageReceivedEvent(Object source, BufferedImage image) {
14+
super(source);
15+
this.image = image;
16+
}
17+
18+
}
19+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.zxzinn.novelai.event;
2+
3+
import java.util.EventListener;
4+
5+
public interface ImageReceivedListener extends EventListener {
6+
void onImageReceived(ImageReceivedEvent event);
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.zxzinn.novelai.event;
2+
3+
import lombok.Getter;
4+
5+
import java.util.EventListener;
6+
import java.util.EventObject;
7+
8+
@Getter
9+
public class ParameterChangeEvent extends EventObject {
10+
private final String parameterName;
11+
private final Object newValue;
12+
13+
public ParameterChangeEvent(Object source, String parameterName, Object newValue) {
14+
super(source);
15+
this.parameterName = parameterName;
16+
this.newValue = newValue;
17+
}
18+
19+
}
20+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.zxzinn.novelai.event;
2+
3+
import java.util.EventListener;
4+
5+
public interface ParameterChangeListener extends EventListener {
6+
void onParameterChange(ParameterChangeEvent event);
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.zxzinn.novelai.event;
2+
3+
import lombok.Getter;
4+
5+
import java.util.EventListener;
6+
import java.util.EventObject;
7+
8+
@Getter
9+
public class PromptUpdateEvent extends EventObject {
10+
private final String positivePrompt;
11+
private final String negativePrompt;
12+
13+
public PromptUpdateEvent(Object source, String positivePrompt, String negativePrompt) {
14+
super(source);
15+
this.positivePrompt = positivePrompt;
16+
this.negativePrompt = negativePrompt;
17+
}
18+
19+
}
20+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.zxzinn.novelai.event;
2+
3+
import java.util.EventListener;
4+
5+
public interface PromptUpdateListener extends EventListener {
6+
void onPromptUpdate(PromptUpdateEvent event);
7+
}

src/main/java/com/zxzinn/novelai/gui/MainGUI.java

+7-3
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import com.zxzinn.novelai.api.GenerationRequestBuilder;
66
import com.zxzinn.novelai.api.NAIConstants;
77
import com.zxzinn.novelai.config.ConfigManager;
8+
import com.zxzinn.novelai.event.ImageReceivedEvent;
9+
import com.zxzinn.novelai.event.ImageReceivedListener;
810
import com.zxzinn.novelai.gui.common.ImagePreviewPanel;
911
import com.zxzinn.novelai.gui.filewindow.FileManagerTab;
1012
import com.zxzinn.novelai.gui.generation.*;
@@ -27,7 +29,7 @@
2729
@Log4j2
2830
@Getter
2931
@Setter
30-
public class MainGUI extends JFrame implements UIComponent {
32+
public class MainGUI extends JFrame implements UIComponent , ImageReceivedListener {
3133
private static final ConfigManager config = ConfigManager.getInstance();
3234
public static final int WINDOW_WIDTH = config.getInteger("ui.window.width");
3335
public static final int WINDOW_HEIGHT = config.getInteger("ui.window.height");
@@ -134,7 +136,7 @@ public void layoutComponents() {
134136
public void bindEvents() {
135137
actionComboBox.addActionListener(e -> updateParametersPanel());
136138
generationControlPanel.setOnGenerateRequested(this::startImageGeneration);
137-
generationControlPanel.setOnImageReceived(this::onReceivedImage);
139+
generationControlPanel.addImageReceivedListener(this);
138140
}
139141

140142
private void startImageGeneration() {
@@ -205,7 +207,9 @@ private void refreshPromptPreview() {
205207
});
206208
}
207209

208-
private void onReceivedImage(BufferedImage image) {
210+
@Override
211+
public void onImageReceived(ImageReceivedEvent event) {
212+
BufferedImage image = event.getImage();
209213
SwingUtilities.invokeLater(() -> {
210214
try {
211215
imagePreviewPanel.setImage(image);

src/main/java/com/zxzinn/novelai/gui/generation/GenerationControlPanel.java

+16-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com.zxzinn.novelai.gui.generation;
22

33
import com.zxzinn.novelai.GenerationState;
4+
import com.zxzinn.novelai.event.ImageReceivedEvent;
5+
import com.zxzinn.novelai.event.ImageReceivedListener;
46
import com.zxzinn.novelai.utils.I18nManager;
57
import lombok.Data;
68
import lombok.EqualsAndHashCode;
@@ -9,6 +11,8 @@
911
import javax.swing.*;
1012
import java.awt.*;
1113
import java.awt.image.BufferedImage;
14+
import java.util.ArrayList;
15+
import java.util.List;
1216
import java.util.concurrent.atomic.AtomicInteger;
1317
import java.util.function.Consumer;
1418

@@ -18,6 +22,7 @@
1822
public class GenerationControlPanel extends JPanel {
1923
private final JButton controlButton;
2024
private final JComboBox<String> generationCountComboBox;
25+
private final List<ImageReceivedListener> imageReceivedListeners = new ArrayList<>();
2126

2227
private GenerationState currentState;
2328
private final AtomicInteger lastingCount = new AtomicInteger();
@@ -102,9 +107,18 @@ public void updateState(GenerationState newState) {
102107
});
103108
}
104109

110+
public void addImageReceivedListener(ImageReceivedListener listener) {
111+
imageReceivedListeners.add(listener);
112+
}
113+
114+
public void removeImageReceivedListener(ImageReceivedListener listener) {
115+
imageReceivedListeners.remove(listener);
116+
}
117+
105118
public void onImageReceived(BufferedImage image) {
106-
if (onImageReceived != null) {
107-
onImageReceived.accept(image);
119+
ImageReceivedEvent event = new ImageReceivedEvent(this, image);
120+
for (ImageReceivedListener listener : imageReceivedListeners) {
121+
listener.onImageReceived(event);
108122
}
109123
}
110124
}

0 commit comments

Comments
 (0)