|
What this is
Other links
The source code/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2004 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.project.ui.actions; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.Action; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JMenuItem; import org.netbeans.api.project.Project; import org.netbeans.modules.project.ui.OpenProjectList; import org.netbeans.modules.project.ui.ProjectUtilities; import org.openide.util.Lookup; import org.openide.util.NbBundle; import org.openide.util.Utilities; import org.openide.util.WeakListeners; import org.openide.util.actions.Presenter; /** Action for removing project from the open projects tab */ public class CloseProject extends ProjectAction implements PropertyChangeListener, Presenter.Popup { private static final String namePattern = NbBundle.getMessage( CloseProject.class, "LBL_CloseProjectAction_Name" ); // NOI18N private static final String namePatternPopup = NbBundle.getMessage( CloseProject.class, "LBL_CloseProjectAction_Popup_Name" ); // NOI18N private String popupName; private PropertyChangeListener wpcl; /** Creates a new instance of BrowserAction */ public CloseProject() { this( null ); } public CloseProject( Lookup context ) { super( (String)null, namePattern, null, context ); wpcl = WeakListeners.propertyChange( this, OpenProjectList.getDefault() ); OpenProjectList.getDefault().addPropertyChangeListener( wpcl ); refresh( getLookup() ); } protected void actionPerformed( Lookup context ) { Project[] projects = ActionsUtil.getProjectsFromLookup( context, null ); // show all modified documents, if an user cancel it then no project is closed if (ProjectUtilities.closeAllDocuments (projects)) { for( int i = 0; i < projects.length; i++ ) { OpenProjectList.getDefault().close( projects[i] ); } } } public void refresh( Lookup context ) { Project[] projects = ActionsUtil.getProjectsFromLookup( context, null ); // XXX make it work better for mutliple open projects if ( projects.length == 0 || !OpenProjectList.getDefault().isOpen( projects[0] ) ) { setEnabled( false ); setDisplayName( ActionsUtil.formatProjectSensitiveName( namePattern, new Project[0] ) ); popupName = ActionsUtil.formatProjectSensitiveName( namePatternPopup, new Project[0] ); } else { setEnabled( true ); setDisplayName( ActionsUtil.formatProjectSensitiveName( namePattern, projects ) ); popupName = ActionsUtil.formatProjectSensitiveName( namePatternPopup, projects ); } } public Action createContextAwareInstance( Lookup actionContext ) { return new CloseProject( actionContext ); } public void propertyChange( PropertyChangeEvent evt ) { refresh( getLookup() ); } // Implementation of Presenter.Popup --------------------------------------- public JMenuItem getPopupPresenter() { JMenuItem popupPresenter = new JMenuItem( this ); popupPresenter.setIcon( null ); popupPresenter.setText( popupName ); return popupPresenter; } } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.