256: Workspace explorer
Task-Url: https://support.d4science.org/issues/256 Added new constructror FilterCriteria, ShowableType git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/widgets/workspace-explorer@117586 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
ac13de6141
commit
bf5958fedc
|
@ -171,7 +171,7 @@ public class WorkspaceExplorerSavePanel extends ScrollPanel implements HasWorskp
|
|||
footerHP.add(fileNameTextBox);
|
||||
footerHP.add(saveButton);
|
||||
footerHP.addStyleName("footerHP");
|
||||
|
||||
|
||||
mainVP.add(controller.getWorkspaceExplorerPanel());
|
||||
mainVP.add(footerHP);
|
||||
|
||||
|
|
|
@ -66,6 +66,22 @@ public class WorkspaceExplorerSelectDialog extends Modal implements HasWorskpace
|
|||
controller = new WorkspaceExplorerController(filterCriteria, WorkspaceExplorerConstants.HEIGHT_EXPLORER_PANEL);
|
||||
loadExplorer(captionTxt);
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a new workspace explorer select dialog.
|
||||
* You can implement {@link WorskpaceExplorerSelectNotificationListener} to receive events
|
||||
* @param captionTxt the caption txt
|
||||
* @param filterCriteria the filter criteria
|
||||
*/
|
||||
public WorkspaceExplorerSelectDialog(String captionTxt, FilterCriteria filterCriteria, List<ItemType> selectableTypes) {
|
||||
controller = new WorkspaceExplorerController(filterCriteria, WorkspaceExplorerConstants.HEIGHT_EXPLORER_PANEL);
|
||||
if(selectableTypes!=null){
|
||||
ItemType[] itemsType = new ItemType[selectableTypes.size()];
|
||||
itemsType = selectableTypes.toArray(itemsType);
|
||||
setSelectableTypes(selectableTypes.toArray(itemsType));
|
||||
}
|
||||
loadExplorer(captionTxt);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -8,6 +8,8 @@ import java.util.List;
|
|||
|
||||
import org.gcube.portlets.widgets.wsexplorer.client.WorkspaceExplorerConstants;
|
||||
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.ClickItemEventHandler;
|
||||
import org.gcube.portlets.widgets.wsexplorer.client.event.LoadRootEvent;
|
||||
import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.HasWorskpaceExplorerSelectNotificationListener;
|
||||
import org.gcube.portlets.widgets.wsexplorer.client.notification.WorkspaceExplorerSelectNotification.WorskpaceExplorerSelectNotificationListener;
|
||||
|
@ -17,11 +19,11 @@ import org.gcube.portlets.widgets.wsexplorer.shared.ItemType;
|
|||
|
||||
import com.github.gwtbootstrap.client.ui.Alert;
|
||||
import com.github.gwtbootstrap.client.ui.Button;
|
||||
import com.github.gwtbootstrap.client.ui.ModalFooter;
|
||||
import com.github.gwtbootstrap.client.ui.constants.AlertType;
|
||||
import com.github.gwtbootstrap.client.ui.constants.ButtonType;
|
||||
import com.google.gwt.event.dom.client.ClickEvent;
|
||||
import com.google.gwt.event.dom.client.ClickHandler;
|
||||
import com.google.gwt.user.client.ui.HorizontalPanel;
|
||||
import com.google.gwt.user.client.ui.ScrollPanel;
|
||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
|
||||
|
@ -35,15 +37,14 @@ import com.google.gwt.user.client.ui.VerticalPanel;
|
|||
*/
|
||||
public class WorkspaceExplorerSelectPanel extends ScrollPanel implements HasWorskpaceExplorerSelectNotificationListener{
|
||||
|
||||
private Button selectButton;
|
||||
private WorkspaceExplorerSelectPanel INSTANCE = this;
|
||||
private boolean isSelect = false;
|
||||
private String captionTxt;
|
||||
private ModalFooter footer = new ModalFooter();
|
||||
private Alert alertConfirm;
|
||||
private WorkspaceExplorerController controller;
|
||||
private List<WorskpaceExplorerSelectNotificationListener> listeners = new ArrayList<WorskpaceExplorerSelectNotificationListener>();
|
||||
private VerticalPanel mainVP = new VerticalPanel();
|
||||
private HorizontalPanel footerHP = new HorizontalPanel();
|
||||
|
||||
/**
|
||||
* Instantiates a new workspace explorer select panel.
|
||||
|
@ -55,6 +56,29 @@ public class WorkspaceExplorerSelectPanel extends ScrollPanel implements HasWors
|
|||
loadExplorer(captionTxt);
|
||||
}
|
||||
|
||||
/**
|
||||
* Bind events.
|
||||
*/
|
||||
private void bindEvents(){
|
||||
WorkspaceExplorerController.eventBus.addHandler(ClickItemEvent.TYPE, new ClickItemEventHandler() {
|
||||
|
||||
@Override
|
||||
public void onClick(final ClickItemEvent clickItemEvent) {
|
||||
isSelect = false;
|
||||
|
||||
boolean itemIsSelectable = controller.getWsExplorer().itemIsSelectable();
|
||||
if(itemIsSelectable){
|
||||
notifySelectedItem(controller.getWsExplorer().getItemSelected());
|
||||
isSelect = true;
|
||||
}
|
||||
/*else{ //IGNORING ITEMS NOT SELECTABLE, USING BREADCRUMBS?
|
||||
Item itemB = controller.getBreadcrumbs().getLastParent();
|
||||
if(itemB!=null)
|
||||
setAlertConfirm("Selecting \""+itemB.getName()+"\", confirm?", true, itemB);
|
||||
}*/
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a new workspace explorer select panel.
|
||||
|
@ -66,9 +90,25 @@ public class WorkspaceExplorerSelectPanel extends ScrollPanel implements HasWors
|
|||
controller = new WorkspaceExplorerController(filterCriteria, WorkspaceExplorerConstants.AUTO);
|
||||
loadExplorer(captionTxt);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Instantiates a new workspace explorer select panel.
|
||||
*
|
||||
* @param captionTxt the caption txt
|
||||
* @param filterCriteria the filter criteria
|
||||
* @param selectableTypes the selectable types
|
||||
*/
|
||||
public WorkspaceExplorerSelectPanel(String captionTxt, FilterCriteria filterCriteria, List<ItemType> selectableTypes) {
|
||||
controller = new WorkspaceExplorerController(filterCriteria, WorkspaceExplorerConstants.AUTO);
|
||||
if(selectableTypes!=null){
|
||||
ItemType[] itemsType = new ItemType[selectableTypes.size()];
|
||||
itemsType = selectableTypes.toArray(itemsType);
|
||||
setSelectableTypes(selectableTypes.toArray(itemsType));
|
||||
}
|
||||
loadExplorer(captionTxt);
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a new workspace explorer select panel.
|
||||
*
|
||||
|
@ -77,14 +117,12 @@ public class WorkspaceExplorerSelectPanel extends ScrollPanel implements HasWors
|
|||
*/
|
||||
public WorkspaceExplorerSelectPanel(String captionTxt, boolean showOnlyFolders) {
|
||||
controller = new WorkspaceExplorerController(WorkspaceExplorerConstants.AUTO);
|
||||
|
||||
if(showOnlyFolders){
|
||||
ItemType[] itemsType = new ItemType[1];
|
||||
itemsType[0] = ItemType.FOLDER;
|
||||
setSelectableTypes(itemsType);
|
||||
setShowableTypes(itemsType);
|
||||
}
|
||||
|
||||
loadExplorer(captionTxt);
|
||||
}
|
||||
|
||||
|
@ -120,7 +158,8 @@ public class WorkspaceExplorerSelectPanel extends ScrollPanel implements HasWors
|
|||
* @param captionTxt the caption txt
|
||||
*/
|
||||
private void loadExplorer(String captionTxt){
|
||||
WorkspaceExplorerController.eventBus.fireEvent(new LoadRootEvent());
|
||||
WorkspaceExplorerController.eventBus.fireEvent(new LoadRootEvent());
|
||||
bindEvents();
|
||||
initPanel(captionTxt);
|
||||
}
|
||||
|
||||
|
@ -134,34 +173,12 @@ public class WorkspaceExplorerSelectPanel extends ScrollPanel implements HasWors
|
|||
this.captionTxt = captionTxt;
|
||||
if(this.captionTxt!=null && !this.captionTxt.isEmpty())
|
||||
setTitle(this.captionTxt);
|
||||
selectButton = new Button(WorkspaceExplorerConstants.SELECT);
|
||||
selectButton.setType(ButtonType.PRIMARY);
|
||||
|
||||
setWidth(WorkspaceExplorerConstants.WIDHT_DIALOG+"px");
|
||||
|
||||
add(controller.getWorkspaceExplorerPanel());
|
||||
selectButton.addClickHandler(new ClickHandler() {
|
||||
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
isSelect = false;
|
||||
Item item = controller.getWsExplorer().getItemSelected();
|
||||
if(item!=null){
|
||||
isSelect = true;
|
||||
notifySelectedItem(item);
|
||||
}else if(!controller.getWsExplorer().itemIsSelectable()){ //IGNORING ITEMS NOT SELECTABLE, USING BREADCRUMBS
|
||||
Item itemB = controller.getBreadcrumbs().getLastParent();
|
||||
if(itemB!=null){
|
||||
setAlertConfirm("Selecting \""+itemB.getName()+"\", confirm?", true, itemB);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
setAlertConfirm("", false, null);
|
||||
footer.add(selectButton);
|
||||
mainVP.add(controller.getWorkspaceExplorerPanel());
|
||||
mainVP.add(footer);
|
||||
|
||||
mainVP.add(footerHP);
|
||||
add(mainVP);
|
||||
}
|
||||
|
||||
|
@ -175,7 +192,7 @@ public class WorkspaceExplorerSelectPanel extends ScrollPanel implements HasWors
|
|||
*/
|
||||
private void setAlertConfirm(String html, boolean show, final Item item){
|
||||
try{
|
||||
footer.remove(alertConfirm);
|
||||
footerHP.remove(alertConfirm);
|
||||
}catch(Exception e){
|
||||
//silent
|
||||
}
|
||||
|
@ -210,7 +227,7 @@ public class WorkspaceExplorerSelectPanel extends ScrollPanel implements HasWors
|
|||
});
|
||||
alertConfirm.add(yes);
|
||||
alertConfirm.add(no);
|
||||
footer.insert(alertConfirm,0);
|
||||
footerHP.insert(alertConfirm,0);
|
||||
}
|
||||
/**
|
||||
* Notify selected item.
|
||||
|
|
|
@ -21,11 +21,5 @@ public interface SelectionItem {
|
|||
* @return the selected item
|
||||
*/
|
||||
Item getSelectedItem();
|
||||
|
||||
/**
|
||||
* Selected item.
|
||||
*
|
||||
* @param item the item
|
||||
*/
|
||||
void selectedItem(Item item);
|
||||
|
||||
}
|
|
@ -5,7 +5,6 @@ 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.resources.CellTableResources;
|
||||
import org.gcube.portlets.widgets.wsexplorer.client.view.SelectionItem;
|
||||
import org.gcube.portlets.widgets.wsexplorer.shared.Item;
|
||||
|
||||
import com.github.gwtbootstrap.client.ui.CellTable;
|
||||
|
@ -34,12 +33,13 @@ import com.google.gwt.view.client.SingleSelectionModel;
|
|||
*
|
||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it Feb 19, 2015
|
||||
*/
|
||||
public abstract class AbstractItemsCellTable implements SelectionItem{
|
||||
public abstract class AbstractItemsCellTable {
|
||||
|
||||
protected CellTable<Item> cellTable;
|
||||
protected ListDataProvider<Item> dataProvider = new ListDataProvider<Item>();
|
||||
protected Item itemContextMenu = null;
|
||||
protected boolean showMoreInfo;
|
||||
protected final SingleSelectionModel<Item> ssm;
|
||||
|
||||
/**
|
||||
* Inits the table.
|
||||
|
@ -65,12 +65,13 @@ public abstract class AbstractItemsCellTable implements SelectionItem{
|
|||
cellTable.addStyleName("table-overflow");
|
||||
cellTable.setStriped(true);
|
||||
cellTable.setCondensed(true);
|
||||
cellTable.setWidth("100%", true);
|
||||
cellTable.setWidth("100%", false);
|
||||
cellTable.setHeight("100px");
|
||||
dataProvider.addDataDisplay(cellTable);
|
||||
initTable(cellTable, null, null);
|
||||
cellTable.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);
|
||||
|
||||
final SingleSelectionModel<Item> ssm = new SingleSelectionModel<Item>();
|
||||
ssm = new SingleSelectionModel<Item>();
|
||||
cellTable.setSelectionModel(ssm);
|
||||
ssm.addSelectionChangeHandler(new Handler() {
|
||||
@Override
|
||||
|
@ -79,7 +80,7 @@ public abstract class AbstractItemsCellTable implements SelectionItem{
|
|||
final Item selectedObject = ssm.getSelectedObject();
|
||||
if(selectedObject!=null){
|
||||
GWT.log("Clicked: "+selectedObject);
|
||||
selectedItem(selectedObject);
|
||||
// selectedItem(selectedObject);
|
||||
if(showMoreInfo)
|
||||
WorkspaceExplorerController.eventBus.fireEvent(new ClickItemEvent(selectedObject));
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ import java.util.List;
|
|||
import java.util.Set;
|
||||
|
||||
import org.gcube.portlets.widgets.wsexplorer.client.Util;
|
||||
import org.gcube.portlets.widgets.wsexplorer.client.view.SelectionItem;
|
||||
import org.gcube.portlets.widgets.wsexplorer.shared.Item;
|
||||
|
||||
import com.github.gwtbootstrap.client.ui.Pagination;
|
||||
|
@ -33,7 +34,7 @@ import com.google.gwt.user.client.ui.Label;
|
|||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||
* Feb 19, 2015
|
||||
*/
|
||||
public class ItemsTable extends AbstractItemsCellTable {
|
||||
public class ItemsTable extends AbstractItemsCellTable implements SelectionItem{
|
||||
|
||||
private Column<Item, ImageResource> icon;
|
||||
private TextColumn<Item> name;
|
||||
|
@ -164,20 +165,12 @@ public class ItemsTable extends AbstractItemsCellTable {
|
|||
sb.append(html);
|
||||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.gcube.portlets.widgets.wsexplorer.client.grid.AbstractItemsCellTable#selectedItem(org.gcube.portlets.widgets.wsexplorer.shared.Item)
|
||||
*/
|
||||
@Override
|
||||
public void selectedItem(Item item) {
|
||||
this.selectedItem = item;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.gcube.portlets.widgets.wsexplorer.client.notification.SelectionItemHandler#getSelectionItem()
|
||||
*/
|
||||
@Override
|
||||
public Item getSelectedItem() {
|
||||
return selectedItem;
|
||||
return ssm.getSelectedObject();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue