package com.link_intersystems.gitdirstat.ui;
import java.awt.event.ActionEvent;
import java.io.File;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JFileChooser;
import com.link_intersystems.gitdirstat.domain.GitRepositoryAccess;
import com.link_intersystems.gitdirstat.ui.UIContext.IconType;
public class OpenAction extends AbstractAction {
private static final long serialVersionUID = 6082672924263782869L;
private GitRepositoryModel gitRepositoryModel;
private OpenRepositoryAction openRepositoryAction;
public OpenAction(GitRepositoryModel gitRepositoryModel,
GitRepositoryAccess gitRepositoryAccess, UIContext uiContext) {
this.gitRepositoryModel = gitRepositoryModel;
putValue(Action.NAME, "Open Git Repository");
putValue(Action.SMALL_ICON, uiContext.getIcon(IconType.OPEN));
openRepositoryAction = new OpenRepositoryAction(uiContext,
gitRepositoryModel, gitRepositoryAccess);
}
@Override
public void actionPerformed(ActionEvent e) {
File gitRepoDir = new File(System.getProperty("user.dir"));
if (gitRepositoryModel.getGitDir() != null) {
gitRepoDir = gitRepositoryModel.getGitDir();
}
JFileChooser jFileChooser = new JFileChooser(gitRepoDir);
jFileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int result = jFileChooser.showOpenDialog(null);
if (JFileChooser.APPROVE_OPTION == result) {
File selectedFile = jFileChooser.getSelectedFile();
gitRepositoryModel.setGitDir(selectedFile);
openRepositoryAction.actionPerformed(e);
}
}
}