/* * Copyright 2013 State University of New York at Oswego * * Licensed under the Apache License, Version 2.0 (the "License");  * you may not use this file except in compliance with the License.  * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software  * distributed under the License is distributed on an "AS IS" BASIS,  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  * See the License for the specific language governing permissions and  * limitations under the License. */ package edu.oswego.csc480_hci521_2013.client.ui; import com.google.gwt.core.client.GWT; import com.google.gwt.core.client.Scheduler.ScheduledCommand; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiFactory; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.uibinder.client.UiHandler; import com.google.gwt.user.cellview.client.DataGrid; import com.google.gwt.user.cellview.client.HasKeyboardSelectionPolicy; import com.google.gwt.user.cellview.client.SimplePager; import com.google.gwt.user.cellview.client.TextColumn; import com.google.gwt.user.cellview.client.SimplePager.TextLocation; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.MenuBar; import com.google.gwt.user.client.ui.MenuItem; import com.google.gwt.user.client.ui.PushButton; import com.google.gwt.user.client.ui.Widget; import com.google.gwt.view.client.ListDataProvider; import edu.oswego.csc480_hci521_2013.client.activity.DoublePanelActivity; import edu.oswego.csc480_hci521_2013.client.presenters.DataPanelPresenter; import java.util.List; import java.util.Map; import java.util.Set; public class DataPanelViewImpl extends Composite implements DataPanelView { interface GridResources extends DataGrid.Resources { @Source({DataGrid.Style.DEFAULT_CSS, "DataPanelViewImpl.css"}) GridStyle dataGridStyle(); } interface GridStyle extends DataGrid.Style { } interface Binder extends UiBinder<Widget, DataPanelViewImpl> { } private static Binder uiBinder = GWT.create(Binder.class); private ListDataProvider<Map<String, String>> dataProvider = new ListDataProvider<Map<String, String>>(); @UiField PushButton popin; @UiField HorizontalPanel popinPanel; @UiField MenuBar visbar; @UiField MenuItem generate; @UiField DataGrid<Map<String, String>> dataTable; @UiField SimplePager pager; @UiFactory DataGrid<Map<String, String>> makeDataGrid() { DataGrid.Resources resources = GWT.create(GridResources.class); return new DataGrid<Map<String, String>>(15, resources); } public DataPanelViewImpl() { this(false); } public DataPanelViewImpl(boolean showPopinButton) { SimplePager.Resources pagerResources = GWT.create(SimplePager.Resources.class); pager = new SimplePager(TextLocation.CENTER, pagerResources, false, 0, true); initWidget(uiBinder.createAndBindUi(this)); dataTable.setKeyboardSelectionPolicy(HasKeyboardSelectionPolicy.KeyboardSelectionPolicy.DISABLED); dataProvider.addDataDisplay(dataTable); pager.setDisplay(dataTable); // pager.setRangeLimited(false); popinPanel.setVisible(showPopinButton); } @Override public void setGenerateCommand(ScheduledCommand command) { generate.setScheduledCommand(command); } @Override public void forestStarted() { } @Override public void setColumns(Set<String> columns) { for (final String key : columns) { dataTable.addColumn(new TextColumn<Map<String, String>>() { @Override public String getValue(Map<String, String> row) { return row.get(key); } }, key); } } @Override public void setData(List<Map<String, String>> data) { // dataTable.setRowData(data); dataProvider.setList(data); } @Override public void showPopinButton(boolean show) { popin.setVisible(show); } @UiHandler("popin") void handleClick(ClickEvent e) { closeWindow(); } public static native void closeWindow()/*-{ $wnd.close(); }-*/; }