diff --git a/app/src/processing/app/ui/Editor.java b/app/src/processing/app/ui/Editor.java index 8a1818e13..ab8ce7ef9 100644 --- a/app/src/processing/app/ui/Editor.java +++ b/app/src/processing/app/ui/Editor.java @@ -110,7 +110,7 @@ public abstract class Editor extends JFrame implements RunnerListener { protected JSplitPane splitPane; protected EditorFooter footer; protected EditorConsole console; -// protected EditorLineStatus lineStatus; + protected ErrorTable errorTable; // currently opened program protected Sketch sketch; @@ -433,8 +433,7 @@ public abstract class Editor extends JFrame implements RunnerListener { public EditorFooter createFooter() { EditorFooter ef = new EditorFooter(this); - console = new EditorConsole(this); - ef.addPanel(console, Language.text("editor.footer.console"), "/lib/footer/console"); + addConsole(); // console is required return ef; /* @@ -457,6 +456,21 @@ public abstract class Editor extends JFrame implements RunnerListener { } + public void addConsole() { + console = new EditorConsole(this); + footer.addPanel(console, Language.text("editor.footer.console"), "/lib/footer/console"); + } + + + public void addErrorTable() { + JScrollPane errorTableScrollPane = new JScrollPane(); + errorTable = new ErrorTable(this); + errorTableScrollPane.setBorder(BorderFactory.createEmptyBorder()); + errorTableScrollPane.setViewportView(errorTable); + footer.addPanel(errorTableScrollPane, Language.text("editor.footer.errors"), "/lib/footer/error"); + } + + public EditorState getEditorState() { return state; } @@ -2900,6 +2914,11 @@ public abstract class Editor extends JFrame implements RunnerListener { // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + public ErrorTable getErrorTable() { + return errorTable; + } + + /** * Called by ErrorTable when a row is selected. Action taken is specific * to each Mode, based on the object passed in. diff --git a/java/src/processing/mode/java/pdex/XQErrorTable.java b/app/src/processing/app/ui/ErrorTable.java similarity index 93% rename from java/src/processing/mode/java/pdex/XQErrorTable.java rename to app/src/processing/app/ui/ErrorTable.java index 789bb6c69..d2156faef 100644 --- a/java/src/processing/mode/java/pdex/XQErrorTable.java +++ b/app/src/processing/app/ui/ErrorTable.java @@ -18,7 +18,7 @@ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -package processing.mode.java.pdex; +package processing.app.ui; import java.awt.Color; import java.awt.Component; @@ -43,7 +43,7 @@ import processing.app.Mode; import processing.app.ui.Editor; -public class XQErrorTable extends JTable { +public class ErrorTable extends JTable { Editor editor; static final String[] columnNames = { @@ -67,28 +67,7 @@ public class XQErrorTable extends JTable { Color rowBgColor; - /* - class Item { - String message; - String filename; - int line; - } - */ - - - public void clear() { - DefaultTableModel dtm = (DefaultTableModel) getModel(); - dtm.setRowCount(0); - } - - - public void append(Object data, String message, String filename, String line) { - DefaultTableModel dtm = (DefaultTableModel) getModel(); - dtm.addRow(new Object[] { data, message, filename, line }); - } - - - public XQErrorTable(final Editor editor) { + public ErrorTable(final Editor editor) { super(new DefaultTableModel(columnNames, 0)); this.editor = editor; @@ -114,7 +93,7 @@ public class XQErrorTable extends JTable { @Override synchronized public void mouseClicked(MouseEvent e) { try { - int row = ((XQErrorTable) e.getSource()).getSelectedRow(); + int row = ((ErrorTable) e.getSource()).getSelectedRow(); Object data = getModel().getValueAt(row, 0); int clickCount = e.getClickCount(); if (clickCount == 1) { @@ -190,6 +169,18 @@ public class XQErrorTable extends JTable { } + public void clearRows() { + DefaultTableModel dtm = (DefaultTableModel) getModel(); + dtm.setRowCount(0); + } + + + public void addRow(Object data, String message, String filename, String line) { + DefaultTableModel dtm = (DefaultTableModel) getModel(); + dtm.addRow(new Object[] { data, message, filename, line }); + } + + @Override public boolean isCellEditable(int rowIndex, int colIndex) { return false; // Disallow the editing of any cell diff --git a/java/src/processing/mode/java/JavaEditor.java b/java/src/processing/mode/java/JavaEditor.java index a37081c23..d7badd976 100644 --- a/java/src/processing/mode/java/JavaEditor.java +++ b/java/src/processing/mode/java/JavaEditor.java @@ -14,10 +14,7 @@ import java.util.logging.Logger; import javax.swing.*; import javax.swing.border.*; -import javax.swing.event.ListSelectionEvent; -import javax.swing.event.ListSelectionListener; -import javax.swing.event.MenuEvent; -import javax.swing.event.MenuListener; +import javax.swing.event.*; import javax.swing.text.BadLocationException; import javax.swing.text.Document; @@ -26,23 +23,11 @@ import org.eclipse.jdt.core.compiler.IProblem; import processing.core.PApplet; import processing.data.StringList; import processing.app.*; -import processing.app.contrib.AvailableContribution; -import processing.app.contrib.Contribution; -import processing.app.contrib.ContributionListing; -import processing.app.contrib.ContributionManager; -import processing.app.contrib.ToolContribution; +import processing.app.contrib.*; import processing.app.syntax.JEditTextArea; import processing.app.syntax.PdeTextAreaDefaults; -import processing.app.ui.About; -import processing.app.ui.ColorChooser; -import processing.app.ui.Editor; -import processing.app.ui.EditorException; -import processing.app.ui.EditorFooter; -import processing.app.ui.EditorHeader; -import processing.app.ui.EditorState; -import processing.app.ui.EditorToolbar; +import processing.app.ui.*; import processing.app.ui.Toolkit; -import processing.app.ui.Welcome; import processing.mode.java.debug.LineBreakpoint; import processing.mode.java.debug.LineHighlight; import processing.mode.java.debug.LineID; @@ -51,7 +36,6 @@ import processing.mode.java.pdex.LineMarker; import processing.mode.java.pdex.ErrorMessageSimplifier; import processing.mode.java.pdex.JavaTextArea; import processing.mode.java.pdex.Problem; -import processing.mode.java.pdex.XQErrorTable; import processing.mode.java.runner.Runner; import processing.mode.java.tweak.ColorControlBox; import processing.mode.java.tweak.Handle; @@ -87,8 +71,6 @@ public class JavaEditor extends Editor { private MarkerColumn errorColumn; - protected JScrollPane errorTableScrollPane; - protected XQErrorTable errorTable; static final int ERROR_TAB_INDEX = 0; private boolean hasJavaTabs; @@ -212,17 +194,7 @@ public class JavaEditor extends Editor { @Override public EditorFooter createFooter() { EditorFooter footer = super.createFooter(); - - // Adding Error Table in a scroll pane - errorTableScrollPane = new JScrollPane(); - errorTable = new XQErrorTable(this); - // errorTableScrollPane.setBorder(new EmptyBorder(2, 2, 2, 2)); -// errorTableScrollPane.setBorder(new EtchedBorder()); - errorTableScrollPane.setBorder(BorderFactory.createEmptyBorder()); -// errorTableScrollPane.setBorder(new EmptyBorder(0, Editor.LEFT_GUTTER, 0, 0)); - errorTableScrollPane.setViewportView(errorTable); - footer.addPanel(errorTableScrollPane, Language.text("editor.footer.errors"), "/lib/footer/error"); - + addErrorTable(); return footer; } @@ -2561,11 +2533,6 @@ public class JavaEditor extends Editor { // } - public XQErrorTable getErrorTable() { - return errorTable; - } - - public void errorTableClick(Object item) { Problem p = (Problem) item; errorCheckerService.scrollToErrorLine(p); @@ -2680,7 +2647,7 @@ public class JavaEditor extends Editor { * the error button at the bottom of the PDE */ public void updateErrorToggle() { - footer.setNotification(errorTableScrollPane, + footer.setNotification(errorTable.getParent(), //errorTableScrollPane, JavaMode.errorCheckEnabled && errorCheckerService.hasErrors()); // String title = Language.text("editor.footer.errors"); diff --git a/java/src/processing/mode/java/pdex/ErrorCheckerService.java b/java/src/processing/mode/java/pdex/ErrorCheckerService.java index 84e070018..972d7c8da 100644 --- a/java/src/processing/mode/java/pdex/ErrorCheckerService.java +++ b/java/src/processing/mode/java/pdex/ErrorCheckerService.java @@ -56,6 +56,7 @@ import processing.app.Util; import processing.app.syntax.SyntaxDocument; import processing.app.ui.Editor; import processing.app.ui.EditorStatus; +import processing.app.ui.ErrorTable; import processing.core.PApplet; import processing.mode.java.JavaMode; import processing.mode.java.JavaEditor; @@ -918,8 +919,8 @@ public class ErrorCheckerService implements Runnable { */ public void updateErrorTable() { try { - XQErrorTable table = editor.getErrorTable(); - table.clear(); + ErrorTable table = editor.getErrorTable(); + table.clearRows(); // String[][] errorData = new String[problemsList.size()][3]; // int index = 0; @@ -943,7 +944,7 @@ public class ErrorCheckerService implements Runnable { } } - table.append(p, message, + table.addRow(p, message, sketch.getCode(p.getTabIndex()).getPrettyName(), Integer.toString(p.getLineNumber() + 1)); // Added +1 because lineNumbers internally are 0-indexed