/******************************************************************************* * Copyright (c) 2012 Dmitry Tikhomirov. * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Public License v3.0 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/gpl.html * * Contributors: * Dmitry Tikhomirov - initial API and implementation ******************************************************************************/ package org.opensheet.client.widges.project; import java.util.ArrayList; import java.util.List; import org.opensheet.client.dto.UserDTO; import org.opensheet.client.services.AssignmentService; import org.opensheet.client.services.AssignmentServiceAsync; import org.opensheet.client.utils.Resources; import com.extjs.gxt.ui.client.data.BaseModel; import com.extjs.gxt.ui.client.event.BaseEvent; import com.extjs.gxt.ui.client.event.Events; import com.extjs.gxt.ui.client.event.Listener; import com.extjs.gxt.ui.client.store.ListStore; import com.extjs.gxt.ui.client.widget.ContentPanel; import com.extjs.gxt.ui.client.widget.MessageBox; import com.extjs.gxt.ui.client.widget.Window; import com.extjs.gxt.ui.client.widget.button.Button; import com.extjs.gxt.ui.client.widget.grid.ColumnConfig; import com.extjs.gxt.ui.client.widget.grid.ColumnModel; import com.extjs.gxt.ui.client.widget.grid.Grid; import com.extjs.gxt.ui.client.widget.layout.RowLayout; import com.extjs.gxt.ui.client.widget.toolbar.ToolBar; import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.rpc.AsyncCallback; public class AssignmentUsers extends Window{ private Integer assignment; private Grid<BaseModel> departmentGrid; private AssignmentServiceAsync assignmnetService = GWT.create(AssignmentService.class); public AssignmentUsers(Integer assignment){ this.assignment = assignment; setHeight(500); setWidth(600); setClosable(true); setHeadingHtml("Assignment Users"); add(addToolBar()); add(doGrid()); populateGrid(); show(); } private ToolBar addToolBar(){ ToolBar tb = new ToolBar(); Button xlsExportButton = new Button(); xlsExportButton.setText("Excel Export"); xlsExportButton.setIcon(Resources.ICONS.table()); xlsExportButton.addListener(Events.Select, new Listener<BaseEvent>(){ @Override public void handleEvent(BaseEvent be) { com.google.gwt.user.client.Window.Location.assign(GWT.getHostPageBaseURL().toString() +"userassignmenttoxls.htm?assignment_id="+assignment); } }); tb.add(xlsExportButton); return tb; } private Grid<BaseModel> doGrid(){ List<ColumnConfig> configs = new ArrayList<ColumnConfig>(); ColumnConfig nameConfig = new ColumnConfig("name", "Name", 250); nameConfig.setMenuDisabled(true); configs.add(nameConfig); ColumnConfig depsConfig = new ColumnConfig("department", "Department", 320); depsConfig.setMenuDisabled(true); configs.add(depsConfig); ColumnModel cm = new ColumnModel(configs); departmentGrid = new Grid<BaseModel>(new ListStore<BaseModel>(), cm); departmentGrid.setLoadMask(true); departmentGrid.setWidth(580); departmentGrid.setHeight(440); departmentGrid.addStyleName(".my-table-style"); departmentGrid.setBorders(true); departmentGrid.setAutoExpandColumn("name"); departmentGrid.getView().setEmptyText("no data"); departmentGrid.setId("usersGridGhrtId"); add(departmentGrid); return departmentGrid; } private void populateGrid(){ assignmnetService.getAssignmentUsers(assignment, new AsyncCallback<List<UserDTO>>(){ @Override public void onFailure(Throwable caught) { MessageBox.info("EROR",caught.getMessage(),null); } @Override public void onSuccess(List<UserDTO> result) { departmentGrid.getStore().removeAll(); for(UserDTO u: result){ BaseModel bm = new BaseModel(); bm.set("id", u.getId()); bm.set("name", u.getfullName()); bm.set("department", u.getDepartment().getName()); departmentGrid.getStore().add(bm); } } }); } }