Skip to content

Commit 4e48b2c

Browse files
committed
improved integration.
1 parent 4c2460f commit 4e48b2c

File tree

3 files changed

+19
-3
lines changed

3 files changed

+19
-3
lines changed

src/main/java/com/ss/editor/manager/ClasspathManager.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ public enum Scope {
4343
@NotNull
4444
public static final Set<Scope> ONLY_CORE = EnumSet.of(CORE);
4545

46+
@NotNull
47+
public static final Set<Scope> CORE_AND_CUSTOM_AND_LOCAL = EnumSet.of(CORE, CUSTOM, LOCAL_CLASSES, LOCAL_LIBRARIES);
48+
4649
@NotNull
4750
public static final Set<Scope> ALL = EnumSet.allOf(Scope.class);
4851
}

src/main/java/com/ss/editor/remote/control/client/LoadLocalClassesClientCommand.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package com.ss.editor.remote.control.client;
22

3+
import com.ss.editor.Editor;
34
import com.ss.editor.annotation.BackgroundThread;
45
import com.ss.editor.manager.ClasspathManager;
6+
import com.ss.editor.manager.ExecutorManager;
57
import com.ss.rlib.network.ConnectionOwner;
68
import com.ss.rlib.network.annotation.PacketDescription;
79
import com.ss.rlib.util.StringUtils;
@@ -19,12 +21,21 @@
1921
@PacketDescription(id = 3)
2022
public class LoadLocalClassesClientCommand extends ClientCommand {
2123

24+
@NotNull
25+
private static final ExecutorManager EXECUTOR_MANAGER = ExecutorManager.getInstance();
26+
27+
@NotNull
28+
private static final Editor EDITOR = Editor.getInstance();
29+
2230
@Override
2331
@BackgroundThread
2432
protected void readImpl(@NotNull final ConnectionOwner owner, @NotNull final ByteBuffer buffer) {
33+
2534
final String outputPath = readString(buffer);
2635
final Path output = StringUtils.isEmpty(outputPath) ? null : Paths.get(outputPath);
2736
final ClasspathManager classpathManager = ClasspathManager.getInstance();
2837
classpathManager.loadLocalClasses(output);
38+
39+
EXECUTOR_MANAGER.addJMETask(() -> EDITOR.getAssetManager().clearCache());
2940
}
3041
}

src/main/java/com/ss/editor/ui/control/model/tree/dialog/CreateCustomControlDialog.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.ss.editor.extension.scene.control.EditableControl;
1111
import com.ss.editor.extension.scene.control.impl.EditableBillboardControl;
1212
import com.ss.editor.manager.ClasspathManager;
13+
import com.ss.editor.manager.ClasspathManager.Scope;
1314
import com.ss.editor.model.undo.editor.ModelChangeConsumer;
1415
import com.ss.editor.ui.control.model.tree.action.operation.AddControlOperation;
1516
import com.ss.editor.ui.css.CSSClasses;
@@ -168,9 +169,10 @@ protected void createContent(@NotNull final GridPane root) {
168169

169170
final ObservableList<Class<? extends Control>> items = customComboBox.getItems();
170171

171-
final Array<Class<Control>> implementations = CLASSPATH_MANAGER.findImplements(Control.class);
172-
implementations.forEach(items, (cs, classes) -> ClassUtils.hasConstructor(cs),
173-
(controlClass, classes) -> classes.add(controlClass));
172+
CLASSPATH_MANAGER.findImplements(Control.class, Scope.CORE_AND_CUSTOM_AND_LOCAL)
173+
.stream().filter(ClassUtils::hasConstructor)
174+
.sorted((f, s) -> StringUtils.compareIgnoreCase(f.getSimpleName(), s.getSimpleName()))
175+
.distinct().forEach(items::add);
174176

175177
final GridPane settingsContainer = new GridPane();
176178
root.add(builtInLabel, 0, 0);

0 commit comments

Comments
 (0)