Skip to content

Commit

Permalink
Issue 784 (#790)
Browse files Browse the repository at this point in the history
* one region color ripple effect

* wip

* remove irrelevant file

* wip

* wip2

* save as for proof editor

* proof editor fix

---------

Co-authored-by: Charles Tian <[email protected]>
  • Loading branch information
kevinkxu and charlestian23 authored May 5, 2024
1 parent 8b2397a commit 0e8ae65
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 48 deletions.
34 changes: 17 additions & 17 deletions src/main/java/edu/rpi/legup/ui/ProofEditorPanel.java
Original file line number Diff line number Diff line change
Expand Up @@ -580,31 +580,31 @@ private void saveProofAs() {
if (puzzle == null) {
return;
}

fileDialog.setMode(FileDialog.SAVE);
fileDialog.setTitle("Save As");
String curFileName = GameBoardFacade.getInstance().getCurFileName();
if (curFileName == null) {
fileDialog.setDirectory(
LegupPreferences.getInstance().getUserPref(LegupPreferences.WORK_DIRECTORY));
} else {
File curFile = new File(curFileName);
fileDialog.setDirectory(curFile.getParent());

LegupPreferences preferences = LegupPreferences.getInstance();
File preferredDirectory =
new File(preferences.getUserPref(LegupPreferences.WORK_DIRECTORY));
if (preferences.getSavedPath() != "") {
preferredDirectory = new File(preferences.getSavedPath());
}
fileDialog.setVisible(true);
folderBrowser = new JFileChooser(preferredDirectory);

String fileName = null;
if (fileDialog.getDirectory() != null && fileDialog.getFile() != null) {
fileName = fileDialog.getDirectory() + File.separator + fileDialog.getFile();
}
folderBrowser.showSaveDialog(this);
folderBrowser.setVisible(true);
folderBrowser.setCurrentDirectory(new File(LegupPreferences.WORK_DIRECTORY));
folderBrowser.setDialogTitle("Select Directory");
folderBrowser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
folderBrowser.setAcceptAllFileFilterUsed(false);

if (fileName != null) {
String path = folderBrowser.getSelectedFile().getAbsolutePath();

if (path != null) {
try {
PuzzleExporter exporter = puzzle.getExporter();
if (exporter == null) {
throw new ExportFileException("Puzzle exporter null");
}
exporter.exportPuzzle(fileName);
exporter.exportPuzzle(path);
} catch (ExportFileException e) {
e.printStackTrace();
}
Expand Down
71 changes: 40 additions & 31 deletions src/main/java/edu/rpi/legup/ui/PuzzleEditorPanel.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ public class PuzzleEditorPanel extends LegupPanel implements IHistoryListener {
private JMenuItem helpLegup, aboutLegup;
private JMenuBar menuBar;
private JToolBar toolBar;
private JFileChooser folderBrowser;
private JFrame frame;
private JButton[] buttons;
JSplitPane splitPanel;
Expand Down Expand Up @@ -380,25 +381,37 @@ public void loadPuzzleFromHome(String game, String[] statements) {
public Object[] promptPuzzle() {
GameBoardFacade facade = GameBoardFacade.getInstance();
if (facade.getBoard() != null) {
if (noQuit("Opening a new puzzle to edit?")) {
if (noQuit("Opening a new puzzle?")) {
return new Object[0];
}
}
if (fileDialog == null) {
fileDialog = new FileDialog(this.frame);
}

LegupPreferences preferences = LegupPreferences.getInstance();
String preferredDirectory = preferences.getUserPref(LegupPreferences.WORK_DIRECTORY);
if (preferences.getSavedPath() != "") {
preferredDirectory = preferences.getSavedPath();
}

fileDialog.setMode(FileDialog.LOAD);
fileDialog.setTitle("Select Puzzle");
fileDialog.setDirectory(preferredDirectory);
fileDialog.setVisible(true);
File preferredDirectoryFile = new File(preferredDirectory);
JFileChooser fileBrowser = new JFileChooser(preferredDirectoryFile);
String fileName = null;
File puzzleFile = null;
if (fileDialog.getDirectory() != null && fileDialog.getFile() != null) {
fileName = fileDialog.getDirectory() + File.separator + fileDialog.getFile();
puzzleFile = new File(fileName);

fileBrowser.showOpenDialog(this);
fileBrowser.setVisible(true);
fileBrowser.setCurrentDirectory(new File(preferredDirectory));
fileBrowser.setDialogTitle("Select Proof File");
fileBrowser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
fileBrowser.setAcceptAllFileFilterUsed(false);

File puzzlePath = fileBrowser.getSelectedFile();
System.out.println(puzzlePath.getAbsolutePath());

if (puzzlePath != null) {
fileName = puzzlePath.getAbsolutePath();
String lastDirectoryPath = fileName.substring(0, fileName.lastIndexOf(File.separator));
preferences.setSavedPath(lastDirectoryPath);
puzzleFile = puzzlePath;
} else {
// The attempt to prompt a puzzle ended gracefully (cancel)
return null;
Expand Down Expand Up @@ -538,39 +551,35 @@ private String savePuzzle() {
}
}

if (fileDialog == null) {
fileDialog = new FileDialog(this.frame);
LegupPreferences preferences = LegupPreferences.getInstance();
File preferredDirectory =
new File(preferences.getUserPref(LegupPreferences.WORK_DIRECTORY));
if (preferences.getSavedPath() != "") {
preferredDirectory = new File(preferences.getSavedPath());
}
folderBrowser = new JFileChooser(preferredDirectory);

fileDialog.setMode(FileDialog.SAVE);
fileDialog.setTitle("Save Proof");
String curFileName = GameBoardFacade.getInstance().getCurFileName();
if (curFileName == null) {
fileDialog.setDirectory(
LegupPreferences.getInstance().getUserPref(LegupPreferences.WORK_DIRECTORY));
} else {
File curFile = new File(curFileName);
fileDialog.setDirectory(curFile.getParent());
}
fileDialog.setVisible(true);
folderBrowser.showSaveDialog(this);
folderBrowser.setVisible(true);
folderBrowser.setCurrentDirectory(new File(LegupPreferences.WORK_DIRECTORY));
folderBrowser.setDialogTitle("Select Directory");
folderBrowser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
folderBrowser.setAcceptAllFileFilterUsed(false);

String fileName = null;
if (fileDialog.getDirectory() != null && fileDialog.getFile() != null) {
fileName = fileDialog.getDirectory() + File.separator + fileDialog.getFile();
}
String path = folderBrowser.getSelectedFile().getAbsolutePath();

if (fileName != null) {
if (path != null) {
try {
PuzzleExporter exporter = puzzle.getExporter();
if (exporter == null) {
throw new ExportFileException("Puzzle exporter null");
}
exporter.exportPuzzle(fileName);
exporter.exportPuzzle(path);
} catch (ExportFileException e) {
e.printStackTrace();
}
}
return fileName;
return path;
}

public DynamicView getDynamicBoardView() {
Expand Down

0 comments on commit 0e8ae65

Please sign in to comment.