From: <dal...@us...> - 2009-08-21 16:34:10
|
Revision: 16016 http://jedit.svn.sourceforge.net/jedit/?rev=16016&view=rev Author: daleanson Date: 2009-08-21 16:34:01 +0000 (Fri, 21 Aug 2009) Log Message: ----------- A little more clean up. I think this is ready for release, but need to commit the patch to Mode.jave in jEdit first. Modified Paths: -------------- plugins/TaskList/trunk/tasklist/TaskListPlugin.java plugins/TaskList/trunk/tasklist/TaskListPopup.java plugins/TaskList/trunk/tasklist/TaskListTable.java plugins/TaskList/trunk/tasklist/TreeMouseListener.java plugins/TaskList/trunk/tasklist/options/TaskListTaskTypesOptionPane.java Modified: plugins/TaskList/trunk/tasklist/TaskListPlugin.java =================================================================== --- plugins/TaskList/trunk/tasklist/TaskListPlugin.java 2009-08-21 16:01:15 UTC (rev 16015) +++ plugins/TaskList/trunk/tasklist/TaskListPlugin.java 2009-08-21 16:34:01 UTC (rev 16016) @@ -35,25 +35,12 @@ //{{{ imports import java.awt.Color; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.util.HashSet; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; -import java.util.Vector; -import java.util.List; +import java.io.*; +import java.util.*; import javax.swing.*; -import org.gjt.sp.jedit.Buffer; -import org.gjt.sp.jedit.EditPane; -import org.gjt.sp.jedit.EditPlugin; -import org.gjt.sp.jedit.GUIUtilities; -import org.gjt.sp.jedit.Mode; -import org.gjt.sp.jedit.jEdit; -import org.gjt.sp.jedit.View; +import org.gjt.sp.jedit.*; import org.gjt.sp.jedit.textarea.JEditTextArea; import org.gjt.sp.jedit.syntax.DefaultTokenHandler; import org.gjt.sp.jedit.syntax.Token; @@ -199,8 +186,7 @@ boolean ignoreCase = jEdit.getBooleanProperty( "tasklist.tasktype." + i + ".ignorecase" ); - taskTypes.add( - new TaskType( name, pattern, sample, ignoreCase, iconPath ) ); + taskTypes.add( new TaskType( name, pattern, sample, ignoreCase, iconPath ) ); // NOPMD i++; } @@ -353,7 +339,7 @@ * A collection of TaskType objects representing the form of comments that * will be parsed from a buffer and store as Task objects */ - private static List<TaskType> taskTypes = new Vector<TaskType>(); + private static List<TaskType> taskTypes = new ArrayList<TaskType>(); /** * A collection of collections: each member represents a collection of @@ -378,10 +364,9 @@ * Returns the current set of tasks for the buffer requested, if there is a * set. If there is no set, the buffer is parsed. * <p> - * NOTE: This method will not cause a re-parse of a buffer. + * This method will not cause a re-parse of a buffer. */ - public synchronized static HashMap<Integer, Task> - requestTasksForBuffer( final Buffer buffer ) { + public synchronized static HashMap<Integer, Task> requestTasksForBuffer( final Buffer buffer ) { if ( buffer == null || buffer.isLoaded() == false ) { return null; } @@ -457,10 +442,11 @@ int firstLine = 0; int lastLine = buffer.getLineCount(); + DefaultTokenHandler tokenHandler = new DefaultTokenHandler(); for ( int lineNum = firstLine; lineNum < lastLine; lineNum++ ) { + tokenHandler.init(); + int lineStart = buffer.getLineStartOffset( lineNum ); - - DefaultTokenHandler tokenHandler = new DefaultTokenHandler(); buffer.markTokens( lineNum, tokenHandler ); Token token = tokenHandler.getTokens(); int tokenStart = lineStart; @@ -584,8 +570,7 @@ } buffer.remove( task.getStartPosition().getOffset(), task.getText().length() ); - // TODO: is this necessary now? - TaskListPlugin.parseBuffer( buffer ); + EditBus.send( new ParseBufferMessage( view, buffer, ParseBufferMessage.DO_PARSE ) ); } //}}} //{{{ removeTaskTag method @@ -603,8 +588,7 @@ } buffer.remove( task.getStartPosition().getOffset(), task.getIdentifier().length() ); - // TODO: is this necessary now? - TaskListPlugin.parseBuffer( buffer ); + EditBus.send( new ParseBufferMessage( view, buffer, ParseBufferMessage.DO_PARSE ) ); } //}}} //{{{ replaceTaskTag() method @@ -624,8 +608,7 @@ buffer.insert( task.getStartPosition().getOffset(), newTag ); buffer.endCompoundEdit(); - // TODO: is this necessary now? - TaskListPlugin.parseBuffer( buffer ); + EditBus.send( new ParseBufferMessage( view, buffer, ParseBufferMessage.DO_PARSE ) ); } //}}} /** @@ -638,7 +621,7 @@ */ public static Mode getMode( File file ) { if (file == null) { - return null; + return null; } try { if ( parseModes.size() == 0 ) { @@ -650,7 +633,7 @@ return mode; } if ( firstLine == null ) { - BufferedReader reader = new BufferedReader( new FileReader( file ) ); + BufferedReader reader = new BufferedReader( new FileReader( file ) ); // NOPMD firstLine = reader.readLine(); reader.close(); } Modified: plugins/TaskList/trunk/tasklist/TaskListPopup.java =================================================================== --- plugins/TaskList/trunk/tasklist/TaskListPopup.java 2009-08-21 16:01:15 UTC (rev 16015) +++ plugins/TaskList/trunk/tasklist/TaskListPopup.java 2009-08-21 16:34:01 UTC (rev 16016) @@ -157,8 +157,10 @@ private Point setLocation() { Component parent = getParent(); Dimension dParent = parent.getPreferredSize(); - /* NOTE: default location of child popup menu */ + + // default location of child popup menu Point pPopup = new Point( dParent.width - 1 , -1 ); + SwingUtilities.convertPointToScreen( pPopup, parent ); SwingUtilities.convertPointFromScreen( pPopup, comp ); Dimension dList = comp.getSize(); Modified: plugins/TaskList/trunk/tasklist/TaskListTable.java =================================================================== --- plugins/TaskList/trunk/tasklist/TaskListTable.java 2009-08-21 16:01:15 UTC (rev 16015) +++ plugins/TaskList/trunk/tasklist/TaskListTable.java 2009-08-21 16:34:01 UTC (rev 16016) @@ -46,7 +46,7 @@ public TaskListTable( View view, Buffer buffer, boolean showTableHeader ) { this.view = view; this.buffer = buffer; - + setLayout( new BorderLayout() ); bufferName = new JLabel( buffer.toString(), SwingConstants.LEFT ); add( bufferName, BorderLayout.NORTH ); @@ -54,7 +54,8 @@ table.setSelectionMode( ListSelectionModel.SINGLE_SELECTION ); table.setCellSelectionEnabled( false ); table.setRowSelectionAllowed( true ); - // NOTE: a single cell renderer that does not indicate cell focus + + // a cell renderer that does not indicate cell focus table.setDefaultRenderer( Object.class, new DefaultTableCellRenderer() { public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column ) { @@ -70,6 +71,7 @@ } } ); + table.setDefaultRenderer( Image.class, null ); table.setDefaultRenderer( Number.class, null ); table.setDefaultRenderer( String.class, new PaddedCellRenderer() ); @@ -244,9 +246,11 @@ */ private void showPopup( View view, Point p ) { TaskListPopup popup = new TaskListPopup( view, table, p ); - // NOTE: keep within screen limits; use task list panel, not table + + // keep within screen limits; use task list panel, not table SwingUtilities.convertPointToScreen( p, table ); SwingUtilities.convertPointFromScreen( p, table ); + Dimension dt = table.getSize(); Dimension dp = popup.getPreferredSize(); if ( p.x + dp.width > dt.width ) @@ -263,31 +267,32 @@ * @param row The selected row of the TaskList table */ private void showTaskText( final int row ) { - // NOTE: get EditPane of buffer clicked, goto selection - SwingUtilities.invokeLater( new Runnable() { - public void run() { - Task task = ( Task ) getTaskListModel().elementAt( row ); - EditPane[] editPanes = view.getEditPanes(); - Buffer buffer = jEdit.getBuffer( task.getBufferPath() ); - if ( buffer == null ) { - return ; // buffer not open - } - for ( EditPane editPane : editPanes ) { - Buffer[] buffers = editPane.getBufferSet().getAllBuffers(); - for ( Buffer ep_buffer : buffers ) { - if ( ep_buffer.equals( buffer ) ) { - editPane.setBuffer( ep_buffer ); - JEditTextArea textArea = editPane.getTextArea(); - textArea.setCaretPosition( textArea.getLineStartOffset( task.getLineNumber() ) + task.getStartOffset() ); - textArea.scrollToCaret( true ); - textArea.grabFocus(); - return ; - } + // get EditPane of buffer clicked, goto selection + SwingUtilities.invokeLater( + new Runnable() { + public void run() { + Task task = ( Task ) getTaskListModel().elementAt( row ); + EditPane[] editPanes = view.getEditPanes(); + Buffer buffer = jEdit.getBuffer( task.getBufferPath() ); + if ( buffer == null ) { + return ; // buffer not open + } + for ( EditPane editPane : editPanes ) { + Buffer[] buffers = editPane.getBufferSet().getAllBuffers(); + for ( Buffer ep_buffer : buffers ) { + if ( ep_buffer.equals( buffer ) ) { + editPane.setBuffer( ep_buffer ); + JEditTextArea textArea = editPane.getTextArea(); + textArea.setCaretPosition( textArea.getLineStartOffset( task.getLineNumber() ) + task.getStartOffset() ); + textArea.scrollToCaret( true ); + textArea.grabFocus(); + return ; } } } } - ); + } + ); } //}}} } //}}} Modified: plugins/TaskList/trunk/tasklist/TreeMouseListener.java =================================================================== --- plugins/TaskList/trunk/tasklist/TreeMouseListener.java 2009-08-21 16:01:15 UTC (rev 16015) +++ plugins/TaskList/trunk/tasklist/TreeMouseListener.java 2009-08-21 16:34:01 UTC (rev 16016) @@ -73,9 +73,11 @@ private void showPopup( Point p ) { TaskListPopup popup = new TaskListPopup( view, tree, p ); - // NOTE: keep within screen limits; use task list panel, not table + + // keep within screen limits; use task list panel, not table SwingUtilities.convertPointToScreen( p, tree ); SwingUtilities.convertPointFromScreen( p, tree ); + Dimension dt = tree.getSize(); Dimension dp = popup.getPreferredSize(); if ( p.x + dp.width > dt.width ) Modified: plugins/TaskList/trunk/tasklist/options/TaskListTaskTypesOptionPane.java =================================================================== --- plugins/TaskList/trunk/tasklist/options/TaskListTaskTypesOptionPane.java 2009-08-21 16:01:15 UTC (rev 16015) +++ plugins/TaskList/trunk/tasklist/options/TaskListTaskTypesOptionPane.java 2009-08-21 16:34:01 UTC (rev 16016) @@ -153,7 +153,8 @@ Object source = evt.getSource(); if ( source == editBtn ) { - // QUESTION: update? + // QUESTION: update? If the user changes the icon, the already existing tasks + // won't change their display until the plugin itself is reloaded. TaskType taskType = ( TaskType ) typesList.getSelectedValue(); new TaskTypeDialog( TaskListTaskTypesOptionPane.this, taskType, TaskListTaskTypesOptionPane.this.iconList ); @@ -209,7 +210,8 @@ class MouseHandler extends MouseAdapter { public void mouseClicked( MouseEvent evt ) { if ( evt.getClickCount() == 2 ) { - // QUESTION: update? + // QUESTION: update? If the user changes the icon, the already existing tasks + // won't change their display until the plugin itself is reloaded. TaskType taskType = ( TaskType ) typesList.getSelectedValue(); new TaskTypeDialog( TaskListTaskTypesOptionPane.this, taskType, TaskListTaskTypesOptionPane.this.iconList ); typesList.repaint(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |