|
@@ -16,6 +16,7 @@ import java.util.List;
|
|
|
import javax.swing.JPanel;
|
|
|
import javax.swing.JToggleButton;
|
|
|
import javax.swing.text.EditorKit;
|
|
|
+import org.openide.awt.UndoRedo;
|
|
|
import org.openide.cookies.EditorCookie;
|
|
|
import org.openide.filesystems.FileLock;
|
|
|
import org.openide.filesystems.FileObject;
|
|
@@ -32,6 +33,7 @@ public class ShaderEditPanel extends JPanel {
|
|
|
|
|
|
private DataObject currentDataObject = null;
|
|
|
private MatDefEditorlElement parent = null;
|
|
|
+ private UndoRedo.Manager undoRedoManager;
|
|
|
|
|
|
/**
|
|
|
* Creates new form ShaderEditPanel
|
|
@@ -48,9 +50,9 @@ public class ShaderEditPanel extends JPanel {
|
|
|
public void keyTyped(KeyEvent e) {
|
|
|
}
|
|
|
|
|
|
- public void keyPressed(KeyEvent e) {
|
|
|
+ public void keyPressed(KeyEvent e) {
|
|
|
if ((e.getKeyCode() == KeyEvent.VK_S) && ((e.getModifiers() & KeyEvent.CTRL_MASK) != 0)) {
|
|
|
- saveCurrent();
|
|
|
+ saveCurrent();
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -61,6 +63,7 @@ public class ShaderEditPanel extends JPanel {
|
|
|
|
|
|
public void setParent(MatDefEditorlElement parent) {
|
|
|
this.parent = parent;
|
|
|
+ undoRedoManager = (UndoRedo.Manager)parent.getUndoRedo();
|
|
|
}
|
|
|
|
|
|
public void setFiles(String title, NodePanel.NodeType type, List<FileObject> fos) {
|
|
@@ -72,7 +75,7 @@ public class ShaderEditPanel extends JPanel {
|
|
|
buttonGroup1.remove((JToggleButton) component);
|
|
|
}
|
|
|
buttonPanel.removeAll();
|
|
|
- buttonPanel.repaint();
|
|
|
+ buttonPanel.repaint();
|
|
|
|
|
|
for (FileObject fo : fos) {
|
|
|
final Tab b = new Tab();
|
|
@@ -83,8 +86,10 @@ public class ShaderEditPanel extends JPanel {
|
|
|
b.addActionListener(new ActionListener() {
|
|
|
public void actionPerformed(ActionEvent e) {
|
|
|
saveCurrent();
|
|
|
- try {
|
|
|
- shaderEditorPane.setDocument(b.dataObject.getLookup().lookup(EditorCookie.class).openDocument());
|
|
|
+ try {
|
|
|
+ shaderEditorPane.setDocument(b.dataObject.getLookup().lookup(EditorCookie.class).openDocument());
|
|
|
+ undoRedoManager.discardAllEdits();
|
|
|
+ shaderEditorPane.getDocument().addUndoableEditListener(undoRedoManager);
|
|
|
} catch (IOException ex) {
|
|
|
Exceptions.printStackTrace(ex);
|
|
|
}
|
|
@@ -94,6 +99,8 @@ public class ShaderEditPanel extends JPanel {
|
|
|
});
|
|
|
if (firstItem) {
|
|
|
shaderEditorPane.setDocument(b.dataObject.getLookup().lookup(EditorCookie.class).openDocument());
|
|
|
+ undoRedoManager.discardAllEdits();
|
|
|
+ shaderEditorPane.getDocument().addUndoableEditListener(undoRedoManager);
|
|
|
currentDataObject = b.dataObject;
|
|
|
b.setSelected(true);
|
|
|
firstItem = false;
|
|
@@ -224,7 +231,7 @@ public class ShaderEditPanel extends JPanel {
|
|
|
|
|
|
private void closeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_closeButtonActionPerformed
|
|
|
setVisible(false);
|
|
|
-
|
|
|
+ shaderEditorPane.getDocument().removeUndoableEditListener(undoRedoManager);
|
|
|
saveCurrent();
|
|
|
|
|
|
|