Skip to content
Snippets Groups Projects
Commit c732babc authored by Tobias Ask's avatar Tobias Ask
Browse files

Add support for cut, copy and paste.

parent 38da25dc
Branches
No related tags found
1 merge request!7Resolve "Copy paste actions are not integrated"
Pipeline #
package no.tobask.sb4e;
import org.eclipse.jface.action.Action;
import com.oracle.javafx.scenebuilder.kit.editor.EditorController;
import com.oracle.javafx.scenebuilder.kit.editor.EditorController.ControlAction;
public class SceneBuilderControlActionHandler extends Action {
private EditorController editorController;
private ControlAction controlAction;
public SceneBuilderControlActionHandler(EditorController editorController, ControlAction controlAction) {
this.editorController = editorController;
this.controlAction = controlAction;
}
@Override
public boolean isEnabled() {
return editorController.canPerformControlAction(controlAction);
}
@Override
public void run() {
if (editorController.canPerformControlAction(controlAction)) {
editorController.performControlAction(controlAction);
}
}
}
package no.tobask.sb4e;
import org.eclipse.jface.action.Action;
import com.oracle.javafx.scenebuilder.kit.editor.EditorController;
import com.oracle.javafx.scenebuilder.kit.editor.EditorController.EditAction;
public class SceneBuilderEditActionHandler extends Action {
private EditorController editorController;
private EditAction editAction;
public SceneBuilderEditActionHandler(EditorController editorController, EditAction editAction) {
this.editorController = editorController;
this.editAction = editAction;
}
@Override
public boolean isEnabled() {
return editorController.canPerformEditAction(editAction);
}
@Override
public void run() {
if (editorController.canPerformEditAction(editAction)) {
editorController.performEditAction(editAction);
}
}
}
...@@ -36,6 +36,8 @@ import org.eclipse.ui.part.FileEditorInput; ...@@ -36,6 +36,8 @@ import org.eclipse.ui.part.FileEditorInput;
import com.oracle.javafx.scenebuilder.kit.editor.EditorController; import com.oracle.javafx.scenebuilder.kit.editor.EditorController;
import com.oracle.javafx.scenebuilder.kit.editor.JobManager; import com.oracle.javafx.scenebuilder.kit.editor.JobManager;
import com.oracle.javafx.scenebuilder.kit.editor.EditorController.ControlAction;
import com.oracle.javafx.scenebuilder.kit.editor.EditorController.EditAction;
import com.oracle.javafx.scenebuilder.kit.editor.job.Job; import com.oracle.javafx.scenebuilder.kit.editor.job.Job;
import com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument; import com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument;
import com.oracle.javafx.scenebuilder.kit.fxom.FXOMObject; import com.oracle.javafx.scenebuilder.kit.fxom.FXOMObject;
...@@ -47,6 +49,8 @@ import no.tobask.sb4e.EclipseProjectsClassLoader; ...@@ -47,6 +49,8 @@ import no.tobask.sb4e.EclipseProjectsClassLoader;
import no.tobask.sb4e.EditorWindowController; import no.tobask.sb4e.EditorWindowController;
import no.tobask.sb4e.JavaModelUtils; import no.tobask.sb4e.JavaModelUtils;
import no.tobask.sb4e.JavaProjectGlossary; import no.tobask.sb4e.JavaProjectGlossary;
import no.tobask.sb4e.SceneBuilderControlActionHandler;
import no.tobask.sb4e.SceneBuilderEditActionHandler;
public class FXMLEditor extends EditorPart { public class FXMLEditor extends EditorPart {
...@@ -58,6 +62,9 @@ public class FXMLEditor extends EditorPart { ...@@ -58,6 +62,9 @@ public class FXMLEditor extends EditorPart {
private IUndoContext undoContext; private IUndoContext undoContext;
private IOperationHistory operationHistory; private IOperationHistory operationHistory;
private ICompilationUnit controllerClass; private ICompilationUnit controllerClass;
private IAction copyHandler;
private IAction cutHandler;
private IAction pasteHandler;
public IAction getUndoActionHandler() { public IAction getUndoActionHandler() {
return undoActionHandler; return undoActionHandler;
...@@ -67,6 +74,18 @@ public class FXMLEditor extends EditorPart { ...@@ -67,6 +74,18 @@ public class FXMLEditor extends EditorPart {
return redoActionHandler; return redoActionHandler;
} }
public IAction getCopyHandler() {
return copyHandler;
}
public IAction getCutHandler() {
return cutHandler;
}
public IAction getPasteHandler() {
return pasteHandler;
}
public EditorController getEditorController() { public EditorController getEditorController() {
return editorController; return editorController;
} }
...@@ -138,6 +157,10 @@ public class FXMLEditor extends EditorPart { ...@@ -138,6 +157,10 @@ public class FXMLEditor extends EditorPart {
} }
canvas.setScene(editorWindowController.getScene()); canvas.setScene(editorWindowController.getScene());
editorController.getSelection().revisionProperty().addListener(editorSelectionListener); editorController.getSelection().revisionProperty().addListener(editorSelectionListener);
copyHandler = new SceneBuilderControlActionHandler(editorController, ControlAction.COPY);
cutHandler = new SceneBuilderEditActionHandler(editorController, EditAction.CUT);
pasteHandler = new SceneBuilderEditActionHandler(editorController, EditAction.PASTE);
} }
private ChangeListener<Number> editorSelectionListener = (oV, oldNum, newNum) -> { private ChangeListener<Number> editorSelectionListener = (oV, oldNum, newNum) -> {
......
package no.tobask.sb4e.editors; package no.tobask.sb4e.editors;
import org.eclipse.ui.IActionBars;
import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.actions.ActionFactory; import org.eclipse.ui.actions.ActionFactory;
import org.eclipse.ui.part.EditorActionBarContributor; import org.eclipse.ui.part.EditorActionBarContributor;
...@@ -7,16 +8,19 @@ import org.eclipse.ui.part.EditorActionBarContributor; ...@@ -7,16 +8,19 @@ import org.eclipse.ui.part.EditorActionBarContributor;
public class FXMLEditorContributor extends EditorActionBarContributor { public class FXMLEditorContributor extends EditorActionBarContributor {
public FXMLEditorContributor() { public FXMLEditorContributor() {
// TODO Auto-generated constructor stub
} }
@Override @Override
public void setActiveEditor(IEditorPart targetEditor) { public void setActiveEditor(IEditorPart targetEditor) {
if (targetEditor instanceof FXMLEditor) { if (targetEditor instanceof FXMLEditor) {
FXMLEditor editor = (FXMLEditor) targetEditor; FXMLEditor editor = (FXMLEditor) targetEditor;
getActionBars().setGlobalActionHandler(ActionFactory.UNDO.getId(), editor.getUndoActionHandler()); IActionBars actionBars = getActionBars();
getActionBars().setGlobalActionHandler(ActionFactory.REDO.getId(), editor.getRedoActionHandler()); actionBars.setGlobalActionHandler(ActionFactory.UNDO.getId(), editor.getUndoActionHandler());
getActionBars().updateActionBars(); actionBars.setGlobalActionHandler(ActionFactory.REDO.getId(), editor.getRedoActionHandler());
actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(), editor.getCopyHandler());
actionBars.setGlobalActionHandler(ActionFactory.CUT.getId(), editor.getCutHandler());
actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(), editor.getPasteHandler());
actionBars.updateActionBars();
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment