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. |