Add events for default editing actions
This commit is contained in:
parent
8ddcb9743e
commit
47c10bbc90
|
@ -13,10 +13,15 @@ import org.fxmisc.richtext.model.StyleSpans;
|
|||
import org.fxmisc.richtext.model.TwoDimensional.Bias;
|
||||
import org.fxmisc.richtext.model.TwoDimensional.Position;
|
||||
|
||||
import app.events.CopyEvent;
|
||||
import app.events.CutEvent;
|
||||
import app.events.EditorChangedEvent;
|
||||
import app.events.LanguageChangedEvent;
|
||||
import app.events.PasteEvent;
|
||||
import app.events.RedoEvent;
|
||||
import app.events.ToggleCommentEvent;
|
||||
import app.events.ToggleWrapTextEvent;
|
||||
import app.events.UndoEvent;
|
||||
import app.events.FileSaveStateChangedEvent;
|
||||
import app.model.Model;
|
||||
import app.service.LanguageOperations;
|
||||
|
@ -141,4 +146,34 @@ public class EditorController implements Initializable, Controller {
|
|||
this.setWrapText(event.getIsWrapped());
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
private void handle(UndoEvent event) {
|
||||
if (this.editor.isFocused())
|
||||
this.editor.undo();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
private void handle(RedoEvent event) {
|
||||
if (this.editor.isFocused())
|
||||
this.editor.redo();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
private void handle(CopyEvent event) {
|
||||
if (this.editor.isFocused())
|
||||
this.editor.copy();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
private void handle(CutEvent event) {
|
||||
if (this.editor.isFocused())
|
||||
this.editor.cut();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
private void handle(PasteEvent event) {
|
||||
if (this.editor.isFocused())
|
||||
this.editor.paste();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -7,12 +7,17 @@ import java.util.ResourceBundle;
|
|||
import com.google.common.eventbus.EventBus;
|
||||
import com.google.common.eventbus.Subscribe;
|
||||
|
||||
import app.events.CopyEvent;
|
||||
import app.events.CutEvent;
|
||||
import app.events.ExitApplicationEvent;
|
||||
import app.events.LanguageChangedEvent;
|
||||
import app.events.OpenLinkInBrowserEvent;
|
||||
import app.events.PasteEvent;
|
||||
import app.events.RedoEvent;
|
||||
import app.events.ThemeChangedEvent;
|
||||
import app.events.ToggleCommentEvent;
|
||||
import app.events.ToggleWrapTextEvent;
|
||||
import app.events.UndoEvent;
|
||||
import javafx.event.ActionEvent;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.fxml.Initializable;
|
||||
|
@ -128,6 +133,31 @@ public class MenubarController implements Initializable, Controller {
|
|||
/* EDIT */
|
||||
/* ------------------------------------------------------------------------ */
|
||||
|
||||
@FXML
|
||||
private void handleUndo(ActionEvent event) {
|
||||
this.eventBus.post(new UndoEvent());
|
||||
}
|
||||
|
||||
@FXML
|
||||
private void handleRedo(ActionEvent event) {
|
||||
this.eventBus.post(new RedoEvent());
|
||||
}
|
||||
|
||||
@FXML
|
||||
private void handleCopy(ActionEvent event) {
|
||||
this.eventBus.post(new CopyEvent());
|
||||
}
|
||||
|
||||
@FXML
|
||||
private void handleCut(ActionEvent event) {
|
||||
this.eventBus.post(new CutEvent());
|
||||
}
|
||||
|
||||
@FXML
|
||||
private void handlePaste(ActionEvent event) {
|
||||
this.eventBus.post(new PasteEvent());
|
||||
}
|
||||
|
||||
@FXML
|
||||
private void handleToggleComment(ActionEvent event) {
|
||||
this.eventBus.post(new ToggleCommentEvent());
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
package app.events;
|
||||
|
||||
public class CopyEvent extends Event {
|
||||
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
package app.events;
|
||||
|
||||
public class CutEvent extends Event {
|
||||
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
package app.events;
|
||||
|
||||
public class PasteEvent extends Event {
|
||||
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
package app.events;
|
||||
|
||||
public class RedoEvent extends Event {
|
||||
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
package app.events;
|
||||
|
||||
public class UndoEvent extends Event {
|
||||
|
||||
}
|
|
@ -73,12 +73,12 @@
|
|||
</Menu>
|
||||
<Menu mnemonicParsing="false" text="Edit">
|
||||
<items>
|
||||
<MenuItem mnemonicParsing="false" text="Undo" accelerator="Shortcut+z"/>
|
||||
<MenuItem mnemonicParsing="false" text="Redo" accelerator="Shortcut+y"/>
|
||||
<MenuItem mnemonicParsing="false" text="Undo" accelerator="Shortcut+z" onAction="#handleUndo"/>
|
||||
<MenuItem mnemonicParsing="false" text="Redo" accelerator="Shortcut+y" onAction="#handleRedo"/>
|
||||
<SeparatorMenuItem/>
|
||||
<MenuItem mnemonicParsing="false" text="Cut" accelerator="Shortcut+x"/>
|
||||
<MenuItem mnemonicParsing="false" text="Copy" accelerator="Shortcut+c"/>
|
||||
<MenuItem mnemonicParsing="false" text="Paste" accelerator="Shortcut+v"/>
|
||||
<MenuItem mnemonicParsing="false" text="Cut" accelerator="Shortcut+x" onAction="#handleCut"/>
|
||||
<MenuItem mnemonicParsing="false" text="Copy" accelerator="Shortcut+c" onAction="#handleCopy"/>
|
||||
<MenuItem mnemonicParsing="false" text="Paste" accelerator="Shortcut+v" onAction="#handlePaste"/>
|
||||
<SeparatorMenuItem/>
|
||||
<MenuItem mnemonicParsing="false" text="Find" accelerator="Shortcut+f"/>
|
||||
<MenuItem mnemonicParsing="false" text="Replace" accelerator="Shortcut+h"/>
|
||||
|
|
Loading…
Reference in New Issue