mirror of
https://github.com/processing/processing4.git
synced 2026-02-02 13:21:07 +01:00
X save as instead of rename/duplicate
X this makes more sense, hopefully it won't break everything X put newline after imports header in exported .java files last touches before rev 36
This commit is contained in:
@@ -92,8 +92,9 @@ public class PdeBase implements ActionListener {
|
||||
//rebuildSketchbookMenu(openMenu);
|
||||
menu.add(sketchbookMenu);
|
||||
menu.add(new MenuItem("Save", new MenuShortcut('S')));
|
||||
menu.add(new MenuItem("Rename", new MenuShortcut('S', true)));
|
||||
menu.add(new MenuItem("Duplicate", new MenuShortcut('D')));
|
||||
menu.add(new MenuItem("Save as...", new MenuShortcut('S', true)));
|
||||
//menu.add(new MenuItem("Rename", new MenuShortcut('S', true)));
|
||||
//menu.add(new MenuItem("Duplicate", new MenuShortcut('D')));
|
||||
menu.add(new MenuItem("Export to Web", new MenuShortcut('E')));
|
||||
item = new MenuItem("Export Application", new MenuShortcut('E', true));
|
||||
item.setEnabled(false);
|
||||
@@ -126,7 +127,9 @@ public class PdeBase implements ActionListener {
|
||||
menu.add(new MenuItem("Present", new MenuShortcut('P')));
|
||||
menu.add(new MenuItem("Stop"));
|
||||
menu.addSeparator();
|
||||
menu.add(new MenuItem("Beautify", new MenuShortcut('B')));
|
||||
item = new MenuItem("Beautify", new MenuShortcut('B'));
|
||||
item.setEnabled(false);
|
||||
menu.add(item);
|
||||
menu.addActionListener(this);
|
||||
menubar.add(menu);
|
||||
|
||||
@@ -304,11 +307,16 @@ public class PdeBase implements ActionListener {
|
||||
} else if (command.equals("Save")) {
|
||||
editor.doSave();
|
||||
|
||||
} else if (command.equals("Save as...")) {
|
||||
editor.skSaveAs();
|
||||
|
||||
/*
|
||||
} else if (command.equals("Rename")) {
|
||||
editor.skDuplicateRename(true);
|
||||
|
||||
} else if (command.equals("Duplicate")) {
|
||||
editor.skDuplicateRename(false);
|
||||
*/
|
||||
|
||||
} else if (command.equals("Export to Web")) {
|
||||
editor.skExport();
|
||||
|
||||
@@ -624,6 +624,52 @@ public class PdeEditor extends Panel {
|
||||
}
|
||||
|
||||
|
||||
public void skSaveAs() {
|
||||
status.edit("Save sketch as...", sketchName);
|
||||
}
|
||||
|
||||
public void skSaveAs2(String newSketchName) {
|
||||
if (newSketchName.equals(sketchName)) {
|
||||
// nothing changes
|
||||
return;
|
||||
}
|
||||
//doSave(); // save changes before renaming.. risky but oh well
|
||||
String textareaContents = textarea.getText();
|
||||
int textareaPosition = textarea.getCaretPosition();
|
||||
|
||||
File newSketchDir = new File(sketchDir.getParent() +
|
||||
File.separator + newSketchName);
|
||||
File newSketchFile = new File(newSketchDir, newSketchName + ".pde");
|
||||
|
||||
// make new dir
|
||||
newSketchDir.mkdirs();
|
||||
// copy the sketch file itself with new name
|
||||
copyFile(sketchFile, newSketchFile);
|
||||
|
||||
// copy everything from the old dir to the new one
|
||||
copyDir(sketchDir, newSketchDir);
|
||||
|
||||
// remove the old sketch file from the new dir
|
||||
new File(newSketchDir, sketchName + ".pde").delete();
|
||||
|
||||
// remove the old dir (!)
|
||||
//if (rename) removeDir(sketchDir);
|
||||
// oops.. has to be done before opening, otherwise the new
|
||||
// dir is set to sketchDir.. duh..
|
||||
|
||||
base.rebuildSketchbookMenu();
|
||||
|
||||
// open the new guy
|
||||
handleOpen(newSketchName, newSketchFile, newSketchDir);
|
||||
|
||||
// update with the new junk and save that as the new code
|
||||
textarea.setText(textareaContents);
|
||||
textarea.setCaretPosition(textareaPosition);
|
||||
doSave();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
public void skDuplicateRename(boolean rename) {
|
||||
status.edit(rename ? "Rename to?" : "Duplicate title?",
|
||||
sketchName, rename);
|
||||
@@ -632,10 +678,10 @@ public class PdeEditor extends Panel {
|
||||
public void skDuplicateRename2(String newSketchName, boolean rename) {
|
||||
if (newSketchName.equals(sketchName)) {
|
||||
// explain to the user that they're lame
|
||||
System.err.println("what kind of a loser " +
|
||||
(rename ? "renames the directory" :
|
||||
"creates a duplicate") +
|
||||
" using the same name?");
|
||||
// System.err.println("what kind of a loser " +
|
||||
// (rename ? "renames the directory" :
|
||||
// "creates a duplicate") +
|
||||
// " using the same name?");
|
||||
return;
|
||||
}
|
||||
//System.out.println("rename to " + newname);
|
||||
@@ -652,12 +698,11 @@ public class PdeEditor extends Panel {
|
||||
//boolean result = sketchDir.renameTo(newSketchDir);
|
||||
//System.out.println(result);
|
||||
|
||||
/*
|
||||
System.out.println("move \"" + sketchFile.getPath() + "\" " +
|
||||
newSketchName + ".pde");
|
||||
System.out.println("move \"" + sketchDir.getPath() + "\" " +
|
||||
newSketchName);
|
||||
*/
|
||||
|
||||
// System.out.println("move \"" + sketchFile.getPath() + "\" " +
|
||||
// newSketchName + ".pde");
|
||||
// System.out.println("move \"" + sketchDir.getPath() + "\" " +
|
||||
// newSketchName);
|
||||
|
||||
// make new dir
|
||||
newSketchDir.mkdirs();
|
||||
@@ -680,6 +725,15 @@ public class PdeEditor extends Panel {
|
||||
// open the new guy
|
||||
if (rename) handleOpen(newSketchName, newSketchFile, newSketchDir);
|
||||
|
||||
//if (result) {
|
||||
//if (sketchDir.renameTo(newSketchDir)) {
|
||||
//} else {
|
||||
//System.err.println("couldn't rename " + sketchDir + " to " +
|
||||
// newSketchDir);
|
||||
//}
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
try {
|
||||
Runtime rt = Runtime.getRuntime();
|
||||
@@ -706,19 +760,6 @@ public class PdeEditor extends Panel {
|
||||
}
|
||||
*/
|
||||
|
||||
//if (result) {
|
||||
//if (sketchDir.renameTo(newSketchDir)) {
|
||||
//} else {
|
||||
//System.err.println("couldn't rename " + sketchDir + " to " +
|
||||
// newSketchDir);
|
||||
//}
|
||||
}
|
||||
|
||||
|
||||
//public void skDuplicate() {
|
||||
//System.err.println("sketch duplicate not yet implemented");
|
||||
//}
|
||||
|
||||
|
||||
public void skExport() {
|
||||
message("Exporting for the web...");
|
||||
|
||||
@@ -44,7 +44,7 @@ public class PdeEditorStatus extends Panel
|
||||
Button cancelButton;
|
||||
Button okButton;
|
||||
TextField editField;
|
||||
boolean editRename;
|
||||
//boolean editRename;
|
||||
//Thread promptThread;
|
||||
int response;
|
||||
|
||||
@@ -148,10 +148,10 @@ public class PdeEditorStatus extends Panel
|
||||
}
|
||||
|
||||
|
||||
public void edit(String message, String dflt, boolean rename) {
|
||||
public void edit(String message, String dflt /*, boolean rename*/) {
|
||||
mode = EDIT;
|
||||
this.message = message;
|
||||
this.editRename = rename;
|
||||
//this.editRename = rename;
|
||||
|
||||
response = 0;
|
||||
okButton.setVisible(true);
|
||||
@@ -212,7 +212,8 @@ public class PdeEditorStatus extends Panel
|
||||
|
||||
if (code == KeyEvent.VK_ENTER) {
|
||||
// accept the input
|
||||
editor.skDuplicateRename2(editField.getText(), editRename);
|
||||
//editor.skDuplicateRename2(editField.getText(), editRename);
|
||||
editor.skSaveAs2(editField.getText());
|
||||
unedit();
|
||||
event.consume();
|
||||
|
||||
@@ -368,7 +369,8 @@ public class PdeEditorStatus extends Panel
|
||||
editor.buttons.clear();
|
||||
|
||||
} else if (e.getSource() == okButton) {
|
||||
editor.skDuplicateRename2(editField.getText(), editRename);
|
||||
editor.skSaveAs2(editField.getText());
|
||||
//editor.skDuplicateRename2(editField.getText(), editRename);
|
||||
unedit();
|
||||
|
||||
} else if (e.getSource() == editField) {
|
||||
|
||||
@@ -10,7 +10,9 @@ X fix curve()/bezier()
|
||||
X make curve() work as 6 point with doubled endpoints
|
||||
X translate is disabling color
|
||||
X (probably because of lighting)
|
||||
|
||||
X save as instead of rename/duplicate
|
||||
X this makes more sense, hopefully it won't break everything
|
||||
X put newline after imports header in exported .java files
|
||||
|
||||
bagel
|
||||
a _ fold simpleserial into BApplet
|
||||
@@ -331,6 +333,7 @@ _ make some kind of internal color picker
|
||||
_ could be a separate window that's always around if needed
|
||||
_ regexps: http://javaregex.com/cgi-bin/pat/tutorial.asp
|
||||
_ a better editor:
|
||||
_ line numbers like bbedit
|
||||
_ syntax coloring
|
||||
_ emacs indents and key commands
|
||||
_ http://mathsrv.ku-eichstaett.de/MGF/homes/grothmann/je/index.html
|
||||
|
||||
Reference in New Issue
Block a user