From: <iam...@us...> - 2010-03-18 18:31:12
|
Revision: 1331 http://eulergui.svn.sourceforge.net/eulergui/?rev=1331&view=rev Author: iamlolive Date: 2010-03-18 18:31:02 +0000 (Thu, 18 Mar 2010) Log Message: ----------- new version of the jedit editor. should roughly work. Modified Paths: -------------- trunk/eulergui/src/main/java/eulergui/gui/actions/Save.java trunk/eulergui/src/main/java/eulergui/gui/actions/SaveAs.java trunk/eulergui/src/main/java/eulergui/gui/actions/Statistics.java trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java Modified: trunk/eulergui/src/main/java/eulergui/gui/actions/Save.java =================================================================== --- trunk/eulergui/src/main/java/eulergui/gui/actions/Save.java 2010-03-18 10:13:42 UTC (rev 1330) +++ trunk/eulergui/src/main/java/eulergui/gui/actions/Save.java 2010-03-18 18:31:02 UTC (rev 1331) @@ -8,18 +8,20 @@ import javax.swing.AbstractAction; -import org.syntax.jedit.JEditTextArea; +//import org.syntax.jedit.JEditTextArea; import eulergui.gui.view.TextEditor; import eulergui.project.N3Source; +import org.gjt.sp.jedit.textarea.JEditTextArea; +import org.gjt.sp.jedit.textarea.StandaloneTextArea; public class Save extends AbstractAction { private static final long serialVersionUID = 1L; private N3Source n3Source; - private JEditTextArea embededEditor; + private StandaloneTextArea embededEditor; private TextEditor textEditor; - public Save( JEditTextArea embededEditor, TextEditor textEditor ) { + public Save( StandaloneTextArea embededEditor, TextEditor textEditor ) { this.embededEditor = embededEditor; this.textEditor = textEditor; this.n3Source = textEditor.get3NSource(); Modified: trunk/eulergui/src/main/java/eulergui/gui/actions/SaveAs.java =================================================================== --- trunk/eulergui/src/main/java/eulergui/gui/actions/SaveAs.java 2010-03-18 10:13:42 UTC (rev 1330) +++ trunk/eulergui/src/main/java/eulergui/gui/actions/SaveAs.java 2010-03-18 18:31:02 UTC (rev 1331) @@ -8,9 +8,11 @@ import n3_project.ProjectGUI; -import org.syntax.jedit.JEditTextArea; +//import org.syntax.jedit.JEditTextArea; import eulergui.gui.view.TextEditor; +import org.gjt.sp.jedit.textarea.JEditTextArea; +import org.gjt.sp.jedit.textarea.StandaloneTextArea; public class SaveAs extends Save // AbstractAction { @@ -18,7 +20,7 @@ private ProjectGUI projectGUI; public SaveAs(TextEditor textEditor, ProjectGUI projectGUI, - JEditTextArea embededEditor) { + StandaloneTextArea embededEditor) { super(embededEditor, textEditor); this.projectGUI = projectGUI; putValue(NAME, "Save as ..."); Modified: trunk/eulergui/src/main/java/eulergui/gui/actions/Statistics.java =================================================================== --- trunk/eulergui/src/main/java/eulergui/gui/actions/Statistics.java 2010-03-18 10:13:42 UTC (rev 1330) +++ trunk/eulergui/src/main/java/eulergui/gui/actions/Statistics.java 2010-03-18 18:31:02 UTC (rev 1331) @@ -6,17 +6,19 @@ import java.awt.event.ActionEvent; import javax.swing.AbstractAction; -import org.syntax.jedit.JEditTextArea; +//import org.syntax.jedit.JEditTextArea; import eulergui.inputs.N3SourceFromOtherFormat; import eulergui.project.N3Source; +import org.gjt.sp.jedit.textarea.JEditTextArea; +import org.gjt.sp.jedit.textarea.StandaloneTextArea; public class Statistics extends AbstractAction { private static final long serialVersionUID = 1L; private N3Source n3Source; - private JEditTextArea embededEditor; + private StandaloneTextArea embededEditor; - public Statistics(N3Source n3, JEditTextArea embededEditor) { + public Statistics(N3Source n3, StandaloneTextArea embededEditor) { this.n3Source = n3; this.embededEditor = embededEditor; putValue(NAME, "Statistics..."); @@ -40,9 +42,9 @@ .append( n3Source.getKnownURIs() ) .append( "\nDocument Length: " ) - .append( embededEditor.getDocumentLength() ) + .append( embededEditor.getText().length() ) .append( "\nLine Count: " ) - .append( embededEditor.getDocument().getTokenMarker().getLineCount() ) + .append( embededEditor.getLineCount() ) ; System.out.println( sb ); // TODO message panel } Modified: trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java =================================================================== --- trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java 2010-03-18 10:13:42 UTC (rev 1330) +++ trunk/eulergui/src/main/java/eulergui/gui/view/TextEditor.java 2010-03-18 18:31:02 UTC (rev 1331) @@ -1,7 +1,6 @@ package eulergui.gui.view; import java.awt.*; -import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; @@ -21,22 +20,31 @@ import javax.swing.JMenuBar; import javax.swing.WindowConstants; import javax.swing.event.DocumentEvent; -import javax.swing.text.BadLocationException; +import javax.swing.text.Segment; import n3_project.EditorManagement; import n3_project.ProjectGUI; -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; +import org.gjt.sp.jedit.buffer.BufferListener; +import org.gjt.sp.jedit.buffer.JEditBuffer; +import org.gjt.sp.jedit.jEdit; +import org.gjt.sp.jedit.syntax.TokenMarker; +import org.gjt.sp.jedit.textarea.JEditTextArea; +//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; import eulergui.gui.actions.Save; import eulergui.gui.actions.SaveAs; import eulergui.gui.actions.Statistics; import eulergui.project.N3Source; +import org.gjt.sp.jedit.textarea.StandaloneTextArea; +import org.gjt.sp.jedit.textarea.TextAreaExtension; +import org.gjt.sp.jedit.textarea.TextAreaPainter; +import org.gjt.sp.util.Log; /** * a Text Editor factory, mainly for N3; @@ -48,52 +56,125 @@ private static Map<String, TokenMarker> suffix2syntax = new HashMap<String, TokenMarker>(); - private DocumentListener listener; + //private DocumentListener listener; private N3Source n3; private boolean edited; - private JEditTextArea jedit; + private StandaloneTextArea jedit; public JFrame jf; 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()); + //TODO did not find yet how to do these stuff with the new jEdit +// 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()); + jEdit.initSystemProperties(); + Log.init(true, Log.DEBUG); } - public void setOnTop(){ - if(jf!=null) { + public void setOnTop() { + if (jf != null) { jf.setAlwaysOnTop(true); jf.setAlwaysOnTop(false); } } - public void addWindowListener(WindowListener l){ - if(jf!=null) + public void addWindowListener(WindowListener l) { + if (jf != null) jf.addWindowListener(l); } - public void removeWindowListener(WindowListener l){ - if(jf!=null) + public void removeWindowListener(WindowListener l) { + if (jf != null) jf.removeWindowListener(l); } + 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, + (StandaloneTextArea) embededEditor); + Save save = new Save((StandaloneTextArea) 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); + jf.addWindowListener(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) { + if (e.getID() == WindowEvent.WINDOW_CLOSING) { + if (edited) { + System.err.println("The document \"" + + getN3().getFileName() + + "\" has been edited, you must save it first."); + // TODO it should not close, but it does !!! + } else { + ((Window) e.getSource()).dispose(); + } + } + } + + @Override + public void windowClosed(WindowEvent e) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @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. + } + }); + } + /** * display N3 Editor in a new Window, with save As and Statistics in File menu */ public void displayEditor(ProjectGUI projectGUI, N3Source n3) { - try { + jf = new JFrame( EditorManagement.fileToOpen(n3)); JComponent embededEditor = embedEditor(n3); @@ -103,11 +184,11 @@ JMenu file = new JMenu("File"); menuBar.add(file); SaveAs saveAs = new SaveAs(this, projectGUI, - (JEditTextArea) embededEditor); - Save save = new Save((JEditTextArea) embededEditor, this); + (StandaloneTextArea) embededEditor); + Save save = new Save((StandaloneTextArea) embededEditor, this); file.add(save); file.add(saveAs); - file.add(new Statistics(n3, (JEditTextArea) embededEditor)); + file.add(new Statistics(n3, (StandaloneTextArea) embededEditor)); jf.getContentPane().add(embededEditor); jf.setSize(800, 600); @@ -116,27 +197,75 @@ ProjectGUI.setEulerGUIIcon(jf); jf.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); - listener = new DocumentListener(); - jf.addWindowListener(listener); - } catch (HeadlessException e) { - e.printStackTrace(); - } +// listener = new DocumentListener(); + jf.addWindowListener(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) { + if (e.getID() == WindowEvent.WINDOW_CLOSING) { + if (edited) { + System.err.println("The document \"" + + getN3().getFileName() + + "\" has been edited, you must save it first."); + // TODO it should not close, but it does !!! + } else { + ((Window) e.getSource()).dispose(); + } + } + } + + @Override + public void windowClosed(WindowEvent e) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @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. + } + }); + } + public N3Source getN3() { + return n3; + } + /** * embed N3 Editor in a JComponent */ public JComponent embedEditor(N3Source n3) { this.n3 = n3; - jedit = new JEditTextArea(); + jedit = new StandaloneTextArea(jEdit.getPropertyManager()); String toOpen = EditorManagement.fileToOpen(n3); insertFileOrURL(toOpen); - applySyntax(n3.uri()); + // TODO it fails with the newer jEdit + // applySyntax(n3.uri()); return jedit; } public void setCaretPosition(int line, int 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) @@ -145,9 +274,10 @@ } private void setCaretPosition(int position) { - jedit.setCaretVisible(true); jedit.setCaretPosition(position); - jedit.scrollToCaret(); + // TODO does it exist in the new jEdit? + //jedit.getPainter().setCaretVisible(true); + //jedit.getPainter().scrollToCaret(); } @@ -156,126 +286,189 @@ } 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() { + errorText = (text == null ? null : "<HTML>" + text.replace("\n", "<br/>") + "</HTML>"); + final TextAreaPainter painter = jedit.getPainter(); + painter.addExtension(getErrorHighlighterExtension()); + removeErrorHighlighterOnNextEdit(); + } - @Override - public void init(JEditTextArea textArea, TextAreaPainter.Highlight next) { - //To change body of implemented methods use File | Settings | File Templates. - } + public String errorText=""; + public int errorLine = -1; + private TextAreaExtension errorHighlighterExtension = null; - @Override - public void paintHighlight(Graphics gfx, int line, int y) { - } + public TextAreaExtension getErrorHighlighterExtension() { + if (errorHighlighterExtension == null) { + errorHighlighterExtension = new TextAreaExtension() { - public String getToolTipText(MouseEvent evt) { - return toolTipText; - } - }); + public void paintValidLine(Graphics2D gfx, int screenLine, int physicalLine, int start, int end, int y) { + if(physicalLine!=errorLine){ + super.paintValidLine(gfx, screenLine, physicalLine, start, end, y); + return; + } + try { + gfx.setColor(Color.RED); + TextAreaPainter painter = jedit.getPainter(); + FontMetrics fm = painter.getFontMetrics(); - removeTooltipOnNextEdit(); + Segment seg = null; + + + int x1 = (int) jedit.offsetToXY(jedit.getLineStartOffset(screenLine)).getX(); + int y1 = y; + //int endingY = (int) ta.offsetToXY(ta.getLineEndOffset(physicalLine)).getY() - (int)ta.offsetToXY(ta.getLineStartOffset(physicalLine)).getY(); + int height = fm.getHeight(); + int width = jedit.getLineLength(screenLine) * jedit.charWidth; +// Log.log(Log.DEBUG, this, "Width for line "+ physicalLine+"is calculated to: " + width); + + //gfx.fillRect(x1, y1, width, height); + //gfx.setStroke( new BasicStroke( 10f ) ); + + gfx.drawLine(x1, y1 + height - 1, x1 + width, y1 + height - 1); + } catch (Exception e) { + e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. + } + } + + + public String getToolTipText(int x, int y) { + try { +// int pos = jedit.xyToOffset(x, y); +// int currentLine = jedit.getLineOfOffset(pos); +// int width = jedit.getLineLength(currentLine) * jedit.charWidth; +// +// return "Width: " + width; + int off = jedit.xyToOffset(x, y); + int currentLine = jedit.getLineOfOffset(off); + if(currentLine == errorLine) + return errorText; + else + return ""; + } catch (Exception e) { + return ""; + } + + + } + }; + } + return errorHighlighterExtension; } public void showError(String errorMessage, int lineNumber, int columnNumber) { + errorLine = lineNumber; setToolTipText(errorMessage); setCaretPosition(lineNumber, columnNumber); setOnTop(); } - public void removeTooltipOnNextEdit() { - final DocumentListener tooltipRemover = new DocumentListener() { + public void removeErrorHighlighterOnNextEdit() { + final BufferListener errorHighlighter = new BufferListener() { + @Override - public void removeUpdate(DocumentEvent e) { - //TODO how to remove our custom Highlight instead of this quick hack ? - setToolTipText(null); - jedit.getDocument().removeDocumentListener(this); + public void foldLevelChanged(JEditBuffer jEditBuffer, int i, int i1) { + jedit.getPainter().removeExtension(getErrorHighlighterExtension()); + errorHighlighterExtension = null; + errorText = ""; } @Override - public void insertUpdate(DocumentEvent e) { - //TODO how to remove our custom Highlight instead of this quick hack ? - setToolTipText(null); - jedit.getDocument().removeDocumentListener(this); + public void contentInserted(JEditBuffer jEditBuffer, int i, int i1, int i2, int i3) { + jedit.getPainter().removeExtension(getErrorHighlighterExtension()); + errorHighlighterExtension = null; + errorText = ""; } @Override - public void changedUpdate(DocumentEvent e) { - //TODO how to remove our custom Highlight instead of this quick hack ? - setToolTipText(null); - jedit.getDocument().removeDocumentListener(this); + public void contentRemoved(JEditBuffer jEditBuffer, int i, int i1, int i2, int i3) { + jedit.getPainter().removeExtension(getErrorHighlighterExtension()); + errorHighlighterExtension = null; + errorText = ""; } @Override - public void windowClosing(WindowEvent e) { - //super.windowClosing(e); //To change body of overridden methods use File | Settings | File Templates. + public void preContentInserted(JEditBuffer jEditBuffer, int i, int i1, int i2, int i3) { + } + + @Override + public void preContentRemoved(JEditBuffer jEditBuffer, int i, int i1, int i2, int i3) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void transactionComplete(JEditBuffer jEditBuffer) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void foldHandlerChanged(JEditBuffer jEditBuffer) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void bufferLoaded(JEditBuffer jEditBuffer) { + //To change body of implemented methods use File | Settings | File Templates. + } }; - jedit.getDocument().addDocumentListener(tooltipRemover); + jedit.getBuffer().addBufferListener(errorHighlighter); } public void removeAppendanceOnNextEdit() { - final DocumentListener attendanceRemover = new DocumentListener() { + final BufferListener attendanceRemover = new BufferListener() { + @Override - public void removeUpdate(DocumentEvent e) { - //TODO how to remove our custom Highlight instead of this quick hack ? - setTitleAppendance(""); - jedit.getDocument().removeDocumentListener(this); + public void foldLevelChanged(JEditBuffer jEditBuffer, int i, int i1) { + //To change body of implemented methods use File | Settings | File Templates. } @Override - public void insertUpdate(DocumentEvent e) { - //TODO how to remove our custom Highlight instead of this quick hack ? + public void contentInserted(JEditBuffer jEditBuffer, int i, int i1, int i2, int i3) { setTitleAppendance(""); - jedit.getDocument().removeDocumentListener(this); + jedit.getBuffer().removeBufferListener(this); + } @Override - public void changedUpdate(DocumentEvent e) { - //TODO how to remove our custom Highlight instead of this quick hack ? + public void contentRemoved(JEditBuffer jEditBuffer, int i, int i1, int i2, int i3) { setTitleAppendance(""); - jedit.getDocument().removeDocumentListener(this); + jedit.getBuffer().removeBufferListener(this); } @Override - public void windowClosing(WindowEvent e) { - //super.windowClosing(e); //To change body of overridden methods use File | Settings | File Templates. + public void preContentInserted(JEditBuffer jEditBuffer, int i, int i1, int i2, int i3) { + //To change body of implemented methods use File | Settings | File Templates. } + + @Override + public void preContentRemoved(JEditBuffer jEditBuffer, int i, int i1, int i2, int i3) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void transactionComplete(JEditBuffer jEditBuffer) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void foldHandlerChanged(JEditBuffer jEditBuffer) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void bufferLoaded(JEditBuffer jEditBuffer) { + //To change body of implemented methods use File | Settings | File Templates. + } }; - jedit.getDocument().addDocumentListener(attendanceRemover); + jedit.getBuffer().addBufferListener(attendanceRemover); } /** * 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); - 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); - } - private JComponent insertFileOrURL(String toOpen) { - jedit = new JEditTextArea(); + jedit = new StandaloneTextArea(jEdit.getPropertyManager()); InputStream is = null; try { @@ -300,15 +493,58 @@ } String text = builder.toString(); reader.close(); - SyntaxDocument document = new N3SyntaxDocument(); - jedit.setDocument(document); + +// SyntaxDocument document = new N3SyntaxDocument(); +// jedit.getBuffer().setDocument(document); jedit.setText(text); - document.addDocumentListener(listener); + jedit.getBuffer().addBufferListener(new BufferListener() { + + @Override + public void foldLevelChanged(JEditBuffer jEditBuffer, int i, int i1) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void contentInserted(JEditBuffer jEditBuffer, int i, int i1, int i2, int i3) { + edited = true; + } + + @Override + public void contentRemoved(JEditBuffer jEditBuffer, int i, int i1, int i2, int i3) { + edited = true; + } + + @Override + public void preContentInserted(JEditBuffer jEditBuffer, int i, int i1, int i2, int i3) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void preContentRemoved(JEditBuffer jEditBuffer, int i, int i1, int i2, int i3) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void transactionComplete(JEditBuffer jEditBuffer) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void foldHandlerChanged(JEditBuffer jEditBuffer) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void bufferLoaded(JEditBuffer jEditBuffer) { + //To change body of implemented methods use File | Settings | File Templates. + } + }); + //document.addDocumentListener(listener); // need to reset edited, because calling setText() has already // set edited = true edited = false; } - jedit.scrollTo(0, 0); + //jedit.getPainter().scrollTo(0, 0); } catch (IOException e) { e.printStackTrace(); @@ -321,17 +557,16 @@ String suffix = toOpen.substring( toOpen.lastIndexOf('.') + 1); TokenMarker syntax = suffix2syntax.get(suffix); - jedit.setTokenMarker(syntax); + jedit.getBuffer().setTokenMarker(syntax); } - public String getTitleAttendance() { return titleAttendance; } public void setTitleAppendance(String titleAttendance) { - jf.setTitle(jf.getTitle().substring(0,jf.getTitle().lastIndexOf(getTitleAttendance()))+titleAttendance); + jf.setTitle(jf.getTitle().substring(0, jf.getTitle().lastIndexOf(getTitleAttendance())) + titleAttendance); this.titleAttendance = titleAttendance; } @@ -341,58 +576,57 @@ * 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; - } +// 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 +// 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(); +// } +// } +// } +// } - @Override - public void insertUpdate(DocumentEvent e) { - edited = true; - } - - @Override - public void changedUpdate(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; - } - } - } - +// 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; } @@ -416,15 +650,15 @@ } 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(); - } - - } + int offs = jedit.getBuffer().getLength(); +// try { + jedit.getBuffer().insert(offs, message); + jedit.setCaretPosition( + jedit.getBuffer().getLength() - 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. |