package floobits.dialogs; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.DialogWrapper; import floobits.FloobitsApplication; import floobits.FloobitsPlugin; import floobits.impl.ContextImpl; import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.List; public class SelectRecentWorkspace extends DialogWrapper { Project project; private SelectWorkspace selectWorkspace = new SelectWorkspace(); public SelectRecentWorkspace(Project project, final List<String> items) { super(project, true); this.project = project; setTitle("Select a Workspace"); selectWorkspace.setItems(items); selectWorkspace.getRecentWorkspaces().addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { doOKAction(); } } }); init(); } @Nullable @Override public JComponent createCenterPanel() { return selectWorkspace.getPanel(); } @Override public void doCancelAction() { super.doCancelAction(); } @Override protected void doOKAction() { super.doOKAction(); if (project != null) { ContextImpl context = project.getComponent(FloobitsPlugin.class).context; FloobitsApplication.self.joinWorkspace(context, selectWorkspace.getSelectedItem()); return; } FloobitsApplication.self.joinWorkspace(null, selectWorkspace.getSelectedItem()); } }