package krasa.frameswitcher.networking.dto; import com.intellij.ide.ReopenProjectAction; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.project.Project; import com.intellij.openapi.wm.IdeFrame; import java.util.ArrayList; import java.util.List; import java.util.UUID; public class ProjectsState extends GeneralMessage { private List<RemoteProject> recentRemoteProjects; private List<RemoteProject> remoteProjects; public ProjectsState(UUID uuid, AnAction[] recentProjectsActions, List<IdeFrame> ideFrames) { super(uuid); recentRemoteProjects = new ArrayList<RemoteProject>(recentProjectsActions.length); for (AnAction action : recentProjectsActions) { ReopenProjectAction reopenProjectAction = (ReopenProjectAction) action; recentRemoteProjects.add(new RemoteProject(reopenProjectAction)); } remoteProjects = new ArrayList<RemoteProject>(ideFrames.size()); for (IdeFrame ideFrame : ideFrames) { Project project = ideFrame.getProject(); if (project != null) { remoteProjects.add(new RemoteProject(project)); } } } public List<RemoteProject> getRemoteProjects() { return remoteProjects; } public List<RemoteProject> getRecentRemoteProjects() { return recentRemoteProjects; } }