You can subscribe to this list here.
| 2010 |
Jan
|
Feb
|
Mar
(97) |
Apr
(160) |
May
(139) |
Jun
(17) |
Jul
(51) |
Aug
(39) |
Sep
(21) |
Oct
(45) |
Nov
(60) |
Dec
(110) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2011 |
Jan
(34) |
Feb
(84) |
Mar
(154) |
Apr
(81) |
May
(107) |
Jun
(33) |
Jul
(30) |
Aug
(49) |
Sep
(68) |
Oct
(96) |
Nov
(39) |
Dec
(23) |
| 2012 |
Jan
(45) |
Feb
(53) |
Mar
(39) |
Apr
(32) |
May
(62) |
Jun
(48) |
Jul
(42) |
Aug
(61) |
Sep
(56) |
Oct
(48) |
Nov
(57) |
Dec
(16) |
| 2013 |
Jan
(52) |
Feb
(10) |
Mar
(20) |
Apr
(43) |
May
(37) |
Jun
(56) |
Jul
(53) |
Aug
(15) |
Sep
(41) |
Oct
(47) |
Nov
(75) |
Dec
(63) |
| 2014 |
Jan
(39) |
Feb
(80) |
Mar
(41) |
Apr
(47) |
May
(43) |
Jun
(38) |
Jul
(15) |
Aug
|
Sep
(4) |
Oct
(2) |
Nov
(1) |
Dec
(3) |
| 2015 |
Jan
(1) |
Feb
(3) |
Mar
(1) |
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(11) |
Dec
(7) |
| 2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <iam...@us...> - 2010-03-15 16:22:29
|
Revision: 1317
http://eulergui.svn.sourceforge.net/eulergui/?rev=1317&view=rev
Author: iamlolive
Date: 2010-03-15 16:22:22 +0000 (Mon, 15 Mar 2010)
Log Message:
-----------
cleaner architecture to show a parsing error
Modified Paths:
--------------
trunk/eulergui/src/main/java/n3_project/ResultManagement.java
Modified: trunk/eulergui/src/main/java/n3_project/ResultManagement.java
===================================================================
--- trunk/eulergui/src/main/java/n3_project/ResultManagement.java 2010-03-15 16:20:17 UTC (rev 1316)
+++ trunk/eulergui/src/main/java/n3_project/ResultManagement.java 2010-03-15 16:22:22 UTC (rev 1317)
@@ -209,13 +209,17 @@
}
public void displayOriginalSourceWithErrors(eulergui.project.N3Source source, N3ParseResult result) {
- TextEditor editor = new TextEditor();
- editor.displayEditor( projectGUI, source);
- editor.setToolTipText(result.getErrorMessage());
- editor.setCaretPosition(result.getParseResult().getLineNumber(), result.getParseResult().getColumnNumber());
+ TextEditor editor = projectGUI.getEditorManagement().openJavaEditor(source);
+ String errorMessage = result.getErrorMessage();
+ int lineNumber = result.getParseResult().getLineNumber();
+ int columnNumber = result.getParseResult().getColumnNumber();
+ editor.showError(errorMessage, lineNumber, columnNumber);
+
}
+
+
private final class ViewAction extends LocalAction {
private static final long serialVersionUID = 1L;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <iam...@us...> - 2010-03-15 16:20:26
|
Revision: 1316
http://eulergui.svn.sourceforge.net/eulergui/?rev=1316&view=rev
Author: iamlolive
Date: 2010-03-15 16:20:17 +0000 (Mon, 15 Mar 2010)
Log Message:
-----------
some more utility methods for TextEditor (setOnTop, addWindowListener, ...)
Modified Paths:
--------------
trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java
Modified: trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java
===================================================================
--- trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java 2010-03-15 16:19:02 UTC (rev 1315)
+++ trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java 2010-03-15 16:20:17 UTC (rev 1316)
@@ -52,6 +52,7 @@
private N3Source n3;
private boolean edited;
private JEditTextArea jedit;
+ public JFrame jf;
static {
suffix2syntax.put("n3", new N3TokenMarker());
@@ -71,12 +72,29 @@
suffix2syntax.put("umlt", new ShellScriptTokenMarker());
}
+ public void setOnTop(){
+ if(jf!=null) {
+ jf.setAlwaysOnTop(true);
+ jf.setAlwaysOnTop(false);
+ }
+ }
+
+ public void addWindowListener(WindowListener l){
+ if(jf!=null)
+ jf.addWindowListener(l);
+ }
+
+ public void removeWindowListener(WindowListener l){
+ if(jf!=null)
+ jf.removeWindowListener(l);
+ }
+
/**
* display N3 Editor in a new Window, with save As and Statistics in File menu
*/
public void displayEditor(ProjectGUI projectGUI, N3Source n3) {
try {
- JFrame jf = new JFrame(
+ jf = new JFrame(
EditorManagement.fileToOpen(n3));
JComponent embededEditor = embedEditor(n3);
@@ -163,6 +181,11 @@
removeTooltipOnNextEdit();
}
+ public void showError(String errorMessage, int lineNumber, int columnNumber) {
+ setToolTipText(errorMessage);
+ setCaretPosition(lineNumber, columnNumber);
+ }
+
private void removeTooltipOnNextEdit() {
final DocumentListener tooltipRemover = new DocumentListener() {
@Override
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <iam...@us...> - 2010-03-15 16:19:09
|
Revision: 1315
http://eulergui.svn.sourceforge.net/eulergui/?rev=1315&view=rev
Author: iamlolive
Date: 2010-03-15 16:19:02 +0000 (Mon, 15 Mar 2010)
Log Message:
-----------
EditorManagement.openJavaEditor() now manages only one editor per N3Source.
Modified Paths:
--------------
trunk/eulergui/src/main/java/n3_project/EditorManagement.java
Modified: trunk/eulergui/src/main/java/n3_project/EditorManagement.java
===================================================================
--- trunk/eulergui/src/main/java/n3_project/EditorManagement.java 2010-03-15 16:09:32 UTC (rev 1314)
+++ trunk/eulergui/src/main/java/n3_project/EditorManagement.java 2010-03-15 16:19:02 UTC (rev 1315)
@@ -1,8 +1,12 @@
package n3_project;
import java.awt.event.ActionEvent;
+import java.awt.event.WindowEvent;
+import java.awt.event.WindowListener;
import java.io.File;
import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
import java.util.TreeMap;
import javax.swing.AbstractAction;
@@ -113,9 +117,61 @@
return null;
}
- void openJavaEditor( N3Source n3 ) {
- TextEditor editor = new TextEditor();
- editor.displayEditor( projectGUI, n3);
+
+ public Map<N3Source,TextEditor> n3SourceToEditor = new HashMap<N3Source, TextEditor>();
+
+ public TextEditor openJavaEditor( final N3Source n3 ) {
+ final TextEditor editor;
+ if(!n3SourceToEditor.containsKey(n3)){
+ editor = new TextEditor();
+ WindowListener editorClosedListener = new WindowListener() {
+
+ @Override
+ public void windowOpened(WindowEvent e) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void windowClosing(WindowEvent e) {
+
+ }
+
+ @Override
+ public void windowClosed(WindowEvent e) {
+ editor.removeWindowListener(this);
+ n3SourceToEditor.remove(n3);
+ }
+
+ @Override
+ public void windowIconified(WindowEvent e) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void windowDeiconified(WindowEvent e) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void windowActivated(WindowEvent e) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void windowDeactivated(WindowEvent e) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+ };
+ n3SourceToEditor.put(n3, editor);
+ editor.displayEditor( projectGUI, n3);
+ editor.addWindowListener(editorClosedListener);
+ }
+ else {
+ editor = n3SourceToEditor.get(n3);
+ editor.setOnTop();
+ }
+ return editor;
+
}
/**
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <iam...@us...> - 2010-03-15 16:09:39
|
Revision: 1314
http://eulergui.svn.sourceforge.net/eulergui/?rev=1314&view=rev
Author: iamlolive
Date: 2010-03-15 16:09:32 +0000 (Mon, 15 Mar 2010)
Log Message:
-----------
ApplicationKB now throws Exception on bad parsing of N3 conf files.
Modified Paths:
--------------
trunk/eulergui/src/main/java/eulergui/gui/controller/ApplicationKB.java
Modified: trunk/eulergui/src/main/java/eulergui/gui/controller/ApplicationKB.java
===================================================================
--- trunk/eulergui/src/main/java/eulergui/gui/controller/ApplicationKB.java 2010-03-15 15:16:23 UTC (rev 1313)
+++ trunk/eulergui/src/main/java/eulergui/gui/controller/ApplicationKB.java 2010-03-15 16:09:32 UTC (rev 1314)
@@ -4,6 +4,7 @@
import n3_project.helpers.Triple;
+import net.sf.parser4j.parser.service.ParserException;
import unif.TripleStoreDrools;
import eulergui.gui.interfaces.ProjectListener;
import eulergui.project.N3Source;
@@ -14,7 +15,7 @@
private static ApplicationKB instance_;
- public static ApplicationKB instance() {
+ public static ApplicationKB instance() throws ParserException {
if( instance_ == null ) {
instance_ = new ApplicationKB();
}
@@ -23,7 +24,7 @@
private TripleStoreDrools tripleStore;
- private ApplicationKB() {
+ private ApplicationKB() throws ParserException {
Project project = new Project();
URL url = getClass().getResource("project.owl.n3");
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jm...@us...> - 2010-03-15 15:16:32
|
Revision: 1313
http://eulergui.svn.sourceforge.net/eulergui/?rev=1313&view=rev
Author: jmvanel
Date: 2010-03-15 15:16:23 +0000 (Mon, 15 Mar 2010)
Log Message:
-----------
SourceFilesView.java : removed the regression
getButtonsPanel().setMaximumSize( getButtonsPanel().getPreferredSize() );
// commented out (was added in revision 1301), because of regression
// (see revision 1310 )
Revision Links:
--------------
http://eulergui.svn.sourceforge.net/eulergui/?rev=1301&view=rev
http://eulergui.svn.sourceforge.net/eulergui/?rev=1310&view=rev
Modified Paths:
--------------
trunk/eulergui/src/main/java/n3_project/SourceFilesView.java
Modified: trunk/eulergui/src/main/java/n3_project/SourceFilesView.java
===================================================================
--- trunk/eulergui/src/main/java/n3_project/SourceFilesView.java 2010-03-15 15:12:39 UTC (rev 1312)
+++ trunk/eulergui/src/main/java/n3_project/SourceFilesView.java 2010-03-15 15:16:23 UTC (rev 1313)
@@ -65,11 +65,15 @@
fireEventsToUpdateN3SourceComponents();
// glue together the buttons for N3 sources
- getButtonsPanel().setMaximumSize( getButtonsPanel().getPreferredSize() );
-// System.out.println("SourceFilesView.makeButtonsPanel(): " +
-// "getButtonsPanel().getPreferredSize(): "
-// + getButtonsPanel().getPreferredSize() );
+// getButtonsPanel().setMaximumSize( getButtonsPanel().getPreferredSize() );
+// TODO: commented out (was added in revision 1301), because of regression
+ // (see revision 1310 )
+
+ System.out.println("SourceFilesView.makeButtonsPanel(): " +
+ "getButtonsPanel().getPreferredSize(): "
+ + getButtonsPanel().getPreferredSize() );
+
getCenterPanel().validate();
getCenterPanel().invalidate();
getProjectGUI().updateWindowTitle();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <iam...@us...> - 2010-03-15 15:12:45
|
Revision: 1312
http://eulergui.svn.sourceforge.net/eulergui/?rev=1312&view=rev
Author: iamlolive
Date: 2010-03-15 15:12:39 +0000 (Mon, 15 Mar 2010)
Log Message:
-----------
Tooltip for error now displays the error message of parser4j.
But this message is quite imprecise.
Q: How to improve its relevancy?
Modified Paths:
--------------
trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java
Modified: trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java
===================================================================
--- trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java 2010-03-15 14:43:59 UTC (rev 1311)
+++ trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java 2010-03-15 15:12:39 UTC (rev 1312)
@@ -38,89 +38,94 @@
import eulergui.gui.actions.Statistics;
import eulergui.project.N3Source;
-/** a Text Editor factory, mainly for N3;
- * if the buffer has been modified, it proposes to save before leaving;
- * TODO show modified status;
- * wrap class JEditTextArea with an interface, as it may not stay
-*/
+/**
+ * a Text Editor factory, mainly for N3;
+ * if the buffer has been modified, it proposes to save before leaving;
+ * TODO show modified status;
+ * wrap class JEditTextArea with an interface, as it may not stay
+ */
public class TextEditor {
- private static Map<String, TokenMarker> suffix2syntax
- = new HashMap<String, TokenMarker>();
- private DocumentListener listener;
- private N3Source n3;
- private boolean edited;
- private JEditTextArea jedit;
+ private static Map<String, TokenMarker> suffix2syntax
+ = new HashMap<String, TokenMarker>();
+ private DocumentListener listener;
+ private N3Source n3;
+ private boolean edited;
+ private JEditTextArea jedit;
- static {
- suffix2syntax.put("n3", new N3TokenMarker() );
- suffix2syntax.put("ttl", new N3TokenMarker() );
- suffix2syntax.put("nt", new N3TokenMarker() );
- suffix2syntax.put("sparql", new N3TokenMarker() );
- suffix2syntax.put("xml", new XMLTokenMarker() );
- suffix2syntax.put("xsd", new XMLTokenMarker() );
- suffix2syntax.put("rdf", new XMLTokenMarker() );
- suffix2syntax.put("owl", new XMLTokenMarker() );
- suffix2syntax.put("uml", new XMLTokenMarker() );
- suffix2syntax.put("xmi", new XMLTokenMarker() );
- suffix2syntax.put("ecore", new XMLTokenMarker() );
- suffix2syntax.put("mof", new XMLTokenMarker() );
- suffix2syntax.put("emof", new XMLTokenMarker() );
- suffix2syntax.put("cmof", new XMLTokenMarker() );
- suffix2syntax.put("umlt", new ShellScriptTokenMarker() );
- }
-
- /** display N3 Editor in a new Window, with save As and Statistics in File menu */
- public void displayEditor( ProjectGUI projectGUI, N3Source n3 ) {
- try {
- JFrame jf = new JFrame(
- EditorManagement.fileToOpen(n3) );
- JComponent embededEditor = embedEditor( n3 );
-
- JMenuBar menuBar = new JMenuBar();
- jf.setJMenuBar(menuBar);
- JMenu file = new JMenu("File");
- menuBar.add( file );
- SaveAs saveAs = new SaveAs( this, projectGUI,
- (JEditTextArea)embededEditor );
- Save save = new Save((JEditTextArea)embededEditor, this );
- file.add(save);
- file.add(saveAs);
- file.add(new Statistics(n3, (JEditTextArea)embededEditor));
+ static {
+ suffix2syntax.put("n3", new N3TokenMarker());
+ suffix2syntax.put("ttl", new N3TokenMarker());
+ suffix2syntax.put("nt", new N3TokenMarker());
+ suffix2syntax.put("sparql", new N3TokenMarker());
+ suffix2syntax.put("xml", new XMLTokenMarker());
+ suffix2syntax.put("xsd", new XMLTokenMarker());
+ suffix2syntax.put("rdf", new XMLTokenMarker());
+ suffix2syntax.put("owl", new XMLTokenMarker());
+ suffix2syntax.put("uml", new XMLTokenMarker());
+ suffix2syntax.put("xmi", new XMLTokenMarker());
+ suffix2syntax.put("ecore", new XMLTokenMarker());
+ suffix2syntax.put("mof", new XMLTokenMarker());
+ suffix2syntax.put("emof", new XMLTokenMarker());
+ suffix2syntax.put("cmof", new XMLTokenMarker());
+ suffix2syntax.put("umlt", new ShellScriptTokenMarker());
+ }
- jf.getContentPane().add( embededEditor );
- jf.setSize(800, 600);
- jf.setTitle( n3.showShortName() );
- jf.setVisible(true);
- ProjectGUI.setEulerGUIIcon(jf);
-
- jf.setDefaultCloseOperation( WindowConstants.DISPOSE_ON_CLOSE );
- listener = new DocumentListener();
- jf.addWindowListener(listener);
- } catch (HeadlessException e) {
- e.printStackTrace();
- }
- }
-
- /** embed N3 Editor in a JComponent */
- public JComponent embedEditor( N3Source n3 ) {
- this.n3 = n3;
- jedit = new JEditTextArea();
- String toOpen = EditorManagement.fileToOpen(n3);
- insertFileOrURL(toOpen);
- applySyntax( n3.uri() );
- return jedit;
- }
+ /**
+ * display N3 Editor in a new Window, with save As and Statistics in File menu
+ */
+ public void displayEditor(ProjectGUI projectGUI, N3Source n3) {
+ try {
+ JFrame jf = new JFrame(
+ EditorManagement.fileToOpen(n3));
+ JComponent embededEditor = embedEditor(n3);
- public void setCaretPosition(int line, int col){
- if(line>=1)
+ JMenuBar menuBar = new JMenuBar();
+ jf.setJMenuBar(menuBar);
+ JMenu file = new JMenu("File");
+ menuBar.add(file);
+ SaveAs saveAs = new SaveAs(this, projectGUI,
+ (JEditTextArea) embededEditor);
+ Save save = new Save((JEditTextArea) embededEditor, this);
+ file.add(save);
+ file.add(saveAs);
+ file.add(new Statistics(n3, (JEditTextArea) embededEditor));
+
+ jf.getContentPane().add(embededEditor);
+ jf.setSize(800, 600);
+ jf.setTitle(n3.showShortName());
+ jf.setVisible(true);
+ ProjectGUI.setEulerGUIIcon(jf);
+
+ jf.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
+ listener = new DocumentListener();
+ jf.addWindowListener(listener);
+ } catch (HeadlessException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * embed N3 Editor in a JComponent
+ */
+ public JComponent embedEditor(N3Source n3) {
+ this.n3 = n3;
+ jedit = new JEditTextArea();
+ String toOpen = EditorManagement.fileToOpen(n3);
+ insertFileOrURL(toOpen);
+ applySyntax(n3.uri());
+ return jedit;
+ }
+
+ public void setCaretPosition(int line, int col) {
+ if (line >= 1)
line--;
- if(col>=1)
+ if (col >= 1)
col--;
-
+
int position = jedit.getLineStartOffset(line) + col;
//TODO the parser erroneously places the end of line errors. They are placed at the beginning of the next line. We correct that behaviour (on purpose?)
- if(col==0)
+ if (col == 0)
position--;
setCaretPosition(position);
}
@@ -132,12 +137,14 @@
}
- public int getCaretPosition(){
+ public int getCaretPosition() {
return jedit.getCaretPosition();
}
- public void setToolTipText(String text){
- jedit.getPainter().addCustomHighlight(new TextAreaPainter.Highlight(){
+ public void setToolTipText(String text) {
+ final String toolTipText = (text == null ? null : "<HTML>" + text.replace("\n", "<br/>") + "</HTML>");
+ final TextAreaPainter textAreaPainter = jedit.getPainter();
+ textAreaPainter.addCustomHighlight(new TextAreaPainter.Highlight() {
@Override
public void init(JEditTextArea textArea, TextAreaPainter.Highlight next) {
@@ -146,181 +153,214 @@
@Override
public void paintHighlight(Graphics gfx, int line, int y) {
- //To change body of implemented methods use File | Settings | File Templates.
}
- @Override
public String getToolTipText(MouseEvent evt) {
- return "toto"; //To change body of implemented methods use File | Settings | File Templates.
+ return toolTipText;
}
});
+
+ removeTooltipOnNextEdit();
}
- public String getToolTipText(){
- return jedit.getToolTipText();
+ private void removeTooltipOnNextEdit() {
+ final DocumentListener tooltipRemover = new DocumentListener() {
+ @Override
+ public void removeUpdate(DocumentEvent e) {
+ //TODO how to remove our custom Highlight instead of this quick hack ?
+ setToolTipText(null);
+ jedit.getDocument().removeDocumentListener(this);
+ }
+
+ @Override
+ public void insertUpdate(DocumentEvent e) {
+ //TODO how to remove our custom Highlight instead of this quick hack ?
+ setToolTipText(null);
+ jedit.getDocument().removeDocumentListener(this);
+ }
+
+ @Override
+ public void changedUpdate(DocumentEvent e) {
+ //TODO how to remove our custom Highlight instead of this quick hack ?
+ setToolTipText(null);
+ jedit.getDocument().removeDocumentListener(this);
+ }
+
+ @Override
+ public void windowClosing(WindowEvent e) {
+ //super.windowClosing(e); //To change body of overridden methods use File | Settings | File Templates.
+ }
+ };
+ jedit.getDocument().addDocumentListener(tooltipRemover);
}
-
+ /**
+ * display Editor in a new Window, with save As in File menu
+ */
+ public void displayEditor(ProjectGUI projectGUI, String toOpen) {
+ JFrame jf = new JFrame();
- /** display Editor in a new Window, with save As in File menu */
- public void displayEditor( ProjectGUI projectGUI, String toOpen ) {
- JFrame jf = new JFrame( );
-
- JComponent embededEditor = insertFileOrURL( toOpen );
- applySyntax(toOpen);
- JMenuBar menuBar = new JMenuBar();
- jf.setJMenuBar(menuBar);
- JMenu file = new JMenu("File");
- menuBar.add( file );
- SaveAs saveAs = new SaveAs( this, projectGUI,
- (JEditTextArea)embededEditor );
- Save save = new Save((JEditTextArea)embededEditor, this );
- file.add(save);
- file.add(saveAs);
+ JComponent embededEditor = insertFileOrURL(toOpen);
+ applySyntax(toOpen);
+ JMenuBar menuBar = new JMenuBar();
+ jf.setJMenuBar(menuBar);
+ JMenu file = new JMenu("File");
+ menuBar.add(file);
+ SaveAs saveAs = new SaveAs(this, projectGUI,
+ (JEditTextArea) embededEditor);
+ Save save = new Save((JEditTextArea) embededEditor, this);
+ file.add(save);
+ file.add(saveAs);
- jf.getContentPane().add( embededEditor );
- jf.setSize(800, 600);
- jf.setTitle( toOpen );
- jf.setVisible(true);
- ProjectGUI.setEulerGUIIcon(jf);
-
- jf.setDefaultCloseOperation( WindowConstants.DO_NOTHING_ON_CLOSE );
- listener = new DocumentListener();
- jf.addWindowListener(listener);
- }
+ jf.getContentPane().add(embededEditor);
+ jf.setSize(800, 600);
+ jf.setTitle(toOpen);
+ jf.setVisible(true);
+ ProjectGUI.setEulerGUIIcon(jf);
- private JComponent insertFileOrURL(String toOpen) {
- jedit = new JEditTextArea();
+ jf.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
+ listener = new DocumentListener();
+ jf.addWindowListener(listener);
+ }
- InputStream is = null;
- try {
- if( toOpen .startsWith( "file:")
- || toOpen.startsWith( "http:")
- || toOpen.startsWith( "https:") // TODO there is a handy URL method
- || toOpen.startsWith( "ftp:")
- ) {
- is = (InputStream) new URL(toOpen).getContent();
- } else {
- if( new File(toOpen).exists() ) {
- is = new FileInputStream(toOpen); }
- }
- if( is != null ) {
- BufferedReader reader = new BufferedReader(
- new InputStreamReader(is, "UTF8"));
- String line;
- StringBuilder builder = new StringBuilder();
- while( (line = reader.readLine()) != null ) {
- builder.append(line).append('\n');
- }
- String text = builder.toString();
- reader.close();
- SyntaxDocument document = new N3SyntaxDocument();
- jedit.setDocument( document );
- jedit.setText(text);
- document.addDocumentListener( listener );
- // need to reset edited, because calling setText() has already
- // set edited = true
- edited = false;
- }
- jedit.scrollTo( 0, 0);
-
- } catch (IOException e) {
- e.printStackTrace();
- jedit.setText( e.getLocalizedMessage() );
- }
- return jedit;
- }
+ private JComponent insertFileOrURL(String toOpen) {
+ jedit = new JEditTextArea();
- private void applySyntax(String toOpen) {
- String suffix = toOpen.substring(
- toOpen.lastIndexOf( '.' ) + 1 );
- TokenMarker syntax = suffix2syntax.get( suffix );
- jedit.setTokenMarker(syntax);
- }
-
- /** records the first modification, to prevent unsaved edits
- * TODO upon Save actions, reset {@link #edited} to false */
- class DocumentListener extends WindowAdapter
- implements javax.swing.event.DocumentListener
- , WindowListener
+ InputStream is = null;
+ try {
+ if (toOpen.startsWith("file:")
+ || toOpen.startsWith("http:")
+ || toOpen.startsWith("https:") // TODO there is a handy URL method
+ || toOpen.startsWith("ftp:")
+ ) {
+ is = (InputStream) new URL(toOpen).getContent();
+ } else {
+ if (new File(toOpen).exists()) {
+ is = new FileInputStream(toOpen);
+ }
+ }
+ if (is != null) {
+ BufferedReader reader = new BufferedReader(
+ new InputStreamReader(is, "UTF8"));
+ String line;
+ StringBuilder builder = new StringBuilder();
+ while ((line = reader.readLine()) != null) {
+ builder.append(line).append('\n');
+ }
+ String text = builder.toString();
+ reader.close();
+ SyntaxDocument document = new N3SyntaxDocument();
+ jedit.setDocument(document);
+ jedit.setText(text);
+ document.addDocumentListener(listener);
+ // need to reset edited, because calling setText() has already
+ // set edited = true
+ edited = false;
+ }
+ jedit.scrollTo(0, 0);
+
+ } catch (IOException e) {
+ e.printStackTrace();
+ jedit.setText(e.getLocalizedMessage());
+ }
+ return jedit;
+ }
+
+ private void applySyntax(String toOpen) {
+ String suffix = toOpen.substring(
+ toOpen.lastIndexOf('.') + 1);
+ TokenMarker syntax = suffix2syntax.get(suffix);
+ jedit.setTokenMarker(syntax);
+ }
+
+ /**
+ * records the first modification, to prevent unsaved edits
+ * TODO upon Save actions, reset {@link #edited} to false
+ */
+ class DocumentListener extends WindowAdapter
+ implements javax.swing.event.DocumentListener
+ , WindowListener
// , WindowStateListener
- {
- @Override
- /** PENDING these 3 methods are apparently not called;
- * beginCompoundEdit does the job
- */
- public void removeUpdate(DocumentEvent e) {
- edited = true;
- }
-
- @Override
- public void insertUpdate(DocumentEvent e) {
- edited = true;
- }
-
- @Override
- public void changedUpdate(DocumentEvent e) {
- edited = true;
- }
+ {
+ @Override
+ /** PENDING these 3 methods are apparently not called;
+ * beginCompoundEdit does the job
+ */
+ public void removeUpdate(DocumentEvent e) {
+ edited = true;
+ }
- @Override
- public void windowClosing(WindowEvent e) {
- if( e.getID() == WindowEvent.WINDOW_CLOSING ) {
- if( edited ) {
- System.err.println( "The document \""
- + n3.getFileName()
- + "\" has been edited, you must save it first.");
- // TODO it should not close, but it does !!!
- } else {
- ((Window)e.getSource()).dispose();
- }
- }
- }
- }
-
- class N3SyntaxDocument extends SyntaxDocument {
- private static final long serialVersionUID = 1L;
- @Override
- public void beginCompoundEdit() {
- if( ! edited ) {
- if( n3 != null ) {
- System.out.println( "First edit " + n3.showShortName() );
- }
- edited = true;
- }
- }
- }
+ @Override
+ public void insertUpdate(DocumentEvent e) {
+ edited = true;
+ }
- public N3Source get3NSource() {
- return n3;
- }
+ @Override
+ public void changedUpdate(DocumentEvent e) {
+ edited = true;
+ }
- /** call this notify that the file has been saved */
- public void setSaved() {
- edited = false;
- }
-
- public void setText(String text) {
- jedit.setText(text);
- }
+ @Override
+ public void windowClosing(WindowEvent e) {
+ if (e.getID() == WindowEvent.WINDOW_CLOSING) {
+ if (edited) {
+ System.err.println("The document \""
+ + n3.getFileName()
+ + "\" has been edited, you must save it first.");
+ // TODO it should not close, but it does !!!
+ } else {
+ ((Window) e.getSource()).dispose();
+ }
+ }
+ }
+ }
- public JComponent getComponent() {
- if( jedit == null ) {
- embedEditor( new N3Source("") );
+ class N3SyntaxDocument extends SyntaxDocument {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void beginCompoundEdit() {
+ if (!edited) {
+ if (n3 != null) {
+ System.out.println("First edit " + n3.showShortName());
+ }
+ edited = true;
+ }
+ }
+ }
+
+ public N3Source get3NSource() {
+ return n3;
+ }
+
+ /**
+ * call this notify that the file has been saved
+ */
+ public void setSaved() {
+ edited = false;
+ }
+
+ public void setText(String text) {
+ jedit.setText(text);
+ }
+
+ public JComponent getComponent() {
+ if (jedit == null) {
+ embedEditor(new N3Source(""));
+ }
+ return jedit;
+ }
+
+ public void insertStringAtPaneEnd(String message) {
+ int offs = jedit.getDocument().getEndPosition().getOffset();
+ try {
+ jedit.getDocument().insertString(offs, message, null);
+ jedit.setCaretPosition(
+ jedit.getDocument().getEndPosition().getOffset() - 1);
+ } catch (BadLocationException e) {
+ // Auto-generated catch block
+ e.printStackTrace();
}
- return jedit;
- }
-
- public void insertStringAtPaneEnd(String message) {
- int offs = jedit.getDocument().getEndPosition().getOffset();
- try {
- jedit.getDocument().insertString( offs, message, null);
- jedit.setCaretPosition(
- jedit.getDocument().getEndPosition().getOffset() - 1 );
- } catch (BadLocationException e) {
- // Auto-generated catch block
- e.printStackTrace();
- }
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jm...@us...> - 2010-03-15 14:44:06
|
Revision: 1311
http://eulergui.svn.sourceforge.net/eulergui/?rev=1311&view=rev
Author: jmvanel
Date: 2010-03-15 14:43:59 +0000 (Mon, 15 Mar 2010)
Log Message:
-----------
test to capture this regression: forgot to commit project files
Modified Paths:
--------------
trunk/eulergui/src/test/java/eulergui/gui/ActionNAMEComponentChooser.java
trunk/eulergui/src/test/java/eulergui/gui/TestN3Source.java
Added Paths:
-----------
trunk/eulergui/test/empty_project.n3p
trunk/eulergui/test/errors-in-editor.n3
trunk/eulergui/test/errors-in-editor.n3p
Modified: trunk/eulergui/src/test/java/eulergui/gui/ActionNAMEComponentChooser.java
===================================================================
--- trunk/eulergui/src/test/java/eulergui/gui/ActionNAMEComponentChooser.java 2010-03-15 14:28:26 UTC (rev 1310)
+++ trunk/eulergui/src/test/java/eulergui/gui/ActionNAMEComponentChooser.java 2010-03-15 14:43:59 UTC (rev 1311)
@@ -29,11 +29,15 @@
AbstractButton b = (AbstractButton) c;
Action a = b.getAction();
if( a != null ) {
+ Object actionName = a.getValue(Action.NAME);
+ if( actionName == null ) {
+ return false;
+ }
if( usingRegularExpression ) {
- if( ((String) a.getValue(Action.NAME)).matches(actionNAME) ) {
+ if( ((String) actionName).matches(actionNAME) ) {
return true;
}
- } else if( actionNAME.equals( a.getValue(Action.NAME) ) ) {
+ } else if( actionNAME.equals( actionName ) ) {
return true;
}
}
Modified: trunk/eulergui/src/test/java/eulergui/gui/TestN3Source.java
===================================================================
--- trunk/eulergui/src/test/java/eulergui/gui/TestN3Source.java 2010-03-15 14:28:26 UTC (rev 1310)
+++ trunk/eulergui/src/test/java/eulergui/gui/TestN3Source.java 2010-03-15 14:43:59 UTC (rev 1311)
@@ -28,6 +28,8 @@
assertTrue( "button_operator.isValid()", button_operator.isValid() );
assertTrue( "button_operator.isVisible()", button_operator.isVisible() );
assertTrue( "button_operator.isShowing()", button_operator.isShowing() );
-
+
+ // TODO remove when the regression is solved
+ Thread.sleep( 3000 );
}
}
Added: trunk/eulergui/test/empty_project.n3p
===================================================================
--- trunk/eulergui/test/empty_project.n3p (rev 0)
+++ trunk/eulergui/test/empty_project.n3p 2010-03-15 14:43:59 UTC (rev 1311)
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<java version="1.6.0_18-ea" class="java.beans.XMLDecoder">
+ <object class="eulergui.project.Project"/>
+</java>
Added: trunk/eulergui/test/errors-in-editor.n3
===================================================================
--- trunk/eulergui/test/errors-in-editor.n3 (rev 0)
+++ trunk/eulergui/test/errors-in-editor.n3 2010-03-15 14:43:59 UTC (rev 1311)
@@ -0,0 +1,8 @@
+:e :e :e .
+:e :e :e .
+:e :e :e .
+:e :e :e .
+:e :e :e .
+
+:e :e e .
+:error .
Added: trunk/eulergui/test/errors-in-editor.n3p
===================================================================
--- trunk/eulergui/test/errors-in-editor.n3p (rev 0)
+++ trunk/eulergui/test/errors-in-editor.n3p 2010-03-15 14:43:59 UTC (rev 1311)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<java version="1.6.0_18" class="java.beans.XMLDecoder">
+ <object class="eulergui.project.Project">
+ <void property="sources">
+ <void method="put">
+ <string>./errors-in-editor.n3</string>
+ <object class="eulergui.project.N3Source">
+ <void property="URI">
+ <string>./errors-in-editor.n3</string>
+ </void>
+ </object>
+ </void>
+ </void>
+ </object>
+</java>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jm...@us...> - 2010-03-15 14:28:40
|
Revision: 1310
http://eulergui.svn.sourceforge.net/eulergui/?rev=1310&view=rev
Author: jmvanel
Date: 2010-03-15 14:28:26 +0000 (Mon, 15 Mar 2010)
Log Message:
-----------
Made a test to capture this regression:
empty project ==> add source N3 ==> the hyperlink does not appear
==> Save the project ==> re-open the project ==> it appears
Alas the test passes ! the new button is here and active but not really visible !!
Added Paths:
-----------
trunk/eulergui/src/test/java/eulergui/gui/TestN3Source.java
Added: trunk/eulergui/src/test/java/eulergui/gui/TestN3Source.java
===================================================================
--- trunk/eulergui/src/test/java/eulergui/gui/TestN3Source.java (rev 0)
+++ trunk/eulergui/src/test/java/eulergui/gui/TestN3Source.java 2010-03-15 14:28:26 UTC (rev 1310)
@@ -0,0 +1,33 @@
+package eulergui.gui;
+
+import org.netbeans.jemmy.operators.JButtonOperator;
+import org.netbeans.jemmy.operators.JFileChooserOperator;
+import org.netbeans.jemmy.operators.JFrameOperator;
+
+/** test N3 source manipulations */
+public class TestN3Source extends TestJemmy {
+
+// private static final String NEW_SOURCE_N3 = "new source.n3";
+ private static final String NEW_SOURCE_N3 = "new_source.n3";
+
+ public void testAddNewN3Source() throws Exception {
+
+ launchEulerGUIWithArgument( "test/empty_project.n3p" ); // NEW_SOURCE_N3 + "p" ); // new project.n3p" );
+ new JButtonOperator( mainFrame,
+ new ActionNAMEComponentChooser(
+ "Add N3", true ) )
+ .push();
+ JFileChooserOperator fileChooser = new JFileChooserOperator();
+ fileChooser.chooseFile(NEW_SOURCE_N3);
+ JButtonOperator button_operator = new JButtonOperator( mainFrame, "./" + NEW_SOURCE_N3 );
+ button_operator.push();
+
+// JFrameOperator editorFrame =
+ new JFrameOperator(1);
+
+ assertTrue( "button_operator.isValid()", button_operator.isValid() );
+ assertTrue( "button_operator.isVisible()", button_operator.isVisible() );
+ assertTrue( "button_operator.isShowing()", button_operator.isShowing() );
+
+ }
+}
Property changes on: trunk/eulergui/src/test/java/eulergui/gui/TestN3Source.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <iam...@us...> - 2010-03-15 11:29:08
|
Revision: 1309
http://eulergui.svn.sourceforge.net/eulergui/?rev=1309&view=rev
Author: iamlolive
Date: 2010-03-15 11:28:54 +0000 (Mon, 15 Mar 2010)
Log Message:
-----------
tests now rethrow any parsingException (i.e tests will fail on parsing error)
Modified Paths:
--------------
trunk/eulergui/src/test/java/deductions/runtime/TestRulesForUserEvents.java
trunk/eulergui/src/test/java/eulergui/drools_engine/RETETest.java
trunk/eulergui/src/test/java/n3_project/StressTestReasoning.java
trunk/eulergui/src/test/java/n3_project/TestProjectSequence.java
trunk/eulergui/src/test/java/n3_project/helpers/TestDroolsQuery.java
Modified: trunk/eulergui/src/test/java/deductions/runtime/TestRulesForUserEvents.java
===================================================================
--- trunk/eulergui/src/test/java/deductions/runtime/TestRulesForUserEvents.java 2010-03-15 11:27:15 UTC (rev 1308)
+++ trunk/eulergui/src/test/java/deductions/runtime/TestRulesForUserEvents.java 2010-03-15 11:28:54 UTC (rev 1309)
@@ -9,6 +9,7 @@
import junit.framework.TestCase;
import n3_project.helpers.ITriple;
import n3_project.helpers.Triple;
+import net.sf.parser4j.parser.service.ParserException;
import unif.TripleStoreDrools;
import unif.TripleUser;
import eulergui.project.N3Source;
@@ -173,7 +174,7 @@
* 2. create the form from a Resource being an OWL Class instance 3.
* @throws MalformedURLException
*/
- public void testFormFromClass() throws MalformedURLException {
+ public void testFormFromClass() throws MalformedURLException, ParserException {
Project project0 = getTestProjectFromURL("person_test2.n3p");
ProjectSequence project = new ProjectSequence( project0 );
Project post = new Project();
@@ -205,7 +206,7 @@
* cf {@link GUIKBAdapter#focusLost(java.awt.event.FocusEvent)
* @throws MalformedURLException
*/
- public void /*pending*/testFocusLost() throws MalformedURLException {
+ public void /*pending*/testFocusLost() throws MalformedURLException, ParserException {
Project project0 = getTestProjectFromURL("person_test.n3p");
List<ITriple> triples =
project0.runDroolsTriples();
Modified: trunk/eulergui/src/test/java/eulergui/drools_engine/RETETest.java
===================================================================
--- trunk/eulergui/src/test/java/eulergui/drools_engine/RETETest.java 2010-03-15 11:27:15 UTC (rev 1308)
+++ trunk/eulergui/src/test/java/eulergui/drools_engine/RETETest.java 2010-03-15 11:28:54 UTC (rev 1309)
@@ -46,7 +46,7 @@
/** N3 to Drools translation and Drools launching
* is called exactly like in class {@link Project} */
- public void testRunDrools() {
+ public void testRunDrools() throws ParserException {
N3SourcetoDrools trans = new N3SourcetoDrools();
trans.translate( new N3Source(n3Source) );
trans.setQuery(true);
Modified: trunk/eulergui/src/test/java/n3_project/StressTestReasoning.java
===================================================================
--- trunk/eulergui/src/test/java/n3_project/StressTestReasoning.java 2010-03-15 11:27:15 UTC (rev 1308)
+++ trunk/eulergui/src/test/java/n3_project/StressTestReasoning.java 2010-03-15 11:28:54 UTC (rev 1309)
@@ -10,6 +10,7 @@
import n3_project.helpers.TripleResult;
import eulergui.project.N3Source;
import eulergui.project.Project;
+import net.sf.parser4j.parser.service.ParserException;
/** Stress Test for Drools N3 Reasoning, using {@link RandomGraphMaker} */
public class StressTestReasoning {
@@ -37,7 +38,7 @@
* link_Count will be computed as {@link #nodeCount}*
* {@link #LINK_TO_NODE_RATIO} ) or --measure node_Count ...
*/
- public static void main(String[] args) {
+ public static void main(String[] args) throws ParserException {
int nodeCount = 30;
int linkCount = 9;
@@ -87,10 +88,12 @@
+ "results writen to file " + MEASURE_FILE);
} catch (IOException e) {
e.printStackTrace();
- }
- }
+ } catch (ParserException e) {
+ e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
+ }
+ }
- void runTest() {
+ void runTest() throws ParserException {
// make Random Graph //
@@ -134,7 +137,7 @@
return p;
}
- private void processProjectWithDrools(Project p) {
+ private void processProjectWithDrools(Project p) throws ParserException {
// N3SourcetoDrools.setSaveRulesOnDisk(true);
p.translateN32Drools();
p.getTranslator().copyN3factsToDrools();
Modified: trunk/eulergui/src/test/java/n3_project/TestProjectSequence.java
===================================================================
--- trunk/eulergui/src/test/java/n3_project/TestProjectSequence.java 2010-03-15 11:27:15 UTC (rev 1308)
+++ trunk/eulergui/src/test/java/n3_project/TestProjectSequence.java 2010-03-15 11:28:54 UTC (rev 1309)
@@ -9,78 +9,107 @@
import junit.framework.TestCase;
import n3_project.helpers.ITriple;
+import net.sf.parser4j.parser.service.ParserException;
public class TestProjectSequence extends TestCase {
- @Override
- protected void setUp() throws Exception {}
- @Override
- protected void tearDown() throws Exception {}
+ @Override
+ protected void setUp() throws Exception {
+ }
- /** test postproc alone */
- public void testpostproc() {
- Project project = Project.restore( new File(
- "test/postproc.n3p" ) );
- List<ITriple> tr = project.runDroolsTriples();
- assert_postproc(tr);
- /*
- * # queryTripleResults
-<http://example.com#c> <http://example.com#cc>
-<http://example.com#ccc> . #R
- */
- }
-
- /**
- * @param tr
- */
- private void assert_postproc(List<ITriple> tr) {
- boolean passTest = false;
- for (ITriple triple : tr) {
- System.out.println( triple );
- if(
- "<http://example.com#c>".equals( triple.getSubject() )
- &&
- "<http://example.com#cc>".equals( triple.getPredicate() )
- ) {
- passTest = true; }
- }
- assertTrue("must have a result with subject \n" +
- "<http://example.com#c>",
- passTest );
- }
+ @Override
+ protected void tearDown() throws Exception {
+ }
- /** test postproc alone, same as {@link #testpostproc()},
- * but instead of reading project file, build the project by program */
- public void testpostproc_build() {
- ProjectSequence ps = new ProjectSequence();
- String ab = "test/ab.n3";
- ps.getSources().put( ab, new N3Source(new File(ab)) );
- String abq = "test/ab_query.n3";
- ps.addN3Query( new N3Source(new File(abq)) );
- // do not use ps.setPostProcessingURL(), as this is just for XML decoder
- ps.postProcessingURI( new File( "test/postproc2.n3p" ).toURI() );
- List<ITriple> tr = ps.runDroolsTriples();
- assert_postproc(tr);
+ /**
+ * test postproc alone
+ */
+ public void testpostproc() {
+ String projectFileName = "test/postproc.n3p";
+ Project project = Project.restore(new File(
+ projectFileName));
+ List<ITriple> tr = null;
+ try {
+ tr = project.runDroolsTriples();
+ assert_postproc(tr);
+ } catch (ParserException e) {
+ fail("Error while parsing project file \"" + projectFileName + "\": "+e.getMessage());
+ //e.printStackTrace();
+ }
+
+ /*
+ * # queryTripleResults
+ <http://example.com#c> <http://example.com#cc>
+ <http://example.com#ccc> . #R
+ */
+ }
+
+ /**
+ * @param tr
+ */
+ private void assert_postproc(List<ITriple> tr) {
+ boolean passTest = false;
+ for (ITriple triple : tr) {
+ System.out.println(triple);
+ if (
+ "<http://example.com#c>".equals(triple.getSubject())
+ &&
+ "<http://example.com#cc>".equals(triple.getPredicate())
+ ) {
+ passTest = true;
+ }
+ }
+ assertTrue("must have a result with subject \n" +
+ "<http://example.com#c>",
+ passTest);
+ }
+
+ /**
+ * test postproc alone, same as {@link #testpostproc()},
+ * but instead of reading project file, build the project by program
+ */
+ public void testpostproc_build() throws ParserException {
+ ProjectSequence ps = new ProjectSequence();
+ String ab = "test/ab.n3";
+ ps.getSources().put(ab, new N3Source(new File(ab)));
+ String abq = "test/ab_query.n3";
+ ps.addN3Query(new N3Source(new File(abq)));
+ // do not use ps.setPostProcessingURL(), as this is just for XML decoder
+ ps.postProcessingURI(new File("test/postproc2.n3p").toURI());
+ List<ITriple> tr = ps.runDroolsTriples();
+ assert_postproc(tr);
+ }
+
+ /**
+ * test postproc and import together
+ */
+ public void testpostproc_import() {
+ String projectFileName = "test/postproc_import.n3p";
+ Project project = Project.restore(new File(
+ projectFileName));
+
+ try {
+ List<ITriple> tr = null;
+ tr = project.runDroolsTriples();
+ boolean passTest = false;
+ for (ITriple triple : tr) {
+ System.out.println(triple);
+ if (
+ "<http://example.com#d>".equals(triple.getSubject())
+ &&
+ "<http://example.com#dd>".equals(triple.getPredicate())
+ ) {
+ passTest = true;
+ }
+ }
+ assertTrue("must have a result with subject \n" +
+ "<http://example.com#d>",
+ passTest);
+ assertEquals("must have just one result", 1, tr.size());
+ } catch (ParserException e) {
+ fail("Error while parsing project file \"" + projectFileName + "\": "+e.getMessage());
+ //e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
+ }
+
}
-
- /** test postproc and import together */
- public void testpostproc_import() {
- Project project = Project.restore( new File(
- "test/postproc_import.n3p" ) );
- List<ITriple> tr = project.runDroolsTriples();
- boolean passTest = false;
- for (ITriple triple : tr) {
- System.out.println( triple );
- if(
- "<http://example.com#d>".equals( triple.getSubject() )
- &&
- "<http://example.com#dd>".equals( triple.getPredicate() )
- ) {
- passTest = true; }
- }
- assertTrue("must have a result with subject \n" +
- "<http://example.com#d>",
- passTest );
- assertEquals( "must have just one result", 1, tr.size() );
- }
}
Modified: trunk/eulergui/src/test/java/n3_project/helpers/TestDroolsQuery.java
===================================================================
--- trunk/eulergui/src/test/java/n3_project/helpers/TestDroolsQuery.java 2010-03-15 11:27:15 UTC (rev 1308)
+++ trunk/eulergui/src/test/java/n3_project/helpers/TestDroolsQuery.java 2010-03-15 11:28:54 UTC (rev 1309)
@@ -3,6 +3,7 @@
import java.util.List;
import junit.framework.TestCase;
+import net.sf.parser4j.parser.service.ParserException;
import unif.TripleStoreDrools;
import eulergui.project.N3Source;
import eulergui.project.Project;
@@ -43,7 +44,7 @@
assertEquals( "result.size()", 4, result.size() );
}
- private void prepareDrools() {
+ private void prepareDrools() throws ParserException {
System.out.println( "project.getWorkingMemory(): " +project.getWorkingMemory() );
// compile rules:
project.prepareDrools();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <iam...@us...> - 2010-03-15 11:27:24
|
Revision: 1308
http://eulergui.svn.sourceforge.net/eulergui/?rev=1308&view=rev
Author: iamlolive
Date: 2010-03-15 11:27:15 +0000 (Mon, 15 Mar 2010)
Log Message:
-----------
automatically opening an editor for each malparsed N3Source.
Modified Paths:
--------------
trunk/eulergui/src/main/java/n3_project/ResultManagement.java
trunk/eulergui/src/main/java/n3_project/RunAction.java
trunk/eulergui/src/main/java/n3_project/RunDroolsAction.java
Modified: trunk/eulergui/src/main/java/n3_project/ResultManagement.java
===================================================================
--- trunk/eulergui/src/main/java/n3_project/ResultManagement.java 2010-03-15 11:24:32 UTC (rev 1307)
+++ trunk/eulergui/src/main/java/n3_project/ResultManagement.java 2010-03-15 11:27:15 UTC (rev 1308)
@@ -17,9 +17,12 @@
import javax.swing.WindowConstants;
import javax.swing.text.BadLocationException;
+import eulergui.gui.view.TextEditor;
+import eulergui.parser.n3.impl.parser4j.entity.N3ParseResult;
+import eulergui.project.N3Source;
import n3_project.helpers.ITriple;
-import eulergui.project.N3Source;
+
/**
* Result Management: error display
*
@@ -205,7 +208,15 @@
return clearBeforeRunMode;
}
- private final class ViewAction extends LocalAction {
+ public void displayOriginalSourceWithErrors(eulergui.project.N3Source source, N3ParseResult result) {
+ TextEditor editor = new TextEditor();
+ editor.displayEditor( projectGUI, source);
+ editor.setToolTipText(result.getErrorMessage());
+ editor.setCaretPosition(result.getParseResult().getLineNumber(), result.getParseResult().getColumnNumber());
+
+ }
+
+ private final class ViewAction extends LocalAction {
private static final long serialVersionUID = 1L;
private ViewAction(String text) {
Modified: trunk/eulergui/src/main/java/n3_project/RunAction.java
===================================================================
--- trunk/eulergui/src/main/java/n3_project/RunAction.java 2010-03-15 11:24:32 UTC (rev 1307)
+++ trunk/eulergui/src/main/java/n3_project/RunAction.java 2010-03-15 11:27:15 UTC (rev 1308)
@@ -2,7 +2,10 @@
import java.awt.event.ActionEvent;
+import eulergui.parser.n3.impl.parser4j.entity.N3ParseResult;
+import eulergui.project.N3Source;
import eulergui.project.Project;
+import n3_project.exceptions.parser.ParsingException;
/** GUI Action for running Euler reasoning engine */
class RunAction extends RunAbstractAction {
@@ -34,7 +37,18 @@
// "# CPU Time: " + Long.toString(project.getCPUTime() ) + " ms" );
} catch (Exception e1) {
System.err.println(e1);
- resultManagement.displayStandardError();
+ boolean fineGrainedErrorCouldBeCharacterized = false;
+ if(e1 instanceof ParsingException){
+ ParsingException parsingException = (ParsingException)e1;
+ if(parsingException.getSource()!=null) {
+ fineGrainedErrorCouldBeCharacterized = true;
+ N3Source source = parsingException.getSource();
+ N3ParseResult result = parsingException.getResult();
+ resultManagement.displayOriginalSourceWithErrors(source, result);
+ }
+ }
+ if(!fineGrainedErrorCouldBeCharacterized)
+ resultManagement.displayStandardError();
}
}
}
Modified: trunk/eulergui/src/main/java/n3_project/RunDroolsAction.java
===================================================================
--- trunk/eulergui/src/main/java/n3_project/RunDroolsAction.java 2010-03-15 11:24:32 UTC (rev 1307)
+++ trunk/eulergui/src/main/java/n3_project/RunDroolsAction.java 2010-03-15 11:27:15 UTC (rev 1308)
@@ -2,6 +2,8 @@
import java.awt.event.ActionEvent;
+import n3_project.exceptions.parser.ParsingException;
+import net.sf.parser4j.parser.service.ParserException;
import org.apache.log4j.Logger;
import eulergui.project.Project;
@@ -37,12 +39,16 @@
// TripleStoreDrools.detectException(tripleStore);
// }
// resultManagement.result = project.runDrools();
+
resultManagement.resultTriples = project.runDroolsTriples();
resultManagement.result = project.getN3StringResult();
displayResultsAndErrors();
- } catch (Exception e1) {
+ } catch(ParsingException ex){
+ resultManagement.displayOriginalSourceWithErrors(ex.getSource(), ex.getResult());
+ }
+ catch (Exception e1) {
_log.error("error",e1);
System.err.println(e1);
resultManagement.displayStandardError();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <iam...@us...> - 2010-03-15 11:24:40
|
Revision: 1307
http://eulergui.svn.sourceforge.net/eulergui/?rev=1307&view=rev
Author: iamlolive
Date: 2010-03-15 11:24:32 +0000 (Mon, 15 Mar 2010)
Log Message:
-----------
rethrowing of the parsingException to the upper level.
Modified Paths:
--------------
trunk/eulergui/src/main/java/eulergui/gui/view/QueryView.java
trunk/eulergui/src/main/java/eulergui/project/Project.java
trunk/eulergui/src/main/java/eulergui/project/ProjectSequence.java
trunk/eulergui/src/main/java/eulergui/project/ProjectWithSubProjects.java
trunk/eulergui/src/main/java/n3_project/ProjectFileManagement.java
trunk/eulergui/src/main/java/n3_project/helpers/N3SourcetoDrools.java
trunk/eulergui/src/main/java/n3_project/helpers/N3toDroolsUpdater.java
Modified: trunk/eulergui/src/main/java/eulergui/gui/view/QueryView.java
===================================================================
--- trunk/eulergui/src/main/java/eulergui/gui/view/QueryView.java 2010-03-15 11:11:49 UTC (rev 1306)
+++ trunk/eulergui/src/main/java/eulergui/gui/view/QueryView.java 2010-03-15 11:24:32 UTC (rev 1307)
@@ -64,10 +64,11 @@
@Override
public void actionPerformed(ActionEvent e) {
// <<<<<<<< TODO should be in actions package
- projectGUI.getProject().prepareDrools();
+
+ try {
+ projectGUI.getProject().prepareDrools();
projectGUI.getProject().getTranslator().copyN3factsToDrools();
String searchName = n3.getURI();
- try {
projectGUI.getProject().getTranslator().translateQuery( n3);
List<ITriple> result = projectGUI.getProject().search(
searchName, null);
Modified: trunk/eulergui/src/main/java/eulergui/project/Project.java
===================================================================
--- trunk/eulergui/src/main/java/eulergui/project/Project.java 2010-03-15 11:11:49 UTC (rev 1306)
+++ trunk/eulergui/src/main/java/eulergui/project/Project.java 2010-03-15 11:24:32 UTC (rev 1307)
@@ -37,6 +37,7 @@
import n3_project.helpers.ITriple;
import n3_project.helpers.N3toDroolsUpdater;
+import net.sf.parser4j.parser.service.ParserException;
import org.drools.RuleBase;
import org.drools.WorkingMemory;
@@ -710,14 +711,20 @@
* only used in TestProject.testReasonDrools() */
public N3Source runDrools() {
setErrors(null);
+ try {
doRunDrools();
+ } catch(ParserException e){
+ e.printStackTrace();
+ //TODO very bad exception handling below :
+ throw new RuntimeException("Drools was unable to parse an input file. Exiting.", e);
+ }
return getN3StringResult();
// return new N3Source(translator.getN3StringResult());
}
/** run Drools and return Triples,
* avoiding parsing the result */
- public List<ITriple> runDroolsTriples() {
+ public List<ITriple> runDroolsTriples() throws ParserException {
setErrors(null);
doRunDrools();
return getTranslator().getN3Result();
@@ -733,7 +740,7 @@
/**
* bare Drools Run
*/
- private void doRunDrools() {
+ private void doRunDrools() throws ParserException {
prepareDrools();
if( debug ) {
@@ -748,7 +755,7 @@
/** initialize Drools, and translate N3 rules to Drools;
* N3 facts are *not* inserted into the Working Memory */
- public void prepareDrools() {
+ public void prepareDrools() throws ParserException {
initializeDrools();
getTranslator().prepare();
translateN32Drools();
@@ -759,7 +766,7 @@
* see {@link N3toDroolsUpdater#getFactsTriples()};
* the Rules are fed to the Rule Base; see {@link #getRuleBase()}
*/
- public void translateN32Drools() {
+ public void translateN32Drools() throws ParserException {
// copy sources to avoid ConcurrentModificationException
Collection<N3Source> sources_ = new ArrayList<N3Source>(sources.values());
Modified: trunk/eulergui/src/main/java/eulergui/project/ProjectSequence.java
===================================================================
--- trunk/eulergui/src/main/java/eulergui/project/ProjectSequence.java 2010-03-15 11:11:49 UTC (rev 1306)
+++ trunk/eulergui/src/main/java/eulergui/project/ProjectSequence.java 2010-03-15 11:24:32 UTC (rev 1307)
@@ -15,6 +15,7 @@
import n3_project.helpers.SimplifiedURI;
import n3_project.helpers.TripleResult;
+import net.sf.parser4j.parser.service.ParserException;
import org.drools.RuleBase;
import org.drools.WorkingMemory;
@@ -139,11 +140,11 @@
}
@Override
- public List<ITriple> runDroolsTriples() {
+ public List<ITriple> runDroolsTriples() throws ParserException {
return runDroolsTriples( null );
}
- public List<ITriple> runDroolsTriples(List<ITriple> intermediary) {
+ public List<ITriple> runDroolsTriples(List<ITriple> intermediary) throws ParserException {
List<ITriple> result = super.runDroolsTriples();
if( intermediary != null ) {
intermediary.addAll(result); }
Modified: trunk/eulergui/src/main/java/eulergui/project/ProjectWithSubProjects.java
===================================================================
--- trunk/eulergui/src/main/java/eulergui/project/ProjectWithSubProjects.java 2010-03-15 11:11:49 UTC (rev 1306)
+++ trunk/eulergui/src/main/java/eulergui/project/ProjectWithSubProjects.java 2010-03-15 11:24:32 UTC (rev 1307)
@@ -14,6 +14,7 @@
import n3_project.helpers.ITriple;
import n3_project.helpers.SimplifiedURI;
+import net.sf.parser4j.parser.service.ParserException;
import org.drools.RuleBase;
import org.drools.WorkingMemory;
@@ -120,7 +121,7 @@
* @see eulergui.project.Project#runDroolsTriples()
*/
@Override
- public List<ITriple> runDroolsTriples() {
+ public List<ITriple> runDroolsTriples() throws ParserException {
gathering = gather();
return gathering.runDroolsTriples();
}
Modified: trunk/eulergui/src/main/java/n3_project/ProjectFileManagement.java
===================================================================
--- trunk/eulergui/src/main/java/n3_project/ProjectFileManagement.java 2010-03-15 11:11:49 UTC (rev 1306)
+++ trunk/eulergui/src/main/java/n3_project/ProjectFileManagement.java 2010-03-15 11:24:32 UTC (rev 1307)
@@ -20,6 +20,7 @@
import eulergui.project.Project;
import eulergui.project.ProjectSequence;
import eulergui.project.ProjectWithSubProjects;
+import net.sf.parser4j.parser.service.ParserException;
/**
* Project File Management: open, open from URL, save, save as, new,
@@ -223,7 +224,12 @@
N3SourcetoDrools.setSaveRulesOnDisk(true);
p.runDroolsTriples();
N3SourcetoDrools.setSaveRulesOnDisk(false);
- } catch (Exception e1) {
+
+ } catch(ParserException ex){
+ //TODO shall we do something else (i.e something specific) when parsing of input file fails?
+ ex.printStackTrace();
+ } catch (Exception e1) {
+
e1.printStackTrace();
}
}
Modified: trunk/eulergui/src/main/java/n3_project/helpers/N3SourcetoDrools.java
===================================================================
--- trunk/eulergui/src/main/java/n3_project/helpers/N3SourcetoDrools.java 2010-03-15 11:11:49 UTC (rev 1306)
+++ trunk/eulergui/src/main/java/n3_project/helpers/N3SourcetoDrools.java 2010-03-15 11:24:32 UTC (rev 1307)
@@ -14,6 +14,8 @@
import java.util.Set;
import java.util.TreeMap;
+import n3_project.exceptions.parser.ParsingException;
+import net.sf.parser4j.parser.service.ParserException;
import org.drools.FactException;
import org.drools.ObjectFilter;
import org.drools.RuleBase;
@@ -182,7 +184,7 @@
}
}
- public List<ITriple> translate(N3Source rdfModel) {
+ public List<ITriple> translate(N3Source rdfModel) throws ParserException {
lastN3Source = rdfModel;
current_document = rdfModel.uri();
List<ITriple> facts = Collections.emptyList();
@@ -200,7 +202,12 @@
facts = translate(parserLink);
} catch ( Exception e ) {
e.printStackTrace();
- }
+ if (e instanceof ParsingException) {
+ ((ParsingException)e).setSource(rdfModel);
+ }
+ if(e instanceof ParserException)
+ throw (ParserException)e;
+ }
}
return facts;
}
Modified: trunk/eulergui/src/main/java/n3_project/helpers/N3toDroolsUpdater.java
===================================================================
--- trunk/eulergui/src/main/java/n3_project/helpers/N3toDroolsUpdater.java 2010-03-15 11:11:49 UTC (rev 1306)
+++ trunk/eulergui/src/main/java/n3_project/helpers/N3toDroolsUpdater.java 2010-03-15 11:24:32 UTC (rev 1307)
@@ -10,6 +10,7 @@
import java.util.Set;
import java.util.TreeMap;
+import net.sf.parser4j.parser.service.ParserException;
import org.drools.QueryResult;
import org.drools.QueryResults;
import org.drools.RuleBase;
@@ -51,7 +52,7 @@
translator.setQuery(isQuery);
}
- public List<ITriple> translate(N3Source rdfModel) {
+ public List<ITriple> translate(N3Source rdfModel) throws ParserException {
if (uptodate(rdfModel)) {
System.out.println("Compilation of " + rdfModel.getURI()
+ " is uptodate.");
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <iam...@us...> - 2010-03-15 11:11:56
|
Revision: 1306
http://eulergui.svn.sourceforge.net/eulergui/?rev=1306&view=rev
Author: iamlolive
Date: 2010-03-15 11:11:49 +0000 (Mon, 15 Mar 2010)
Log Message:
-----------
ParsingException is a sophisticated version of ParserException (from parser4j) that holds the parsed N3Source.
Added Paths:
-----------
trunk/eulergui/src/main/java/n3_project/exceptions/
trunk/eulergui/src/main/java/n3_project/exceptions/parser/
trunk/eulergui/src/main/java/n3_project/exceptions/parser/ParsingException.java
Added: trunk/eulergui/src/main/java/n3_project/exceptions/parser/ParsingException.java
===================================================================
--- trunk/eulergui/src/main/java/n3_project/exceptions/parser/ParsingException.java (rev 0)
+++ trunk/eulergui/src/main/java/n3_project/exceptions/parser/ParsingException.java 2010-03-15 11:11:49 UTC (rev 1306)
@@ -0,0 +1,37 @@
+package n3_project.exceptions.parser;
+
+import eulergui.parser.n3.impl.parser4j.entity.N3ParseResult;
+
+
+import eulergui.project.N3Source;
+import net.sf.parser4j.parser.service.ParserException;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: lolive
+ * Date: 12 mars 2010
+ * Time: 09:55:41
+ * To change this template use File | Settings | File Templates.
+ */
+public class ParsingException extends ParserException {
+ public N3Source getSource() {
+ return source;
+ }
+
+ public void setSource(N3Source source) {
+ this.source = source;
+ }
+
+ private N3Source source;
+
+ public N3ParseResult getResult() {
+ return source.getParseResult();
+ }
+
+ private N3ParseResult result;
+
+ public ParsingException(N3Source source){
+ super(source.getParseResult().getErrorMessage());
+ this.source = source;
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <iam...@us...> - 2010-03-15 11:10:50
|
Revision: 1305
http://eulergui.svn.sourceforge.net/eulergui/?rev=1305&view=rev
Author: iamlolive
Date: 2010-03-15 11:10:44 +0000 (Mon, 15 Mar 2010)
Log Message:
-----------
parserLink now fills the parseResult of each N3Source it has handled. plus it returns a more sophisticated exception when parsing has failed.
Modified Paths:
--------------
trunk/eulergui/src/main/java/eulergui/drools_engine/ParserLink.java
Modified: trunk/eulergui/src/main/java/eulergui/drools_engine/ParserLink.java
===================================================================
--- trunk/eulergui/src/main/java/eulergui/drools_engine/ParserLink.java 2010-03-15 11:09:19 UTC (rev 1304)
+++ trunk/eulergui/src/main/java/eulergui/drools_engine/ParserLink.java 2010-03-15 11:10:44 UTC (rev 1305)
@@ -1,13 +1,6 @@
package eulergui.drools_engine;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.StringReader;
+import java.io.*;
import java.net.URI;
import java.net.URL;
import java.util.ArrayList;
@@ -19,6 +12,7 @@
import java.util.Map;
import java.util.Set;
+import n3_project.exceptions.parser.ParsingException;
import n3_project.helpers.Triple;
import net.sf.parser4j.parser.service.IParserListener;
import net.sf.parser4j.parser.service.ParserException;
@@ -105,7 +99,7 @@
}
/** PENDING: n3Source could be a non-N3 format */
- public IN3Model parse( N3Source n3Source ) throws Exception {
+ public IN3Model parse( N3Source n3Source ) throws ParserException, IOException {
makeN3Parser();
modelURI = n3Source.uri();
N3ParseResult n3ParseResult = null;
@@ -130,8 +124,9 @@
}
if( n3ParseResult != null ) {
+ n3Source.setParseResult(n3ParseResult);
if( n3ParseResult.isInError() ) {
- throw new ParserException( n3ParseResult.getErrorMessage() );
+ throw new ParsingException( n3Source );
}
model = n3ParseResult.getModel();
}
@@ -141,7 +136,7 @@
/** parse N3 Source, And Update Known URI Prefixes;
* also wait For Download Thread if any */
public IN3Model parseAndUpdateSource( N3Source n3Source )
- throws Exception {
+ throws ParserException, IOException {
long t0 = System.currentTimeMillis();
n3Source.waitForDownloadThread();
model = parse(n3Source);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <iam...@us...> - 2010-03-15 11:09:33
|
Revision: 1304
http://eulergui.svn.sourceforge.net/eulergui/?rev=1304&view=rev
Author: iamlolive
Date: 2010-03-15 11:09:19 +0000 (Mon, 15 Mar 2010)
Log Message:
-----------
N3Source now holds its parserResult. Useful to check whether it was correctly parsed, or not, if a parsing error can be located inside the file, and more...
Modified Paths:
--------------
trunk/eulergui/src/main/java/eulergui/project/N3Source.java
Modified: trunk/eulergui/src/main/java/eulergui/project/N3Source.java
===================================================================
--- trunk/eulergui/src/main/java/eulergui/project/N3Source.java 2010-03-15 10:52:28 UTC (rev 1303)
+++ trunk/eulergui/src/main/java/eulergui/project/N3Source.java 2010-03-15 11:09:19 UTC (rev 1304)
@@ -12,6 +12,7 @@
import java.util.TreeSet;
import java.util.Map.Entry;
+import eulergui.parser.n3.impl.parser4j.entity.N3ParseResult;
import n3_project.helpers.SimplifiedURI;
import unif.Instanciator;
import eulergui.drools_engine.ParserLink;
@@ -31,6 +32,20 @@
// private static int fileCount;
private Project project;
+ public N3ParseResult getParseResult() {
+ return parseResult;
+ }
+
+ public void setParseResult(N3ParseResult parseResult) {
+ this.parseResult = parseResult;
+ }
+
+ public boolean isInError() {
+ return (parseResult!=null && parseResult.isInError());
+ }
+
+ public N3ParseResult parseResult = null;
+
protected SimplifiedURI simplifiedURI;
String url;
private String uri_;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <iam...@us...> - 2010-03-15 10:52:42
|
Revision: 1303
http://eulergui.svn.sourceforge.net/eulergui/?rev=1303&view=rev
Author: iamlolive
Date: 2010-03-15 10:52:28 +0000 (Mon, 15 Mar 2010)
Log Message:
-----------
TextEditor now maps some features from jEdit: caret positioning , tooltip over text.
This last feature is not tied to any useful feature at the moment (i.e the tooltip is "toto", but the next step is to add a contextual tooltip).
Modified Paths:
--------------
trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java
Modified: trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java
===================================================================
--- trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java 2010-03-14 16:22:16 UTC (rev 1302)
+++ trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java 2010-03-15 10:52:28 UTC (rev 1303)
@@ -1,7 +1,7 @@
package eulergui.gui.view;
-import java.awt.HeadlessException;
-import java.awt.Window;
+import java.awt.*;
+import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
@@ -28,6 +28,7 @@
import org.syntax.jedit.JEditTextArea;
import org.syntax.jedit.SyntaxDocument;
+import org.syntax.jedit.TextAreaPainter;
import org.syntax.jedit.tokenmarker.ShellScriptTokenMarker;
import org.syntax.jedit.tokenmarker.TokenMarker;
import org.syntax.jedit.tokenmarker.XMLTokenMarker;
@@ -111,6 +112,56 @@
return jedit;
}
+ public void setCaretPosition(int line, int col){
+ if(line>=1)
+ line--;
+ if(col>=1)
+ col--;
+
+ int position = jedit.getLineStartOffset(line) + col;
+ //TODO the parser erroneously places the end of line errors. They are placed at the beginning of the next line. We correct that behaviour (on purpose?)
+ if(col==0)
+ position--;
+ setCaretPosition(position);
+ }
+
+ private void setCaretPosition(int position) {
+ jedit.setCaretVisible(true);
+ jedit.setCaretPosition(position);
+ jedit.scrollToCaret();
+ }
+
+
+ public int getCaretPosition(){
+ return jedit.getCaretPosition();
+ }
+
+ public void setToolTipText(String text){
+ jedit.getPainter().addCustomHighlight(new TextAreaPainter.Highlight(){
+
+ @Override
+ public void init(JEditTextArea textArea, TextAreaPainter.Highlight next) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public void paintHighlight(Graphics gfx, int line, int y) {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ @Override
+ public String getToolTipText(MouseEvent evt) {
+ return "toto"; //To change body of implemented methods use File | Settings | File Templates.
+ }
+ });
+ }
+
+ public String getToolTipText(){
+ return jedit.getToolTipText();
+ }
+
+
+
/** display Editor in a new Window, with save As in File menu */
public void displayEditor( ProjectGUI projectGUI, String toOpen ) {
JFrame jf = new JFrame( );
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jm...@us...> - 2010-03-14 17:09:50
|
Revision: 1302
http://eulergui.svn.sourceforge.net/eulergui/?rev=1302&view=rev
Author: jmvanel
Date: 2010-03-14 16:22:16 +0000 (Sun, 14 Mar 2010)
Log Message:
-----------
By mistake in Revision 1298 the WindowListener exitOnLastWindowClosed was not deactivated as intended.
Note that this stopped the test suite prematurely.
Revision Links:
--------------
http://eulergui.svn.sourceforge.net/eulergui/?rev=1298&view=rev
Modified Paths:
--------------
trunk/eulergui/src/main/java/n3_project/ProjectGUI.java
Modified: trunk/eulergui/src/main/java/n3_project/ProjectGUI.java
===================================================================
--- trunk/eulergui/src/main/java/n3_project/ProjectGUI.java 2010-03-14 16:02:43 UTC (rev 1301)
+++ trunk/eulergui/src/main/java/n3_project/ProjectGUI.java 2010-03-14 16:22:16 UTC (rev 1302)
@@ -216,7 +216,7 @@
}
};
addWindowListener(projectSaver);
- addWindowListener(exitOnLastWindowClosed);
+// addWindowListener(exitOnLastWindowClosed);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
new HelpMenu(this);
setJMenuBar(menuBar);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jm...@us...> - 2010-03-14 16:02:49
|
Revision: 1301
http://eulergui.svn.sourceforge.net/eulergui/?rev=1301&view=rev
Author: jmvanel
Date: 2010-03-14 16:02:43 +0000 (Sun, 14 Mar 2010)
Log Message:
-----------
GUI enhancement: glue together the components between the button bar and the bottom text panel, so that the bottom text panel can grow in size.
Modified Paths:
--------------
trunk/eulergui/src/main/java/eulergui/gui/view/ButtonsForN3Source.java
trunk/eulergui/src/main/java/n3_project/ProjectGUI.java
trunk/eulergui/src/main/java/n3_project/RunOptionsManagement.java
trunk/eulergui/src/main/java/n3_project/SourceFilesView.java
trunk/eulergui/src/main/java/n3_project/SubProjectsManagement.java
Modified: trunk/eulergui/src/main/java/eulergui/gui/view/ButtonsForN3Source.java
===================================================================
--- trunk/eulergui/src/main/java/eulergui/gui/view/ButtonsForN3Source.java 2010-03-14 12:29:29 UTC (rev 1300)
+++ trunk/eulergui/src/main/java/eulergui/gui/view/ButtonsForN3Source.java 2010-03-14 16:02:43 UTC (rev 1301)
@@ -45,6 +45,8 @@
boolean isActivated = n3.isActivated();
subPanel = this;
+// sourceFilesView.getButtonsPanel().add( Box.createVerticalGlue() );
+// sourceFilesView.getButtonsPanel().add( Box.createRigidArea(new Dimension(0,5)) );
sourceFilesView.getButtonsPanel().add(subPanel);
if (!isActivated) {
subPanel.setBackground(Color.WHITE);
@@ -207,6 +209,9 @@
subPanel.add(parserButton);
// ----------------
+// subPanel.setPreferredSize(new Dimension( editButton.getHeight(), 800 ));
+// subPanel.setMaximumSize( new Dimension( editButton.getHeight(), 800 ));
+
projectGUI.getCenterPanel().validate();
projectGUI.getCenterPanel().invalidate();
}
Modified: trunk/eulergui/src/main/java/n3_project/ProjectGUI.java
===================================================================
--- trunk/eulergui/src/main/java/n3_project/ProjectGUI.java 2010-03-14 12:29:29 UTC (rev 1300)
+++ trunk/eulergui/src/main/java/n3_project/ProjectGUI.java 2010-03-14 16:02:43 UTC (rev 1301)
@@ -230,8 +230,7 @@
getCenterPanel().add(runOptionsManagement.getJComponent());
sourceFilesView.makeButtonsPanel();
-// JScrollPane scrollPane = new JScrollPane(getTextPane());
-// getCenterPanel().add(scrollPane);
+// getContentPane().add( getTextPane().getComponent(), BorderLayout.SOUTH);
getCenterPanel().add( getTextPane().getComponent() );
pack();
Modified: trunk/eulergui/src/main/java/n3_project/RunOptionsManagement.java
===================================================================
--- trunk/eulergui/src/main/java/n3_project/RunOptionsManagement.java 2010-03-14 12:29:29 UTC (rev 1300)
+++ trunk/eulergui/src/main/java/n3_project/RunOptionsManagement.java 2010-03-14 16:02:43 UTC (rev 1301)
@@ -1,5 +1,7 @@
package n3_project;
+import java.awt.Dimension;
+
import javax.swing.BoxLayout;
import javax.swing.JComponent;
import javax.swing.JPanel;
@@ -18,7 +20,16 @@
}
JComponent getJComponent() {
- component = new JPanel();
+ component = new JPanel(){
+ private static final long serialVersionUID = 1L;
+ public Dimension getMaximumSize() {
+ Dimension d0 = getPreferredSize();
+ Dimension d = new Dimension(d0);
+ // apparently this value means "no constraint" :
+ d.width = Short.MAX_VALUE;
+ return d;
+ }
+ };
component.setLayout(new BoxLayout(component, BoxLayout.Y_AXIS));
eulerField = new TextFieldWithLabel("Euler args", "");
component.add(eulerField);
Modified: trunk/eulergui/src/main/java/n3_project/SourceFilesView.java
===================================================================
--- trunk/eulergui/src/main/java/n3_project/SourceFilesView.java 2010-03-14 12:29:29 UTC (rev 1300)
+++ trunk/eulergui/src/main/java/n3_project/SourceFilesView.java 2010-03-14 16:02:43 UTC (rev 1301)
@@ -64,6 +64,12 @@
fireEventsToUpdateN3SourceComponents();
+ // glue together the buttons for N3 sources
+ getButtonsPanel().setMaximumSize( getButtonsPanel().getPreferredSize() );
+// System.out.println("SourceFilesView.makeButtonsPanel(): " +
+// "getButtonsPanel().getPreferredSize(): "
+// + getButtonsPanel().getPreferredSize() );
+
getCenterPanel().validate();
getCenterPanel().invalidate();
getProjectGUI().updateWindowTitle();
Modified: trunk/eulergui/src/main/java/n3_project/SubProjectsManagement.java
===================================================================
--- trunk/eulergui/src/main/java/n3_project/SubProjectsManagement.java 2010-03-14 12:29:29 UTC (rev 1300)
+++ trunk/eulergui/src/main/java/n3_project/SubProjectsManagement.java 2010-03-14 16:02:43 UTC (rev 1301)
@@ -16,6 +16,8 @@
}
JComponent getJComponent() {
+ // glue together the button for the sub-Project with the others components in their parent
+ panel.setMaximumSize( panel.getPreferredSize() );
return panel;
}
@@ -25,7 +27,7 @@
subProject, "imported: " );
if( button != null ) {
panel.add(button);
- panel.validate();
+ panel.validate();
// actually update the GUI with the new button
projectGUI.pack();
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jm...@us...> - 2010-03-14 12:29:37
|
Revision: 1300
http://eulergui.svn.sourceforge.net/eulergui/?rev=1300&view=rev
Author: jmvanel
Date: 2010-03-14 12:29:29 +0000 (Sun, 14 Mar 2010)
Log Message:
-----------
add example optional.n3
Added Paths:
-----------
trunk/eulergui/examples/optional.n3
trunk/eulergui/examples/optional.n3p
Added: trunk/eulergui/examples/optional.n3
===================================================================
--- trunk/eulergui/examples/optional.n3 (rev 0)
+++ trunk/eulergui/examples/optional.n3 2010-03-14 12:29:29 UTC (rev 1300)
@@ -0,0 +1,18 @@
+@prefix e: <http://eulersharp.sourceforge.net/2003/03swap/log-rules#> .
+@prefix foaf: <http://xmlns.com/foaf/0.1/> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix : <http://example.com#> .
+
+# One can use e:optional to match a criterium and succeed anyway
+# works with Euler; does not work with Drools
+
+:p1 foaf:name "X"
+ ; rdfs:label "XL" .
+:p2 foaf:name "Y" .
+
+{
+ ?P foaf:name ?N .
+ _:d e:optional { ?P rdfs:label ?L } .
+} => {
+ :result :is ( ?P "rdfs:label" ?L " ; foaf:name" ?N ) .
+}.
\ No newline at end of file
Added: trunk/eulergui/examples/optional.n3p
===================================================================
--- trunk/eulergui/examples/optional.n3p (rev 0)
+++ trunk/eulergui/examples/optional.n3p 2010-03-14 12:29:29 UTC (rev 1300)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<java version="1.6.0_18" class="java.beans.XMLDecoder">
+ <object class="eulergui.project.Project">
+ <void property="n3Query">
+ <object class="eulergui.project.N3Source">
+ <void property="URI">
+ <string>./catch_allQ.n3</string>
+ </void>
+ </object>
+ </void>
+ <void property="sources">
+ <void method="put">
+ <string>./optional.n3</string>
+ <object class="eulergui.project.N3Source">
+ <void property="URI">
+ <string>./optional.n3</string>
+ </void>
+ </object>
+ </void>
+ </void>
+ </object>
+</java>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jm...@us...> - 2010-03-13 12:05:24
|
Revision: 1299
http://eulergui.svn.sourceforge.net/eulergui/?rev=1299&view=rev
Author: jmvanel
Date: 2010-03-13 12:05:18 +0000 (Sat, 13 Mar 2010)
Log Message:
-----------
Solved the problem lasting for several days: Tests in error: test_person_import(eulergui.gui.TestSwingGeneration)
- put disposeWindows() *both* in setUp() and tearDown()
- probably the cleaning with Project, ProjectSequence, and SimplifiedURI helped
Modified Paths:
--------------
trunk/eulergui/src/test/java/eulergui/gui/TestJemmy.java
Modified: trunk/eulergui/src/test/java/eulergui/gui/TestJemmy.java
===================================================================
--- trunk/eulergui/src/test/java/eulergui/gui/TestJemmy.java 2010-03-13 11:40:16 UTC (rev 1298)
+++ trunk/eulergui/src/test/java/eulergui/gui/TestJemmy.java 2010-03-13 12:05:18 UTC (rev 1299)
@@ -73,6 +73,7 @@
protected void setUp() throws Exception {
System.out.println("TestJemmy.setUp(): "
+ getName() );
+ disposeWindows();
Timeouts timeouts = JemmyProperties.getCurrentTimeouts();
timeouts.setTimeout( "FrameWaiter.WaitFrameTimeout", 10000 );
// some components take time to be filled due to download times
@@ -87,6 +88,9 @@
new QueueTool().waitEmpty(); // 500);
System.out.println("TestJemmy.tearDown(): "
+ getName() );
+// JMenuBarOperator menuBar = new JMenuBarOperator(mainFrame);
+// menuBar.pushMenu("File|Exit ..."); Thread.sleep( 50 );
+
disposeWindows();
System.out.println( "=== Cumulated elapsed time: "
+ (System.currentTimeMillis() - initialTime ) / 1000.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jm...@us...> - 2010-03-13 11:40:23
|
Revision: 1298
http://eulergui.svn.sourceforge.net/eulergui/?rev=1298&view=rev
Author: jmvanel
Date: 2010-03-13 11:40:16 +0000 (Sat, 13 Mar 2010)
Log Message:
-----------
Deactivated in ProjectGUI :
addWindowListener(exitOnLastWindowClosed);
Being a listener on the main Frame, it cannot react to other frames' events.
Moreover, it seems best to rely on the dispose-window default window close operation :
"When the last displayable window within the Java virtual machine (VM) is disposed of, the VM may terminate. See AWT Threading Issues for more information."
See WindowConstants.DISPOSE_ON_CLOSE
Modified Paths:
--------------
trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java
trunk/eulergui/src/main/java/n3_project/ProjectGUI.java
Modified: trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java
===================================================================
--- trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java 2010-03-13 10:23:50 UTC (rev 1297)
+++ trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java 2010-03-13 11:40:16 UTC (rev 1298)
@@ -93,7 +93,7 @@
jf.setVisible(true);
ProjectGUI.setEulerGUIIcon(jf);
- jf.setDefaultCloseOperation( WindowConstants.DO_NOTHING_ON_CLOSE );
+ jf.setDefaultCloseOperation( WindowConstants.DISPOSE_ON_CLOSE );
listener = new DocumentListener();
jf.addWindowListener(listener);
} catch (HeadlessException e) {
Modified: trunk/eulergui/src/main/java/n3_project/ProjectGUI.java
===================================================================
--- trunk/eulergui/src/main/java/n3_project/ProjectGUI.java 2010-03-13 10:23:50 UTC (rev 1297)
+++ trunk/eulergui/src/main/java/n3_project/ProjectGUI.java 2010-03-13 11:40:16 UTC (rev 1298)
@@ -30,7 +30,6 @@
import javax.swing.filechooser.FileFilter;
import javax.swing.text.BadLocationException;
-import eulergui.gui.controller.ApplicationKB;
import eulergui.gui.view.TextEditor;
import eulergui.project.N3Source;
import eulergui.project.Project;
@@ -96,7 +95,7 @@
System.out.println("ProjectGUI.ProjectGUI(): lastFile:\n" +
"getProject().getSources().keySet().iterator().next(): "
+ lastFile );
- } else {
+ } else {
lastFile = new File(System.getProperty("user.dir"));
System.out.println("ProjectGUI.ProjectGUI(): lastFile: user.dir "
+ lastFile );
@@ -199,12 +198,20 @@
getProject().save(); }
}
};
- WindowListener exitOnLastWindowClosed = new WindowAdapter(){
+ @SuppressWarnings("unused")
+ WindowListener exitOnLastWindowClosed = new WindowAdapter(){
public void windowClosed(WindowEvent e){
boolean noMoreWindows = (getWindows().length==0);
- boolean lastWindowClosed = ((getWindows().length==1) && (getWindows()[0]==e.getWindow()));
- if(noMoreWindows || lastWindowClosed)
+ boolean lastWindowClosed = ((getWindows().length==1)
+ && (getWindows()[0]==e.getWindow()));
+ if(noMoreWindows || lastWindowClosed) {
+ System.out
+ .println("ProjectGUI.layoutFrame()" +
+ ".new WindowAdapter() {...}.windowClosed(): " +
+ "noMoreWindows || lastWindowClosed - " +
+ project.getUrl() );
System.exit(0);
+ }
}
};
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jm...@us...> - 2010-03-13 10:23:56
|
Revision: 1297
http://eulergui.svn.sourceforge.net/eulergui/?rev=1297&view=rev
Author: jmvanel
Date: 2010-03-13 10:23:50 +0000 (Sat, 13 Mar 2010)
Log Message:
-----------
Several tests were broken since revision 1289, were the Project URL string (field url) was set as a file:// URL for file projects;
this led to errors in SimplifiedURI were field baseDirectory can (alas!) be an URL or a file path.
Revision Links:
--------------
http://eulergui.svn.sourceforge.net/eulergui/?rev=1289&view=rev
Modified Paths:
--------------
trunk/eulergui/src/main/java/eulergui/project/Project.java
trunk/eulergui/src/main/java/n3_project/helpers/SimplifiedURI.java
Modified: trunk/eulergui/src/main/java/eulergui/project/Project.java
===================================================================
--- trunk/eulergui/src/main/java/eulergui/project/Project.java 2010-03-12 17:21:44 UTC (rev 1296)
+++ trunk/eulergui/src/main/java/eulergui/project/Project.java 2010-03-13 10:23:50 UTC (rev 1297)
@@ -938,11 +938,11 @@
if( prepared ) {
return;
}
- System.out.println("Project.prepare()");
+ System.out.println("Project.prepare() " + getUrl() );
// copy sources to avoid ConcurrentModificationException
Collection<N3Source> sources_ = new ArrayList<N3Source>(sources.values());
for ( final N3Source n3 : sources_ ) {
- n3.setProject(this);
+ n3.setProject(this); // TODO remove <<<<<<<<<<<
System.out.println("Project.prepare(): loop: " + n3.showShortName() );
try {
Modified: trunk/eulergui/src/main/java/n3_project/helpers/SimplifiedURI.java
===================================================================
--- trunk/eulergui/src/main/java/n3_project/helpers/SimplifiedURI.java 2010-03-12 17:21:44 UTC (rev 1296)
+++ trunk/eulergui/src/main/java/n3_project/helpers/SimplifiedURI.java 2010-03-13 10:23:50 UTC (rev 1297)
@@ -21,6 +21,7 @@
private String fileName;
private String simplifiedURI;
// File referenceFile; // ( projectFile )
+ /** TODO in fact base URL */
private String baseDirectory;
private static boolean osIsWindows;
@@ -30,13 +31,14 @@
}
public SimplifiedURI(String baseDirectory) {
- this.baseDirectory = baseDirectory;
+ this.baseDirectory = baseDirectory; // TODO convert to URL ?
}
/** get the absolute URI */
public String uri() {
if (uri == null) {
uri = expandRelativeURItoFileURI(simplifiedURI); }
+ // TODO test expandRelativeURL a,d remove method expandRelativeURItoFileURI
return uri;
}
@@ -225,11 +227,12 @@
}
}
- /** TODO use public method elsewhere <<<<<<<< */
+ /** PENDING use public method elsewhere <<<<<<<< */
private boolean baseIsURL() {
return baseDirectory.startsWith("http:/")
|| baseDirectory.startsWith("https:/")
|| baseDirectory.startsWith("ftp:/")
+ || baseDirectory.startsWith("file:/") // TODO test <<<<<<<<<<<
;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|