1
package com.eucalyptus.webui.client.view;
3
import java.util.ArrayList;
4
import java.util.logging.Level;
5
import java.util.logging.Logger;
6
import com.eucalyptus.webui.client.service.SearchResult;
7
import com.eucalyptus.webui.client.service.SearchResultFieldDesc;
8
import com.eucalyptus.webui.client.service.SearchResultRow;
9
import com.google.gwt.core.client.GWT;
10
import com.google.gwt.uibinder.client.UiBinder;
11
import com.google.gwt.uibinder.client.UiField;
12
import com.google.gwt.user.client.ui.Composite;
13
import com.google.gwt.user.client.ui.LayoutPanel;
14
import com.google.gwt.user.client.ui.Widget;
15
import com.google.gwt.view.client.SelectionChangeEvent;
16
import com.google.gwt.view.client.SelectionChangeEvent.Handler;
17
import com.google.gwt.view.client.SingleSelectionModel;
19
public class ConfigViewImpl extends Composite implements ConfigView {
21
private static final Logger LOG = Logger.getLogger( ConfigViewImpl.class.getName( ) );
23
private static ConfigViewImplUiBinder uiBinder = GWT.create( ConfigViewImplUiBinder.class );
25
interface ConfigViewImplUiBinder extends UiBinder<Widget, ConfigViewImpl> {}
28
LayoutPanel tablePanel;
30
private SingleSelectionModel<SearchResultRow> selectionModel;
32
private SearchResultTable table;
34
private Presenter presenter;
36
public ConfigViewImpl( ) {
37
initWidget( uiBinder.createAndBindUi( this ) );
40
public void initializeTable( int pageSize, ArrayList<SearchResultFieldDesc> fieldDescs ) {
42
selectionModel = new SingleSelectionModel<SearchResultRow>( SearchResultRow.KEY_PROVIDER );
43
selectionModel.addSelectionChangeHandler( new Handler( ) {
45
public void onSelectionChange( SelectionChangeEvent event ) {
46
SearchResultRow row = selectionModel.getSelectedObject( );
47
LOG.log( Level.INFO, "Selection changed: " + row );
48
presenter.onSelectionChange( row );
51
table = new SearchResultTable( pageSize, fieldDescs, this.presenter, selectionModel );
52
tablePanel.add( table );
57
public void showSearchResult( SearchResult result ) {
58
if ( this.table == null ) {
59
initializeTable( this.presenter.getPageSize( ), result.getDescs( ) );
61
table.setData( result );
65
public void setPresenter( Presenter presenter ) {
66
this.presenter = presenter;
70
public void clear( ) {
71
this.tablePanel.clear( );
76
public void clearSelection( ) {
77
this.selectionModel.setSelected( this.selectionModel.getSelectedObject( ), false );