2023年10月10日17:06:31
parent
4d30ad799d
commit
8f0616d8f3
|
|
@ -5,13 +5,11 @@ import com.zhangmeng.tools.components.RecursiveFileList;
|
|||
import com.zhangmeng.tools.dto.FileTreeView;
|
||||
import com.zhangmeng.tools.editors.ace.AceEditor;
|
||||
import com.zhangmeng.tools.editors.ace.AceMode;
|
||||
import com.zhangmeng.tools.editors.ace.AceTheme;
|
||||
import com.zhangmeng.tools.editors.codemirr.CodeMirrWebView;
|
||||
import com.zhangmeng.tools.editors.monaco.*;
|
||||
import com.zhangmeng.tools.editors.timifx.TimiFxEditor;
|
||||
import com.zhangmeng.tools.utils.AlertUtils;
|
||||
import com.zhangmeng.tools.utils.ClipboardUtils;
|
||||
import com.zhangmeng.tools.utils.ImagePath;
|
||||
import com.zhangmeng.tools.utils.ResourcesUtils;
|
||||
import com.zhangmeng.tools.utils.*;
|
||||
import eu.mihosoft.monacofx.Editor;
|
||||
import eu.mihosoft.monacofx.MonacoFX;
|
||||
import javafx.application.Platform;
|
||||
|
|
@ -46,6 +44,8 @@ import javafx.stage.Stage;
|
|||
import javafx.util.Callback;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.imyeyu.timifx.service.RunAsync;
|
||||
import net.imyeyu.timijava.config.Config;
|
||||
import net.imyeyu.timijava.config.ConfigManager;
|
||||
import org.apache.commons.io.FilenameUtils;
|
||||
import org.fxmisc.flowless.VirtualizedScrollPane;
|
||||
import org.fxmisc.richtext.CodeArea;
|
||||
|
|
@ -76,6 +76,9 @@ public class EditorListImplController {
|
|||
@FXML
|
||||
public MenuItem save;
|
||||
|
||||
@FXML
|
||||
public Menu them_list;
|
||||
|
||||
public enum Type {
|
||||
|
||||
JAVA, HTML, GO, JS, CSS, SQL, XML, YML, MARKDOWN
|
||||
|
|
@ -92,6 +95,7 @@ public class EditorListImplController {
|
|||
private AnchorPane timiFx;
|
||||
|
||||
private SimpleObjectProperty<File> choose_file = new SimpleObjectProperty<>(null);
|
||||
private SimpleObjectProperty<AceTheme> choose_them = new SimpleObjectProperty<>(null);
|
||||
private final ObservableList<Path> filePaths_list = FXCollections.observableArrayList();
|
||||
public static final String color_cell = "#f4f4f4";
|
||||
|
||||
|
|
@ -270,6 +274,8 @@ public class EditorListImplController {
|
|||
|
||||
@FXML
|
||||
public void initialize() {
|
||||
String local = ConfigManager.getConfig(Resources.CONFIG_PATH).getString(Config.section("Main").key("AceJsThem"));
|
||||
choose_them.setValue(AceTheme.valueOf(local));
|
||||
init();
|
||||
listView.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> {
|
||||
if (newValue != null) {
|
||||
|
|
@ -369,10 +375,55 @@ public class EditorListImplController {
|
|||
tabPane = new TabPane();
|
||||
//添加菜单
|
||||
addMenu();
|
||||
|
||||
//加载菜单
|
||||
// for (AceTheme value : AceTheme.values()) {
|
||||
// String them_string = value.toString();
|
||||
// MenuItem menuItem = new MenuItem(them_string);
|
||||
// menuItem.setOnAction(event -> {
|
||||
// AceEditor aceEditor = (AceEditor) tabPane.getSelectionModel().getSelectedItem().getContent();
|
||||
// MenuItem source = (MenuItem) event.getSource();
|
||||
// aceEditor.setAceTheme(AceTheme.valueOf(source.getText()));
|
||||
// });
|
||||
// them_list.getItems().add(menuItem);
|
||||
// }
|
||||
ListView<String> listView = new ListView<>();
|
||||
|
||||
ObservableList<String> objects = FXCollections.observableArrayList();
|
||||
for (AceTheme value : AceTheme.values()) {
|
||||
String them_string = value.toString();
|
||||
objects.add(them_string);
|
||||
}
|
||||
listView.setItems(objects);
|
||||
|
||||
listView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>() {
|
||||
@Override
|
||||
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
|
||||
if (newValue!= null){
|
||||
if (tabPane.getSelectionModel().getSelectedItem() == null){
|
||||
choose_them.setValue(AceTheme.valueOf(newValue));
|
||||
AlertUtils.alert_warning("主题选择成功!");
|
||||
return;
|
||||
}
|
||||
AceEditor aceEditor = (AceEditor) tabPane.getSelectionModel().getSelectedItem().getContent();
|
||||
aceEditor.setAceTheme(AceTheme.valueOf(newValue));
|
||||
}
|
||||
}
|
||||
});
|
||||
MenuItem menuItem = new MenuItem("设置主题");
|
||||
them_list.getItems().add(menuItem);
|
||||
menuItem.setOnAction(event -> {
|
||||
AnchorPane them_choose = new AnchorPane();
|
||||
them_choose.setPrefWidth(200);
|
||||
them_choose.setPrefHeight(400);
|
||||
them_choose.getChildren().add(listView);
|
||||
Stage primaryStage = (Stage) EditorListImplController.this.splitPane.getScene().getWindow();
|
||||
AlertUtils.alert("设置", them_choose,200,400, primaryStage);
|
||||
});
|
||||
|
||||
File file = null;
|
||||
FileTreeView fileTreeView = new FileTreeView(file);
|
||||
fileTreeView.setBorder(BORDER_EXLEFT);
|
||||
fileTreeView.setFixedCellSize(40);
|
||||
splitPane.getItems().clear();
|
||||
splitPane.getItems().add(0, fileTreeView);
|
||||
splitPane.getItems().add(1, tabPane);
|
||||
|
|
@ -651,7 +702,7 @@ public class EditorListImplController {
|
|||
case MARKDOWN -> mode = AceMode.MARKDOWN;
|
||||
}
|
||||
//新建编辑器
|
||||
AceEditor editor = new AceEditor(choose_file.getValue(),mode,null);
|
||||
AceEditor editor = new AceEditor(choose_file.getValue(), mode, EditorListImplController.this.choose_them.get());
|
||||
WebView view = editor.getWebView();
|
||||
AnchorPane.setTopAnchor(view, 0.0);
|
||||
AnchorPane.setBottomAnchor(view, 0.0);
|
||||
|
|
|
|||
|
|
@ -104,6 +104,7 @@ public class AlertUtils {
|
|||
stage.initStyle(StageStyle.UTILITY);
|
||||
stage.initOwner(primaryStage);
|
||||
stage.initModality(Modality.APPLICATION_MODAL);
|
||||
stage.setResizable(false);
|
||||
stage.show();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,9 @@
|
|||
<?import javafx.scene.control.SplitPane?>
|
||||
<?import javafx.scene.layout.AnchorPane?>
|
||||
|
||||
<?import javafx.scene.control.CustomMenuItem?>
|
||||
<?import javafx.scene.control.ComboBox?>
|
||||
<?import java.lang.String?>
|
||||
<AnchorPane prefHeight="800.0" prefWidth="1661.0" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.zhangmeng.tools.controller.EditorListImplController">
|
||||
<children>
|
||||
<MenuBar layoutX="14.0" layoutY="27.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||
|
|
@ -112,9 +115,9 @@
|
|||
<Menu mnemonicParsing="false" text="编辑器">
|
||||
<items>
|
||||
<MenuItem mnemonicParsing="false" onAction="#ace_menu_item" text="ace.js 编辑器" />
|
||||
<MenuItem mnemonicParsing="false" onAction="#monaco_menu_item" text="monaco.js 编辑器" />
|
||||
<MenuItem mnemonicParsing="false" onAction="#codemirror_menu_item" text="codemirror.js 编辑器" />
|
||||
<MenuItem mnemonicParsing="false" onAction="#timeFx_menu_item" text="timefx 编辑器" />
|
||||
<!-- <MenuItem mnemonicParsing="false" onAction="#monaco_menu_item" text="monaco.js 编辑器" />-->
|
||||
<!-- <MenuItem mnemonicParsing="false" onAction="#codemirror_menu_item" text="codemirror.js 编辑器" />-->
|
||||
<!-- <MenuItem mnemonicParsing="false" onAction="#timeFx_menu_item" text="timefx 编辑器" />-->
|
||||
</items>
|
||||
</Menu>
|
||||
|
||||
|
|
@ -138,6 +141,9 @@
|
|||
<MenuItem fx:id="save" mnemonicParsing="false" text="保存" />
|
||||
</items>
|
||||
</Menu>
|
||||
<Menu fx:id="them_list" mnemonicParsing="false" text="主题">
|
||||
|
||||
</Menu>
|
||||
</menus>
|
||||
</MenuBar>
|
||||
</children>
|
||||
|
|
|
|||
|
|
@ -115,9 +115,9 @@
|
|||
<Menu mnemonicParsing="false" text="编辑器">
|
||||
<items>
|
||||
<MenuItem mnemonicParsing="false" text="ace.js 编辑器" onAction="#ace_menu_item"/>
|
||||
<MenuItem mnemonicParsing="false" text="monaco.js 编辑器" onAction="#monaco_menu_item"/>
|
||||
<MenuItem mnemonicParsing="false" text="codemirror.js 编辑器" onAction="#codemirror_menu_item"/>
|
||||
<MenuItem mnemonicParsing="false" text="timefx 编辑器" onAction="#timeFx_menu_item"/>
|
||||
<!-- <MenuItem mnemonicParsing="false" text="monaco.js 编辑器" onAction="#monaco_menu_item"/>-->
|
||||
<!-- <MenuItem mnemonicParsing="false" text="codemirror.js 编辑器" onAction="#codemirror_menu_item"/>-->
|
||||
<!-- <MenuItem mnemonicParsing="false" text="timefx 编辑器" onAction="#timeFx_menu_item"/>-->
|
||||
</items>
|
||||
</Menu>
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ Width=1300
|
|||
Height=850
|
||||
|
||||
# 编辑器主题
|
||||
AceJsThem=kr_theme
|
||||
AceJsThem=monokai
|
||||
|
||||
|
||||
[Interpolator]
|
||||
|
|
|
|||
Loading…
Reference in New Issue