|
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.awt.event.ActionEvent; import java.io.File; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JFileChooser; import javax.swing.SwingUtilities; import org.netbeans.api.project.Project; import org.netbeans.modules.project.ui.OpenProjectList; import org.netbeans.modules.project.ui.OpenProjectListSettings; import org.netbeans.modules.project.ui.ProjectChooserAccessory; import org.netbeans.modules.project.ui.ProjectTab; import org.openide.DialogDisplayer; import org.openide.NotifyDescriptor; import org.openide.filesystems.FileUtil; import org.openide.nodes.Node; import org.openide.util.NbBundle; import org.openide.util.Utilities; import org.openide.windows.WindowManager; public class OpenProject extends BasicAction { private static final Icon ICON = new ImageIcon( Utilities.loadImage( "org/netbeans/modules/project/ui/resources/openProject.gif" ) ); //NOI18N private static final String NAME = NbBundle.getMessage( OpenProject.class, "LBL_OpenProjectAction_Name" ); // NOI18N /** Creates a new instance of BrowserAction */ public OpenProject() { super( NAME, ICON ); putValue("iconBase","org/netbeans/modules/project/ui/resources/openProject.gif"); //NOI18N } public void actionPerformed( ActionEvent evt ) { JFileChooser chooser = ProjectChooserAccessory.createProjectChooser( true ); // Create the jFileChooser OpenProjectListSettings opls = OpenProjectListSettings.getInstance(); while( true ) { // Cycle while users does some reasonable action e.g. // select project dir or cancel the chooser int option = chooser.showOpenDialog( WindowManager.getDefault().getMainWindow() ); // Sow the chooser if ( option == JFileChooser.APPROVE_OPTION ) { final File projectDir = FileUtil.normalizeFile(chooser.getSelectedFile()); Project project = OpenProjectList.fileToProject( projectDir ); if ( project == null ) { DialogDisplayer.getDefault().notify(new NotifyDescriptor.Message( NbBundle.getMessage( OpenProject.class, "MSG_notProjectDir"), // NOI18N NotifyDescriptor.WARNING_MESSAGE)); } else { OpenProjectList.getDefault().open( project, // Put the project into OpenProjectList opls.isOpenSubprojects() ); // And optionaly open subprojects if ( opls.isOpenAsMain() ) { // Set main project if selected OpenProjectList.getDefault().setMainProject( project ); } final ProjectTab ptLogial = ProjectTab.findDefault (ProjectTab.ID_LOGICAL); // invoke later to select the being opened project if the focus is outside ProjectTab SwingUtilities.invokeLater (new Runnable () { public void run () { Node root = ptLogial.getExplorerManager ().getRootContext (); Node projNode = root.getChildren ().findChild (projectDir.getName ()); try { ptLogial.getExplorerManager ().setSelectedNodes (new Node[] {projNode}); ptLogial.open (); ptLogial.requestActive (); } catch (Exception ignore) { // may ignore it } } }); break; // and exit the loop } } else { return ; // OK user changed his mind and won't open anything // Don't remeber the last selected dir } } opls.setLastOpenProjectDir( chooser.getCurrentDirectory().getPath() ); } } |
... 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.