Revision 650 org.gvsig.scripting/trunk/org.gvsig.scripting/org.gvsig.scripting.swing/org.gvsig.scripting.swing.impl/src/main/java/org/gvsig/scripting/swing/impl/composer/DefaultJScriptingComposer.java
DefaultJScriptingComposer.java | ||
---|---|---|
68 | 68 |
import org.gvsig.scripting.CompileErrorException; |
69 | 69 |
import org.gvsig.scripting.ExecuteErrorException; |
70 | 70 |
import org.gvsig.scripting.ScriptingBaseScript; |
71 |
import org.gvsig.scripting.ScriptingErrorException; |
|
71 | 72 |
import org.gvsig.scripting.ScriptingFolder; |
72 | 73 |
import org.gvsig.scripting.ScriptingManager; |
73 | 74 |
import org.gvsig.scripting.ScriptingNotification; |
... | ... | |
78 | 79 |
import org.gvsig.scripting.swing.api.JScriptingBrowser; |
79 | 80 |
import org.gvsig.scripting.swing.api.JScriptingBrowser.BrowserActionEvent; |
80 | 81 |
import org.gvsig.scripting.swing.api.JScriptingComposer; |
82 |
import static org.gvsig.scripting.swing.api.JScriptingComposer.DOCKED_PROBLEMS; |
|
81 | 83 |
import org.gvsig.scripting.swing.api.JScriptingComposer.Dock.DockedPanel; |
82 | 84 |
import org.gvsig.scripting.swing.api.JScriptingComposer.Problems; |
83 | 85 |
import org.gvsig.scripting.swing.api.JScriptingComposer.Problems.Problem; |
... | ... | |
89 | 91 |
import org.gvsig.scripting.swing.impl.DefaultJScriptingConsole; |
90 | 92 |
import org.gvsig.scripting.swing.impl.DefaultScriptingUIManager; |
91 | 93 |
import org.gvsig.scripting.swing.impl.JDialogContent; |
94 |
import org.gvsig.scripting.swing.impl.composer.DefaultJScriptingComposer.DefaultProblems.ProblemsTableMode.DefaultProblem; |
|
92 | 95 |
import org.gvsig.tools.ToolsLocator; |
93 | 96 |
import org.gvsig.tools.i18n.I18nManager; |
94 | 97 |
import org.gvsig.tools.observer.Observable; |
... | ... | |
938 | 941 |
} |
939 | 942 |
Problem row = problems.getSelect(); |
940 | 943 |
if (row != null) { |
944 |
JEditor editor; |
|
941 | 945 |
int lineno = row.getLineNumber(); |
942 |
JEditor editor = getCurrentEditor(); |
|
943 |
if (editor instanceof JCodeEditor) { |
|
944 |
((JCodeEditor) editor).selectLine(lineno); |
|
946 |
if( row.getResource() == null ) { |
|
947 |
editor = getCurrentEditor(); |
|
948 |
} else { |
|
949 |
String id = row.getResource().getAbsolutePath(); |
|
950 |
DockedPanel panel = getDock().get(id); |
|
951 |
if( panel == null ) { |
|
952 |
ScriptingBaseScript script = manager.getScript(row.getResource()); |
|
953 |
scriptEdit(script); |
|
954 |
panel = getDock().get(id); |
|
955 |
if( panel == null ) { |
|
956 |
logger.warn("Can't load script '"+id+"'."); |
|
957 |
return; |
|
958 |
} |
|
959 |
} |
|
960 |
panel.select(); |
|
961 |
editor = (JEditor) panel.getComponent(); |
|
945 | 962 |
} |
963 |
if ( editor instanceof JCodeEditor) { |
|
964 |
((JCodeEditor) editor).gotoline(lineno); |
|
965 |
} |
|
946 | 966 |
} |
947 | 967 |
} |
948 | 968 |
}); |
... | ... | |
961 | 981 |
panel.select(); |
962 | 982 |
return; |
963 | 983 |
} |
964 |
DefaultJScriptingConsole console = new DefaultJScriptingConsole(); |
|
984 |
DefaultJScriptingConsole console = new DefaultJScriptingConsole(true);
|
|
965 | 985 |
this.dock.add( |
966 | 986 |
DOCKED_CONSOLE, |
967 | 987 |
this.uimanager.getTranslation("Console"), |
... | ... | |
1120 | 1140 |
} |
1121 | 1141 |
|
1122 | 1142 |
public void scriptEdit(ScriptingBaseScript unit) { |
1123 |
String id = unit.getFile().getAbsolutePath(); |
|
1143 |
String id = unit.getScriptFile().getAbsolutePath();
|
|
1124 | 1144 |
DockedPanel x = this.dock.get(id); |
1125 | 1145 |
if (x != null) { |
1126 | 1146 |
x.select(); |
... | ... | |
1544 | 1564 |
CompileErrorException ce = (CompileErrorException) e.getException(); |
1545 | 1565 |
Problems problems = this.getProblems(); |
1546 | 1566 |
if (problems != null) { |
1547 |
problems.add( |
|
1548 |
"Error", |
|
1549 |
ce.getMessage(), |
|
1550 |
ce.getScriptName(), |
|
1551 |
ce.getLineNumber(), |
|
1552 |
ce.getColumnNumber() |
|
1553 |
); |
|
1567 |
problems.add("Error", ce); |
|
1554 | 1568 |
this.dock.select(DOCKED_PROBLEMS); |
1555 | 1569 |
} |
1556 | 1570 |
|
... | ... | |
1558 | 1572 |
ExecuteErrorException ee = (ExecuteErrorException) e.getException(); |
1559 | 1573 |
Problems problems = this.getProblems(); |
1560 | 1574 |
if (problems != null) { |
1561 |
problems.add( |
|
1562 |
"Error", |
|
1563 |
ee.getMessage(), |
|
1564 |
ee.getScriptName(), |
|
1565 |
ee.getLineNumber(), |
|
1566 |
ee.getColumnNumber() |
|
1567 |
); |
|
1575 |
problems.add("Error",ee); |
|
1568 | 1576 |
this.dock.select(DOCKED_PROBLEMS); |
1569 | 1577 |
} |
1570 | 1578 |
JScriptingConsole console = this.getConsole(); |
... | ... | |
1574 | 1582 |
} |
1575 | 1583 |
|
1576 | 1584 |
} else { |
1577 |
Throwable ex = e.getException();
|
|
1585 |
Exception ex = e.getException();
|
|
1578 | 1586 |
Problems problems = this.getProblems(); |
1579 | 1587 |
if (problems != null) { |
1580 |
problems.add( |
|
1581 |
"Error", |
|
1582 |
ex.getMessage(), |
|
1583 |
null, |
|
1584 |
null |
|
1585 |
); |
|
1588 |
problems.add("Error",ex); |
|
1586 | 1589 |
this.dock.select(DOCKED_PROBLEMS); |
1587 | 1590 |
} |
1588 | 1591 |
JScriptingConsole console = this.getConsole(); |
... | ... | |
1814 | 1817 |
public static class DefaultProblem implements Problem { |
1815 | 1818 |
|
1816 | 1819 |
String[] row; |
1820 |
private File resource; |
|
1817 | 1821 |
|
1822 |
public DefaultProblem() { |
|
1823 |
this.row = new String[NUM_COLUMNS]; |
|
1824 |
} |
|
1825 |
|
|
1818 | 1826 |
public DefaultProblem(String[] row) { |
1819 | 1827 |
this.row = row; |
1820 | 1828 |
} |
1821 | 1829 |
|
1822 |
public DefaultProblem(String type, String message, String resource, String location) {
|
|
1830 |
public DefaultProblem(String type, String message, String resourceName, String location, File resource) {
|
|
1823 | 1831 |
String[] row = new String[NUM_COLUMNS]; |
1824 | 1832 |
row[COLUMN_TYPE] = type; |
1825 | 1833 |
row[COLUMN_MESSAGE] = message; |
1826 |
row[COLUMN_RESOURCE] = resource; |
|
1834 |
row[COLUMN_RESOURCE] = resourceName;
|
|
1827 | 1835 |
row[COLUMN_LOCATION] = location; |
1836 |
this.resource = resource; |
|
1828 | 1837 |
this.row = row; |
1829 | 1838 |
} |
1830 | 1839 |
|
... | ... | |
1851 | 1860 |
} |
1852 | 1861 |
|
1853 | 1862 |
@Override |
1854 |
public String getResource() { |
|
1863 |
public String getResourceName() {
|
|
1855 | 1864 |
return this.row[COLUMN_RESOURCE]; |
1856 | 1865 |
} |
1857 | 1866 |
|
1858 | 1867 |
@Override |
1868 |
public File getResource() { |
|
1869 |
return this.resource; |
|
1870 |
} |
|
1871 |
|
|
1872 |
@Override |
|
1859 | 1873 |
public int getLineNumber() { |
1860 | 1874 |
try { |
1861 | 1875 |
String[] lineAndColumn = this.row[COLUMN_LOCATION].split(":"); |
... | ... | |
1897 | 1911 |
this.fireTableDataChanged(); |
1898 | 1912 |
} |
1899 | 1913 |
|
1900 |
private void add(String type, String message, String resource, String location) {
|
|
1901 |
DefaultProblem problem = new DefaultProblem(type, message, resource, location);
|
|
1914 |
private void add(String type, String message, String resourceName, String location, File resource) {
|
|
1915 |
DefaultProblem problem = new DefaultProblem(type, message, resourceName, location, resource);
|
|
1902 | 1916 |
this.add(problem); |
1903 | 1917 |
} |
1904 | 1918 |
|
... | ... | |
2005 | 2019 |
|
2006 | 2020 |
@Override |
2007 | 2021 |
public void add(String type, String message, String resource, String location) { |
2008 |
this.tableModel.add(type, message, resource, location); |
|
2022 |
this.tableModel.add(type, message, resource, location, null);
|
|
2009 | 2023 |
} |
2010 | 2024 |
|
2011 | 2025 |
@Override |
2012 | 2026 |
public void add(String type, String message, String resource, int line, int column) { |
2013 | 2027 |
this.add(type, message, resource, line + ":" + column); |
2014 | 2028 |
} |
2029 |
|
|
2030 |
public void add(String type, String message, String resourceName, int line, int column, File resource) { |
|
2031 |
this.tableModel.add(type, message, resourceName, line + ":" + column, resource); |
|
2032 |
} |
|
2033 |
|
|
2034 |
@Override |
|
2035 |
public void add(String type, Exception e) { |
|
2036 |
if (e instanceof ScriptingErrorException) { |
|
2037 |
ScriptingErrorException se = (ScriptingErrorException) e; |
|
2038 |
this.add( |
|
2039 |
"Error", |
|
2040 |
se.getMessage(), |
|
2041 |
se.getScriptName(), |
|
2042 |
se.getLineNumber(), |
|
2043 |
se.getColumnNumber(), |
|
2044 |
se.getScriptFile() |
|
2045 |
); |
|
2015 | 2046 |
|
2047 |
} else { |
|
2048 |
this.add("Error", |
|
2049 |
"Error", |
|
2050 |
e.getMessage(), |
|
2051 |
null |
|
2052 |
); |
|
2053 |
} |
|
2054 |
} |
|
2055 |
|
|
2016 | 2056 |
@Override |
2017 | 2057 |
public Problem getSelect() { |
2018 | 2058 |
int row = this.table.getSelectedRow(); |
Also available in: Unified diff