Skip to content

Commit f1da0a6

Browse files
committed
Fixing navigate dialog
1 parent f369ef9 commit f1da0a6

File tree

7 files changed

+178
-39
lines changed

7 files changed

+178
-39
lines changed

Diff for: app/src/processing/app/Editor.java

+9-1
Original file line numberDiff line numberDiff line change
@@ -2606,9 +2606,17 @@ public void addCompilerProgressListener(CompilerProgressListener listener){
26062606

26072607
public void handleAddProjectView(){
26082608

2609+
2610+
// Check if the recent sketch is saved, if not fall back on the sketchbook path
2611+
if(untitled){
2612+
project = new EditorProject(PreferencesData.get("sketchbook.path"), base, this);
2613+
}else{
2614+
project = new EditorProject(sketch.getFolder().getAbsolutePath(), base, this);
2615+
}
2616+
26092617
// Reset the panels and add the project view
26102618
middle.remove(editor_upper);
2611-
project = new EditorProject(PreferencesData.get("sketchbook.path"), base, this);
2619+
26122620
middle.add(project);
26132621
middle.add(editor_upper);
26142622

Diff for: app/src/processing/app/EditorProject.java

+42-19
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,16 @@
11
package processing.app;
22

3-
import processing.app.tools.jexplorer.JExplorerPanel;
4-
3+
import processing.app.tools.NavigateDialog;
4+
import processing.app.tools.ProjectExplorer;
55
import javax.swing.*;
66
import java.awt.*;
7-
import java.awt.event.ActionEvent;
8-
import java.awt.event.ActionListener;
9-
import java.awt.event.MouseEvent;
10-
import java.awt.event.MouseListener;
117
import java.io.File;
12-
import java.io.IOException;
13-
14-
import static java.awt.Color.RED;
158
import static processing.app.I18n.tr;
169

1710

1811
public class EditorProject extends JPanel {
1912

20-
private JExplorerPanel fileExplorerPanel;
13+
private ProjectExplorer fileExplorerPanel;
2114

2215
private File fileRoot;
2316

@@ -37,7 +30,7 @@ public EditorProject(String path, Base base, Editor editor){
3730
fileRoot = new File(path);
3831
this.base = base;
3932
this.editor = editor;
40-
fileExplorerPanel = new JExplorerPanel(fileRoot, editor);
33+
fileExplorerPanel = new ProjectExplorer(fileRoot, editor);
4134
projectToolbar = new ProjectToolbar(editor, this);
4235
/*buttons_popup = new Label("Toggle Project View");
4336
buttons_popup.setForeground(new Color(23, 161, 165));
@@ -75,29 +68,59 @@ public EditorProject(String path, Base base, Editor editor){
7568

7669
}
7770

78-
public void resetProject(){
71+
public void resetProject(File file){
7972
// Resetting the project View and root directory
80-
fileRoot = new File(path);
73+
fileRoot = file;
74+
path = file.getPath();
8175
fileExplorerPanel.replaceWorkingDirectory(fileRoot);
8276

8377
// Resetting the sketchbook path
84-
PreferencesData.set("sketchbook.path", path);
78+
//PreferencesData.set("sketchbook.path", path);
8579

8680

8781
editor.statusNotice(tr("Navigated to :")+path);
8882
}
8983

9084

9185
public void handleNavigate(){
92-
chooser = new JFileChooser();
86+
/*chooser = new JFileChooser();
9387
chooser.setCurrentDirectory(fileRoot);
9488
chooser.setDialogTitle("Choose project directory : ");
9589
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
96-
97-
if (chooser.showOpenDialog(fileExplorerPanel) == JFileChooser.APPROVE_OPTION) {
98-
this.path = chooser.getSelectedFile().getAbsolutePath();
99-
resetProject();
90+
chooser.setAcceptAllFileFilterUsed(false);
91+
if (chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
92+
resetProject(chooser.getSelectedFile());
10093
}
94+
/*JDialog jDialog = new JDialog();
95+
JTextField pathfield = new JTextField();
96+
jDialog.setPreferredSize(new Dimension(400,400));
97+
jDialog.setTitle("Choose the directory to navigate to :");
98+
JPanel panel = new JPanel(new BorderLayout());
99+
panel.add(pathfield, BorderLayout.NORTH);
100+
JExplorerPanel navigator = new JExplorerPanel(new File("/home/sami"), editor);
101+
panel.add(navigator, BorderLayout.CENTER);
102+
JPanel buttonPanel = new JPanel();
103+
JButton open = new JButton("Open");
104+
buttonPanel.add(open);
105+
open.addActionListener(new ActionListener() {
106+
@Override
107+
public void actionPerformed(ActionEvent e) {
108+
}
109+
});
110+
JButton cancel = new JButton("Cancel");
111+
buttonPanel.add(cancel);
112+
open.addActionListener(new ActionListener() {
113+
@Override
114+
public void actionPerformed(ActionEvent e) {
115+
jDialog.dispose();
116+
}
117+
});
118+
panel.add(buttonPanel, BorderLayout.SOUTH);
119+
jDialog.add(panel);
120+
jDialog.pack();
121+
jDialog.setLocationRelativeTo(null);
122+
jDialog.setVisible(true);*/
123+
NavigateDialog navigateDialog = new NavigateDialog(new File("/home/sami/"), fileRoot);
101124
}
102125

103126

Diff for: app/src/processing/app/ProjectToolbar.java

+6
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import java.awt.event.WindowEvent;
4242
import java.awt.image.BufferedImage;
4343
import java.io.ByteArrayOutputStream;
44+
import java.io.File;
4445
import java.io.IOException;
4546

4647
import static processing.app.I18n.tr;
@@ -431,6 +432,11 @@ private void handleSelectionPressed(int sel, int x, int y) {
431432
case SKETCH:
432433
// TODO
433434
// Check save state (if not save) then open sketch folder
435+
if(editor.untitled){
436+
editor.handleSaveAs();
437+
}
438+
// Get the diretory of the sketch
439+
editorProject.resetProject(editor.sketch.getFolder());
434440
break;
435441

436442
case TOGGLE:

Diff for: app/src/processing/app/macosx/ThinkDifferent.java

+11-13
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,12 @@
2222

2323
package processing.app.macosx;
2424

25+
import com.apple.eawt.*;
26+
import com.apple.eawt.AppEvent.AppReOpenedEvent;
2527

26-
import java.awt.Desktop;
27-
28-
import com.apple.eawt.AppEvent;
2928
import processing.app.Base;
3029
import processing.app.Editor;
3130

32-
import java.awt.desktop.*;
3331
import java.io.File;
3432
import java.util.List;
3533

@@ -48,11 +46,11 @@ public class ThinkDifferent {
4846
private static final int MAX_WAIT_FOR_BASE = 30000;
4947

5048
static public void init() {
51-
Desktop application = Desktop.getDesktop();
49+
Application application = Application.getApplication();
5250

53-
application.addAppEventListener(new AppReopenedListener() {
51+
application.addAppEventListener(new AppReOpenedListener() {
5452
@Override
55-
public void appReopened(AppReopenedEvent aroe) {
53+
public void appReOpened(AppReOpenedEvent aroe) {
5654
try {
5755
if (Base.INSTANCE.getEditors().size() == 0) {
5856
Base.INSTANCE.handleNew();
@@ -62,11 +60,10 @@ public void appReopened(AppReopenedEvent aroe) {
6260
e.printStackTrace();
6361
}
6462
}
65-
6663
});
6764
application.setAboutHandler(new AboutHandler() {
6865
@Override
69-
public void handleAbout(AboutEvent aboutEvent) {
66+
public void handleAbout(AppEvent.AboutEvent aboutEvent) {
7067
new Thread(() -> {
7168
if (waitForBase()) {
7269
Base.INSTANCE.handleAbout();
@@ -76,7 +73,7 @@ public void handleAbout(AboutEvent aboutEvent) {
7673
});
7774
application.setPreferencesHandler(new PreferencesHandler() {
7875
@Override
79-
public void handlePreferences(PreferencesEvent preferencesEvent) {
76+
public void handlePreferences(AppEvent.PreferencesEvent preferencesEvent) {
8077
new Thread(() -> {
8178
if (waitForBase()) {
8279
Base.INSTANCE.handlePrefs();
@@ -86,7 +83,7 @@ public void handlePreferences(PreferencesEvent preferencesEvent) {
8683
});
8784
application.setOpenFileHandler(new OpenFilesHandler() {
8885
@Override
89-
public void openFiles(OpenFilesEvent openFilesEvent) {
86+
public void openFiles(final AppEvent.OpenFilesEvent openFilesEvent) {
9087
new Thread(() -> {
9188
if (waitForBase()) {
9289
for (File file : openFilesEvent.getFiles()) {
@@ -107,7 +104,7 @@ public void openFiles(OpenFilesEvent openFilesEvent) {
107104
});
108105
application.setQuitHandler(new QuitHandler() {
109106
@Override
110-
public void handleQuitRequestWith(QuitEvent quitEvent, QuitResponse quitResponse) {
107+
public void handleQuitRequestWith(AppEvent.QuitEvent quitEvent, QuitResponse quitResponse) {
111108
new Thread(() -> {
112109
if (waitForBase()) {
113110
if (Base.INSTANCE.handleQuit()) {
@@ -117,7 +114,8 @@ public void handleQuitRequestWith(QuitEvent quitEvent, QuitResponse quitResponse
117114
}
118115
}
119116
}).start();
120-
}});
117+
}
118+
});
121119
}
122120

123121
private static boolean waitForBase() {

Diff for: app/src/processing/app/tools/NavigateDialog.java

+87
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
package processing.app.tools;
2+
3+
import processing.app.Editor;
4+
import processing.app.tools.jexplorer.JExplorerPanel;
5+
6+
import javax.swing.*;
7+
import javax.swing.tree.TreePath;
8+
import java.awt.*;
9+
import java.awt.event.ActionEvent;
10+
import java.awt.event.ActionListener;
11+
import java.awt.event.MouseEvent;
12+
import java.awt.event.MouseListener;
13+
import java.io.File;
14+
15+
public class NavigateDialog extends JExplorerPanel implements ActionListener {
16+
17+
private JTextField pathfield;
18+
private JDialog dialog;
19+
private JButton open, cancel;
20+
21+
public NavigateDialog(File rootFile, File projectDir){
22+
super(rootFile);
23+
this.getTree().addMouseListener(new MouseListener() {
24+
@Override
25+
public void mouseClicked(MouseEvent e) {
26+
}
27+
28+
@Override
29+
public void mousePressed(MouseEvent e) {
30+
31+
}
32+
33+
@Override
34+
public void mouseReleased(MouseEvent e) {
35+
36+
}
37+
38+
@Override
39+
public void mouseEntered(MouseEvent e) {
40+
41+
}
42+
43+
@Override
44+
public void mouseExited(MouseEvent e) {
45+
46+
}
47+
});
48+
pathfield = new JTextField();
49+
50+
dialog = new JDialog();
51+
dialog.setBackground(Color.BLACK);
52+
pathfield = new JTextField();
53+
dialog.setPreferredSize(new Dimension(400,400));
54+
dialog.setTitle("Choose the directory to navigate to :");
55+
JPanel panel = new JPanel(new BorderLayout());
56+
panel.setOpaque(false);
57+
panel.add(pathfield, BorderLayout.NORTH);
58+
panel.add(this, BorderLayout.CENTER);
59+
JPanel buttonPanel = new JPanel();
60+
panel.setOpaque(false);
61+
open = new JButton("Open");
62+
open.addActionListener(this);
63+
buttonPanel.add(open);
64+
cancel = new JButton("Cancel");
65+
cancel.addActionListener(this);
66+
buttonPanel.add(cancel);
67+
panel.add(buttonPanel, BorderLayout.SOUTH);
68+
dialog.add(panel);
69+
dialog.pack();
70+
dialog.setLocationRelativeTo(null);
71+
dialog.setVisible(true);
72+
}
73+
74+
@Override
75+
public void actionPerformed(ActionEvent e) {
76+
77+
if(e.getSource() == open){
78+
79+
}
80+
if(e.getSource() == cancel){
81+
dialog.setVisible(false);
82+
dialog.dispose();
83+
}
84+
}
85+
86+
87+
}

Diff for: app/src/processing/app/tools/ProjectExplorer.java

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package processing.app.tools;
2+
3+
import processing.app.Editor;
4+
import processing.app.tools.jexplorer.JExplorerPanel;
5+
6+
import java.io.File;
7+
8+
public class ProjectExplorer extends JExplorerPanel {
9+
10+
private Editor editor;
11+
12+
public ProjectExplorer(File rootDir, Editor editor) {
13+
super(rootDir);
14+
this.editor = editor;
15+
}
16+
17+
@Override
18+
protected void handleOpenFile(File file) {
19+
editor.getSketchController().addFile(file);
20+
}
21+
}

Diff for: app/src/processing/app/tools/jexplorer/JExplorerPanel.java

+2-6
Original file line numberDiff line numberDiff line change
@@ -75,17 +75,15 @@ public class JExplorerPanel extends JPanel {
7575

7676
private Translate translate;
7777

78-
private Editor editor;
7978

8079
// Alow Ctrl+Z last file operation.
8180
private LimitedQueue<FileOperation> undoQueue = new LimitedQueue<FileOperation>(5);
8281

8382
private FileTransferable currentFileTransferable;
8483

85-
public JExplorerPanel(File rootDir, Editor editor) {
84+
public JExplorerPanel(File rootDir) {
8685
super();
8786
this.rootDir = rootDir;
88-
this.editor = editor;
8987
initComponents();
9088
initMenus();
9189
initKeyboard();
@@ -465,9 +463,7 @@ protected void handleProperties() {
465463
}
466464

467465

468-
protected void handleOpenFile(File file) {
469-
editor.getSketchController().addFile(file);
470-
}
466+
protected void handleOpenFile(File file) {}
471467

472468
protected void handleRename() {
473469

0 commit comments

Comments
 (0)