1657: StatMan AIgorithms Importer - Create a widget to sopport Project Explorer

Task-Url: https://support.d4science.org/issues/1657

Updated WorkspaceResourcesExplorer

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/widgets/workspace-explorer@120583 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Francesco Mangiacrapa 2015-12-03 11:03:12 +00:00
parent 52deed0837
commit 6590a6a4a5
7 changed files with 138 additions and 40 deletions

View File

@ -52,8 +52,8 @@ public class WorkspaceExplorerController implements EventHandler {
public final static HandlerManager eventBus = new HandlerManager(null); public final static HandlerManager eventBus = new HandlerManager(null);
private WorkspaceExplorerPanel workspaceExplorerPanel; private WorkspaceExplorerPanel workspaceExplorerPanel;
private WorkspaceExplorer wsExplorer; private WorkspaceExplorer wsExplorer;
private Breadcrumbs breadcrumbs = new Breadcrumbs(); private Breadcrumbs breadcrumbs = new Breadcrumbs(eventBus);
private Navigation navigation = new Navigation(); private Navigation navigation = new Navigation(eventBus);
public static final WorkspaceExplorerServiceAsync workspaceNavigatorService = GWT.create(WorkspaceExplorerService.class); public static final WorkspaceExplorerServiceAsync workspaceNavigatorService = GWT.create(WorkspaceExplorerService.class);
@ -66,7 +66,7 @@ public class WorkspaceExplorerController implements EventHandler {
public WorkspaceExplorerController(String heightPanel){ public WorkspaceExplorerController(String heightPanel){
bindEvents(); bindEvents();
//As default all items are showable and selectable //As default all items are showable and selectable
wsExplorer = new WorkspaceExplorer(ItemType.values(), ItemType.values()); wsExplorer = new WorkspaceExplorer(eventBus, ItemType.values(), ItemType.values());
workspaceExplorerPanel = new WorkspaceExplorerPanel(5, wsExplorer.getPanel(), breadcrumbs, navigation, heightPanel); workspaceExplorerPanel = new WorkspaceExplorerPanel(5, wsExplorer.getPanel(), breadcrumbs, navigation, heightPanel);
} }
@ -82,7 +82,7 @@ public class WorkspaceExplorerController implements EventHandler {
public WorkspaceExplorerController(FilterCriteria filterCriteria, String heightPanel) { public WorkspaceExplorerController(FilterCriteria filterCriteria, String heightPanel) {
bindEvents(); bindEvents();
//As default all items are showable and selectable //As default all items are showable and selectable
wsExplorer = new WorkspaceExplorer(filterCriteria, ItemType.values(), ItemType.values()); wsExplorer = new WorkspaceExplorer(eventBus, filterCriteria, ItemType.values(), ItemType.values());
workspaceExplorerPanel = new WorkspaceExplorerPanel(5, wsExplorer.getPanel(), breadcrumbs, navigation, heightPanel); workspaceExplorerPanel = new WorkspaceExplorerPanel(5, wsExplorer.getPanel(), breadcrumbs, navigation, heightPanel);
} }

View File

@ -1,18 +1,20 @@
/** /**
* *
*/ */
package org.gcube.portlets.widgets.wsexplorer.client.select; package org.gcube.portlets.widgets.wsexplorer.client.explore;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.gcube.portlets.widgets.wsexplorer.client.Util; import org.gcube.portlets.widgets.wsexplorer.client.Util;
import org.gcube.portlets.widgets.wsexplorer.client.WorkspaceExplorerConstants;
import org.gcube.portlets.widgets.wsexplorer.client.WorkspaceExplorerController; import org.gcube.portlets.widgets.wsexplorer.client.WorkspaceExplorerController;
import org.gcube.portlets.widgets.wsexplorer.client.event.ClickItemEvent; import org.gcube.portlets.widgets.wsexplorer.client.event.ClickItemEvent;
import org.gcube.portlets.widgets.wsexplorer.client.event.ClickItemEventHandler; import org.gcube.portlets.widgets.wsexplorer.client.event.ClickItemEventHandler;
import org.gcube.portlets.widgets.wsexplorer.client.event.LoadFolderEvent;
import org.gcube.portlets.widgets.wsexplorer.client.event.LoadFolderEventHandler;
import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.HasWorskpaceExplorerSelectNotificationListener; import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.HasWorskpaceExplorerSelectNotificationListener;
import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.WorskpaceExplorerSelectNotificationListener; import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.WorskpaceExplorerSelectNotificationListener;
import org.gcube.portlets.widgets.wsexplorer.client.view.Breadcrumbs;
import org.gcube.portlets.widgets.wsexplorer.client.view.WorkspaceExplorer; import org.gcube.portlets.widgets.wsexplorer.client.view.WorkspaceExplorer;
import org.gcube.portlets.widgets.wsexplorer.client.view.grid.ItemsTable.DISPLAY_FIELD; import org.gcube.portlets.widgets.wsexplorer.client.view.grid.ItemsTable.DISPLAY_FIELD;
import org.gcube.portlets.widgets.wsexplorer.shared.Item; import org.gcube.portlets.widgets.wsexplorer.shared.Item;
@ -25,6 +27,9 @@ import com.github.gwtbootstrap.client.ui.constants.ButtonType;
import com.google.gwt.core.shared.GWT; import com.google.gwt.core.shared.GWT;
import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.DockPanel;
import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.ScrollPanel; import com.google.gwt.user.client.ui.ScrollPanel;
import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.VerticalPanel;
@ -37,9 +42,9 @@ import com.google.gwt.user.client.ui.VerticalPanel;
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
* Jul 28, 2015 * Jul 28, 2015
*/ */
public class WorkspaceFolderExplorerSelectPanel extends ScrollPanel implements HasWorskpaceExplorerSelectNotificationListener{ public class WorkspaceResourcesExplorerPanel extends DockPanel implements HasWorskpaceExplorerSelectNotificationListener{
private WorkspaceFolderExplorerSelectPanel INSTANCE = this; private WorkspaceResourcesExplorerPanel INSTANCE = this;
private boolean isSelect = false; private boolean isSelect = false;
private String captionTxt; private String captionTxt;
private Alert alertConfirm; private Alert alertConfirm;
@ -48,7 +53,12 @@ public class WorkspaceFolderExplorerSelectPanel extends ScrollPanel implements H
private VerticalPanel mainVP = new VerticalPanel(); private VerticalPanel mainVP = new VerticalPanel();
private HorizontalPanel footerHP = new HorizontalPanel(); private HorizontalPanel footerHP = new HorizontalPanel();
private WorkspaceExplorer wsExplorer; private WorkspaceExplorer wsExplorer;
private ScrollPanel centerScrollable = new ScrollPanel();
private ScrollPanel southPanel = new ScrollPanel();
public int defaultWidth = 200;
public int defaultHeight = 200;
public final HandlerManager eventBus = new HandlerManager(null);
private Breadcrumbs breadcrumbs = new Breadcrumbs(eventBus);
/** /**
* Instantiates a new workspace folder explorer select panel. * Instantiates a new workspace folder explorer select panel.
@ -56,17 +66,16 @@ public class WorkspaceFolderExplorerSelectPanel extends ScrollPanel implements H
* @param folderId the folder id * @param folderId the folder id
* @throws Exception * @throws Exception
*/ */
public WorkspaceFolderExplorerSelectPanel(String folderId, String folderName) throws Exception { public WorkspaceResourcesExplorerPanel(String folderId, String folderName) throws Exception {
initExplorer(folderId, folderName, ItemType.values(), ItemType.values()); initExplorer(folderId, folderName, ItemType.values(), ItemType.values());
} }
private void initExplorer(String folderId, String folderName, ItemType[] selectableTypes, ItemType[] showableTypes) throws Exception{ private void initExplorer(String folderId, String folderName, ItemType[] selectableTypes, ItemType[] showableTypes) throws Exception{
bindEvents(); bindEvents();
wsExplorer = new WorkspaceExplorer(showableTypes, selectableTypes, new DISPLAY_FIELD[]{DISPLAY_FIELD.ICON, DISPLAY_FIELD.NAME}); wsExplorer = new WorkspaceExplorer(eventBus, showableTypes, selectableTypes, new DISPLAY_FIELD[]{DISPLAY_FIELD.ICON, DISPLAY_FIELD.NAME});
Item item = new Item(folderId, folderName, true); Item item = new Item(folderId, folderName, true);
wsExplorer.loadFolder(item); wsExplorer.loadFolder(item);
initPanel(""); initPanel("");
} }
/** /**
@ -76,7 +85,7 @@ public class WorkspaceFolderExplorerSelectPanel extends ScrollPanel implements H
* @param showOnlyFolders the show only folders * @param showOnlyFolders the show only folders
* @throws Exception * @throws Exception
*/ */
public WorkspaceFolderExplorerSelectPanel(String folderId, boolean showOnlyFolders) throws Exception { public WorkspaceResourcesExplorerPanel(String folderId, boolean showOnlyFolders) throws Exception {
if(showOnlyFolders){ if(showOnlyFolders){
ItemType[] itemsType = new ItemType[1]; ItemType[] itemsType = new ItemType[1];
@ -92,7 +101,8 @@ public class WorkspaceFolderExplorerSelectPanel extends ScrollPanel implements H
* Bind events. * Bind events.
*/ */
private void bindEvents(){ private void bindEvents(){
WorkspaceExplorerController.eventBus.addHandler(ClickItemEvent.TYPE, new ClickItemEventHandler() {
eventBus.addHandler(ClickItemEvent.TYPE, new ClickItemEventHandler() {
@Override @Override
public void onClick(final ClickItemEvent clickItemEvent) { public void onClick(final ClickItemEvent clickItemEvent) {
@ -109,15 +119,68 @@ public class WorkspaceFolderExplorerSelectPanel extends ScrollPanel implements H
isSelect = true; isSelect = true;
} }
}); });
eventBus.addHandler(LoadFolderEvent.TYPE, new LoadFolderEventHandler() {
@Override
public void onLoadFolder(LoadFolderEvent loadFolderEvent) {
if(loadFolderEvent.getTargetItem()!=null && loadFolderEvent.getTargetItem().isFolder()){
try {
wsExplorer.loadFolder(loadFolderEvent.getTargetItem());
loadParentBreadcrumbByItemId(loadFolderEvent.getTargetItem().getId(), true);
clearMoreInfo();
} catch (Exception e) {
GWT.log(e.getMessage());
}
}
}
});
} }
@Override
public void onResize() { /**
super.onResize(); * Load parent breadcrumb by item id.
GWT.log("on Resize..."); *
adjustSize(); * @param itemIdentifier the item identifier
* @param includeItemAsParent the include item as parent
*/
protected void loadParentBreadcrumbByItemId(final String itemIdentifier, boolean includeItemAsParent){
GWT.log("Reload Parent Breadcrumb: [Item id: "+itemIdentifier+"]");
WorkspaceExplorerController.workspaceNavigatorService.getBreadcrumbsByItemIdentifier(itemIdentifier, includeItemAsParent, new AsyncCallback<List<Item>>() {
@Override
public void onFailure(Throwable caught) {
GWT.log(caught.getMessage());
wsExplorer.setAlert(caught.getMessage(), AlertType.ERROR);
}
@Override
public void onSuccess(List<Item> result) {
if(result!=null){
breadcrumbs.setPath(result);
clearMoreInfo();
}
}
});
} }
/**
* Clear more info.
*/
private void clearMoreInfo(){
southPanel.clear();
}
// @Override
// public void onResize() {
// super.onResize();
// GWT.log("on Resize...");
// adjustSize();
// }
/* (non-Javadoc) /* (non-Javadoc)
* @see com.google.gwt.user.client.ui.Widget#onLoad() * @see com.google.gwt.user.client.ui.Widget#onLoad()
*/ */
@ -145,11 +208,19 @@ public class WorkspaceFolderExplorerSelectPanel extends ScrollPanel implements H
if(this.captionTxt!=null && !this.captionTxt.isEmpty()) if(this.captionTxt!=null && !this.captionTxt.isEmpty())
setTitle(this.captionTxt); setTitle(this.captionTxt);
setWidth(WorkspaceExplorerConstants.WIDHT_DIALOG+"px"); setSize(200+"px", 200+"px");
add(breadcrumbs, DockPanel.NORTH);
// centerScrollable.setSize(width+"px", height);
setAlertConfirm("", false, null); setAlertConfirm("", false, null);
mainVP.add(wsExplorer.getPanel()); mainVP.add(wsExplorer.getPanel());
mainVP.add(footerHP); mainVP.add(footerHP);
add(mainVP); centerScrollable.add(mainVP);
add(centerScrollable, DockPanel.CENTER);
southPanel.ensureDebugId("SouthPanelWEP");
add(footerHP, DockPanel.SOUTH);
} }

View File

@ -6,7 +6,6 @@ package org.gcube.portlets.widgets.wsexplorer.client.view;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import org.gcube.portlets.widgets.wsexplorer.client.WorkspaceExplorerController;
import org.gcube.portlets.widgets.wsexplorer.client.event.BreadcrumbClickEvent; import org.gcube.portlets.widgets.wsexplorer.client.event.BreadcrumbClickEvent;
import org.gcube.portlets.widgets.wsexplorer.shared.Item; import org.gcube.portlets.widgets.wsexplorer.shared.Item;
@ -14,6 +13,7 @@ import com.github.gwtbootstrap.client.ui.NavLink;
import com.google.gwt.core.client.GWT; import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField; import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.Composite;
@ -33,6 +33,8 @@ public class Breadcrumbs extends Composite {
@UiField @UiField
com.github.gwtbootstrap.client.ui.Breadcrumbs breadcrumbs; com.github.gwtbootstrap.client.ui.Breadcrumbs breadcrumbs;
private HandlerManager eventBus;
/** /**
* The Interface BreadcrumbsUiBinder. * The Interface BreadcrumbsUiBinder.
@ -46,8 +48,9 @@ public class Breadcrumbs extends Composite {
/** /**
* Instantiates a new breadcrumbs. * Instantiates a new breadcrumbs.
*/ */
public Breadcrumbs() { public Breadcrumbs(HandlerManager eventBus) {
initWidget(uiBinder.createAndBindUi(this)); initWidget(uiBinder.createAndBindUi(this));
this.eventBus = eventBus;
breadcrumbs.setDivider(DIVIDER); breadcrumbs.setDivider(DIVIDER);
// init(); // init();
// initBreadcrumb(true); // initBreadcrumb(true);
@ -109,7 +112,7 @@ public class Breadcrumbs extends Composite {
Item target = hashListItems.get(navLink.getName()); Item target = hashListItems.get(navLink.getName());
// WorkspaceExplorerController.eventBus.fireEvent(new LoadFolderEvent(target)); // WorkspaceExplorerController.eventBus.fireEvent(new LoadFolderEvent(target));
WorkspaceExplorerController.eventBus.fireEvent(new BreadcrumbClickEvent(target)); eventBus.fireEvent(new BreadcrumbClickEvent(target));
} }
}); });
} }

View File

@ -16,6 +16,7 @@ import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField; import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.rpc.AsyncCallback;
@ -37,6 +38,8 @@ public class Navigation extends Composite{
@UiField @UiField
NavWidget vre_folder; NavWidget vre_folder;
private HandlerManager eventBus;
/** /**
* The Interface BreadcrumbsUiBinder. * The Interface BreadcrumbsUiBinder.
* *
@ -47,10 +50,12 @@ public class Navigation extends Composite{
} }
/** /**
* @param eventbus
* *
*/ */
public Navigation() { public Navigation(HandlerManager eventBus) {
initWidget(uiBinder.createAndBindUi(this)); initWidget(uiBinder.createAndBindUi(this));
this.eventBus = eventBus;
getElement().getStyle().setMarginLeft(5.0, Unit.PX); getElement().getStyle().setMarginLeft(5.0, Unit.PX);
home.setActive(true); home.setActive(true);
@ -75,7 +80,7 @@ public class Navigation extends Composite{
@Override @Override
public void onClick(ClickEvent event) { public void onClick(ClickEvent event) {
WorkspaceExplorerController.eventBus.fireEvent(new LoadRootEvent()); Navigation.this.eventBus.fireEvent(new LoadRootEvent());
} }
}); });
@ -102,7 +107,7 @@ public class Navigation extends Composite{
@Override @Override
public void onClick(ClickEvent event) { public void onClick(ClickEvent event) {
WorkspaceExplorerController.eventBus.fireEvent(new LoadMySpecialFolderEvent()); Navigation.this.eventBus.fireEvent(new LoadMySpecialFolderEvent());
} }
}); });
} }

View File

@ -17,6 +17,7 @@ import com.github.gwtbootstrap.client.ui.Alert;
import com.github.gwtbootstrap.client.ui.constants.AlertType; import com.github.gwtbootstrap.client.ui.constants.AlertType;
import com.google.gwt.core.client.GWT; import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.user.client.Window; import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.HTML;
@ -54,17 +55,22 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes{
protected ScrollPanel explorerPanel; protected ScrollPanel explorerPanel;
private ItemsTable itTables; private ItemsTable itTables;
private DISPLAY_FIELD[] displayFields; private DISPLAY_FIELD[] displayFields;
private HandlerManager eventBus;
/** /**
* Instantiates a new workspace explorer. * Instantiates a new workspace explorer.
* *
* @param eventBus the event bus
* @param showableTypes the showable types * @param showableTypes the showable types
* @param selectableTypes the selectable types * @param selectableTypes the selectable types
* @param fields the fields
*/ */
public WorkspaceExplorer(ItemType[] showableTypes, ItemType[] selectableTypes, DISPLAY_FIELD...fields) { public WorkspaceExplorer(HandlerManager eventBus, ItemType[] showableTypes, ItemType[] selectableTypes, DISPLAY_FIELD...fields) {
this.eventBus = eventBus;
setShowableTypes(showableTypes); setShowableTypes(showableTypes);
setSelectableTypes(selectableTypes); setSelectableTypes(selectableTypes);
itTables = new ItemsTable(true, fields); itTables = new ItemsTable(eventBus, true, fields);
explorerPanel = new ScrollPanel(); explorerPanel = new ScrollPanel();
} }
@ -72,12 +78,14 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes{
/** /**
* Instantiates a new workspace explorer. * Instantiates a new workspace explorer.
* *
* @param eventBus the event bus
* @param filterCriteria the filter criteria * @param filterCriteria the filter criteria
* @param showableTypes the showable types * @param showableTypes the showable types
* @param selectableTypes the selectable types * @param selectableTypes the selectable types
* @param fields the fields
*/ */
public WorkspaceExplorer(FilterCriteria filterCriteria, ItemType[] showableTypes, ItemType[] selectableTypes, DISPLAY_FIELD...fields) { public WorkspaceExplorer(HandlerManager eventBus, FilterCriteria filterCriteria, ItemType[] showableTypes, ItemType[] selectableTypes, DISPLAY_FIELD...fields) {
this(showableTypes, selectableTypes, fields); this(eventBus, showableTypes, selectableTypes, fields);
this.filterCriteria = filterCriteria; this.filterCriteria = filterCriteria;
} }
@ -132,7 +140,7 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes{
} }
public void onSuccess(Item item) { public void onSuccess(Item item) {
WorkspaceExplorerController.eventBus.fireEvent(new RootLoadedEvent(item)); eventBus.fireEvent(new RootLoadedEvent(item));
updateExplorer(item.getChildren()); updateExplorer(item.getChildren());
} }
@ -249,6 +257,8 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes{
/** /**
* Gets the display fields.
*
* @return the displayFields * @return the displayFields
*/ */
public DISPLAY_FIELD[] getDisplayFields() { public DISPLAY_FIELD[] getDisplayFields() {
@ -257,6 +267,8 @@ public class WorkspaceExplorer implements ShowableTypes, SelectableTypes{
/** /**
* Sets the display fields.
*
* @param displayFields the displayFields to set * @param displayFields the displayFields to set
*/ */
public void setDisplayFields(DISPLAY_FIELD[] displayFields) { public void setDisplayFields(DISPLAY_FIELD[] displayFields) {

View File

@ -2,7 +2,6 @@ package org.gcube.portlets.widgets.wsexplorer.client.view.grid;
import java.util.List; import java.util.List;
import org.gcube.portlets.widgets.wsexplorer.client.WorkspaceExplorerController;
import org.gcube.portlets.widgets.wsexplorer.client.event.ClickItemEvent; import org.gcube.portlets.widgets.wsexplorer.client.event.ClickItemEvent;
import org.gcube.portlets.widgets.wsexplorer.client.resources.CellTableResources; import org.gcube.portlets.widgets.wsexplorer.client.resources.CellTableResources;
import org.gcube.portlets.widgets.wsexplorer.shared.Item; import org.gcube.portlets.widgets.wsexplorer.shared.Item;
@ -16,6 +15,7 @@ import com.google.gwt.event.dom.client.ContextMenuEvent;
import com.google.gwt.event.dom.client.ContextMenuHandler; import com.google.gwt.event.dom.client.ContextMenuHandler;
import com.google.gwt.event.dom.client.DoubleClickEvent; import com.google.gwt.event.dom.client.DoubleClickEvent;
import com.google.gwt.event.dom.client.DoubleClickHandler; import com.google.gwt.event.dom.client.DoubleClickHandler;
import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.user.cellview.client.AbstractCellTable; import com.google.gwt.user.cellview.client.AbstractCellTable;
import com.google.gwt.user.cellview.client.HasKeyboardSelectionPolicy.KeyboardSelectionPolicy; import com.google.gwt.user.cellview.client.HasKeyboardSelectionPolicy.KeyboardSelectionPolicy;
import com.google.gwt.user.cellview.client.SimplePager; import com.google.gwt.user.cellview.client.SimplePager;
@ -40,6 +40,7 @@ public abstract class AbstractItemsCellTable {
protected Item itemContextMenu = null; protected Item itemContextMenu = null;
protected boolean showMoreInfo; protected boolean showMoreInfo;
protected final SingleSelectionModel<Item> ssm; protected final SingleSelectionModel<Item> ssm;
private final HandlerManager eventBus;
/** /**
* Inits the table. * Inits the table.
@ -54,12 +55,16 @@ public abstract class AbstractItemsCellTable {
public abstract void initTable(AbstractCellTable<Item> ItemTable, final SimplePager pager, final Pagination pagination); public abstract void initTable(AbstractCellTable<Item> ItemTable, final SimplePager pager, final Pagination pagination);
/** /**
* Instantiates a new abstract items cell table. * Instantiates a new abstract items cell table.
* *
* @param fireMoreInfo the fire more info * @param eventBus the event bus
* @param fireOnClick the fire on click
*/ */
public AbstractItemsCellTable(boolean fireOnClick) { public AbstractItemsCellTable(HandlerManager eventBus, boolean fireOnClick) {
this.eventBus = eventBus;
this.showMoreInfo = fireOnClick; this.showMoreInfo = fireOnClick;
cellTable = new CellTable<Item>(1, CellTableResources.INSTANCE); cellTable = new CellTable<Item>(1, CellTableResources.INSTANCE);
cellTable.addStyleName("table-overflow"); cellTable.addStyleName("table-overflow");
@ -81,7 +86,7 @@ public abstract class AbstractItemsCellTable {
GWT.log("Clicked: "+selectedObject); GWT.log("Clicked: "+selectedObject);
// selectedItem(selectedObject); // selectedItem(selectedObject);
if(showMoreInfo) if(showMoreInfo)
WorkspaceExplorerController.eventBus.fireEvent(new ClickItemEvent(selectedObject)); AbstractItemsCellTable.this.eventBus.fireEvent(new ClickItemEvent(selectedObject));
} }
} }
}); });
@ -93,7 +98,7 @@ public abstract class AbstractItemsCellTable {
Item selected = ssm.getSelectedObject(); Item selected = ssm.getSelectedObject();
if (selected != null) { if (selected != null) {
GWT.log("Double Click: "+selected); GWT.log("Double Click: "+selected);
WorkspaceExplorerController.eventBus.fireEvent(new org.gcube.portlets.widgets.wsexplorer.client.event.LoadFolderEvent(selected)); AbstractItemsCellTable.this.eventBus.fireEvent(new org.gcube.portlets.widgets.wsexplorer.client.event.LoadFolderEvent(selected));
} }
} }
}, },
@ -124,7 +129,7 @@ public abstract class AbstractItemsCellTable {
@Override @Override
public void execute() { public void execute() {
WorkspaceExplorerController.eventBus.fireEvent(new org.gcube.portlets.widgets.wsexplorer.client.event.LoadFolderEvent(itemContextMenu)); AbstractItemsCellTable.this.eventBus.fireEvent(new org.gcube.portlets.widgets.wsexplorer.client.event.LoadFolderEvent(itemContextMenu));
} }
}; };

View File

@ -18,6 +18,7 @@ import com.google.gwt.cell.client.ButtonCell;
import com.google.gwt.cell.client.Cell.Context; import com.google.gwt.cell.client.Cell.Context;
import com.google.gwt.cell.client.ImageResourceCell; import com.google.gwt.cell.client.ImageResourceCell;
import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.resources.client.ImageResource; import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.safehtml.shared.SafeHtml; import com.google.gwt.safehtml.shared.SafeHtml;
import com.google.gwt.safehtml.shared.SafeHtmlBuilder; import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
@ -46,9 +47,10 @@ public class ItemsTable extends AbstractItemsCellTable implements SelectionItem{
/** /**
* Instantiates a new items table. * Instantiates a new items table.
* @param eventBus
*/ */
public ItemsTable(boolean showMoreInfo, DISPLAY_FIELD[] fields) { public ItemsTable(HandlerManager eventBus, boolean showMoreInfo, DISPLAY_FIELD[] fields) {
super(showMoreInfo); super(eventBus, showMoreInfo);
setDisplayFields(fields); setDisplayFields(fields);
initTable(cellTable, null, null); initTable(cellTable, null, null);
} }