package scrum.client.admin;
import ilarkesto.gwt.client.AWidget;
import ilarkesto.gwt.client.ButtonWidget;
import scrum.client.Dao;
import scrum.client.common.BlockListWidget;
import scrum.client.project.CreateExampleProjectAction;
import scrum.client.project.CreateProjectAction;
import scrum.client.project.Project;
import scrum.client.workspace.PagePanel;
import com.google.gwt.user.client.ui.Widget;
public class ProjectSelectorWidget extends AWidget {
private BlockListWidget<Project> list;
@Override
protected Widget onInitialization() {
list = new BlockListWidget<Project>(ProjectBlock.FACTORY);
list.setAutoSorter(Project.LAST_OPENED_COMPARATOR);
PagePanel page = new PagePanel();
page.addHeader("Projects", new ButtonWidget(new CreateProjectAction()), new ButtonWidget(
new CreateExampleProjectAction()));
page.addSection(list);
return page;
}
@Override
protected void onUpdate() {
list.setObjects(Dao.get().getProjects());
super.onUpdate();
}
public BlockListWidget<Project> getList() {
return this.list;
}
public boolean select(Project project) {
if (!list.contains(project)) update();
return list.showObject(project);
}
}