package floobits.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.project.Project;
import floobits.FloobitsApplication;
import floobits.FloobitsPlugin;
import floobits.common.*;
import floobits.dialogs.HandleNoWorkspaceJoin;
import floobits.impl.ContextImpl;
import floobits.utilities.Flog;
import java.net.MalformedURLException;
import java.util.Map;
public class OpenProjectInWorkspace extends CanFloobits {
public void actionPerformed(AnActionEvent actionEvent, Project project, FloobitsPlugin plugin, ContextImpl context) {
FlooUrl flooUrl = DotFloo.read(project.getBasePath());
if (flooUrl != null) {
FloobitsApplication.self.joinWorkspace(context, flooUrl.toString());
return;
}
String project_path = context.project.getBasePath();
PersistentJson persistentJson = PersistentJson.getInstance();
for (Map.Entry<String, Map<String, Workspace>> i : persistentJson.workspaces.entrySet()) {
Map<String, Workspace> workspaces = i.getValue();
for (Map.Entry<String, Workspace> j : workspaces.entrySet()) {
Workspace w = j.getValue();
if (Utils.isSamePath(w.path, project_path)) {
try {
flooUrl = new FlooUrl(w.url);
} catch (MalformedURLException e) {
Flog.error(e);
continue;
}
FloobitsApplication.self.joinWorkspace(context, flooUrl.toString());
return;
}
}
}
HandleNoWorkspaceJoin dialog = new HandleNoWorkspaceJoin(context);
dialog.createCenterPanel();
dialog.show();
}
}