From d9765faee92f9dc08657a07ed9f12d28a73138b6 Mon Sep 17 00:00:00 2001 From: Manindra Moharana Date: Wed, 18 Sep 2013 16:07:17 +0530 Subject: [PATCH] improvements to import suggestions window --- pdex/Todo, GSoC 2013.txt | 2 +- .../mode/experimental/ASTGenerator.java | 45 ++++++++++++++----- 2 files changed, 34 insertions(+), 13 deletions(-) diff --git a/pdex/Todo, GSoC 2013.txt b/pdex/Todo, GSoC 2013.txt index f599eb465..cdd5026ba 100644 --- a/pdex/Todo, GSoC 2013.txt +++ b/pdex/Todo, GSoC 2013.txt @@ -75,7 +75,7 @@ Refactoring =========== * Undo misbehaves here, handle carefully. - +* Fails to rename the first defined global variable, if a javadoc comment precedes it. But owrds for single/multiline comments. Wth! x New Name is validated. x Ordered list in 'Show Usage' window x Add support for word select on right click and rename, mouse co-ordinates need to obtained carefully diff --git a/pdex/src/processing/mode/experimental/ASTGenerator.java b/pdex/src/processing/mode/experimental/ASTGenerator.java index 5e82877ca..00ea002b8 100644 --- a/pdex/src/processing/mode/experimental/ASTGenerator.java +++ b/pdex/src/processing/mode/experimental/ASTGenerator.java @@ -3,14 +3,11 @@ package processing.mode.experimental; import static processing.mode.experimental.ExperimentalMode.log; import static processing.mode.experimental.ExperimentalMode.logE; +import java.awt.BorderLayout; import java.awt.Dimension; -import java.awt.Point; import java.awt.Rectangle; -import java.awt.ScrollPane; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.awt.event.WindowEvent; -import java.awt.event.WindowFocusListener; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; @@ -26,12 +23,10 @@ import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; -import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Stack; import java.util.TreeMap; -import java.util.concurrent.atomic.AtomicBoolean; import java.util.regex.Pattern; import javax.swing.BorderFactory; @@ -51,13 +46,11 @@ import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.JTree; import javax.swing.ListSelectionModel; -import javax.swing.ScrollPaneConstants; import javax.swing.SwingUtilities; import javax.swing.SwingWorker; import javax.swing.UIManager; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; -import javax.swing.table.DefaultTableModel; import javax.swing.text.BadLocationException; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; @@ -2208,6 +2201,7 @@ public class ASTGenerator { + selText); lblRefactorOldName.setText("Current name: " + selText); + txtRenameField.setText(""); txtRenameField.requestFocus(); } }); @@ -3094,7 +3088,7 @@ public class ASTGenerator { ((JComponent) frmImportSuggest.getContentPane()).setBorder(BorderFactory .createEmptyBorder(5, 5, 5, 5)); JLabel lbl = new JLabel("The class \"" + className - + "\" couldn't be determined, choose the import you need from the following list."); + + "\" couldn't be determined. You are probably missing one of the following imports:"); JScrollPane jsp = new JScrollPane(); jsp.setViewportView(classList); JButton btnInsertImport = new JButton("Insert import"); @@ -3118,11 +3112,38 @@ public class ASTGenerator { } } }); + + JButton btnCancel = new JButton("Cancel"); + btnCancel.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + frmImportSuggest.setVisible(false); + } + }); + + JPanel panelTop = new JPanel(), panelBottom = new JPanel(), panelLabel = new JPanel(); + panelTop.setLayout(new BoxLayout(panelTop, BoxLayout.Y_AXIS)); + panelTop.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); + panelLabel.setLayout(new BorderLayout()); + panelLabel.add(lbl,BorderLayout.CENTER); + panelTop.add(panelLabel); + panelTop.add(Box.createRigidArea(new Dimension(1, 5))); + panelTop.add(jsp); + panelBottom.setLayout(new BoxLayout(panelBottom, BoxLayout.X_AXIS)); + panelBottom.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); + panelBottom .setLayout(new BoxLayout(panelBottom, BoxLayout.X_AXIS)); + panelBottom.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); + panelBottom.add(Box.createHorizontalGlue()); + panelBottom.add(btnInsertImport); + panelBottom.add(Box.createRigidArea(new Dimension(15, 0))); + panelBottom.add(btnCancel); - frmImportSuggest.add(lbl); - frmImportSuggest.add(jsp); - frmImportSuggest.add(btnInsertImport); +// frmImportSuggest.add(lbl); +// frmImportSuggest.add(jsp); +// frmImportSuggest.add(btnInsertImport); + frmImportSuggest.add(panelTop); + frmImportSuggest.add(panelBottom); frmImportSuggest.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); + frmImportSuggest.setTitle("Import Suggestion"); frmImportSuggest.setLocation(editor.getX() + (editor.getWidth() - frmImportSuggest.getWidth()) / 2, editor.getY()