001    /******************************************************************************
002     * Copyright (C) MActor Developers. All rights reserved.                        *
003     * ---------------------------------------------------------------------------*
004     * This file is part of MActor.                                               *
005     *                                                                            *
006     * MActor is free software; you can redistribute it and/or modify             *
007     * it under the terms of the GNU General Public License as published by       *
008     * the Free Software Foundation; either version 2 of the License, or          *
009     * (at your option) any later version.                                        *
010     *                                                                            *
011     * MActor is distributed in the hope that it will be useful,                  *
012     * but WITHOUT ANY WARRANTY; without even the implied warranty of             *
013     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              *
014     * GNU General Public License for more details.                               *
015     *                                                                            *
016     * You should have received a copy of the GNU General Public License          *
017     * along with MActor; if not, write to the Free Software                      *
018     * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA *
019     ******************************************************************************/
020    /**
021     * 
022     */
023    package org.mactor.ui.gui.actions;
024    
025    import java.io.File;
026    
027    import javax.swing.JFileChooser;
028    import javax.swing.filechooser.FileFilter;
029    
030    import org.mactor.framework.MactorException;
031    import org.mactor.framework.spec.ProjectContext;
032    import org.mactor.ui.gui.project.GuiAction;
033    import org.mactor.ui.gui.project.ProjectController;
034    import org.mactor.ui.gui.project.ProjectTreeNode;
035    
036    public class OpenProjectAction implements GuiAction {
037            public boolean isPermitted(ProjectTreeNode selectedTreeNode, ProjectController projectController, String[] parameters) {
038                    return true;
039            }
040            static JFileChooser fc;
041            public void perform(ProjectTreeNode selectedTreeNode, ProjectController projectController, String[] parameters) throws MactorException {
042                    if (fc == null) {
043                            if (ProjectContext.getGlobalInstance().getProjectDir() != null)
044                                    fc = new JFileChooser(ProjectContext.getGlobalInstance().getProjectDir());
045                            else
046                                    fc = new JFileChooser(new File("."));
047                    }
048                    // fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
049                    fc.setFileFilter(new FileFilter() {
050                            @Override
051                            public boolean accept(File f) {
052                                    return f.isDirectory() || f.getName().equals("mactor.mproject");
053                            }
054                            @Override
055                            public String getDescription() {
056                                    return "MActor Project Files";
057                            }
058                    });
059                    int returnVal = fc.showOpenDialog(projectController.getControllerFrame());
060                    if (returnVal == JFileChooser.APPROVE_OPTION) {
061                            File f = fc.getSelectedFile();
062                            projectController.openProject(f.getParentFile());
063                    }
064            }
065    }