Index: core/windows/src/org/netbeans/core/windows/actions/RecentViewListAction.java =================================================================== RCS file: /cvs/core/windows/src/org/netbeans/core/windows/actions/RecentViewListAction.java,v retrieving revision 1.6 diff -u -r1.6 RecentViewListAction.java --- core/windows/src/org/netbeans/core/windows/actions/RecentViewListAction.java 2 Aug 2004 14:39:35 -0000 1.6 +++ core/windows/src/org/netbeans/core/windows/actions/RecentViewListAction.java 6 Oct 2004 16:25:15 -0000 @@ -14,6 +14,9 @@ package org.netbeans.core.windows.actions; +import java.util.ArrayList; +import java.util.List; +import org.netbeans.core.windows.Constants; import org.netbeans.core.windows.ModeImpl; import org.netbeans.core.windows.WindowManagerImpl; import org.netbeans.core.windows.view.ui.RecentViewListDlg; @@ -40,6 +43,9 @@ public final class RecentViewListAction extends AbstractAction implements PropertyChangeListener { + /** #37228 : option to only show document windows in recent window list */ + private static final boolean RESTRICT_TO_DOCUMENTS = Boolean.getBoolean("org.netbeans.core.windows.actions.recentViewListAction.RESTRICT_TO_DOCUMENTS"); // NOI18N + /** Creates a new instance of RecentViewListAction */ public RecentViewListAction () { putValue(NAME, NbBundle.getMessage(RecentViewListAction.class, "CTL_RecentViewListAction")); @@ -50,10 +56,30 @@ public void actionPerformed(ActionEvent evt) { TopComponent[] tcs = WindowManagerImpl.getInstance().getRecentViewList(); + + if ( RESTRICT_TO_DOCUMENTS ) { + WindowManagerImpl wm = WindowManagerImpl.getInstance(); + List tcList = new ArrayList(); + for ( int i = 0; i < tcs.length; i++ ) { + TopComponent tc = (TopComponent)tcs[i]; + if ( tc == null ) + continue; + ModeImpl mode = (ModeImpl)wm.findMode(tc); + if(mode == null) { + continue; + } + + if(mode.getKind() == Constants.MODE_KIND_EDITOR) { + tcList.add( tc ); + } + } + tcs = (TopComponent[])tcList.toArray( new TopComponent[0] ); + } + if (tcs.length == 0) { return; } - + // XXX Show dialog only if the action was invoked by shortcut (not from menu). if(!(evt.getSource() instanceof javax.swing.JMenuItem)) { // #46800: fetch key directly from action command