package scrum.client.project; import ilarkesto.core.scope.Scope; import java.util.List; import scrum.client.common.TooltipBuilder; import scrum.client.workspace.Ui; import scrum.client.workspace.UsersWorkspaceWidgets; public class CreateExampleProjectAction extends GCreateExampleProjectAction { @Override public String getLabel() { return "Create Example Project"; } @Override public String getTooltip() { TooltipBuilder tb = new TooltipBuilder("Create a new example Project with some content."); if (!getCurrentUser().isAdmin() && getDao().getSystemConfig().isProjectCreationDisabled()) tb.addRemark("Creating new projects is disabled."); return tb.getTooltip(); } @Override public boolean isPermitted() { if (!getCurrentUser().isAdmin() && getDao().getSystemConfig().isProjectCreationDisabled()) return false; return true; } @Override protected void onExecute() { Scope.get().getComponent(Ui.class).lock("Creating Example Project..."); final List<Project> previousProjects = getDao().getProjects(); new CreateExampleProjectServiceCall().execute(new Runnable() { @Override public void run() { Scope.get().getComponent(Ui.class).unlock(); List<Project> newProjects = getDao().getProjects(); newProjects.removeAll(previousProjects); if (!newProjects.isEmpty()) { Scope.get().getComponent(UsersWorkspaceWidgets.class).getProjectSelector() .select(newProjects.get(0)); } } }); } }