209 lines
6.6 KiB
Java
209 lines
6.6 KiB
Java
/**
|
|
*
|
|
*/
|
|
package org.gcube.portlets.widgets.wsexplorer.client.grid;
|
|
|
|
import java.util.Comparator;
|
|
import java.util.HashSet;
|
|
import java.util.List;
|
|
import java.util.Set;
|
|
|
|
import org.gcube.portlets.widgets.wsexplorer.shared.Item;
|
|
|
|
import com.github.gwtbootstrap.client.ui.Pagination;
|
|
import com.google.gwt.cell.client.Cell.Context;
|
|
import com.google.gwt.cell.client.ImageResourceCell;
|
|
import com.google.gwt.dom.client.Element;
|
|
import com.google.gwt.dom.client.NativeEvent;
|
|
import com.google.gwt.dom.client.Style.Unit;
|
|
import com.google.gwt.resources.client.ImageResource;
|
|
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
|
|
import com.google.gwt.user.cellview.client.AbstractCellTable;
|
|
import com.google.gwt.user.cellview.client.Column;
|
|
import com.google.gwt.user.cellview.client.ColumnSortEvent.ListHandler;
|
|
import com.google.gwt.user.cellview.client.SimplePager;
|
|
import com.google.gwt.user.cellview.client.TextColumn;
|
|
import com.google.gwt.user.client.ui.Label;
|
|
import com.google.gwt.view.client.SelectionChangeEvent;
|
|
import com.google.gwt.view.client.SelectionChangeEvent.Handler;
|
|
import com.google.gwt.view.client.SingleSelectionModel;
|
|
/**
|
|
* The Class PackagesTable.
|
|
*
|
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
|
* Feb 19, 2015
|
|
*/
|
|
public class ItemsTable extends AbstractItemsCellTable{
|
|
|
|
private Column<Item, ImageResource> icon;
|
|
private TextColumn<Item> name;
|
|
private TextColumn<Item> owner;
|
|
private TextColumn<Item> lastModified;
|
|
/**
|
|
* Instantiates a new packages table.
|
|
*
|
|
* @param showGroupId the show group id
|
|
*/
|
|
public ItemsTable(boolean showGroupId) {
|
|
super(showGroupId);
|
|
|
|
}
|
|
|
|
/* (non-Javadoc)
|
|
* @see org.gcube.portlets.admin.gcubereleases.client.view.AbstractPackageTable#addPackages(java.util.List)
|
|
*/
|
|
public void addItems(List<Item> packages) {
|
|
dataProvider.getList().clear();
|
|
|
|
for (Item pckg : packages)
|
|
addItem(pckg);
|
|
|
|
cellTable.setPageSize(packages.size()+1);
|
|
cellTable.redraw();
|
|
}
|
|
|
|
/**
|
|
* Adds the package.
|
|
*
|
|
* @param pckg the pckg
|
|
*/
|
|
private void addItem(Item pckg) {
|
|
dataProvider.getList().add(pckg);
|
|
dataProvider.flush();
|
|
dataProvider.refresh();
|
|
}
|
|
|
|
/* (non-Javadoc)
|
|
* @see org.gcube.portlets.admin.gcubereleases.client.view.AbstractPackageTable#initTable(com.google.gwt.user.cellview.client.AbstractCellTable, com.google.gwt.user.cellview.client.SimplePager, com.github.gwtbootstrap.client.ui.Pagination)
|
|
*/
|
|
@Override
|
|
public void initTable(AbstractCellTable<Item> packageTable, final SimplePager pager, final Pagination pagination) {
|
|
packageTable.setEmptyTableWidget(new Label("No data."));
|
|
|
|
double artifactIDWidht = 40.0;
|
|
|
|
//ICONS
|
|
ImageResourceCell iconResourceCell = new ImageResourceCell() {
|
|
public Set<String> getConsumedEvents() {
|
|
HashSet<String> events = new HashSet<String>();
|
|
events.add("click");
|
|
return events;
|
|
}
|
|
|
|
};
|
|
|
|
icon = new Column<Item, ImageResource>(iconResourceCell) {
|
|
@Override
|
|
public ImageResource getValue(Item dataObj) {
|
|
|
|
// if(dataObj.getURL()!=null && !dataObj.getURL().isEmpty())
|
|
// return Icons.ICONS.download();
|
|
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public void onBrowserEvent(Context context, Element elem, Item object, NativeEvent event) {
|
|
super.onBrowserEvent(context, elem, object, event);
|
|
if ("click".equals(event.getType())) {
|
|
// Window.open(object.getURL(), "_blank", "");
|
|
// GcubeReleasesAppController.eventBus.fireEvent(new PackageClickEvent(object, AccoutingReference.DOWNLOAD));
|
|
}
|
|
}
|
|
|
|
/* (non-Javadoc)
|
|
* @see com.google.gwt.user.cellview.client.Column#render(com.google.gwt.cell.client.Cell.Context, java.lang.Object, com.google.gwt.safehtml.shared.SafeHtmlBuilder)
|
|
*/
|
|
@Override
|
|
public void render(Context context, Item object, SafeHtmlBuilder sb) {
|
|
super.render(context, object, sb);
|
|
|
|
}
|
|
};
|
|
|
|
//ARTIFACT ID
|
|
name = new TextColumn<Item>() {
|
|
@Override
|
|
public String getValue(Item object) {
|
|
return object.getName();
|
|
}
|
|
};
|
|
name.setSortable(true);
|
|
packageTable.addColumn(name, "Name");
|
|
packageTable.setColumnWidth(name, artifactIDWidht, Unit.PCT);
|
|
|
|
ListHandler<Item> nameColumnHandler = new ListHandler<Item>(dataProvider.getList());
|
|
nameColumnHandler.setComparator(name, new Comparator<Item>() {
|
|
@Override
|
|
public int compare(Item o1, Item o2) {
|
|
return o1.getName().compareTo(o2.getName());
|
|
}
|
|
});
|
|
|
|
packageTable.addColumnSortHandler(nameColumnHandler);
|
|
/*
|
|
owner = new TextColumn<Item>() {
|
|
@Override
|
|
public String getValue(Item object) {
|
|
return object.getVersion() != null ? object.getVersion() : "";
|
|
}
|
|
};
|
|
|
|
owner.setCellStyleNames("img-centered-clickable");
|
|
owner.setSortable(true);
|
|
packageTable.addColumn(owner, "Version");
|
|
|
|
packageTable.setColumnWidth(owner, 10.0, Unit.PCT);
|
|
*/
|
|
|
|
icon.setCellStyleNames("img-centered-clickable");
|
|
icon.setSortable(false);
|
|
packageTable.addColumn(icon, "Download");
|
|
packageTable.setColumnWidth(icon, 10.0, Unit.PCT);
|
|
|
|
//MAVEN COORDS
|
|
ImageResourceCell myImgMavenCell = new ImageResourceCell() {
|
|
public Set<String> getConsumedEvents() {
|
|
HashSet<String> events = new HashSet<String>();
|
|
events.add("click");
|
|
return events;
|
|
}
|
|
};
|
|
|
|
/*
|
|
//AS LINK
|
|
final SafeHtmlRenderer<String> mvnCoordinatesRenderer = new AbstractSafeHtmlRenderer<String>() {
|
|
@Override
|
|
public SafeHtml render(String object) {
|
|
SafeHtmlBuilder sb = new SafeHtmlBuilder();
|
|
sb.appendHtmlConstant("<a target=\"_blank\" href=\""+object+"\">").appendEscaped("Maven Repo").appendHtmlConstant("</a>");
|
|
return sb.toSafeHtml();
|
|
}
|
|
};
|
|
|
|
mvnCoordinates = new Column<Package, String>(new ClickableTextCell(mvnCoordinatesRenderer)) {
|
|
@Override
|
|
public String getValue(Package object) {
|
|
return "http://maven.research-infrastructures.eu/nexus/index.html#nexus-search;quick~"+object.getArtifactID();
|
|
}
|
|
};
|
|
*/
|
|
// mvn.setSortable(false);
|
|
|
|
final SingleSelectionModel<Item> selectionModel = new SingleSelectionModel<Item>();
|
|
selectionModel.addSelectionChangeHandler(new Handler() {
|
|
@Override
|
|
public void onSelectionChange(SelectionChangeEvent event) {
|
|
// Package p = selectionModel.getSelectedObject();
|
|
// CellTables.this.driver.edit(person);
|
|
}
|
|
});
|
|
|
|
// exampleTable.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.BOUND_TO_SELECTION);
|
|
// packageTable.setSelectionModel(selectionModel);
|
|
// pager.setDisplay(exampleTable);
|
|
// pagination.clear();
|
|
|
|
}
|
|
}
|