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:
benfry
2002-07-23 14:59:45 +00:00
parent db6d658786
commit bcacb1d48e
4 changed files with 86 additions and 32 deletions

View File

@@ -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();

View File

@@ -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...");

View File

@@ -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) {

View File

@@ -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